[Bug 109689] build error - sna_render_inline.h:40:26: error: inlining failed in call to always_inline ‘vertex_emit_2s’: target specific option mismatch

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Feb 21 23:34:51 UTC 2019


https://bugs.freedesktop.org/show_bug.cgi?id=109689

Chris Wilson <chris at chris-wilson.co.uk> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #3 from Chris Wilson <chris at chris-wilson.co.uk> ---
commit 9e6e003e3468dca674ac848e2669af973da02fd4 (origin/master, origin/HEAD)
Author: Adam Jackson <ajax at redhat.com>
Date:   Tue Mar 6 12:07:46 2018 -0500

    Fix build on i686

    Presumably this only matters for i686 because amd64 implies sse2, but:

    BUILDSTDERR: In file included from gen4_vertex.c:34:
    BUILDSTDERR: gen4_vertex.c: In function 'emit_vertex':
    BUILDSTDERR: sna_render_inline.h:40:26: error: inlining failed in call to
al
ways_inline 'vertex_emit_2s': target specific option mismatch
    BUILDSTDERR:  static force_inline void vertex_emit_2s(struct sna *sna,
int16
_t x, int16_t y)
    BUILDSTDERR:                           ^~~~~~~~~~~~~~
    BUILDSTDERR: gen4_vertex.c:308:25: note: called from here
    BUILDSTDERR:  #define OUT_VERTEX(x,y) vertex_emit_2s(sna, x,y) /* XXX
assert
(!too_large(x, y)); */
    BUILDSTDERR:                          ^~~~~~~~~~~~~~~~~~~~~~~~
    BUILDSTDERR: gen4_vertex.c:360:2: note: in expansion of macro 'OUT_VERTEX'
    BUILDSTDERR:   OUT_VERTEX(dstX, dstY);
    BUILDSTDERR:   ^~~~~~~~~~

    The bug here appears to be that emit_vertex() is declared 'sse2' but
    vertex_emit_2s is merely always_inline. gcc8 decides that since you said
    always_inline you need to have explicitly cloned it for every
    permutation of targets. Merely saying inline seems to do the job of
    cloning vertex_emit_2s as much as necessary.

    So to reiterate: if you say always-inline, it won't, but if you just say
    maybe inline, it will. Thanks gcc, that's helpful.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/intel-gfx-bugs/attachments/20190221/521bde5f/attachment.html>


More information about the intel-gfx-bugs mailing list