bug-binutils
[Top][All Lists]
Advanced

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

[Bug gold/18703] New: Symbol version and Version script incompatibility


From: tmsriram at google dot com
Subject: [Bug gold/18703] New: Symbol version and Version script incompatibility with BFD ld
Date: Tue, 21 Jul 2015 22:18:18 +0000

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

            Bug ID: 18703
           Summary: Symbol version and Version script incompatibility with
                    BFD ld
           Product: binutils
           Version: 2.26 (HEAD)
            Status: NEW
          Severity: normal
          Priority: P2
         Component: gold
          Assignee: ccoutant at gmail dot com
          Reporter: tmsriram at google dot com
                CC: ian at airs dot com, iant at google dot com, ppluzhnikov at 
google dot com,
                    saugustine at google dot com
  Target Milestone: ---

Here is a simple example to reproduce the problem:

foo.cc
======

extern "C"
int foo() {
  return 0;
}

__asm__ (".symver foo, address@hidden");


foo.map
=======

VERS_1.1 {
  global:
        foo;
};


Now, use BFD linker:

$ g++ -B<path to bfd linker> foo.cc -fPIC -shared
-Wl,--version-script=./foo.map -o libfoo.so

$ nm libfoo.so | grep foo
0000000000000700 T address@hidden

The symbol is versioned.

Now, use gold linker and repeat:

$ g++ -B<path to gold linker> foo.cc -fPIC -shared
-Wl,--version-script=./foo.map -o libfoo.so

$ nm libfoo.so | grep foo
0000000000000740 T foo

The symbol is not versioned.

This affects building libgcc_s.so in trunk GCC with gold as symbol
__cpu_indicator_init is versioned in the exact manner as described.

-- 
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]