Hi, When performing a cross-build (see the triplets I entered above), a file named "as" gets created which gets used instead of the right assembler, thus breaking the build. Pls. note that I've entered the target triplets we're building (see http://cegcc.sourceforge.net), this gcc build bug is probably unrelated to them. I've had to work around this by using a script such as the one pasted below. I've reported this to the mailing list months ago (see http://gcc.gnu.org/ml/gcc/2006-07/msg00533.html ) but someone asked me a couple of days ago whether I created a bugzilla report, and I don't think I did. So I'm making up for that now. Here's the script I use as workaround : mkdir -p $BUILD_DIR/gpp || exit 1 cd $BUILD_DIR/gpp || exit 1 # export CFLAGS="" # $TOP_SRCDIR/src/gcc/configure \ --prefix=$PREFIX \ --enable-languages=c,c++ \ --disable-interwork \ --disable-nls \ --enable-checking \ --disable-multilib \ --build=$MY_HOST_ARCH --target=$TGT_ARCH || exit 1 # # Deliberately no error handling here. # make # # Because we need to delete this file # rm $BUILD_DIR/gpp/gcc/as || exit 1 # # Now the build should continue smoothly # make || exit 1 exit 0
I'm the guy who asked him about the bug report. The same happened to me with a "armv6-angstrom-linux-gnueabi" target (angstrom is a openembedded based distribution). I used the same fix (removing the as shell script) successfully
What version of GCC are you building? This works for me with a non "combined" cross to powerpc64-linux-gnu for both 4.1 and 4.2.
dannypc: {9} arm-wince-cegcc-gcc -v Using built-in specs. Target: arm-wince-cegcc Configured with: /home/danny/src/cegcc/svn.sf.net/cegcc/trunk/cegcc/src/gcc/configure --prefix=/usr/ppc --enable-languages=c,c++ --disable-interwork --disable-nls --enable-checking --disable-multilib --build=i686-pc-linux-gnu --target=arm-wince-cegcc Thread model: win32 gcc version 4.1.0
I've upgraded my toolchain (it is automatically built by my embedded Linux development framework, openembedded) and the problem is here again. The version used for gcc is 4.1.1. Here are the last compilation lines: TARGET_CPU_DEFAULT="" \ HEADERS="auto-host.h ansidecl.h" DEFINES="USED_FOR_TARGET " \ /bin/sh /home/valentin/EPFL/iMXBoard/linux/openembedded/build/mx31ADS/conf/tmp/work/armv6-angstrom-linux-gnueabi/gcc-cross-initial-4.1.1-r8/gcc-4.1.1/gcc/mkconfig.sh tconfig.h (echo "@set version-GCC 4.1.1"; \ if [ "" = "experimental" ]; \ then echo "@set DEVELOPMENT"; \ else echo "@clear DEVELOPMENT"; \ fi) > gcc-vers.texiT mv -f gcc-vers.texiT gcc-vers.texi gawk -f /home/valentin/EPFL/iMXBoard/linux/openembedded/build/mx31ADS/conf/tmp/work/armv6-angstrom-linux-gnueabi/gcc-cross-initial-4.1.1-r8/gcc-4.1.1/gcc/opt-functions.awk -f /home/valentin/EPFL/iM XBoard/linux/openembedded/build/mx31ADS/conf/tmp/work/armv6-angstrom-linux-gnueabi/gcc-cross-initial-4.1.1-r8/gcc-4.1.1/gcc/optc-gen.awk \ -v header_name="config.h system.h coretypes.h tm.h" < optionlist > options.c ccache gcc -c -isystem/home/valentin/EPFL/iMXBoard/linux/openembedded/build/mx31ADS/conf/tmp/staging/i686-linux/include -Os -DIN_GCC -DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -pedantic -Wno-long-long -Wno-variadic-macros -Wold-style-definition -Wmissing-format-attribute -DHAVE_CONFIG_H -I. -I. -I/home/valentin/EPFL/iMXBoard/linux/openembedded/bu ild/mx31ADS/conf/tmp/work/armv6-angstrom-linux-gnueabi/gcc-cross-initial-4.1.1-r8/gcc-4.1.1/gcc -I/home/valentin/EPFL/iMXBoard/linux/openembedded/build/mx31ADS/conf/tmp/work/armv6-angstrom-linux-gn ueabi/gcc-cross-initial-4.1.1-r8/gcc-4.1.1/gcc/. -I/home/valentin/EPFL/iMXBoard/linux/openembedded/build/mx31ADS/conf/tmp/work/armv6-angstrom-linux-gnueabi/gcc-cross-initial-4.1.1-r8/gcc-4.1.1/gcc/ ../include -I/home/valentin/EPFL/iMXBoard/linux/openembedded/build/mx31ADS/conf/tmp/work/armv6-angstrom-linux-gnueabi/gcc-cross-initial-4.1.1-r8/gcc-4.1.1/gcc/../libcpp/include -isystem/home/valen tin/EPFL/iMXBoard/linux/openembedded/build/mx31ADS/conf/tmp/staging/i686-linux/include /home/valentin/EPFL/iMXBoard/linux/openembedded/build/mx31ADS/conf/tmp/work/armv6-angstrom-linux-gnueabi/gcc -cross-initial-4.1.1-r8/gcc-4.1.1/gcc/pointer-set.c -o pointer-set.o /home/valentin/EPFL/iMXBoard/linux/openembedded/build/mx31ADS/conf/tmp/cross/bin/arm-angstrom-linux-gnueabi-as: unrecognized option `-Qy' make[2]: *** [pointer-set.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory `/home/valentin/EPFL/iMXBoard/linux/openembedded/build/mx31ADS/conf/tmp/work/armv6-angstrom-linux-gnueabi/gcc-cross-initial-4.1.1-r8/gcc-4.1.1/build.i686-linux.arm-angstr om-linux-gnueabi/gcc' make[1]: *** [all-gcc] Error 2 make[1]: Leaving directory `/home/valentin/EPFL/iMXBoard/linux/openembedded/build/mx31ADS/conf/tmp/work/armv6-angstrom-linux-gnueabi/gcc-cross-initial-4.1.1-r8/gcc-4.1.1/build.i686-linux.arm-angstr om-linux-gnueabi' make: *** [all] Error 2 FATAL: oe_runmake failed
Can you try with a compiler of more recent vintage and report back ?
No feedback