Check incompatible existing default symbol definition
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 21 Jan 2014 23:42:43 +0000 (15:42 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 21 Jan 2014 23:42:51 +0000 (15:42 -0800)
commit4584ec12076e088cf36965b88ef8710ca85491f9
tree9b22f0bbf45bb9e59e1f3516cfb773d556d2a567
parentefec45729843f9b1864b2a9b491adff85304525a
Check incompatible existing default symbol definition

After resolving a versioned reference, foo@VER1, to a default versioned
definition, foo@@VER1, from a shared object, we also merge it with
the existing regular default symbol definition, foo.  When foo is IFUNC
and foo@@VER1 aren't, we will merge 2 incompatible definitions.  This
patch avoids merging foo@@VER1 definition with foo definition if
one is IFUNC and the other isn't.
bfd/ChangeLog
bfd/elflink.c
ld/testsuite/ChangeLog
ld/testsuite/ld-ifunc/dummy.c [new file with mode: 0644]
ld/testsuite/ld-ifunc/ifunc.exp
ld/testsuite/ld-ifunc/pr16467.out [new file with mode: 0644]
ld/testsuite/ld-ifunc/pr16467a.c [new file with mode: 0644]
ld/testsuite/ld-ifunc/pr16467a.map [new file with mode: 0644]
ld/testsuite/ld-ifunc/pr16467b.c [new file with mode: 0644]
ld/testsuite/ld-ifunc/pr16467b.map [new file with mode: 0644]
ld/testsuite/ld-ifunc/pr16467c.c [new file with mode: 0644]