bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug ld/18720] No symbol version section for versioned symbol address@hi


From: hjl.tools at gmail dot com
Subject: [Bug ld/18720] No symbol version section for versioned symbol address@hidden'
Date: Mon, 27 Jul 2015 16:35:45 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=18720

--- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to Cary Coutant from comment #1)
> With my proposed fix for gas (see PR 18703 comment #12), indirect3b.o would
> not have the stray unversioned definition for foo, and ld would work just
> fine as is.
> 
> https://sourceware.org/bugzilla/show_bug.cgi?id=18703#c12
> 
> With your testcase, gold binds to the unversioned foo in indirect3b.o, and
> the resulting binary prints "MAIN" twice. With the patched assembler, both
> gold and ld print "DSO" twice.

I tried your gas change:

diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c
index 78dc6d9..8668be0 100644
--- a/gas/config/obj-elf.c
+++ b/gas/config/obj-elf.c
@@ -2182,6 +2182,11 @@ elf_frob_symbol (symbolS *symp, int *puntp)
         memmove (&p[2], &p[3], l);
         S_SET_NAME (symp, sy_obj->versioned_name);
       }
+    else if (strncmp (S_GET_NAME (symp), sy_obj->versioned_name,
+            strlen (S_GET_NAME (symp))) == 0)
+      {
+        S_SET_NAME (symp, sy_obj->versioned_name);
+      }
     else
       {
         symbolS *symp2;

on master branch on Linux/x86-64 and got:

FAIL: ELF symbol versioning
FAIL: Indirect symbol 1a: : local symbol `foo' in tmpdir/indirect1b.o is
referenced by DSO
FAIL: Indirect symbol 1a: : final link failed: Bad value
FAIL: Indirect symbol 1b: : local symbol `foo' in tmpdir/indirect1b.o is
referenced by DSO
FAIL: Indirect symbol 1b: : final link failed: Bad value
FAIL: Run with libindirect3c.so 1
FAIL: Run with libindirect3c.so 2
FAIL: Run with libindirect3c.so 3
FAIL: Run with libindirect3c.so 4
FAIL: vers24a
FAIL: vers24b
FAIL: ELF symbol versioning
FAIL: symver symver1

Do you those failures?

-- 
You are receiving this mail because:
You are on the CC list for the bug.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]