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
