Solaris2/LD: Fix anonymous version script acceptance bug
authorMaciej W. Rozycki <macro@imgtec.com>
Mon, 23 Jan 2017 11:37:19 +0000 (11:37 +0000)
committerMaciej W. Rozycki <macro@imgtec.com>
Tue, 24 Jan 2017 12:53:52 +0000 (12:53 +0000)
commit1a792e1c00e07a1e644145a9f71446cf2e75e9ab
tree56a4cea9f145e240a228f208a23fdb0e31ef8b5b
parentfae1616f5f1357ae8b8e98241657088248178ced
Solaris2/LD: Fix anonymous version script acceptance bug

Correct a bug in Solaris 2 linker emulation code triggered by a test
introduced with commit 81ff47b3a546 ("PR ld/20828: Fix linker script
symbols wrongly forced local with section GC") and only create implicit
version nodes if versioning is actually introduced with a version script
(or VERSION command) rather than only global vs local symbol visibility
selected, fixing an:

ld: anonymous version tag cannot be combined with other version tags

linker error produced whenever a version script (or VERSION command) is
used that does not assign symbol versions, such as:

{ global: foo; bar; local: *; };

and consequently removing a:

FAIL: PR ld/20828 dynamic symbols with section GC (version script)

test suite failure with the `x86_64-solaris2' target.

ld/
* emultempl/solaris2.em (elf_solaris2_before_allocation): Do not
add implicit version nodes if an anonymous version tag is being
used.
ld/ChangeLog
ld/emultempl/solaris2.em