old-cross-binutils/ld/testsuite/ld-elf
H.J. Lu 90c984fc53 Properly handle indirect symbols
2012-07-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/3351
	* elflink.c (_bfd_elf_update_dynamic_flags): New.
	(_bfd_elf_merge_symbol): Update both real and indirect symbol
	dynamic flags.
	(_bfd_elf_add_default_symbol): Make the real symbol dynamic if
	the indirect symbol is defined in a shared library.
	(elf_link_add_object_symbols): Likewise.  If the indirect
	symbol has been forced local, don't make the real symbol
	dynamic.
	(elf_link_check_versioned_symbol): Check indirect symbol.
	(elf_link_output_extsym): Use real symbol definition when
	reporting indirect symbol error.  Check version info for
	dynamic versioned symbol.

2012-07-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/3351
	* ld-elf/indirect.exp: New file.
	* ld-elf/indirect1a.c: Likewise.
	* ld-elf/indirect1b.c: Likewise.
	* ld-elf/indirect1c.c: Likewise.
	* ld-elf/indirect2.c: Likewise.
	* ld-elf/indirect3.out: Likewise.
	* ld-elf/indirect3a.c: Likewise.
	* ld-elf/indirect3b.c: Likewise.
	* ld-elf/indirect3c.c: Likewise.
	* ld-elf/indirect4.out: Likewise.
	* ld-elf/indirect4a.c: Likewise.
	* ld-elf/indirect4b.c: Likewise.
	* ld-elf/indirect4c.c: Likewise.
2012-07-03 14:44:35 +00:00
..
audit.exp
audit.rd
begin.c
beginwarn.c
binutils.exp
comm-data.exp
comm-data1.s
comm-data1.sd
comm-data2.rd
comm-data2.s
comm-data2.sd
comm-data2.xd
comm1.c
commonpage1.d
commonpage2.d
compress.exp
compress1.s
compress1a.d
compress1b.d
compress1c.d
data1.c
data1.h
data2.c
del.cc
depaudit.rd
depaudit2.rd
discard.ld
discard1.d
discard1.s
discard2.d
discard2.s
discard3.d
dl1.c
dl1.list
dl1.out
dl1main.c
dl2.c
dl2.list
dl2a.list
dl2a.out
dl2b.out
dl2main.c
dl2xxx.c
dl2xxx.list
dl3.cc
dl3.list
dl3a.out
dl3b.out
dl3header.h
dl3main.cc
dl4.c
dl4.list
dl4a.out
dl4b.out
dl4main.c
dl4xxx.c
dl4xxx.list
dl5.cc
dl5.out
dl6.c
dl6a.out
dl6amain.c
dl6b.out
dl6bmain.c
dl6cmain.c
dl6dmain.c
dummy.c
dwarf.exp
dwarf1.c
dwarf1.h
dwarf1.out
dwarf1main.c
dynamic1.d
dynamic1.ld
dynamic1.s
dynbss1.c
dynsym1.d
eh-frame-hdr.d
eh-frame-hdr.s
eh-group.exp
eh-group1.s
eh-group2.s
eh1.d
eh1.s
eh1a.s
eh2.d
eh2a.s
eh3.d
eh3.s
eh3a.s
eh4.d
eh4.s
eh4a.s
eh5.d
eh5.s
eh5a.s
eh5b.s
eh6.d
eh6.s
ehdr_start.d
ehdr_start.s
elf.exp
empty.d
empty.s
empty2.d
empty2.s
end.c
endhidden.c
endprotected.c
exclude.exp
exclude1.s
exclude2.s
exclude3.s
exclude3a.d
exclude3b.d
exclude3c.d
exclude3d.d
expr1.d
expr1.s
expr1.t
extract-symbol-1.ld
extract-symbol-1.s
extract-symbol-1sec.d
extract-symbol-1sym.d
fini.c
fini.out
flags1.d
flags1.ld
flags1.s
foo.c
foo.map
frame.exp
frame.s
func1.c
group.ld
group1.d
group1a.s
group1b.s
group2.d
group3a.d
group3a.s
group3b.d
group3b.s
group4.d
group5.d
group6.d
group7.d
group8.s
group8a.d
group8b.d
group9.s
group9a.d
group9b.d
group10.d
group10.s
hash.d
header.d
header.s
header.t
hidden.out
indirect.exp
indirect1a.c
indirect1b.c
indirect1c.c
indirect2.c
indirect3.out
indirect3a.c
indirect3b.c
indirect3c.c
indirect4.out
indirect4a.c
indirect4b.c
indirect4c.c
init-fini-arrays.d
init-fini-arrays.s
init-mixed.c
init-mixed.out
init.c
init.out
linkonce1.d
linkonce1a.s
linkonce1b.s
linkonce2.d
linkoncerdiff.d
linkoncerdiff1.s
linkoncerdiff2.s
lma.lnk
lma.s
loadaddr.s
loadaddr.t
loadaddr1.d
loadaddr1.t
loadaddr2.d
loadaddr2.t
loadaddr3.t
loadaddr3a.d
loadaddr3b.d
local1.d
local1.map
local1.s
main.c
maxpage1.d
maxpage1.s
maxpage2.d
maxpage3.t
maxpage3a.d
maxpage3b.d
maxpage3c.d
maxpage4.d
maxpage4.t
merge.d
merge.ld
merge.s
merge2.d
merge2.s
multibss1.d
multibss1.s
new.cc
nobits-1.d
nobits-1.s
nobits-1.t
noload-1.d
noload-1.s
noload-1.t
noload-2.d
noload-3.d
noload-3.s
noload-3.t
normal.out
note-1.d
note-1.s
note-1.t
note-2.d
note-2.s
note-2.t
note-3.l
note-3.s
note-3.t
orphan-region.d
orphan-region.ld
orphan-region.s
orphan.d
orphan.ld
orphan.s
orphan2.d
orphan2.s
orphan3.d
orphan3a.s
orphan3b.s
orphan3c.s
orphan3d.s
orphan3e.s
orphan3f.s
orphan4.d
orphan4.ld
orphan4.s
overlay.d
overlay.s
overlay.t
pass.out
pr349-1.s
pr349-2.s
pr349.d
pr9676-1.c
pr9676-2.c
pr9676-3.c
pr9676-4.c
pr9676.rd
pr9679-1.c
pr9679-2.c
pr9679.rd
pr11138-1.c
pr11138-1.map
pr11138-2.c
pr11138-2.map
pr11138.out
pr11304.d
pr11304a.s
pr11304b.s
pr12851.d
pr12851.s
pr12975.d
pr12975.s
pr12975.t
pr13177.d
pr13177.s
pr13195.c
pr13195.d
pr13195.s
pr13195.t
pr13250-1.c
pr13250-2.c
pr13250-3.c
pr13839.d
pr13839.s
pr13839.t
pr14052.d
pr14052.t
pr14170a.s
pr14170b.s
pr14170c.s
preinit.c
preinit.out
relocatable.d
relocatable.t
relro1.s
relro2.s
sec-to-seg-script-adjoining-pages.t
sec-to-seg-script-disjoint-pages.t
sec-to-seg-script-same-page.t
sec-to-seg.exp
sec-to-seg1.s
sec-to-seg2.s
sec64k.exp
seg.d
seg.s
seg.t
shared.exp
simple.s
stab.d
start.s
symbol1ref.s
symbol1w.s
symbol2ref.s
symbol2w.s
symbol3.s
symbol3w.s
table.s
tbss.s
tbss1.s
tbss2.s
tbss3.s
tdata1.s
tdata2.s
tdata3.s
textaddr1.d
textaddr2.d
textaddr3.d
textaddr4.d
textaddr5.d
textaddr6.d
textaddr7.d
tls_common.exp
tls_common.s
tls_gc.s
unknown.d
unknown2.d
unknown2.s
warn.out
warn1.d
warn2.d
warn3.d
weak-dyn-1.ld
weak-dyn-1.rd
weak-dyn-1a.s
weak-dyn-1b.s
weakdef1.c
wrap.exp
wrap1.c
wrap1.out
wrap1a.c
wrap1b.c