summaryrefslogtreecommitdiff
path: root/lld/MinGW
diff options
context:
space:
mode:
authorMartin Storsjo <martin@martin.st>2017-12-12 19:39:18 +0000
committerMartin Storsjo <martin@martin.st>2017-12-12 19:39:18 +0000
commitd9cfefdee8acf0ea95002b64939e0d8424624de5 (patch)
tree740b5578d36286137cbc9e6c3ea906c11117c069 /lld/MinGW
parent2a42cf4120ca964455f02cc42f02fe0dce81d2a7 (diff)
[MinGW] Don't pass -dynamicbase:no by default for arm/arm64
The linker refuses using -dynamicbase:no on these architectures. Stop passing -dynamicbase (which just reinforces the lld-link default) for simplicity. Differential Revision: https://reviews.llvm.org/D41052
Diffstat (limited to 'lld/MinGW')
-rw-r--r--lld/MinGW/Driver.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/lld/MinGW/Driver.cpp b/lld/MinGW/Driver.cpp
index ad5fa5c17b3..d08f12f9dcf 100644
--- a/lld/MinGW/Driver.cpp
+++ b/lld/MinGW/Driver.cpp
@@ -159,7 +159,9 @@ bool mingw::link(ArrayRef<const char *> ArgsArr, raw_ostream &Diag) {
if (Args.hasArg(OPT_large_address_aware))
Add("-largeaddressaware");
- Add(Args.hasArg(OPT_dynamicbase) ? "-dynamicbase" : "-dynamicbase:no");
+ if (Args.getLastArgValue(OPT_m) != "thumb2pe" &&
+ Args.getLastArgValue(OPT_m) != "arm64pe" && !Args.hasArg(OPT_dynamicbase))
+ Add("-dynamicbase:no");
if (Args.hasFlag(OPT_gc_sections, OPT_no_gc_sections, false))
Add("-opt:ref");