New Ada bootstrap failure: multiple definition of `__i686.get_pc_thunk.bx'
Duncan Sands
baldrick@free.fr
Tue Sep 28 00:12:00 GMT 2004
> ../../xgcc -B../../ -DIN_GCC `echo -O2 -g -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -fno-common |sed -e 's/-pedantic//g' -e 's/-Wtraditional//g'` -o ../../gnatmake b_gnatm.o a-except.o ctrl_c.o ali.o ali-util.o s-casuti.o alloc.o atree.o binderr.o butil.o casing.o csets.o debug.o elists.o einfo.o erroutc.o errutil.o err_vars.o fmap.o fname.o fname-uf.o fname-sf.o gnatmake.o gnatvsn.o hostparm.o interfac.o i-c.o i-cstrin.o krunch.o lib.o make.o makeusg.o makeutl.o mlib.o mlib-fil.o mlib-prj.o mlib-tgt.o mlib-utl.o namet.o nlists.o opt.o osint.o osint-m.o output.o prj.o prj-attr.o prj-attr-pm.o prj-com.o prj-dect.o prj-env.o prj-err.o prj-ext.o prj-nmsc.o prj-pars.o prj-part.o prj-proc.o prj-strt.o prj-tree.o prj-util.o rident.o s-exctab.o s-secsta.o s-stalib.o s-stoele.o scans.o scng.o sdefault.o sfn_scan.o s-purexc.o s-htable.o sinfo.o sinput.o sinput-c.o sinput-p.o snames.o stand.o stringt.o styleg.o stylesw.o system.o validsw.o switch.o switch-m.o table.o targparm.o tempdir.o tree_io.o types.o uintp.o uname.o urealp.o usage.o widechar.o \
> ../rts/libgnat.a ../../prefix.o ../../version.o link.o ../../../libiberty/libiberty.a
> /usr/lib/libc_nonshared.a(elf-init.oS)(.gnu.linkonce.t.__i686.get_pc_thunk.bx+0x0): In function `__libc_csu_fini':
> /usr/src/packages/BUILD/glibc-2.3/csu/elf-init.c:74: multiple definition of `__i686.get_pc_thunk.bx'
> ../rts/libgnat.a(adaint.o)(.gnu.linkonce.t.__i686.get_pc_thunk.bx+0x0):/home/duncan/tmp/gcc-objects/gcc/ada/rts/adaint.c:289: first defined here
> collect2: ld returned 1 exit status
> make[4]: *** [../../gnatmake] Error 1
This was in stage3. I've discovered that whether it happens or not depends on the
--prefix option given to configure! If I supply for --prefix the directory containing
my pre-ssa gcc ("gnat-cvs"), then I get this bootstrap failure. If I use a non-existant
directory then gcc bootstraps successfully. It looks like something in the --prefix
directory is being used in the build.
Now, I see the following some lines above:
make -C tools -f ../Makefile "CC=../../xgcc -B../../" "CFLAGS=-O2 -g -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -fno-common" "LDFLAGS=" "ADAFLAG
S=-gnatpg -gnata" "INCLUDES=-I. -I.. -I../.. -I/home/duncan/tmp/gcc/gcc/ada -I/home/duncan/tmp/gcc/gcc/ada/../config -I/home/duncan/tmp/gcc/gcc/ada/../../include -I/home/d
uncan/tmp/gcc/gcc/ada/.." "ADA_INCLUDES=-I- -I../rts -I. -I/home/duncan/tmp/gcc/gcc/ada" "libsubdir=/usr/gnat-cvs/lib/gcc/i686-pc-linux-gnu/4.0.0" "exeext=" "fsrcdir=/home
/duncan/tmp/gcc/gcc/ada" "srcdir=/home/duncan/tmp/gcc/gcc/ada" "TOOLS_LIBS=../rts/libgnat.a ../../prefix.o ../../version.o link.o ../../../libiberty/libiberty.a " "GNATM
AKE=" "GNATLINK=" "GNATBIND=../../gnatbind" \
TOOLSCASE=native \
../../gnatmake ../../gnatlink ../../gnatbl
Notice the "libsubdir=/usr/gnat-cvs/lib/gcc/i686-pc-linux-gnu/4.0.0"?
The "/usr/gnat-cvs/" is taken from --prefix. Surely this is wrong?
All the best,
Duncan.
More information about the Gcc
mailing list