This is the mail archive of the binutils@sourceware.org mailing list for the binutils 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]

Re: Binutils 2.17 fails `make check` on mipsel-linux-gnu


Andreas Schwab wrote:
> Stuart Longland <redhatter@gentoo.org> writes:
> 
>> Hi All,
>> 	I'm in the process of testing some packages on a little-endian MIPS
>> machine (Lemote Loongson), and so far, have ran into a few problems with
>> various packages -- notably Mozilla Firefox and X.org.
>>
>> 	Under both Debian/MIPS Etch and Gentoo/MIPS, with vanilla binutils
>> sources, the build fails at the `make test` step with the following errors:
> 
> I don't see the failures with a cross-configured binutils.  You'll have to
> inspect the dejagnu log files for clues.
> 
> (The test "run stripped executable" is of course skipped in a cross
> configuration, but all others are self-contained.)

Hi Andreas,

	I'm not completely sure where dejagnu places its logfiles.  That said,
I discovered I could get verbose output by specifying RUNTESTFLAGS=-v
whilst running `make check`.

	I have a sneaking suspicion, that the tests in question, are not run
when binutils is cross-compiled.  I at first, suspected the CPU I was
using (Godson2E is more-or-less a MIPS3 subset) might be the cause,
however I've since ran the exact same tests on a Cobalt Qube2 (RM5231
CPU) with the exact same results.  The logfiles for both are attached
(I've done some string replacement, changing the build directory and
source directory to BUILDDIR and SRCDIR respectively, for easy
comparison) -- along with the diff between these two files.  The diff is
largely whitespace differences.

The failures that actually show some useful output, are below:
> gcc -LBUILDDIR/./ld -BBUILDDIR/ld/tmpdir/ld/ -L/usr/mipsel-unknown-linux-gnu/lib -L/usr/local/lib -L/lib -L/usr/lib  -o tmpdir/vnp.so -shared  tmpdir/sh1np.o tmpdir/sh2np.o
> tmpdir/sh1np.o: In function `visibility_checkfunptr':
> SRCDIR/ld/testsuite/ld-elfvsb/sh1.c:216: undefined reference to `visibility'
> tmpdir/sh1np.o: In function `visibility_funptr':
> SRCDIR/ld/testsuite/ld-elfvsb/sh1.c:246: undefined reference to `visibility'
> tmpdir/sh1np.o: In function `visibility_checkvarptr':
> SRCDIR/ld/testsuite/ld-elfvsb/sh1.c:265: undefined reference to `visibility_var'
> tmpdir/sh1np.o: In function `visibility_checkvar':
> SRCDIR/ld/testsuite/ld-elfvsb/sh1.c:283: undefined reference to `visibility_var'
> tmpdir/sh1np.o: In function `visibility_varptr':
> SRCDIR/ld/testsuite/ld-elfvsb/sh1.c:304: undefined reference to `visibility_var'
> tmpdir/sh1np.o: In function `visibility_varval':
> SRCDIR/ld/testsuite/ld-elfvsb/sh1.c:315: undefined reference to `visibility_var'
> tmpdir/sh1np.o: In function `visibility_check':
> SRCDIR/ld/testsuite/ld-elfvsb/sh1.c:232: undefined reference to `visibility'
> BUILDDIR/ld/tmpdir/ld/ld: tmpdir/vnp.so: hidden symbol `visibility_var' isn't defined
> BUILDDIR/ld/tmpdir/ld/ld: final link failed: Nonrepresentable section on output
> collect2: ld returned 1 exit status
> gcc -LBUILDDIR/./ld -BBUILDDIR/ld/tmpdir/ld/ -L/usr/mipsel-unknown-linux-gnu/lib -L/usr/local/lib -L/lib -L/usr/lib  -o tmpdir/vnp.so -shared -T SRCDIR/ld/testsuite/ld-elfvsb/elf-offset.ld tmpdir/sh1np.o tmpdir/sh2np.o
> BUILDDIR/ld/tmpdir/ld/ld: tmpdir/vnp.so: The first section in the PT_DYNAMIC segment is not the .dynamic section
> BUILDDIR/ld/tmpdir/ld/ld: final link failed: Bad value
> collect2: ld returned 1 exit status
> FAIL: visibility (hidden_undef) (non PIC, load offset)

> gcc  -BBUILDDIR/ld/tmpdir/gas/ -ISRCDIR/ld/testsuite/ld-elfvsb -g -O2   -LBUILDDIR/./ld -g -g -O2  -DHIDDEN_WEAK_TEST -c SRCDIR/ld/testsuite/ld-elfvsb/sh2.c -o tmpdir/sh2np.o
> gcc -LBUILDDIR/./ld -BBUILDDIR/ld/tmpdir/ld/ -L/usr/mipsel-unknown-linux-gnu/lib -L/usr/local/lib -L/lib -L/usr/lib  -o tmpdir/vnp.so -shared  tmpdir/sh1np.o tmpdir/sh2np.o
> gcc -LBUILDDIR/./ld -BBUILDDIR/ld/tmpdir/ld/ -L/usr/mipsel-unknown-linux-gnu/lib -L/usr/local/lib -L/lib -L/usr/lib  -o tmpdir/vnp -Wl,-rpath,tmpdir tmpdir/mainnp.o tmpdir/vnp.so
> tmpdir/vnp >tmpdir/vnp.out
> child killed: illegal instruction
> FAIL: visibility (hidden_weak) (non PIC)

> gcc -LBUILDDIR/./ld -BBUILDDIR/ld/tmpdir/ld/ -L/usr/mipsel-unknown-linux-gnu/lib -L/usr/local/lib -L/lib -L/usr/lib  -o tmpdir/vp -Wl,-rpath,tmpdir tmpdir/mainnp.o tmpdir/vp.so
> tmpdir/vp >tmpdir/vp.out
> child killed: illegal instruction
> FAIL: visibility (hidden_weak)

> gcc -LBUILDDIR/./ld -BBUILDDIR/ld/tmpdir/ld/ -L/usr/mipsel-unknown-linux-gnu/lib -L/usr/local/lib -L/lib -L/usr/lib  -o tmpdir/vmpp -Wl,-rpath,tmpdir tmpdir/mainp.o tmpdir/vmpp.so
> tmpdir/vmpp >tmpdir/vmpp.out
> child killed: illegal instruction
> FAIL: visibility (hidden_weak) (PIC main)

> gcc -LBUILDDIR/./ld -BBUILDDIR/ld/tmpdir/ld/ -L/usr/mipsel-unknown-linux-gnu/lib -L/usr/local/lib -L/lib -L/usr/lib  -o tmpdir/vnp.so -shared -T SRCDIR/ld/testsuite/ld-elfvsb/elf-offset.ld tmpdir/sh1np.o tmpdir/sh2np.o
> BUILDDIR/ld/tmpdir/ld/ld: tmpdir/vnp.so: The first section in the PT_DYNAMIC segment is not the .dynamic section
> BUILDDIR/ld/tmpdir/ld/ld: final link failed: Bad value
> collect2: ld returned 1 exit status
> FAIL: visibility (protected_undef) (non PIC, load offset)

> BUILDDIR/ld/ld-new -m elf32ltsmip -o tmpdir/cross3-partial.o -r tmpdir/cross1.o tmpdir/cross4.o
> BUILDDIR/ld/ld-new  -o tmpdir/cross3 -T SRCDIR/ld/testsuite/ld-scripts/cross3.t tmpdir/cross3-partial.o tmpdir/cross2.o
> child killed: segmentation violation
> FAIL: NOCROSSREFS 3

	These above snippets were taken from the Cobalt build log... i.e.
running on a proper MIPS4 CPU.  I've tried running the test cases by
hand, but haven't had much luck (largely because I'm unsure which
commands belong to which testcase... the output is a little confusing to
me).

	Speaking with Thiemo Seufer, apparently segmentation faults whilst
performing visibility tests are a known problem, however the "bad value"
failures and "illegal instruction" failures do seem rather alarming to me.

	I suspect the problems have existed for some time, as I'm seeing all
sorts of funny behaviour with binutils 2.16.1.  In my case, I never saw
the problem because it seems to be only things like xorg-server and
Mozilla that trigger it (or at least, those are the ones I've seen fail
for unknown reasons on mipsel).  The Qube2 being a headless box, I've
never had the need, nor the ability to test such packages... but since
acquiring these Loongson machines, the problems have surfaced.

	I haven't tried H J Lu's binutils as yet ... I normally try to avoid it
as we (Gentoo/MIPS team) have had problems with it in the past.  That
said, I'm at wits end here, and am open to such suggestions. :-)
-- 
Stuart Longland (aka Redhatter)              .'''.
Gentoo Linux/MIPS Cobalt and Docs Developer  '.'` :
. . . . . . . . . . . . . . . . . . . . . .   .'.'
http://dev.gentoo.org/~redhatter             :.'

I haven't lost my mind...
  ...it's backed up on a tape somewhere.

Attachment: binutils-check-verbose-cobalt.log.bz2
Description: Binary data

Attachment: binutils-check-verbose-godson2e.log.bz2
Description: Binary data

Attachment: binutils-check-verbose.diff.bz2
Description: Binary data

Attachment: signature.asc
Description: OpenPGP digital signature


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