The 2.40 branch has been created

Nick Alcock nick.alcock@oracle.com
Wed Jan 4 12:16:34 GMT 2023


On 2 Jan 2023, Matthias Klose via Binutils stated:
> On 31.12.22 14:00, Nick Clifton via Binutils wrote:
> i686-linux-gnu:
>
> Running /<<PKGBUILDDIR>>/ld/testsuite/ld-ctf/ctf.exp ...
> FAIL: Diagnostics - No parent dictionary

This seems to be a cross-platform issue, which is strange because I've
never seen this test (ld/testsuite/ld-ctf/diag-parname.d) fail: for me,
it doesn't fail now, even with current 2.40 branch. This stuff is not
compiler-dependent, so I'd expect to see identical failures for
everybody.

If you assemble diag-parname.s (in the above directory) and link it with
the built linker with ld --shared --ctf-variables, what does it say?
You *should* get something like

CTF error: /usr/src/binutils-gdb/ld/testsuite/ld-ctf/A.c (0): lookup failure for type 3: flags 1
CTF error: /usr/src/binutils-gdb/ld/testsuite/ld-ctf/A.c (0): error doing struct/union member type hashing: during type hashing for type 80000001, kind 6
CTF error: deduplication failed for /usr/src/binutils-gdb/ld/testsuite/ld-ctf/A.c
./ld-new: warning: CTF linking failed; output will have no CTF section: The parent CTF dictionary is unavailable.

As usual, only the warning on the last line matters.

Not a blocker in any case: this only affects corrupted input, and the
linker has bigger problems with corrupted CTF input right now (it is
trivially easy to make it infloop for starters: I have a fix planned).

> ia64-linux-gnu:
>
> Running /<<PKGBUILDDIR>>/ld/testsuite/ld-ctf/ctf.exp ...
> FAIL: Arrays (conflicted)
> FAIL: Conflicted data syms, partially indexed, stripped, with variables
> FAIL: Conflicted data syms, partially indexed, stripped
> FAIL: Nonrepresentable types

I'd like to fix these, but there is no ia64 machine in the compile farm
that I can see, and these days they're as rare as hen's teeth. I suspect
something's up with the compiler's CTF generation (in the first and last
case) or with its handling of hidden symbols (in the middle two: just
handling them like GCC 11 did would be enough to make those two tests
fail).


More information about the Binutils mailing list