aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2018-05-21 20:39:09 -0700
committerH.J. Lu <hjl.tools@gmail.com>2018-05-21 20:39:30 -0700
commit34a87bb07a4a3b2202fc25167a6b0f12575edc87 (patch)
tree1e5f01a95feb8860d22986e8131f367376e8a1dd /ld/testsuite
parentbae363f1146378207e1dffe5f23845644a1d0b7a (diff)
downloadgdb-34a87bb07a4a3b2202fc25167a6b0f12575edc87.zip
gdb-34a87bb07a4a3b2202fc25167a6b0f12575edc87.tar.gz
gdb-34a87bb07a4a3b2202fc25167a6b0f12575edc87.tar.bz2
ld: Hide symbols defined by HIDDEN/PROVIDE_HIDDEN
There should be no difference in output for symbols defined by HIDDEN or PROVIDE_HIDDEN assignments whether they are explicitly marked as hidden or not. This patch adds a new BFD function, bfd_link_hide_symbol, to hide symbols defined by HIDDEN and PROVIDE_HIDDEN assignments. bfd PR ld/23201 * aout-target.h (MY_bfd_link_hide_symbol): New. * aout-tic30.c (MY_bfd_link_hide_symbol): Likewise. * binary.c (binary_bfd_link_hide_symbol): Likewise. * coff-alpha.c (_bfd_ecoff_bfd_link_hide_symbol): Likewise. * coff-mips.c (_bfd_ecoff_bfd_link_hide_symbol): Likewise. * coff-rs6000.c (_bfd_xcoff_bfd_link_hide_symbol): Likewise. * coffcode.h (coff_bfd_link_hide_symbol): Likewise. * elf-bfd.h (_bfd_elf_link_hide_symbol): Likewise. * elfxx-target.h (bfd_elfNN_bfd_link_hide_symbol): Likewise. * i386msdos.c (msdos_bfd_link_hide_symbol): Likewise. * ihex.c (ihex_bfd_link_hide_symbol): Likewise. * libbfd-in.h (_bfd_nolink_bfd_link_hide_symbol): Likewise. * linker.c (_bfd_generic_link_hide_symbol): Likewise. (bfd_link_hide_symbol): Likewise. * mach-o-target.c (bfd_mach_o_bfd_link_hide_symbol): Likewise. * mmo.c (mmo_bfd_link_hide_symbol): Likewise. * pef.c (bfd_pef_bfd_link_hide_symbol): Likewise. * plugin.c (bfd_plugin_bfd_link_hide_symbol): Likewise. * ppcboot.c (ppcboot_bfd_link_hide_symbol): Likewise. * som.c (som_bfd_link_hide_symbol): Likewise. * srec.c (srec_bfd_link_hide_symbol): Likewise. * tekhex.c (tekhex_bfd_link_hide_symbol): Likewise. * vms-alpha.c (vms_bfd_link_hide_symbol): Likewise. (alpha_vms_bfd_link_hide_symbol): Likewise. * xsym.c (bfd_sym_bfd_link_hide_symbol): Likewise. * coff64-rs6000.c (rs6000_xcoff64_vec): Add _bfd_generic_link_hide_symbol. (rs6000_xcoff64_aix_vec): Likewise. * elflink.c (bfd_elf_record_link_assignment): Don't make forced local symbol dynamic. (_bfd_elf_link_hide_symbol): New function. * elfxx-x86.c (_bfd_x86_elf_link_symbol_references_local): Don't check root.ldscript_def. * targets.c (bfd_target): Add _bfd_link_hide_symbol. (BFD_JUMP_TABLE_LINK): Add NAME##_bfd_link_hide_symbol. * bfd-in2.h: Regenerated. * libbfd.h: Likewise. ld/ PR ld/23201 * ldexp.c (exp_fold_tree_1): Call bfd_link_hide_symbol to hide a symbol. * testsuite/ld-elf/provide-hidden-dynabs.nd: Removed. * testsuite/ld-elf/provide-hidden-dynsec.nd: Likewise. * testsuite/ld-elf/provide-hidden.exp: Replace provide-hidden-dynsec.nd with provide-hidden-sec.nd and provide-hidden-dyn.nd. Replace provide-hidden-dynabs.nd with provide-hidden-abs.nd and provide-hidden-dyn.nd. * testsuite/ld-i386/pr23189.d: Expect no dynamic relocation. * testsuite/ld-x86-64/pr23189.d: Likewise.
Diffstat (limited to 'ld/testsuite')
-rw-r--r--ld/testsuite/ld-elf/provide-hidden-dynabs.nd8
-rw-r--r--ld/testsuite/ld-elf/provide-hidden-dynsec.nd8
-rw-r--r--ld/testsuite/ld-elf/provide-hidden.exp8
-rw-r--r--ld/testsuite/ld-i386/pr23189.d4
-rw-r--r--ld/testsuite/ld-x86-64/pr23189.d4
5 files changed, 8 insertions, 24 deletions
diff --git a/ld/testsuite/ld-elf/provide-hidden-dynabs.nd b/ld/testsuite/ld-elf/provide-hidden-dynabs.nd
deleted file mode 100644
index 86e3adc..0000000
--- a/ld/testsuite/ld-elf/provide-hidden-dynabs.nd
+++ /dev/null
@@ -1,8 +0,0 @@
-Symbol table '\.dynsym' contains [0-9]+ entries:
-#...
- *[0-9]+: 0*23400000 +0 (?:NOTYPE|OBJECT) +LOCAL +DEFAULT +ABS foo
-#...
-Symbol table '\.symtab' contains [0-9]+ entries:
-#...
- *[0-9]+: 0*23400000 +0 (?:NOTYPE|OBJECT) +LOCAL +DEFAULT +ABS foo
-#pass
diff --git a/ld/testsuite/ld-elf/provide-hidden-dynsec.nd b/ld/testsuite/ld-elf/provide-hidden-dynsec.nd
deleted file mode 100644
index 716dfa1..0000000
--- a/ld/testsuite/ld-elf/provide-hidden-dynsec.nd
+++ /dev/null
@@ -1,8 +0,0 @@
-Symbol table '\.dynsym' contains [0-9]+ entries:
-#...
- *[0-9]+: 0*23400000 +0 (?:NOTYPE|OBJECT) +LOCAL +DEFAULT +[0-9]+ foo
-#...
-Symbol table '\.symtab' contains [0-9]+ entries:
-#...
- *[0-9]+: 0*23400000 +0 (?:NOTYPE|OBJECT) +LOCAL +DEFAULT +[0-9]+ foo
-#pass
diff --git a/ld/testsuite/ld-elf/provide-hidden.exp b/ld/testsuite/ld-elf/provide-hidden.exp
index 1fc4e61..4b72134 100644
--- a/ld/testsuite/ld-elf/provide-hidden.exp
+++ b/ld/testsuite/ld-elf/provide-hidden.exp
@@ -86,7 +86,9 @@ run_ld_link_tests [list \
"$LFLAGS -T provide-hidden-1.ld" "tmpdir/provide-hidden-s.so" \
"" \
[list provide-hidden-3.s] \
- [list "readelf -s provide-hidden-dynsec.nd"] \
+ [list \
+ [list readelf -s provide-hidden-sec.nd] \
+ [list readelf -s provide-hidden-dyn.nd]] \
"provide-hidden-4"] \
[list \
"$testname 5" \
@@ -138,7 +140,9 @@ run_ld_link_tests [list \
"$LFLAGS -T provide-hidden-2.ld" "tmpdir/provide-hidden-s.so" \
"" \
[list provide-hidden-3.s] \
- [list "readelf -s provide-hidden-dynabs.nd"] \
+ [list \
+ [list readelf -s provide-hidden-abs.nd] \
+ [list readelf -s provide-hidden-dyn.nd]] \
"provide-hidden-10"] \
[list \
"$testname 11" \
diff --git a/ld/testsuite/ld-i386/pr23189.d b/ld/testsuite/ld-i386/pr23189.d
index 9345b42..d388830 100644
--- a/ld/testsuite/ld-i386/pr23189.d
+++ b/ld/testsuite/ld-i386/pr23189.d
@@ -2,6 +2,4 @@
#ld: -shared -melf_i386 -T pr23189.t
#readelf: -r --wide
-Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 1 entry:
- Offset Info Type Sym. Value Symbol's Name
-[0-9a-f]+ +[0-9a-f]+ +R_386_RELATIVE +
+There are no relocations in this file.
diff --git a/ld/testsuite/ld-x86-64/pr23189.d b/ld/testsuite/ld-x86-64/pr23189.d
index 7951c7a..6fc4b7e 100644
--- a/ld/testsuite/ld-x86-64/pr23189.d
+++ b/ld/testsuite/ld-x86-64/pr23189.d
@@ -2,6 +2,4 @@
#ld: -shared -melf_x86_64 -T pr23189.t
#readelf: -r --wide
-Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entry:
- Offset Info Type Symbol's Value Symbol's Name \+ Addend
-[0-9a-f]+ +[0-9a-f]+ +R_X86_64_RELATIVE +[0-9a-f]+
+There are no relocations in this file.