[lld] r313066 - [MinGW] Pass the undecorated entry point name to the COFF linker
Martin Storsjo via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 12 12:23:54 PDT 2017
Author: mstorsjo
Date: Tue Sep 12 12:23:54 2017
New Revision: 313066
URL: http://llvm.org/viewvc/llvm-project?rev=313066&view=rev
Log:
[MinGW] Pass the undecorated entry point name to the COFF linker
On i386, the --entry parameter to GNU ld is supposed to be a decorated
symbol name, while it is an undecorated name in link.exe.
Differential Revision: https://reviews.llvm.org/D37710
Modified:
lld/trunk/MinGW/Driver.cpp
lld/trunk/test/MinGW/driver.test
Modified: lld/trunk/MinGW/Driver.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/MinGW/Driver.cpp?rev=313066&r1=313065&r2=313066&view=diff
==============================================================================
--- lld/trunk/MinGW/Driver.cpp (original)
+++ lld/trunk/MinGW/Driver.cpp Tue Sep 12 12:23:54 2017
@@ -121,8 +121,14 @@ bool mingw::link(ArrayRef<const char *>
Add("lld-link");
- if (auto *A = Args.getLastArg(OPT_entry))
- Add("-entry:" + StringRef(A->getValue()));
+ if (auto *A = Args.getLastArg(OPT_entry)) {
+ StringRef S = A->getValue();
+ if (Args.getLastArgValue(OPT_m) == "i386pe" && S.startswith("_"))
+ Add("-entry:" + S.substr(1));
+ else
+ Add("-entry:" + S);
+ }
+
if (auto *A = Args.getLastArg(OPT_subs))
Add("-subsystem:" + StringRef(A->getValue()));
if (auto *A = Args.getLastArg(OPT_out_implib))
Modified: lld/trunk/test/MinGW/driver.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/MinGW/driver.test?rev=313066&r1=313065&r2=313066&view=diff
==============================================================================
--- lld/trunk/test/MinGW/driver.test (original)
+++ lld/trunk/test/MinGW/driver.test Tue Sep 12 12:23:54 2017
@@ -44,3 +44,6 @@ STACK: -stack:4194304,8192
RUN: ld.lld -### foo.o -m i386pep --verbose | FileCheck -check-prefix=VERBOSE %s
VERBOSE: -verbose
+
+RUN: ld.lld -### -shared -m i386pe -e _DllMainCRTStartup at 12 foo.o | FileCheck -check-prefix I386-ENTRY %s
+I386-ENTRY: -entry:DllMainCRTStartup at 12
More information about the llvm-commits
mailing list