https://bugs.llvm.org/show_bug.cgi?id=40176

            Bug ID: 40176
           Summary: problem with lld and wildcard characters in version
                    scripts
           Product: lld
           Version: unspecified
          Hardware: PC
                OS: FreeBSD
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: ELF
          Assignee: unassignedb...@nondot.org
          Reporter: t...@coosemans.org
                CC: llvm-bugs@lists.llvm.org, peter.sm...@linaro.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
% 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@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 building Qt5.  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 on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to