Bug 3435

Summary: Compilation failure on x86_64
Product: xorg Reporter: Mike A. Harris <mharris>
Component: Server/GeneralAssignee: Xorg Project Team <xorg-team>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: high CC: dberkholz
Version: 6.7.0   
Hardware: Other   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 1690    

Description Mike A. Harris 2005-05-30 06:36:09 UTC
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
Comment 1 Mike A. Harris 2005-07-14 00:51:35 UTC
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'
Comment 2 Mike A. Harris 2005-07-14 06:47:15 UTC
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.
Comment 3 Mike A. Harris 2005-07-14 10:39:32 UTC
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)

Comment 4 Mike A. Harris 2005-07-14 10:44:25 UTC
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.
Comment 5 Donnie Berkholz 2005-07-30 13:15:14 UTC
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.
Comment 6 Mike A. Harris 2005-08-16 08:38:34 UTC
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.
Comment 7 Alan Coopersmith 2005-10-03 23:39:16 UTC
ping mharris
Comment 8 Mike A. Harris 2005-11-09 16:58:44 UTC
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.