When compiling 6.8.99.8 with gcc4 fbmmx.c exhibits the following warnings: fbmmx.c:46: warning: ISO C90 does not support 'long long' fbmmx.c:77:21: warning: use of C99 long long integer constant fbmmx.c:77: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:78:21: warning: use of C99 long long integer constant fbmmx.c:78: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:79:22: warning: use of C99 long long integer constant fbmmx.c:79: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:80:20: warning: use of C99 long long integer constant fbmmx.c:80: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:81:20: warning: use of C99 long long integer constant fbmmx.c:81: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:82:20: warning: use of C99 long long integer constant fbmmx.c:82: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:83:21: warning: use of C99 long long integer constant fbmmx.c:83: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:84:21: warning: use of C99 long long integer constant fbmmx.c:84: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:85:21: warning: use of C99 long long integer constant fbmmx.c:85: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:86:21: warning: use of C99 long long integer constant fbmmx.c:86: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:87:25: warning: use of C99 long long integer constant fbmmx.c:87: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:88:34: warning: use of C99 long long integer constant fbmmx.c:88: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:89:30: warning: use of C99 long long integer constant fbmmx.c:89: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:90:30: warning: use of C99 long long integer constant fbmmx.c:90: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:91:30: warning: use of C99 long long integer constant fbmmx.c:91: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c: In function 'fbCompositeSolidMask_nx8x8888mmx': fbmmx.c:853: warning: ISO C90 does not support 'long long' fbmmx.c:896: warning: ISO C90 does not support 'long long' fbmmx.c: In function 'fbCompositeSolidMask_nx8x0565mmx': fbmmx.c:959: warning: ISO C90 does not support 'long long' fbmmx.c:1019: warning: ISO C90 does not support 'long long' fbmmx.c: In function 'fbCopyAreammx': fbmmx.c:1709: warning: cast from pointer to integer of different size make[5]: *** [fbmmx.o] Error 1 make[5]: Leaving directory `/usr/src/build/571642-x86_64/BUILD/xorg-x11-6.8.99.8/xc/programs/Xserver/fb' make[4]: *** [fb] Error 2
gcc -c -O2 -fno-strength-reduce -fno-strict-aliasing -ansi -pedantic -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs -Wundef -fPIC -I../../../programs/Xserver/fb -I../../../programs/Xserver/mi -I../../../programs/Xserver/include -I../../../exports/include/X11 -I../../../include/fonts -I../../../programs/Xserver/hw/xfree86/common -I../../../programs/Xserver/render -I../../../include/extensions -I../../../programs/Xserver/Xext -I../../.. -I../../../exports/include -Dlinux -D__amd64__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -DSHAPE -DXINPUT -DXKB -DLBX -DXAPPGROUP -DXCSECURITY -DTOGCUP -DXF86BIGFONT -DDPMSExtension -DPANORAMIX -DRENDER -DRANDR -DXFIXES -DDAMAGE -DCOMPOSITE -DXEVIE -DGCCUSESGAS -DAVOID_GLYPHBLT -DPIXPRIV -DSINGLEDEPTH -DXFreeXDGA -DXvExtension -DXFree86LOADER -DDLOPEN_HACK -DXFree86Server -DXF86VIDMODE -DXvMCExtension -DSMART_SCHEDULE -DXResExtension -DX_BYTE_ORDER=X_LITTLE_ENDIAN -DXORG_VERSION_CURRENT="(((6) * 10000000) + ((8) * 100000) + ((99) * 1000) + 14)" -D_XSERVER64 -DNDEBUG -DFUNCPROTO=15 -DNARROWPROTO -DIN_MODULE -DXFree86Module -mmmx -Winline --param inline-unit-growth=10000 --param large-function-growth=10000 -DUSE_MMX -msse -DUSE_SSE fbmmx.c In file included from /usr/include/stdlib.h:436, from /usr/lib/gcc/x86_64-redhat-linux/4.0.1/include/mm_malloc.h:30, from /usr/lib/gcc/x86_64-redhat-linux/4.0.1/include/xmmintrin.h:41, from fbmmx.c:41: /usr/include/sys/types.h:151: error: duplicate 'unsigned' In file included from /usr/lib/gcc/x86_64-redhat-linux/4.0.1/include/mm_malloc.h:30, from /usr/lib/gcc/x86_64-redhat-linux/4.0.1/include/xmmintrin.h:41, from fbmmx.c:41: /usr/include/stdlib.h:626:24: error: macro "abort" passed 1 arguments, but takes just 0 fbmmx.c:50: warning: ISO C90 does not support 'long long' fbmmx.c:81:21: warning: use of C99 long long integer constant fbmmx.c:81: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:82:21: warning: use of C99 long long integer constant fbmmx.c:82: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:83:22: warning: use of C99 long long integer constant fbmmx.c:83: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:84:20: warning: use of C99 long long integer constant fbmmx.c:84: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:85:20: warning: use of C99 long long integer constant fbmmx.c:85: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:86:20: warning: use of C99 long long integer constant fbmmx.c:86: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:87:21: warning: use of C99 long long integer constant fbmmx.c:87: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:88:21: warning: use of C99 long long integer constant fbmmx.c:88: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:89:21: warning: use of C99 long long integer constant fbmmx.c:89: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:90:21: warning: use of C99 long long integer constant fbmmx.c:90: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:91:25: warning: use of C99 long long integer constant fbmmx.c:91: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:92:34: warning: use of C99 long long integer constant fbmmx.c:92: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:93:30: warning: use of C99 long long integer constant fbmmx.c:93: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:94:30: warning: use of C99 long long integer constant fbmmx.c:94: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c:95:30: warning: use of C99 long long integer constant fbmmx.c:95: warning: ISO C90 forbids specifying subobject to initialize fbmmx.c: In function 'fbCompositeSolidMask_nx8x8888mmx': fbmmx.c:857: warning: ISO C90 does not support 'long long' fbmmx.c:900: warning: ISO C90 does not support 'long long' fbmmx.c: In function 'fbCompositeSolidMask_nx8x0565mmx': fbmmx.c:963: warning: ISO C90 does not support 'long long' fbmmx.c:1023: warning: ISO C90 does not support 'long long' fbmmx.c: In function 'fbCopyAreammx': fbmmx.c:1713: warning: cast from pointer to integer of different size make[5]: *** [fbmmx.o] Error 1 make[5]: Leaving directory `/usr/src/build/586680-x86_64/BUILD/xorg-x11-6.8.99.14/xc/programs/Xserver/fb' make[4]: *** [fb] Error 2 make[4]: Leaving directory `/usr/src/build/586680-x86_64/BUILD/xorg-x11-6.8.99.14/xc/programs/Xserver' make[3]: *** [all] Error 2 make[3]: Leaving directory `/usr/src/build/586680-x86_64/BUILD/xorg-x11-6.8.99.14/xc/programs' make[2]: *** [all] Error 2 make[2]: Leaving directory `/usr/src/build/586680-x86_64/BUILD/xorg-x11-6.8.99.14/xc' make[1]: *** [World] Error 2 make[1]: Leaving directory `/usr/src/build/586680-x86_64/BUILD/xorg-x11-6.8.99.14/xc' make: *** [World] Error 2 make: Leaving directory `/usr/src/build/586680-x86_64/BUILD/xorg-x11-6.8.99.14/xc'
I reordered the includes in fbmmx.c and put the system includes at the top, and local includes below, and this problem is now solved. It appears that a similar change went into CVS head already since the 6.8.99.14 tag, which is where I most recently triggered the error. Closing as FIXED in CVS head.
Fresh checkout of CVS HEAD, compiling on Fedora Core 4, using gcc 4.0.0 this time yields a different problem but in same file fbmmx.c WRT mmx: gcc -c -O2 -fno-strength-reduce -fno-strict-aliasing -ansi -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs -Wundef -fPIC -I../../../programs/Xserver/fb -I../../../programs/Xserver/mi -I../../../programs/Xserver/include -I../../../exports/include/X11 -I../../../include/fonts -I../../../programs/Xserver/hw/xfree86/common -I../../../programs/Xserver/render -I../../../include/extensions -I../../../programs/Xserver/Xext -I../../.. -I../../../exports/include -Dlinux -D__amd64__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -DSHAPE -DXINPUT -DXKB -DLBX -DXAPPGROUP -DXCSECURITY -DTOGCUP -DXF86BIGFONT -DDPMSExtension -DPANORAMIX -DRENDER -DRANDR -DXFIXES -DDAMAGE -DCOMPOSITE -DXEVIE -DGCCUSESGAS -DAVOID_GLYPHBLT -DPIXPRIV -DSINGLEDEPTH -DXFreeXDGA -DXvExtension -DXFree86LOADER -DDLOPEN_HACK -DXFree86Server -DXF86VIDMODE -DXvMCExtension -DSMART_SCHEDULE -DXResExtension -DX_BYTE_ORDER=X_LITTLE_ENDIAN -DXORG_VERSION_CURRENT="(((6) * 10000000) + ((8) * 100000) + ((99) * 1000) + 14)" -D_XSERVER64 -DNDEBUG -DFUNCPROTO=15 -DNARROWPROTO -DIN_MODULE -DXFree86Module -mmmx -msse -Winline --param inline-unit-growth=10000 --param large-function-growth=10000 -DUSE_MMX fbmmx.c In file included from /usr/lib/gcc/x86_64-redhat-linux/4.0.0/include/xmmintrin.h:1211, from fbmmx.c:40: /usr/lib/gcc/x86_64-redhat-linux/4.0.0/include/emmintrin.h:1390: error: syntax error before '__m128' /usr/lib/gcc/x86_64-redhat-linux/4.0.0/include/emmintrin.h:1396: error: syntax error before '__m128i' /usr/lib/gcc/x86_64-redhat-linux/4.0.0/include/emmintrin.h:1402: error: syntax error before '__m128d' /usr/lib/gcc/x86_64-redhat-linux/4.0.0/include/emmintrin.h:1408: error: syntax error before '__m128i' /usr/lib/gcc/x86_64-redhat-linux/4.0.0/include/emmintrin.h:1414: error: syntax error before '__m128' /usr/lib/gcc/x86_64-redhat-linux/4.0.0/include/emmintrin.h:1420: error: syntax error before '__m128d' make[5]: *** [fbmmx.o] Error 1 make[5]: Leaving directory `/usr/src/build/587179-x86_64/BUILD/xorg-x11-6.8.99.14/xc/programs/Xserver/fb' make[4]: *** [fb] Error 2 make[4]: Leaving directory `/usr/src/build/587179-x86_64/BUILD/xorg-x11-6.8.99.14/xc/programs/Xserver' make[3]: *** [all] Error 2 make[3]: Leaving directory `/usr/src/build/587179-x86_64/BUILD/xorg-x11-6.8.99.14/xc/programs' make[2]: *** [all] Error 2 make[2]: Leaving directory `/usr/src/build/587179-x86_64/BUILD/xorg-x11-6.8.99.14/xc' make[1]: *** [World] Error 2 make[1]: Leaving directory `/usr/src/build/587179-x86_64/BUILD/xorg-x11-6.8.99.14/xc' make: *** [World] Error 2 make: Leaving directory `/usr/src/build/587179-x86_64/BUILD/xorg-x11-6.8.99.14/xc' error: Bad exit status from /usr/src/build/587179-x86_64/install-tmp/rpm-tmp.25337 (%build)
Appears as if X is redefining "inline" in a manner incompatible with gcc somewhere. Grepping the tree does not seem to yield the cause of the problem. Any suggestions appreciated.
How about hw/xfree86/common/compiler.h? That's where it ought to be, but unless __GNUC__ isn't defined on gcc4, I don't see how it's happening.
I'll be investigating this sometime in the next 2 weeks, and will and close the bug if it's now resolved, or provide a status update here with any new details. Thanks.
ping mharris
Problem does not occur on RC1 it seems. Closing as "FIXED".
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.