summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Storsjo <martin@martin.st>2018-03-14 20:17:24 +0000
committerMartin Storsjo <martin@martin.st>2018-03-14 20:17:24 +0000
commitfb36e6e82cd65b0cabed059a0d4279548b2fb6dc (patch)
tree97fe60ed172531620366cd837e1dc7968fb905f1
parent5351891b553e6bb6bd0cb1e8c2c99128c75cc76e (diff)
downloadbcm5719-llvm-fb36e6e82cd65b0cabed059a0d4279548b2fb6dc.tar.gz
bcm5719-llvm-fb36e6e82cd65b0cabed059a0d4279548b2fb6dc.zip
[MinGW] Add support for the GNU ld flag --kill-at
llvm-svn: 327562
-rw-r--r--lld/MinGW/Driver.cpp2
-rw-r--r--lld/MinGW/Options.td1
-rw-r--r--lld/test/MinGW/driver.test4
3 files changed, 7 insertions, 0 deletions
diff --git a/lld/MinGW/Driver.cpp b/lld/MinGW/Driver.cpp
index 6d3bea5d904..0b7e0831a51 100644
--- a/lld/MinGW/Driver.cpp
+++ b/lld/MinGW/Driver.cpp
@@ -154,6 +154,8 @@ bool mingw::link(ArrayRef<const char *> ArgsArr, raw_ostream &Diag) {
Add("-debug:dwarf");
if (Args.hasArg(OPT_large_address_aware))
Add("-largeaddressaware");
+ if (Args.hasArg(OPT_kill_at))
+ Add("-kill-at");
if (Args.getLastArgValue(OPT_m) != "thumb2pe" &&
Args.getLastArgValue(OPT_m) != "arm64pe" && !Args.hasArg(OPT_dynamicbase))
diff --git a/lld/MinGW/Options.td b/lld/MinGW/Options.td
index 4213b8e6500..6840471198a 100644
--- a/lld/MinGW/Options.td
+++ b/lld/MinGW/Options.td
@@ -14,6 +14,7 @@ def export_all_symbols: F<"export-all-symbols">,
def gc_sections: F<"gc-sections">, HelpText<"Remove unused sections">;
def icf: J<"icf=">, HelpText<"Identical code folding">;
def image_base: S<"image-base">, HelpText<"Base address of the program">;
+def kill_at: F<"kill-at">, HelpText<"Remove @n from exported symbols">;
def l: JoinedOrSeparate<["-"], "l">, MetaVarName<"<libName>">,
HelpText<"Root name of library to use">;
def m: JoinedOrSeparate<["-"], "m">, HelpText<"Set target emulation">;
diff --git a/lld/test/MinGW/driver.test b/lld/test/MinGW/driver.test
index b0b5f56576a..1a95d23caa4 100644
--- a/lld/test/MinGW/driver.test
+++ b/lld/test/MinGW/driver.test
@@ -126,3 +126,7 @@ RUN: ld.lld -### -m i386pep foo.o -icf=all | FileCheck -check-prefix ICF %s
ICF: -opt:icf
RUN: ld.lld -### -m i386pep --start-group foo.o --end-group
+
+RUN: ld.lld -### foo.o -m i386pe -shared --kill-at | FileCheck -check-prefix=KILL-AT %s
+RUN: ld.lld -### foo.o -m i386pe -shared -kill-at | FileCheck -check-prefix=KILL-AT %s
+KILL-AT: -kill-at
OpenPOWER on IntegriCloud