Solaris2/LD: Fix anonymous version script acceptance bug
Correct a bug in Solaris 2 linker emulation code triggered by a test
introduced with commit 81ff47b3a5
("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.
This commit is contained in:
parent
fae1616f5f
commit
1a792e1c00
2 changed files with 8 additions and 1 deletions
|
@ -1,3 +1,9 @@
|
|||
2017-01-24 Maciej W. Rozycki <macro@imgtec.com>
|
||||
|
||||
* emultempl/solaris2.em (elf_solaris2_before_allocation): Do not
|
||||
add implicit version nodes if an anonymous version tag is being
|
||||
used.
|
||||
|
||||
2017-01-24 Jiong Wang <jiong.wang@arm.com>
|
||||
|
||||
* testsuite/ld-plugin/lto.exp (lto_link_elf_tests): Move "Compile 7",
|
||||
|
|
|
@ -76,7 +76,8 @@ elf_solaris2_before_allocation (void)
|
|||
|
||||
/* Only do this if emitting a shared object and versioning is in place. */
|
||||
if (bfd_link_dll (&link_info)
|
||||
&& (link_info.version_info != NULL
|
||||
&& ((link_info.version_info != NULL
|
||||
&& link_info.version_info->name[0] != '\0')
|
||||
|| link_info.create_default_symver))
|
||||
{
|
||||
struct bfd_elf_version_expr *globals = NULL, *locals = NULL;
|
||||
|
|
Loading…
Add table
Reference in a new issue