[Bug 234070] problem with lld and wildcard characters in version scripts

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sun Dec 16 18:37:25 UTC 2018


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=234070

            Bug ID: 234070
           Summary: problem with lld and wildcard characters in version
                    scripts
           Product: Base System
           Version: CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: bin
          Assignee: bugs at FreeBSD.org
          Reporter: tijl at FreeBSD.org

% cat test.c
void
foo( void ) {
}

void
bar( void ) {
}
% cat test.ver
FOO {
        foo*;
};

BAR {
        *;
};
% clang60 -shared test.c -o libtest.so -s -Wl,--version-script=test.ver
tijl at hal:~/tmp/version% readelf -s libtest.so
Symbol table (.dynsym) contains 7 entries:
   Num:    Value          Size Type    Bind   Vis      Ndx Name
     0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND 
     1: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _Jv_RegisterClasses
     2: 0000000000000000     0 FUNC    WEAK   DEFAULT  UND
__cxa_finalize at FBSD_1.0 (4)
     3: 00000000000010dc     0 FUNC    GLOBAL DEFAULT   14 _fini@@BAR (3)
     4: 00000000000010cc     0 FUNC    GLOBAL DEFAULT   13 _init@@BAR (3)
     5: 0000000000001090     6 FUNC    GLOBAL DEFAULT   12 bar@@BAR (3)
     6: 0000000000001080     6 FUNC    GLOBAL DEFAULT   12 foo@@BAR (3)

Note foo@@BAR instead of foo@@FOO.  It's correct when compiling with
-fuse-ld=bfd.

This affects the Qt5 ports where many symbols should have a Qt_5_PRIVATE_API
version label but have a Qt5 label instead.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list