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));

Attachment: signature.asc
Description: Digital signature

Reply via email to