On Tue, 2006-03-14 09:56:40 +0100, Jan-Benedict Glaw <[EMAIL PROTECTED]> wrote: > On Mon, 2006-03-13 22:49:57 -0000, [EMAIL PROTECTED] <[EMAIL PROTECTED]> > wrote: > # Guess values for system-dependent variables and create Makefiles. > -# Generated automatically using autoconf version 2.13 > -# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. > +# Generated by GNU Autoconf 2.59. > # > +# Copyright (C) 2003 Free Software Foundation, Inc. > # This configure script is free software; the Free Software Foundation > # gives unlimited permission to copy, distribute and modify it. > [...] > > It seems this broke building a cross-compiled native compiler for me > (vax-linux-uclibc target) during 'make all-gcc' > (target=host=vax-linux-uclibc, build=i686-linux): > > gcc -c -DIN_GCC -static -DGENERATOR_FILE -I. -Ibuild > -I/tmp/build-temp-vax-linux-uclibc/src/gcc/gcc > -I/tmp/build-temp-vax-linux-uclibc/src/gcc/gcc/build > -I/tmp/build-temp-vax-linux-uclibc/src/gcc/gcc/../include > -I/tmp/build-temp-vax-linux-uclibc/src/gcc/gcc/../libcpp/include > -I/tmp/build-temp-vax-linux-uclibc/src/gcc/gcc/../libdecnumber > -I../libdecnumber -o build/errors.o > /tmp/build-temp-vax-linux-uclibc/src/gcc/gcc/errors.c > gcc -DIN_GCC -static -DGENERATOR_FILE -o build/genmodes \ > build/genmodes.o build/errors.o > ../build-i686-pc-linux-gnu/libiberty/libiberty.a > /usr/bin/ld: ../build-i686-pc-linux-gnu/libiberty/libiberty.a(hashtab.o): > Relocations in generic ELF (EM: 75) > /usr/bin/ld: ../build-i686-pc-linux-gnu/libiberty/libiberty.a(hashtab.o): > Relocations in generic ELF (EM: 75) > ../build-i686-pc-linux-gnu/libiberty/libiberty.a: could not read symbols: > File in wrong format > collect2: ld returned 1 exit status > make[1]: *** [build/genmodes] Error 1 > make[1]: Leaving directory > `/tmp/build-temp-vax-linux-uclibc/build/gcc1-native/gcc' > make: *** [all-gcc] Error 2 > #-Stop at 20060313-233751-UTC with ret=2 in > /tmp/build-temp-vax-linux-uclibc/build/gcc1-native: make all-gcc [...] > This was configured with: > > CC="vax-linux-uclibc-gcc" LDFLAGS=-static CFLAGS=-static \ > ac_cv_func_strncmp_works=yes \ > execute "${GCC_SRC}/configure" > \ > --disable-multilib \ > --with-newlib \ > --disable-nls \ > --enable-threads=no \ > --disable-threads \ > --enable-symvers=gnu \ > --enable-__cxa_atexit \ > --disable-shared \ > --host="vax-linux-uclibc" \ > --build="`${BINUTILS_SRC}/config.guess`" \ > --host="vax-linux-uclibc" \ > --target="vax-linux-uclibc" \ > --prefix=/usr \ > --enable-languages="c"
Former version of the toplevel ./configure seem to have stripped the CC variable when calling ./configure to build libiberty for the build system. When the new toplevel ./configure builds libiberty for the build system: mkdir -p -- build-i686-pc-linux-gnu/libiberty Configuring in build-i686-pc-linux-gnu/libiberty configure: creating cache ../config.cache checking whether to enable maintainer-specific portions of Makefiles... no checking for makeinfo... makeinfo checking for perl... perl checking build system type... i686-pc-linux-gnu checking host system type... vax-dec-linux-uclibc checking for vax-linux-uclibc-ar... vax-linux-uclibc-ar checking for vax-linux-uclibc-ranlib... vax-linux-uclibc-ranlib checking for vax-linux-uclibc-gcc... vax-linux-uclibc-gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... yes checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether vax-linux-uclibc-gcc accepts -g... yes checking for vax-linux-uclibc-gcc option to accept ANSI C... none needed checking how to run the C preprocessor... vax-linux-uclibc-gcc -E checking whether vax-linux-uclibc-gcc accepts -Wc++-compat... yes checking whether vax-linux-uclibc-gcc and cc understand -c and -o together... yes Among other differences, it decides that we're cross-building, which isn't true in this case. This results in vax-linux-uclibc-gcc being used to build libiberty for the build system (which is i686-linux-gnu). No wonder that `genmode' cannot be linked with ../build-i686-pc-linux-gnu/libiberty/libiberty.a (which is now a VAX-ELF file) :-) Should I remove the CC variable when building gcc for a VAX on a Linux PeeCee with a cross-compiler? MfG, JBG -- Jan-Benedict Glaw [EMAIL PROTECTED] . +49-172-7608481 _ O _ "Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Krieg _ _ O für einen Freien Staat voll Freier Bürger" | im Internet! | im Irak! O O O ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));
signature.asc
Description: Digital signature