http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/i386/sysdep.h.diff?r1=1.40&r2=1.41&cvsroot=glibc See also http://gcc.gnu.org/PR12928, comment 6 (which says this is a glibc bug, not a gcc bug) Fixes /tmp/ccdGVIRa.s: Assembler messages: /tmp/ccdGVIRa.s:82: Error: non-constant expression in ".if" statement /tmp/ccdGVIRa.s:83: Error: non-constant expression in ".if" statement /tmp/ccdGVIRa.s:86: Error: non-constant expression in ".if" statement make[2]: *** [/crosstool-0.28-pre4/build/i686-unknown-linux-gnu/gcc-3.3.3-glibc-2.1.3/build-glibc/signal/sigsuspend.o] Error 1 =================================================================== RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/i386/sysdep.h,v retrieving revision 1.40 retrieving revision 1.41 diff -u -r1.40 -r1.41 --- libc/sysdeps/unix/sysv/linux/i386/sysdep.h 2002/10/16 08:57:25 1.40 +++ libc/sysdeps/unix/sysv/linux/i386/sysdep.h 2002/11/28 05:21:48 1.41 @@ -347,9 +347,9 @@ #define ASMFMT_1(arg1) \ , "acdSD" (arg1) #define ASMFMT_2(arg1, arg2) \ - , "adCD" (arg1), "c" (arg2) + , "adSD" (arg1), "c" (arg2) #define ASMFMT_3(arg1, arg2, arg3) \ - , "aCD" (arg1), "c" (arg2), "d" (arg3) + , "aSD" (arg1), "c" (arg2), "d" (arg3) #define ASMFMT_4(arg1, arg2, arg3, arg4) \ , "aD" (arg1), "c" (arg2), "d" (arg3), "S" (arg4) #define ASMFMT_5(arg1, arg2, arg3, arg4, arg5) \