[Intel-gfx] build error with GCC5.1.1

Olivier Fourdan ofourdan at redhat.com
Mon May 18 00:15:26 PDT 2015


Hey,

> gcc5.1.1 generates an error at build time.
> 
> sna_accel.c: In function 'sna_poly_zero_line_blt':
> sna_accel.c:9207:10: warning: variable 'intersects' set but not used
> [-Wunused-but-set-variable]
>        bool intersects;
>            ^
> sna_accel.c:9107:6: warning: variable 'degenerate' set but not used
> [-Wunused-but-set-variable]
>    bool degenerate = true;
>        ^

Well, those are "unused variable warnings" so not an error. Could be easily fixed though.

>    CC       sna_cpu.lo
> In file included from /usr/include/string.h:635:0,
>                   from /usr/include/xorg/os.h:53,
>                   from /usr/include/xorg/misc.h:115,
>                   from /usr/include/xorg/xf86str.h:37,
>                   from sna.h:43,
>                   from blt.c:32:
> blt.c: In function 'memcpy_from_tiled_x__swizzle_9_10_11':
> /usr/include/bits/string3.h:50:42: error: inlining failed in call to
> always_inline 'memcpy': optimization level attribute mismatch
>   __NTH (memcpy (void *__restrict __dest, const void *__restrict __src,

Right, this is a known issue in gcc 5.1, see here:

http://gcc.gnu.org/PR65873

The (easy) workaround is to avoid the "-Ofast" optimization.

E.g. something like that in src/sna/compiler.h:

--- a/src/sna/compiler.h
+++ b/src/sna/compiler.h
@@ -63,7 +63,7 @@
 #define sse4_2 __attribute__((target("sse4.2,sse2,fpmath=sse")))
 #endif
 
-#if HAS_GCC(4, 6) && defined(__OPTIMIZE__)
+#if HAS_GCC(4, 6) && !HAS_GCC(5, 0) && defined(__OPTIMIZE__)
 #define fast __attribute__((optimize("Ofast")))
 #else
 #define fast

But I do not think this is something suitable for upstream as the bug lies in gcc, so it's just a workaround until the issue is fixed in gcc.

HTH

Cheers,
Olivier.



More information about the Intel-gfx mailing list