This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Build error on trunk due to new ./configure (was: r112028 - in /trunk: configure gcc/fortran/Chan...)


On Tue, 2006-03-14 09:56:40 +0100, Jan-Benedict Glaw <jbglaw@lug-owl.de> wrote:
> On Mon, 2006-03-13 22:49:57 -0000, pault@gcc.gnu.org <pault@gcc.gnu.org> 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       jbglaw@lug-owl.de    . +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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]