Today's (2008-02-06) gcc-trunk (rev 132144) fails to build rtems. Seemingly it generates invalid assembly code:
# i386-rtems4.9-gcc --pipe -mtune=pentiumpro --pipe -DHAVE_CONFIG_H -I.. -I../../../lib/include -I../../../../../../rtems.orig/cpukit/libnetworking -D_COMPILING_BSD_KERNEL_ -DKERNEL -DINET -DNFS -DDIAGNOSTIC -DBOOTP_COMPAT -D_KERNEL -D__BSD_VISIBLE -Wall -fasm -g -O2 -MT netinet/libnetworking_a-in_cksum.o -MD -MP -MF netinet/.deps/libnetworking_a-in_cksum.Tpo -c -o netinet/libnetworking_a-in_cksum.o `test -f 'netinet/in_cksum.c' || echo '../../../../../../rtems.orig/cpukit/libnetworking/'`netinet/in_cksum.c {standard input}: Assembler messages: {standard input}:947: Error: bad register name `%sil' gmake[2]: *** [netinet/libnetworking_a-in_cksum.o] Error 1 # i386-rtems4.9-as --version GNU assembler (GNU Binutils) 2.18 The same piece of code builds fine with gcc-4.2.3 -- Summary: i386-*gcc: bad register name `%sil' Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: corsepiu at gcc dot gnu dot org GCC target triplet: i386-rtems* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35102