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
Created attachment 15105 [details] preprocessed source of file producing breakdown
Please find "movb" insn (or similar that operates on 8bit reg) in your source and change its constraint from "r" to "q".
*** Bug 35963 has been marked as a duplicate of this bug. ***
*** Bug 90817 has been marked as a duplicate of this bug. ***