2003-01-22 08:41:59 +08:00
|
|
|
#source: align.s
|
|
|
|
#source: tlspic1.s
|
|
|
|
#source: tlspic2.s
|
|
|
|
#as:
|
|
|
|
#ld: -shared -melf64alpha
|
|
|
|
#readelf: -WSsrl
|
|
|
|
#target: alpha*-*-*
|
|
|
|
|
2007-09-30 09:33:15 +08:00
|
|
|
There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+:
|
2003-01-22 08:41:59 +08:00
|
|
|
|
|
|
|
Section Headers:
|
|
|
|
+\[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
|
2007-09-30 09:33:15 +08:00
|
|
|
+\[[ 0-9]+\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0
|
|
|
|
+\[[ 0-9]+\] .hash +.*
|
|
|
|
+\[[ 0-9]+\] .dynsym +.*
|
|
|
|
+\[[ 0-9]+\] .dynstr +.*
|
|
|
|
+\[[ 0-9]+\] .rela.dyn +.*
|
|
|
|
+\[[ 0-9]+\] .rela.plt +.*
|
2014-11-26 05:40:19 +08:00
|
|
|
+\[[ 0-9]+\] .plt +.*
|
2007-09-30 09:33:15 +08:00
|
|
|
+\[[ 0-9]+\] .text +PROGBITS +0+1000 0+1000 0+ac 0+ +AX +0 +0 4096
|
|
|
|
+\[[ 0-9]+\] .eh_frame +PROGBITS +[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 00 +A +0 +0 +8
|
|
|
|
+\[[ 0-9]+\] .tdata +PROGBITS +[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 0+ WAT +0 +0 +4
|
|
|
|
+\[[ 0-9]+\] .tbss +NOBITS +[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 0+ WAT +0 +0 +1
|
|
|
|
+\[[ 0-9]+\] .dynamic +DYNAMIC +[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 10 +WA +3 +0 +8
|
|
|
|
+\[[ 0-9]+\] .got +PROGBITS +[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 0+ +WA +0 +0 +8
|
|
|
|
+\[[ 0-9]+\] .symtab +.*
|
|
|
|
+\[[ 0-9]+\] .strtab +.*
|
2016-08-19 16:16:30 +08:00
|
|
|
+\[[ 0-9]+\] .shstrtab +.*
|
2003-01-22 08:41:59 +08:00
|
|
|
#...
|
|
|
|
|
|
|
|
Elf file type is DYN \(Shared object file\)
|
2021-09-21 20:21:41 +08:00
|
|
|
Entry point 0x[0-9a-f]+
|
2007-09-30 09:33:15 +08:00
|
|
|
There are [0-9]+ program headers, starting at offset [0-9]+
|
2003-01-22 08:41:59 +08:00
|
|
|
|
|
|
|
Program Headers:
|
|
|
|
+Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
|
2003-07-29 14:26:23 +08:00
|
|
|
+LOAD +0x0+ 0x0+ 0x0+ 0x[0-9a-f]+ 0x[0-9a-f]+ R E 0x10000
|
2014-11-26 05:40:19 +08:00
|
|
|
+LOAD +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ RW 0x10000
|
2003-07-29 14:26:23 +08:00
|
|
|
+DYNAMIC +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ RW +0x8
|
2017-03-05 12:19:54 +08:00
|
|
|
+TLS +0x0+10d8 0x0+110d8 0x0+110d8 0x0+60 0x0+80 R +0x4
|
2003-01-22 08:41:59 +08:00
|
|
|
#...
|
|
|
|
|
|
|
|
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 7 entries:
|
|
|
|
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
|
2003-07-29 14:26:23 +08:00
|
|
|
[0-9a-f]+ +[0-9a-f]+ R_ALPHA_DTPMOD64 +0+ sg1 \+ 0
|
|
|
|
[0-9a-f]+ +[0-9a-f]+ R_ALPHA_DTPREL64 +0+ sg1 \+ 0
|
|
|
|
[0-9a-f]+ +[0-9a-f]+ R_ALPHA_TPREL64 +0+4 sg2 \+ 0
|
2012-05-12 21:46:26 +08:00
|
|
|
[0-9a-f]+ +[0-9a-f]+ R_ALPHA_TPREL64 +44
|
2003-07-29 14:26:23 +08:00
|
|
|
[0-9a-f]+ +[0-9a-f]+ R_ALPHA_DTPMOD64 +0+
|
|
|
|
[0-9a-f]+ +[0-9a-f]+ R_ALPHA_DTPMOD64 +0+
|
2012-05-12 21:46:26 +08:00
|
|
|
[0-9a-f]+ +[0-9a-f]+ R_ALPHA_TPREL64 +24
|
2003-01-22 08:41:59 +08:00
|
|
|
|
readelf ngettext fixes
This patch is a first pass at fixing readelf message pluralization.
I've deliberately not fixed the "out of memory" errors since it's very
unlikely that they will ever be complaining about not being able to
allocate for a single entry, and a few others where the size is very
unlikely to be 1 byte.
Then there are messages like this one:
"Out of %lu items there are %zu bucket clashes (longest of %zu entries).\n"
I suppose this could be split into three parts, "Of %lu items ",
"there are %zu bucket clashes ", and "(longest of %zu entries).\n",
each part being printed separately, but that might not be ideal for
sentence construction in other languages. For now I'm punting on this
one.
Changes to readelf output require lots of testsuite adjustment..
binutils/
* dwarf.c (read_uleb128): Properly pluralize messages.
(display_debug_lines_raw, display_debug_loc): Likewise.
(display_debug_names, process_cu_tu_index): Likewise.
* od-macho.c (dump_code_signature_superblob): Likewise.
* readelf.c (process_program_headers): Likewise.
(process_section_header, process_relocs): Likewise.
(hppa_process_unwind, arm_process_unwind): Likewise.
(process_dynamic_section, process_version_sections): Likewise.
(process_symbol_table, process_syminfo): Likewise.
(apply_relocations, process_mips_specific): Likewise.
(process_gnu_liblist, process_notes_at): Likewise.
(process_archive): Likewise.
* testsuite/binutils-all/dw2-1.W,
* testsuite/binutils-all/dw2-3.W,
* testsuite/binutils-all/dw2-3gabi.W,
* testsuite/binutils-all/dw5.S,
* testsuite/binutils-all/dw5.W,
* testsuite/binutils-all/i386/compressed-1a.d,
* testsuite/binutils-all/libdw2-compressedgabi.out,
* testsuite/binutils-all/objdump.W,
* testsuite/binutils-all/readelf.r,
* testsuite/binutils-all/readelf.r-64,
* testsuite/binutils-all/x86-64/compressed-1a.d: Update
for pluralization fixes.
gas/
* testsuite/gas/arm/got_prel.d,
* testsuite/gas/elf/dwarf2-1.d,
* testsuite/gas/elf/dwarf2-2.d,
* testsuite/gas/elf/dwarf2-3.d,
* testsuite/gas/elf/dwarf2-5.d,
* testsuite/gas/elf/dwarf2-6.d,
* testsuite/gas/i386/debug1.d,
* testsuite/gas/i386/dw2-compress-1.d,
* testsuite/gas/i386/dw2-compress-3a.d,
* testsuite/gas/i386/dw2-compress-3b.d,
* testsuite/gas/i386/dw2-compressed-1.d,
* testsuite/gas/i386/dw2-compressed-3a.d,
* testsuite/gas/i386/dw2-compressed-3b.d,
* testsuite/gas/i386/ilp32/x86-64-localpic.d,
* testsuite/gas/i386/localpic.d,
* testsuite/gas/i386/x86-64-localpic.d,
* testsuite/gas/ia64/pr13167.d,
* testsuite/gas/mips/loc-swap-2.d,
* testsuite/gas/mips/loc-swap.d,
* testsuite/gas/mips/micromips@loc-swap-2.d,
* testsuite/gas/mips/micromips@loc-swap.d,
* testsuite/gas/mips/mips16-dwarf2-n32.d,
* testsuite/gas/mips/mips16-dwarf2.d,
* testsuite/gas/mips/mips16@loc-swap-2.d,
* testsuite/gas/mips/mips16@loc-swap.d,
* testsuite/gas/mips/mips16e@loc-swap.d,
* testsuite/gas/mmix/bspec-1.d,
* testsuite/gas/mmix/bspec-2.d,
* testsuite/gas/tic6x/unwind-1.d,
* testsuite/gas/tic6x/unwind-2.d,
* testsuite/gas/tic6x/unwind-3.d: Update for pluralization
fixes.
ld/
* testsuite/ld-aarch64/ifunc-13.d,
* testsuite/ld-aarch64/ifunc-15.d,
* testsuite/ld-aarch64/ifunc-20.d,
* testsuite/ld-alpha/tlsbin.rd,
* testsuite/ld-alpha/tlspic.rd,
* testsuite/ld-arm/ifunc-3.rd,
* testsuite/ld-arm/ifunc-9.rd,
* testsuite/ld-arm/unwind-mix.d,
* testsuite/ld-arm/unwind-rel.d,
* testsuite/ld-cris/hiddef1.d,
* testsuite/ld-cris/libdso-13.d,
* testsuite/ld-cris/libdso-2.d,
* testsuite/ld-cris/pr16044.d,
* testsuite/ld-cris/tls-local-63.d,
* testsuite/ld-cris/tls-local-64.d,
* testsuite/ld-cris/tls-und-38.d,
* testsuite/ld-cris/tls-und-42.d,
* testsuite/ld-cris/tls-und-46.d,
* testsuite/ld-cris/tls-und-50.d,
* testsuite/ld-cris/weakref3.d,
* testsuite/ld-cris/weakref4.d,
* testsuite/ld-elf/comm-data2r.rd,
* testsuite/ld-elf/discard1.d,
* testsuite/ld-elf/discard2.d,
* testsuite/ld-elf/pr19539.d,
* testsuite/ld-elf/pr22374-1.r,
* testsuite/ld-elf/pr22374-2.r,
* testsuite/ld-i386/combreloc.d,
* testsuite/ld-i386/emit-relocs-nacl.rd,
* testsuite/ld-i386/emit-relocs.rd,
* testsuite/ld-i386/pr13302.d,
* testsuite/ld-i386/pr17709-nacl.rd,
* testsuite/ld-i386/pr17709.rd,
* testsuite/ld-i386/pr19539.d,
* testsuite/ld-i386/pr19615.d,
* testsuite/ld-i386/pr19636-1a.d,
* testsuite/ld-i386/pr19636-1e.d,
* testsuite/ld-i386/pr19636-1f.d,
* testsuite/ld-i386/pr19636-2a.d,
* testsuite/ld-i386/pr19636-2b.d,
* testsuite/ld-i386/pr19636-2d-nacl.d,
* testsuite/ld-i386/pr19636-2e-nacl.d,
* testsuite/ld-i386/pr19636-3a.d,
* testsuite/ld-i386/pr19636-3d.d,
* testsuite/ld-i386/pr19636-3e.d,
* testsuite/ld-i386/pr19636-4a.d,
* testsuite/ld-i386/pr19645.d,
* testsuite/ld-i386/pr19827-nacl.rd,
* testsuite/ld-i386/pr19827.rd,
* testsuite/ld-i386/pr20253-4a.d,
* testsuite/ld-i386/pr20253-4b.d,
* testsuite/ld-i386/pr20253-5.d,
* testsuite/ld-i386/tlsbin-nacl.rd,
* testsuite/ld-i386/tlsbin.rd,
* testsuite/ld-i386/tlspic-nacl.rd,
* testsuite/ld-i386/tlspic.rd,
* testsuite/ld-i386/undefweakb.d,
* testsuite/ld-ia64/tlsbin.rd,
* testsuite/ld-ia64/tlspic.rd,
* testsuite/ld-ifunc/ifunc-13-i386.d,
* testsuite/ld-ifunc/ifunc-13-x86-64.d,
* testsuite/ld-ifunc/ifunc-15-i386.d,
* testsuite/ld-ifunc/ifunc-15-x86-64.d,
* testsuite/ld-ifunc/ifunc-20-i386.d,
* testsuite/ld-ifunc/ifunc-20-x86-64.d,
* testsuite/ld-ifunc/ifunc-23a-x86.d,
* testsuite/ld-ifunc/ifunc-23b-x86.d,
* testsuite/ld-ifunc/ifunc-23c-x86.d,
* testsuite/ld-ifunc/ifunc-24a-x86.d,
* testsuite/ld-ifunc/ifunc-24b-x86.d,
* testsuite/ld-ifunc/ifunc-24c-x86.d,
* testsuite/ld-ifunc/ifunc-25a-x86.d,
* testsuite/ld-ifunc/ifunc-25b-x86.d,
* testsuite/ld-ifunc/ifunc-25c-x86.d,
* testsuite/ld-m68k/got-1.d,
* testsuite/ld-mips-elf/vxworks1.rd,
* testsuite/ld-powerpc/ambiguousv1.d,
* testsuite/ld-powerpc/ambiguousv1b.d,
* testsuite/ld-powerpc/ambiguousv2.d,
* testsuite/ld-powerpc/ambiguousv2b.d,
* testsuite/ld-powerpc/tlsexe.r,
* testsuite/ld-powerpc/tlsexe32.r,
* testsuite/ld-powerpc/tlsexetoc.r,
* testsuite/ld-powerpc/tlsso.r,
* testsuite/ld-powerpc/tlsso32.r,
* testsuite/ld-powerpc/tlstocso.r,
* testsuite/ld-powerpc/vle-multiseg-1.d,
* testsuite/ld-powerpc/vle-multiseg-2.d,
* testsuite/ld-powerpc/vle-multiseg-3.d,
* testsuite/ld-s390/tlsbin.rd,
* testsuite/ld-s390/tlsbin_64.rd,
* testsuite/ld-s390/tlspic.rd,
* testsuite/ld-s390/tlspic_64.rd,
* testsuite/ld-sh/ld-r-1.d,
* testsuite/ld-sh/sh64/gotplt.d,
* testsuite/ld-sh/shared-1.d,
* testsuite/ld-sh/tlsbin-2.d,
* testsuite/ld-sh/tlspic-2.d,
* testsuite/ld-sparc/gotop32.rd,
* testsuite/ld-sparc/gotop64.rd,
* testsuite/ld-sparc/tlssunpic32.rd,
* testsuite/ld-sparc/tlssunpic64.rd,
* testsuite/ld-sparc/vxworks1-lib.rd,
* testsuite/ld-tic6x/shlib-app-1.rd,
* testsuite/ld-tic6x/shlib-app-1b.rd,
* testsuite/ld-tic6x/shlib-app-1r.rd,
* testsuite/ld-tic6x/shlib-app-1rb.rd,
* testsuite/ld-tic6x/shlib-noindex.rd,
* testsuite/ld-vax-elf/export-class-data.rd,
* testsuite/ld-x86-64/pr13082-1a.d,
* testsuite/ld-x86-64/pr13082-1b.d,
* testsuite/ld-x86-64/pr13082-2a.d,
* testsuite/ld-x86-64/pr13082-2b.d,
* testsuite/ld-x86-64/pr13082-3a.d,
* testsuite/ld-x86-64/pr13082-3c.d,
* testsuite/ld-x86-64/pr13082-4a.d,
* testsuite/ld-x86-64/pr13082-5a.d,
* testsuite/ld-x86-64/pr13082-5b.d,
* testsuite/ld-x86-64/pr13082-6a.d,
* testsuite/ld-x86-64/pr13082-6b.d,
* testsuite/ld-x86-64/pr17709-nacl.rd,
* testsuite/ld-x86-64/pr17709.rd,
* testsuite/ld-x86-64/pr19539a.d,
* testsuite/ld-x86-64/pr19539b.d,
* testsuite/ld-x86-64/pr19615.d,
* testsuite/ld-x86-64/pr19636-1a.d,
* testsuite/ld-x86-64/pr19636-1d.d,
* testsuite/ld-x86-64/pr19636-1e.d,
* testsuite/ld-x86-64/pr19636-2a.d,
* testsuite/ld-x86-64/pr19636-2e.d,
* testsuite/ld-x86-64/pr19636-2f.d,
* testsuite/ld-x86-64/pr19636-3a.d,
* testsuite/ld-x86-64/pr19645.d,
* testsuite/ld-x86-64/pr19807-2b.d,
* testsuite/ld-x86-64/pr19807-2d.d,
* testsuite/ld-x86-64/pr19827-nacl.rd,
* testsuite/ld-x86-64/pr19827.rd,
* testsuite/ld-x86-64/pr20253-4a.d,
* testsuite/ld-x86-64/pr20253-4b.d,
* testsuite/ld-x86-64/pr20253-4d.d,
* testsuite/ld-x86-64/pr20253-4e.d,
* testsuite/ld-x86-64/pr20253-5a.d,
* testsuite/ld-x86-64/pr20253-5b.d,
* testsuite/ld-x86-64/tlsbin-nacl.rd,
* testsuite/ld-x86-64/tlsbin.rd,
* testsuite/ld-x86-64/tlspic-nacl.rd,
* testsuite/ld-x86-64/tlspic.rd,
* testsuite/ld-x86-64/tlspic2-nacl.rd: Update for
pluralization fixes.
2017-11-07 08:48:29 +08:00
|
|
|
Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 1 entry:
|
2003-01-22 08:41:59 +08:00
|
|
|
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
|
2003-07-29 14:26:23 +08:00
|
|
|
[0-9a-f]+ +[0-9a-f]+ R_ALPHA_JMP_SLOT +0+ __tls_get_addr \+ 0
|
2003-01-22 08:41:59 +08:00
|
|
|
|
2007-09-30 09:33:15 +08:00
|
|
|
Symbol table '\.dynsym' contains [0-9]+ entries:
|
2009-09-23 11:12:28 +08:00
|
|
|
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name
|
|
|
|
.* [0-9a-f]+ +0 +NOTYPE +LOCAL +DEFAULT +UND
|
2014-11-26 05:40:19 +08:00
|
|
|
.* [0-9a-f]+ +0 +TLS +GLOBAL +DEFAULT +9 sg8
|
|
|
|
.* [0-9a-f]+ +0 +TLS +GLOBAL +DEFAULT +9 sg3
|
|
|
|
.* [0-9a-f]+ +0 +TLS +GLOBAL +DEFAULT +9 sg4
|
|
|
|
.* [0-9a-f]+ +0 +TLS +GLOBAL +DEFAULT +9 sg5
|
2009-09-23 11:12:28 +08:00
|
|
|
.* [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +UND __tls_get_addr
|
2014-11-26 05:40:19 +08:00
|
|
|
.* [0-9a-f]+ +0 +TLS +GLOBAL +DEFAULT +9 sg1
|
2019-06-14 08:53:20 +08:00
|
|
|
.* [0-9a-f]+ +172 +FUNC +GLOBAL +DEFAULT +\[STD GPLOAD\] +7 fn1
|
2014-11-26 05:40:19 +08:00
|
|
|
.* [0-9a-f]+ +0 +TLS +GLOBAL +DEFAULT +9 sg2
|
|
|
|
.* [0-9a-f]+ +0 +TLS +GLOBAL +DEFAULT +9 sg6
|
|
|
|
.* [0-9a-f]+ +0 +TLS +GLOBAL +DEFAULT +9 sg7
|
2003-01-22 08:41:59 +08:00
|
|
|
|
2007-09-30 09:33:15 +08:00
|
|
|
Symbol table '\.symtab' contains [0-9]+ entries:
|
2009-09-23 11:12:28 +08:00
|
|
|
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name
|
|
|
|
.* [0-9a-f]+ +0 +NOTYPE +LOCAL +DEFAULT +UND
|
2021-04-21 17:34:32 +08:00
|
|
|
.* [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1.*
|
|
|
|
.* [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2.*
|
|
|
|
.* [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3.*
|
|
|
|
.* [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4.*
|
|
|
|
.* [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5.*
|
|
|
|
.* [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6.*
|
|
|
|
.* [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7.*
|
|
|
|
.* [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8.*
|
|
|
|
.* [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9.*
|
|
|
|
.* [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +10.*
|
|
|
|
.* [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +11.*
|
|
|
|
.* [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +12.*
|
2012-06-06 18:50:18 +08:00
|
|
|
.* FILE +LOCAL +DEFAULT +ABS .*
|
2014-11-26 05:40:19 +08:00
|
|
|
.* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +9 sl1
|
|
|
|
.* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +9 sl2
|
|
|
|
.* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +9 sl3
|
|
|
|
.* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +9 sl4
|
|
|
|
.* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +9 sl5
|
|
|
|
.* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +9 sl6
|
|
|
|
.* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +9 sl7
|
|
|
|
.* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +9 sl8
|
2015-02-17 00:35:17 +08:00
|
|
|
.* FILE +LOCAL +DEFAULT +ABS
|
2014-11-26 05:40:19 +08:00
|
|
|
.* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +10 sH1
|
Properly place the NULL STT_FILE symbol revistited
I was having a little closer look at what is going on here and noticed
that HJ unconditionally emits a NULL STT_FILE symbol before emitting
forced local symbols. That means we really don't need a second pass
over forced local symbols. The only reason for two passes is when
some forced local symbol can be emitted before the NULL STT_FILE. So
I set about removing the second pass, updating the testsuite all over
again. It's also unnecessary to emit the NULL STT_FILE when no
previous file symbol has been emitted.
bfd/
PR ld/17975
* elflink.c (struct elf_outext_info): Remove need_second_pass
and second_pass.
(elf_link_output_extsym): Delete code handling second forced
local pass. Move code emitting NULL STT_FILE symbol later, so
that it can be omitted if forced local is stripped. Don't
emit the NULL STT_FILE if no file symbols have been output.
(bfd_elf_final_link): Remove second forced local pass.
* elf32-ppc.c (add_stub_sym): Set linker_def on linker syms.
(ppc_elf_size_dynamic_sections): Likewise.
* elf64-ppc.c (ppc_build_one_stub): Likewise.
(build_global_entry_stubs): Likewise.
(ppc64_elf_build_stubs): Likewise.
ld/testsuite/
PR ld/17975
* ld-aarch64/gc-tls-relocs.d, * ld-alpha/tlspic.rd,
* ld-cris/libdso-2.d, * ld-i386/tlsdesc-nacl.rd, * ld-i386/tlsdesc.rd,
* ld-i386/tlsnopic-nacl.rd, * ld-i386/tlsnopic.rd,
* ld-i386/tlspic-nacl.rd, * ld-i386/tlspic.rd, * ld-ia64/tlspic.rd,
* ld-powerpc/tlsexe.r, * ld-powerpc/tlsexetoc.r,
* ld-powerpc/tlsso.r, * ld-powerpc/tlstocso.r,
* ld-s390/tlspic.rd, * ld-s390/tlspic_64.rd,
* ld-sparc/tlssunnopic32.rd, * ld-sparc/tlssunnopic64.rd,
* ld-sparc/tlssunpic32.rd, * ld-sparc/tlssunpic64.rd,
* ld-tic6x/shlib-1.rd, * ld-tic6x/shlib-1b.rd, * ld-tic6x/shlib-1r.rd,
* ld-tic6x/shlib-1rb.rd, * ld-tic6x/shlib-noindex.rd,
* ld-x86-64/tlsdesc-nacl.rd, * ld-x86-64/tlsdesc.rd,
* ld-x86-64/tlspic-nacl.rd, * ld-x86-64/tlspic.rd: Update.
2015-02-17 06:44:59 +08:00
|
|
|
.* [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +ABS _DYNAMIC
|
2014-11-26 05:40:19 +08:00
|
|
|
.* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +9 sh3
|
|
|
|
.* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +10 sH2
|
|
|
|
.* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +10 sH7
|
Properly place the NULL STT_FILE symbol revistited
I was having a little closer look at what is going on here and noticed
that HJ unconditionally emits a NULL STT_FILE symbol before emitting
forced local symbols. That means we really don't need a second pass
over forced local symbols. The only reason for two passes is when
some forced local symbol can be emitted before the NULL STT_FILE. So
I set about removing the second pass, updating the testsuite all over
again. It's also unnecessary to emit the NULL STT_FILE when no
previous file symbol has been emitted.
bfd/
PR ld/17975
* elflink.c (struct elf_outext_info): Remove need_second_pass
and second_pass.
(elf_link_output_extsym): Delete code handling second forced
local pass. Move code emitting NULL STT_FILE symbol later, so
that it can be omitted if forced local is stripped. Don't
emit the NULL STT_FILE if no file symbols have been output.
(bfd_elf_final_link): Remove second forced local pass.
* elf32-ppc.c (add_stub_sym): Set linker_def on linker syms.
(ppc_elf_size_dynamic_sections): Likewise.
* elf64-ppc.c (ppc_build_one_stub): Likewise.
(build_global_entry_stubs): Likewise.
(ppc64_elf_build_stubs): Likewise.
ld/testsuite/
PR ld/17975
* ld-aarch64/gc-tls-relocs.d, * ld-alpha/tlspic.rd,
* ld-cris/libdso-2.d, * ld-i386/tlsdesc-nacl.rd, * ld-i386/tlsdesc.rd,
* ld-i386/tlsnopic-nacl.rd, * ld-i386/tlsnopic.rd,
* ld-i386/tlspic-nacl.rd, * ld-i386/tlspic.rd, * ld-ia64/tlspic.rd,
* ld-powerpc/tlsexe.r, * ld-powerpc/tlsexetoc.r,
* ld-powerpc/tlsso.r, * ld-powerpc/tlstocso.r,
* ld-s390/tlspic.rd, * ld-s390/tlspic_64.rd,
* ld-sparc/tlssunnopic32.rd, * ld-sparc/tlssunnopic64.rd,
* ld-sparc/tlssunpic32.rd, * ld-sparc/tlssunpic64.rd,
* ld-tic6x/shlib-1.rd, * ld-tic6x/shlib-1b.rd, * ld-tic6x/shlib-1r.rd,
* ld-tic6x/shlib-1rb.rd, * ld-tic6x/shlib-noindex.rd,
* ld-x86-64/tlsdesc-nacl.rd, * ld-x86-64/tlsdesc.rd,
* ld-x86-64/tlspic-nacl.rd, * ld-x86-64/tlspic.rd: Update.
2015-02-17 06:44:59 +08:00
|
|
|
.* [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +ABS _PROCEDURE_LINKAGE_TABLE_
|
2014-11-26 05:40:19 +08:00
|
|
|
.* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +9 sh7
|
|
|
|
.* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +9 sh8
|
|
|
|
.* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +10 sH4
|
|
|
|
.* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +9 sh4
|
|
|
|
.* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +10 sH3
|
|
|
|
.* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +9 sh5
|
|
|
|
.* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +10 sH5
|
|
|
|
.* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +10 sH6
|
|
|
|
.* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +10 sH8
|
|
|
|
.* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +9 sh1
|
Properly place the NULL STT_FILE symbol revistited
I was having a little closer look at what is going on here and noticed
that HJ unconditionally emits a NULL STT_FILE symbol before emitting
forced local symbols. That means we really don't need a second pass
over forced local symbols. The only reason for two passes is when
some forced local symbol can be emitted before the NULL STT_FILE. So
I set about removing the second pass, updating the testsuite all over
again. It's also unnecessary to emit the NULL STT_FILE when no
previous file symbol has been emitted.
bfd/
PR ld/17975
* elflink.c (struct elf_outext_info): Remove need_second_pass
and second_pass.
(elf_link_output_extsym): Delete code handling second forced
local pass. Move code emitting NULL STT_FILE symbol later, so
that it can be omitted if forced local is stripped. Don't
emit the NULL STT_FILE if no file symbols have been output.
(bfd_elf_final_link): Remove second forced local pass.
* elf32-ppc.c (add_stub_sym): Set linker_def on linker syms.
(ppc_elf_size_dynamic_sections): Likewise.
* elf64-ppc.c (ppc_build_one_stub): Likewise.
(build_global_entry_stubs): Likewise.
(ppc64_elf_build_stubs): Likewise.
ld/testsuite/
PR ld/17975
* ld-aarch64/gc-tls-relocs.d, * ld-alpha/tlspic.rd,
* ld-cris/libdso-2.d, * ld-i386/tlsdesc-nacl.rd, * ld-i386/tlsdesc.rd,
* ld-i386/tlsnopic-nacl.rd, * ld-i386/tlsnopic.rd,
* ld-i386/tlspic-nacl.rd, * ld-i386/tlspic.rd, * ld-ia64/tlspic.rd,
* ld-powerpc/tlsexe.r, * ld-powerpc/tlsexetoc.r,
* ld-powerpc/tlsso.r, * ld-powerpc/tlstocso.r,
* ld-s390/tlspic.rd, * ld-s390/tlspic_64.rd,
* ld-sparc/tlssunnopic32.rd, * ld-sparc/tlssunnopic64.rd,
* ld-sparc/tlssunpic32.rd, * ld-sparc/tlssunpic64.rd,
* ld-tic6x/shlib-1.rd, * ld-tic6x/shlib-1b.rd, * ld-tic6x/shlib-1r.rd,
* ld-tic6x/shlib-1rb.rd, * ld-tic6x/shlib-noindex.rd,
* ld-x86-64/tlsdesc-nacl.rd, * ld-x86-64/tlsdesc.rd,
* ld-x86-64/tlspic-nacl.rd, * ld-x86-64/tlspic.rd: Update.
2015-02-17 06:44:59 +08:00
|
|
|
.* [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
|
2014-11-26 05:40:19 +08:00
|
|
|
.* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +9 sh2
|
|
|
|
.* [0-9a-f]+ +0 +TLS +LOCAL +DEFAULT +9 sh6
|
|
|
|
.* [0-9a-f]+ +0 +TLS +GLOBAL +DEFAULT +9 sg8
|
|
|
|
.* [0-9a-f]+ +0 +TLS +GLOBAL +DEFAULT +9 sg3
|
|
|
|
.* [0-9a-f]+ +0 +TLS +GLOBAL +DEFAULT +9 sg4
|
|
|
|
.* [0-9a-f]+ +0 +TLS +GLOBAL +DEFAULT +9 sg5
|
2009-09-23 11:12:28 +08:00
|
|
|
.* [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +UND __tls_get_addr
|
2014-11-26 05:40:19 +08:00
|
|
|
.* [0-9a-f]+ +0 +TLS +GLOBAL +DEFAULT +9 sg1
|
2019-06-14 08:53:20 +08:00
|
|
|
.* [0-9a-f]+ +172 +FUNC +GLOBAL +DEFAULT +\[STD GPLOAD\] +7 fn1
|
2014-11-26 05:40:19 +08:00
|
|
|
.* [0-9a-f]+ +0 +TLS +GLOBAL +DEFAULT +9 sg2
|
|
|
|
.* [0-9a-f]+ +0 +TLS +GLOBAL +DEFAULT +9 sg6
|
|
|
|
.* [0-9a-f]+ +0 +TLS +GLOBAL +DEFAULT +9 sg7
|