This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: Increased testsuite failues in binutils-2.11.1 using gcc-3.01
David Ronis wrote:
>
> Manfred Hollstein writes:
> >
> > David Ronis wrote:
> > >
> > > OK, I've upgraded to 2.11.2; most but not all of the failures have gone. The ones that remain are:
> > >
> > > Running /home/ronis/binutils-2.11.2/ld/testsuite/ld-cdtest/cdtest.exp ...
> > > FAIL: cdtest
> > > FAIL: cdtest with -Ur
> > >
> > > Running /home/ronis/binutils-2.11.2/ld/testsuite/ld-selective/selective.exp ...
> > > FAIL: selective4
> > > XPASS: selective6
> > >
> > > and
> > >
> > > Running /home/ronis/binutils-2.11.2/ld/testsuite/ld-srec/srec.exp ...
> > > FAIL: S-records with constructors
> >
> > How did you configure and build binutils? Ie. which CFLAGS were
> > you using? What is in ld/testsuite/ld.log for the failing tests?
> >
>
> I've tried several combinations of compiler/build flags with the same
> results (at least for 2.11.1). For what I just reported, I'd used
> gcc-3.0.1, ran configure as
>
> ./configure --prefix=/usr
>
> and had CFLAGS set to agressively optimize, i.e.,
>
> CXXFLAGS = CFLAGS = -O3 -march=i686 -ffast-math -funroll-loops
> -fomit-frame-pointer -fforce -mem -fforce-addr -malign-jumps=3
> -malign-loops=3 -malign-functions=3 -mpreferred-stack-boundary=3
>
> (at least with 2.11.1 this gives the same testsuite results as the
> default options, but it's easy enough to rerun with the default
> options for 2.11.2).
>
> ld.log shows the following:
>
> /home/ronis/binutils-2.11.2/ld/ld-new -m elf_i386 -o tmpdir/cdtest -dynamic-linker /lib/ld-linux.so.2 /usr/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/../../../crt1.o /usr/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/../../../crti.o /usr/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/crtbegin.o tmpdir/cdtest-foo.o tmpdir/cdtest-bar.o tmpdir/cdtest-main.o /usr/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/libgcc.a -L/usr/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/../../.. -lc /usr/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/libgcc.a /usr/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/crtend.o /usr/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/../../../crtn.o
> tmpdir/cdtest-bar.o: In function `__FRAME_BEGIN__':
> tmpdir/cdtest-bar.o(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
> tmpdir/cdtest-main.o: In function `__FRAME_BEGIN__':
> tmpdir/cdtest-main.o(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
> FAIL: cdtest
This symbol is defined in libstdc++, but it is not specified on the
command line; the linker testsuite has to be updated.
>
> /home/ronis/binutils-2.11.2/ld/ld-new -m elf_i386 -o tmpdir/cdtest -dynamic-linker /lib/ld-linux.so.2 /usr/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/../../../crt1.o /usr/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/../../../crti.o /usr/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/crtbegin.o tmpdir/cdtest.o /usr/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/libgcc.a -L/usr/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/../../.. -lc /usr/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/libgcc.a /usr/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/crtend.o /usr/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/../../../crtn.o
> tmpdir/cdtest.o: In function `__FRAME_BEGIN__':
> tmpdir/cdtest.o(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
> tmpdir/cdtest.o(.eh_frame+0x1de): undefined reference to `__gxx_personality_v0'
> FAIL: cdtest with -Ur
Likewise.
>
> /usr/bin/gcc -L/home/ronis/binutils-2.11.2/ld -w -O -ffunction-sections -fdata-sections -fvtable-gc -fno-exceptions -fno-rtti -B/home/ronis/binutils-2.11.2/ld/tmpdir/gas/ -I/home/ronis/binutils-2.11.2/ld/testsuite/ld-selective -O3 -march=i686 -ffast-math -funroll-loops -fomit-frame-pointer -fforce-mem -fforce-addr -malign-jumps=3 -malign-loops=3 -malign-functions=3 -mpreferred-stack-boundary=3 -c /home/ronis/binutils-2.11.2/ld/testsuite/ld-selective/3.cc -o tmpdir/3.o
> /home/ronis/binutils-2.11.2/ld/ld-new -o tmpdir/3.x --gc-sections -Bstatic tmpdir/3.o
> /home/ronis/binutils-2.11.2/ld/../binutils/nm-new tmpdir/3.x >tmpdir/nm.out
> selective4: missing foo__1A
> FAIL: selective4
-O3 is enabling -finline-functions, which is causing foo__1A to be
missing as a global symbol; I'm not sure if this is expected behaviour,
though, ie. if the testsuite is wrong again.
>
> David
HTH, cheers.
l8er
manfred