[lld] r310992 - [COFF] Don't produce weak aliases in import libraries
Hans Wennborg via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 17 10:06:25 PDT 2017
Merged to 5.0 in r311101.
On Tue, Aug 15, 2017 at 10:23 PM, Martin Storsjo via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
> Author: mstorsjo
> Date: Tue Aug 15 22:23:00 2017
> New Revision: 310992
>
> URL: http://llvm.org/viewvc/llvm-project?rev=310992&view=rev
> Log:
> [COFF] Don't produce weak aliases in import libraries
>
> When creating an import library from lld, the cases with
> Name != ExtName shouldn't end up as a weak alias, but as a real
> export of the new name, which is what actually is exported from
> the DLL.
>
> This restores the behaviour of renamed exports to what it was in
> 4.0.
>
> Differential Revision: https://reviews.llvm.org/D36634
>
> Modified:
> lld/trunk/COFF/Driver.cpp
> lld/trunk/test/COFF/export.test
>
> Modified: lld/trunk/COFF/Driver.cpp
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Driver.cpp?rev=310992&r1=310991&r2=310992&view=diff
> ==============================================================================
> --- lld/trunk/COFF/Driver.cpp (original)
> +++ lld/trunk/COFF/Driver.cpp Tue Aug 15 22:23:00 2017
> @@ -473,7 +473,7 @@ static void createImportLibrary(bool AsL
> }
>
> writeImportLibrary(getImportName(AsLib), getImplibPath(), Exports,
> - Config->Machine);
> + Config->Machine, false);
> }
>
> static void parseModuleDefs(StringRef Path) {
>
> Modified: lld/trunk/test/COFF/export.test
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/export.test?rev=310992&r1=310991&r2=310992&view=diff
> ==============================================================================
> --- lld/trunk/test/COFF/export.test (original)
> +++ lld/trunk/test/COFF/export.test Tue Aug 15 22:23:00 2017
> @@ -39,8 +39,9 @@ CHECK3-NEXT: 4 0
> CHECK3-NEXT: 5 0x1008
> CHECK3-NEXT: 6 0x1010 exportfn2
>
> -# RUN: lld-link /out:%t.dll /dll %t.obj /export:f1=exportfn1 /export:f2=exportfn2
> +# RUN: lld-link /out:%t.dll /dll %t.obj /export:f1=exportfn1 /export:f2=exportfn2 /implib:%t.lib
> # RUN: llvm-objdump -p %t.dll | FileCheck -check-prefix=CHECK4 %s
> +# RUN: llvm-nm %t.lib | FileCheck -check-prefix=CHECK4-NM %s
>
> CHECK4: Export Table:
> CHECK4: DLL name: export.test.tmp.dll
> @@ -49,6 +50,8 @@ CHECK4-NEXT: 0 0
> CHECK4-NEXT: 1 0x1010 exportfn3
> CHECK4-NEXT: 2 0x1008 f1
> CHECK4-NEXT: 3 0x1010 f2
> +CHECK4-NM: 00000000 T f1
> +CHECK4-NM: 00000000 T f2
>
> # RUN: echo "EXPORTS exportfn1 @3" > %t.def
> # RUN: echo "fn2=exportfn2 @2" >> %t.def
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list