PING [PATCH] readelf: Consolidate --syms --use-dynamic with --dyn-syms table

H.J. Lu hjl.tools@gmail.com
Thu Apr 9 17:52:37 GMT 2020
On Thu, Apr 9, 2020 at 10:35 AM Fangrui Song <i@maskray.me> wrote:
>
> On 2020-04-09, Nick Clifton via Binutils wrote:
> >Hi H.J.
> >
> >> Can you take a look at
> >> https://sourceware.org/pipermail/binutils/2020-March/000234.html
> >
> >Generally the patch looks fine to me, but ... there appear to be some
> >linker testsuite regressions for various targets:
> >
> >  mips-elf:  LD REGRESSION: ld-mips-elf/hash2    [and other mips based targets]
> >
> >  arm-nto:   LD REGRESSION: Thumb shared library with ARM   [and other arm based targets]
> >             LD REGRESSION: Mixed ARM/Thumb shared library
> >             LD REGRESSION: Mixed ARM/Thumb dynamic application
> >             LD REGRESSION: Mixed ARM/Thumb arch5 dynamic application
> >
> >A quick look suggests that these are all due to readelf's output
> >changing slightly and the tests not expecting the new format.
> >
> >Could you take a look and tweak the tests as necessary please ?
> >
> >Cheers
> >  Nick
> >
> >PS.  Hmm, just noticed that you had already patched the ld-mips-elf/hash2
> >test, so I am wondering why it is failing.  The entry in ld.log looks like
> >this:
> >
> >  Executing on host: sh -c {readelf  -d -s -D tmpdir/dump > tmpdir/dump.out 2>dump.tmp}  /dev/null  (timeout = 300)
> >  spawn [open ...]
> >
> >  extra regexps in ld/testsuite/ld-mips-elf/hash2.d starting with "^ +[0-9]+: +[0-9a-f]+ +[0-9]+ +FUNC +GLOBAL +DEFAULT +([1-9]|PRC) __start$"
> >  EOF from tmpdir/dump.out
> >  FAIL: ld-mips-elf/hash2
> >
> >Is it possible that your revision of the original patch now makes this test fail ?
> >
>
> My understanding is that readelf -D --dyn-syms still uses the section
> header table (inferred from the output: `Symbol table '.dynsym'`, not `from image`)

That is correct.

> Should -D --dyn-syms decode the dynamic symbol table via DT_SYMTAB as well?

It is possible after my patch has landed.

> As a possible future enhancement, when DT_SYMTAB and SHT_DYNSYM disagree
> with the location, a warning can be issued.

Can you open a bug?

> (llvm-readelf >= 10 can print
> warning: '[[FILE]]': SHT_DYNSYM section header and DT_SYMTAB disagree about the location of the dynamic symbol table
> llvm-readelf >= 11 will have more diagnostics:
> warning: '[[FILE]]': hash table nchain (93) differs from symbol count derived from SHT_DYNSYM section header (1)
> )

Thanks.

-- 
H.J.


More information about the Binutils mailing list