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

            Bug ID: 19724
           Summary: linker script support of (hidden) "FOO@BAR" = foo; is
                    broken
           Product: binutils
           Version: 2.27 (HEAD)
            Status: NEW
          Severity: normal
          Priority: P2
         Component: ld
          Assignee: unassigned at sourceware dot org
          Reporter: glebfm at altlinux dot org
  Target Milestone: ---

$ echo 'BAR {global:FOO; local:*;};' > exports
$ echo '"FOO@BAR" = foo;' > libfoo.lds
$ echo 'int foo() {return 0;}' > libfoo.c
$ gcc -s -shared -fPIC libfoo.c -Wl,--version-script,exports -Wl,libfoo.lds -o
libfoo.so
$ readelf -Ws libfoo.so | grep FOO
     8: 00000000000005c0     0 FUNC    GLOBAL DEFAULT   11 FOO@@BAR
$ echo 'int main() {return FOO();}' > foo.c
$ gcc -L$PWD foo.c -o foo -lfoo -Wno-implicit-function-declaration
$ LD_LIBRARY_PATH=$PWD ./foo
./foo: relocation error: ./foo: symbol FOO, version BAR not defined in file
libfoo.so with link time reference

I bisected it to:
6e33951edcbed1fd803beabcde2af3b252b92164 is the first bad commit
commit 6e33951edcbed1fd803beabcde2af3b252b92164
Author: H.J. Lu <hjl.to...@gmail.com>
Date:   Fri Aug 7 05:04:21 2015 -0700

    Properly merge hidden versioned symbol
...

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to