When compiling gcc 4_0-branch with the --with-cpu=ep9312 and --with-fpu=maverick options, gcc fails.
gcc was configured with: --prefix=/usr --host=x86_64-pc-linux-gnu --target=armv4l-unknown-linux-gnu --with-cpu=ep9312 --with-fpu=maverick --build=x86_64-pc-linux-gnu --disable-altivec --disable-nls --with-system-zlib --disable-checking --disable-werror --disable-libunwind-exceptions --disable-multilib --disable-libgcj --enable-languages=c,c++ --enable-__cxa_atexit --enable-clocale=gnu This is the error: /tmp/build/gcc/xgcc -B/tmp/build/gcc/ -B/usr/armv4l-unknown-linux-gnu/bin/ -B/usr/armv4l-unknown-linux-gnu/lib/ -isystem /usr/armv4l-unknown-linux-gnu/include -isystem /usr/armv4l-unknown-linux-gnu/sys-include -O2 -DIN_GCC -DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fomit-frame-pointer -fPIC -g0 -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -I. -I. -I../../gcc-4_0-branch/gcc -I../../gcc-4_0-branch/gcc/. -I../../gcc-4_0-branch/gcc/../include -I../../gcc-4_0-branch/gcc/../libcpp/include -DL_muldc3 -fvisibility=hidden -DHIDE_EXPORTS -c ../../gcc-4_0-branch/gcc/libgcc2.c -o libgcc/./_muldc3.o ../../gcc-4_0-branch/gcc/libgcc2.c: In function '__muldc3': ../../gcc-4_0-branch/gcc/libgcc2.c:1696: error: unable to find a register to spill in class 'VFP_REGS' ../../gcc-4_0-branch/gcc/libgcc2.c:1696: error: this is the insn: (insn:HI 105 128 103 7 (set (reg:SI 0 r0 [158]) (and:SI (subreg:SI (reg/v:DF 30 mv3 [orig:126 a ] [126]) 4) (const_int -2147483648 [0xffffffff80000000]))) 54 {*arm_andsi3_insn} (nil) (expr_list:REG_DEAD (reg/v:DF 30 mv3 [orig:126 a ] [126]) (nil))) ../../gcc-4_0-branch/gcc/libgcc2.c:1696: confused by earlier errors, bailing out make[2]: *** [libgcc/./_muldc3.o] Error 1 make[2]: Leaving directory `/tmp/build/gcc' make[1]: *** [libgcc.a] Error 2 make[1]: Leaving directory `/tmp/build/gcc' make: *** [all-gcc] Error 2 When executing the last command with -v: fantasy gcc # /tmp/build/gcc/xgcc -B/tmp/build/gcc/ -B/usr/armv4l-unknown-linux-gnu/bin/ -B/usr/armv4l-unknown-linux-gnu/lib/ -isystem /usr/armv4l-unknown-linux-gnu/include -isystem /usr/armv4l-unknown-linux-gnu/sys-include -O2 -DIN_GCC -DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fomit-frame-pointer -fPIC -g0 -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -I. -I. -I../../gcc-4_0-branch/gcc -I../../gcc-4_0-branch/gcc/. -I../../gcc-4_0-branch/gcc/../include -I../../gcc-4_0-branch/gcc/../libcpp/include -DL_muldc3 -fvisibility=hidden -DHIDE_EXPORTS -c ../../gcc-4_0-branch/gcc/libgcc2.c -o libgcc/./_muldc3.o -v Reading specs from /tmp/build/gcc/specs Target: armv4l-unknown-linux-gnu Configured with: ../gcc-4_0-branch/configure --prefix=/usr --host=x86_64-pc-linux-gnu --target=armv4l-unknown-linux-gnu --with-cpu=ep9312 --with-fpu=maverick --build=x86_64-pc-linux-gnu --disable-altivec --disable-nls --with-system-zlib --disable-checking --disable-werror --disable-libunwind-exceptions --disable-multilib --disable-libgcj --enable-languages=c,c++ --enable-__cxa_atexit --enable-clocale=gnu Thread model: posix gcc version 4.0.3 20051117 (prerelease) /tmp/build/gcc/cc1 -quiet -v -I. -I. -I../../gcc-4_0-branch/gcc -I../../gcc-4_0-branch/gcc/. -I../../gcc-4_0-branch/gcc/../include -I../../gcc-4_0-branch/gcc/../libcpp/include -iprefix /tmp/build/gcc/../lib/gcc/armv4l-unknown-linux-gnu/4.0.3/ -isystem /tmp/build/gcc/include -DIN_GCC -DCROSS_COMPILE -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -DL_muldc3 -DHIDE_EXPORTS -isystem /usr/armv4l-unknown-linux-gnu/include -isystem /usr/armv4l-unknown-linux-gnu/sys-include -isystem ./include ../../gcc-4_0-branch/gcc/libgcc2.c -quiet -dumpbase libgcc2.c -mcpu=ep9312 -mfpu=maverick -auxbase-strip libgcc/./_muldc3.o -g0 -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -version -fomit-frame-pointer -fPIC -fvisibility=hidden -o /tmp/ccD3Xhs8.s ignoring nonexistent directory "/usr/armv4l-unknown-linux-gnu/sys-include" ignoring duplicate directory "./include" ignoring nonexistent directory "/tmp/build/gcc/../lib/gcc/armv4l-unknown-linux-gnu/4.0.3/include" ignoring nonexistent directory "/tmp/build/gcc/../lib/gcc/armv4l-unknown-linux-gnu/4.0.3/../../../../armv4l-unknown-linux-gnu/sys-include" ignoring nonexistent directory "/tmp/build/gcc/../lib/gcc/armv4l-unknown-linux-gnu/4.0.3/../../../../armv4l-unknown-linux-gnu/include" ignoring nonexistent directory "/usr/lib/gcc/armv4l-unknown-linux-gnu/4.0.3/include" ignoring nonexistent directory "/usr/lib/gcc/../../armv4l-unknown-linux-gnu/sys-include" ignoring duplicate directory "/usr/lib/gcc/../../armv4l-unknown-linux-gnu/include" ignoring duplicate directory "." ignoring duplicate directory "../../gcc-4_0-branch/gcc/." #include "..." search starts here: #include <...> search starts here: . ../../gcc-4_0-branch/gcc ../../gcc-4_0-branch/gcc/../include ../../gcc-4_0-branch/gcc/../libcpp/include /tmp/build/gcc/include /usr/armv4l-unknown-linux-gnu/include End of search list. GNU C version 4.0.3 20051117 (prerelease) (armv4l-unknown-linux-gnu) compiled by GNU C version 3.4.3 20041125 (Gentoo 3.4.3-r1, ssp-3.4.3-0, pie-8.7.7). GGC heuristics: --param ggc-min-expand=96 --param ggc-min-heapsize=124136 ../../gcc-4_0-branch/gcc/libgcc2.c: In function '__muldc3': ../../gcc-4_0-branch/gcc/libgcc2.c:1696: error: unable to find a register to spill in class 'VFP_REGS' ../../gcc-4_0-branch/gcc/libgcc2.c:1696: error: this is the insn: (insn:HI 105 128 103 7 (set (reg:SI 0 r0 [158]) (and:SI (subreg:SI (reg/v:DF 30 mv3 [orig:126 a ] [126]) 4) (const_int -2147483648 [0xffffffff80000000]))) 54 {*arm_andsi3_insn} (nil) (expr_list:REG_DEAD (reg/v:DF 30 mv3 [orig:126 a ] [126]) (nil))) ../../gcc-4_0-branch/gcc/libgcc2.c:1696: confused by earlier errors, bailing out -- Summary: gcc fails when built with --with-cpu=ep9312 --with- fpu=maverick Product: gcc Version: 4.0.2 Status: UNCONFIRMED Severity: critical Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: nekkar at libero dot it GCC build triplet: x86_64-pc-linux-gnu GCC host triplet: x86_64-pc-linux-gnu GCC target triplet: armv4l-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24914