[PATCH] readelf: Consolidate --syms --use-dynamic with --dyn-syms table
H.J. Lu
hjl.tools@gmail.com
Sun Mar 22 12:34:16 GMT 2020
More information about the Binutils mailing list
Sun Mar 22 12:34:16 GMT 2020
- Previous message (by thread): [PATCH] readelf: Consolidate --syms --use-dynamic with --dyn-syms table
- Next message (by thread): [GAS][Arm]PR25660: Fix vadd/vsub with lt and le condition codes for MVE
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Thu, Mar 19, 2020 at 5:51 AM H.J. Lu <hjl.tools@gmail.com> wrote: > > On Thu, Mar 12, 2020 at 06:23:34AM -0700, H.J. Lu wrote: > > When reconstructing dynamic symbol table from the PT_DYNAMIC segment, > > compute dynamic symbol table size from hash table. For DT_HASH, the > > number of dynamic symbol table entries equals the number of chains. > > For DT_GNU_HASH/DT_MIPS_XHASH, only defined symbols with non-STB_LOCAL > > indings are in hash table. Since DT_GNU_HASH/DT_MIPS_XHASH place all > > symbols with STB_LOCAL binding before symbols with other bindings and > > all undefined symbols defined ones in dynamic symbol table, the highest > > symbol index in DT_GNU_HASH/DT_MIPS_XHASH is the highest dynamic symbol > > table index. > > > > Also iterate dynamic symbol table to print each entry so that output > > of "readelf -D -s" without section header is similar to "readelf -s" > > with section header. > > ` > > Here is the updated patch to make --syms --use-dynamic output almost > identical with --dyn-syms. On Linux/x86-64, I got > > [hjl@gnu-cfl-2 pr25617]$ ./readelf -D -s /lib64/libc.so.6 > 1 > [hjl@gnu-cfl-2 pr25617]$ ./readelf --dyn-syms /lib64/libc.so.6 > 2 > [hjl@gnu-cfl-2 pr25617]$ diff -up 1 2 > --- 1 2020-03-19 05:50:11.367432099 -0700 > +++ 2 2020-03-19 05:50:20.265739131 -0700 > @@ -1,5 +1,5 @@ > > -Symbol table for image contains 2369 entries: > +Symbol table '.dynsym' contains 2369 entries: > Num: Value Size Type Bind Vis Ndx Name > 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND > 1: 0000000000000000 0 OBJECT WEAK DEFAULT UND _dl_starting_up@GLIBC_PRIVATE (33) > [hjl@gnu-cfl-2 pr25617]$ > > Any comments, objections? > > Thanks. > > H.J. > --- > When reconstructing dynamic symbol table from the PT_DYNAMIC segment, > compute dynamic symbol table size from hash table. For DT_HASH, the > number of dynamic symbol table entries equals the number of chains. > For DT_GNU_HASH/DT_MIPS_XHASH, only defined symbols with non-STB_LOCAL > indings are in hash table. Since DT_GNU_HASH/DT_MIPS_XHASH place all > symbols with STB_LOCAL binding before symbols with other bindings and > all undefined symbols defined ones in dynamic symbol table, the highest > symbol index in DT_GNU_HASH/DT_MIPS_XHASH is the highest dynamic symbol > table index. > > Rewrite print_dynamic_symbol to dump dynamic symbol table for --dyn-syms > and --syms --use-dynamic. > > binutils/ > > * readelf.c (nbuckets): New. > (nchains): Likewise. > (buckets): Likewise. > (chains): Likewise. > (ngnubuckets): Likewise. > (gnubuckets): Likewise. > (gnuchains): Likewise. > (mipsxlat): Likewise. > (ngnuchains): Likewise. > (gnusymidx): Likewise. > (VALID_SYMBOL_NAME): Likewise. > (VALID_DYNAMIC_NAME): Use it. > (get_dynamic_data): Moved before process_dynamic_section. > (get_num_dynamic_syms): New function. > (process_dynamic_section): Use DT_SYMTAB, DT_SYMENT, DT_HASH, > DT_GNU_HASH and DT_MIPS_XHASH to reconstruct dynamic symbol > table. Use DT_STRTAB and DT_STRSZ to reconstruct dynamic string > table. > (get_symbol_index_type): Don't print "bad section index" when > there is no section header. > (print_dynamic_symbol): Rewrite. > (process_symbol_table): Call print_dynamic_symbol to dump dynamic > symbol table. > > ld/ > > * testsuite/ld-elf/hash.d: Updated. > * testsuite/ld-elf/pr13195.d: Likewise. > * testsuite/ld-elfvsb/hidden2.d: Likewise. > * testsuite/ld-mips-elf/hash2.d: Likewise. I opened: https://sourceware.org/bugzilla/show_bug.cgi?id=25707 -- H.J. -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-readelf-Consolidate-syms-use-dynamic-with-dyn-syms.patch Type: text/x-patch Size: 39559 bytes Desc: not available URL: <https://sourceware.org/pipermail/binutils/attachments/20200322/9b8abc3e/attachment.bin>
- Previous message (by thread): [PATCH] readelf: Consolidate --syms --use-dynamic with --dyn-syms table
- Next message (by thread): [GAS][Arm]PR25660: Fix vadd/vsub with lt and le condition codes for MVE
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list