When trying to build a crosscompiler for arm-elf with cd i386-linux8; CC="gcc" CFLAGS="-O" LDFLAGS="-s" CLIB="" LANGUAGES=c ../gcc-4.2.1-RC-20070703/configure --srcdir=../gcc-4.2.1-RC-20070703 --prefix=/usr/arch --with-local-prefix=/usr/arch --target=arm-elf --with-newlib --disable-libssp it will fail with: build/genoutput.o build/rtl.o build/read-rtl.o build/ggc-none.o build/vec.o build/min-insn-modes.o build/gensupport.o build/print-rtl.o build/errors.o ../build-i686-pc-linux-gnu/libiberty/libiberty.a build/genoutput ../../gcc-4.2.1-RC-20070703/gcc/config/arm/arm.md \ insn-conditions.md > tmp-output.c ../../gcc-4.2.1-RC-20070703/gcc/config/arm/cirrus.md:407: error: undefined machine-specific constraint at this point: "T,*v" ../../gcc-4.2.1-RC-20070703/gcc/config/arm/cirrus.md:407: note: in operand 0 ../../gcc-4.2.1-RC-20070703/gcc/config/arm/cirrus.md:407: error: undefined machine-specific constraint at this point: "T,*v,*v" ../../gcc-4.2.1-RC-20070703/gcc/config/arm/cirrus.md:407: note: in operand 1 gmake[2]: *** [s-output] Error 1 gmake[2]: Leaving directory `/mnt/projekt/soft/uti/cmd/gcc/thumb/i386-linux8/gcc' gmake[1]: *** [all-gcc] Error 2 gmake[1]: Leaving directory `/mnt/projekt/soft/uti/cmd/gcc/thumb/i386-linux8' gmake: *** [all] Error 2 *** Error code 2 Stop.
Created attachment 13908 [details] Stupid patch to fix the problem
Paul, can you confirm that it is impossible to build an arm-elf cross-compiler with GCC 4.2.1? AFAICT, nothing has changed in cirrus.md in a long time, and cirrus.md is included in all ARM configurations, so I would think that this means that GCC 4.2.1 for ARM is completely broken?
There are test results for GCC 4.2.1 20070706 on arm-elf here: <URL:http://gcc.gnu.org/ml/gcc-testresults/2007-07/msg00334.html>.
Builds fine for me. The bogus constraint is in a pattern that is never used - the predicate is "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_MAVERICK && 0 [...]" gen* are clever enough to eliminate it before it causes problems. My guess is you broke genconditions by overriding CFLAGS.
In further investigation building with a prehistoric (<3.0.1) host compiler may also cause the same failure.
Paul -- Thanks for investigating. Since this should occur only for a minority of people, this is not a showstopper. However, would you please remove the disabled pattern? It's not doing anything useful, and we have some evidence that it can do something harmful. It's OK to remove this now, or wait until after 4.2.1 is released, as you like. Thanks, -- Mark
Sorry for not noting, this. You are right, we are building on a suse 8.0 system with gcc-2.95.3 as the host compiler. Thanks, Matthias.
Subject: Bug 32753 Author: pbrook Date: Mon Jul 16 13:01:18 2007 New Revision: 126679 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126679 Log: 2007-07-16 Paul Brook <paul@codesourcery.com> PR target/32753 gcc/ * config/arm/cirrus.md (cirrus_arm_movsi_insn): Remove dead insn. Modified: trunk/gcc/ChangeLog trunk/gcc/config/arm/cirrus.md
Subject: Bug 32753 Author: pbrook Date: Mon Jul 16 13:03:07 2007 New Revision: 126680 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126680 Log: 2007-07-16 Paul Brook <paul@codesourcery.com> PR target/32753 gcc/ * config/arm/cirrus.md (cirrus_arm_movsi_insn): Remove dead insn. Modified: branches/gcc-4_2-branch/gcc/ChangeLog branches/gcc-4_2-branch/gcc/config/arm/cirrus.md
Subject: Bug 32753 Author: pbrook Date: Mon Jul 16 13:18:45 2007 New Revision: 126681 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126681 Log: 2007-07-16 Paul Brook <paul@codesourcery.com> PR target/32753 gcc/ * config/arm/cirrus.md (cirrus_arm_movsi_insn): Remove dead insn. (cirrus_thumb2_movsi_insn): Ditto. Modified: trunk/gcc/ChangeLog trunk/gcc/config/arm/cirrus.md
Should be fixed now.
Subject: Re: [4.2 Regression] building a crosscompiler for arm-elf fails because of an error in cirrus.md pbrook at gcc dot gnu dot org wrote: > ------- Comment #11 from pbrook at gcc dot gnu dot org 2007-07-25 15:47 ------- > Should be fixed now. It works fine for me. Matthias