aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Driver/Tools.cpp
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@apple.com>2015-12-18 20:37:54 +0000
committerBob Wilson <bob.wilson@apple.com>2015-12-18 20:37:54 +0000
commit2b2a0ae76d36232a8ac67855dce8f36a956433f4 (patch)
tree610e720643903620afec630ae37f9a669c2ffc17 /clang/lib/Driver/Tools.cpp
parent21dc8bdd9e3efd1b660b91c6f27eb9cb38517205 (diff)
downloadllvm-2b2a0ae76d36232a8ac67855dce8f36a956433f4.zip
llvm-2b2a0ae76d36232a8ac67855dce8f36a956433f4.tar.gz
llvm-2b2a0ae76d36232a8ac67855dce8f36a956433f4.tar.bz2
PIC should not be enabled by default on Darwin with -static.
r245667 changed -static so that it doesn't override an explicit -fPIC option, but -static should still change the default for Darwin for -fno-PIC. This matches longstanding GCC and Clang behavior on Darwin and changing it would be disruptive, with no significant benefit. http://reviews.llvm.org/D15455 rdar://problem/23811045 llvm-svn: 256026
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r--clang/lib/Driver/Tools.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index c35aa1c..a86308d 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -3226,6 +3226,9 @@ ParsePICArgs(const ToolChain &ToolChain, const llvm::Triple &Triple,
// ToolChain.getTriple() and Triple?
bool PIE = ToolChain.isPIEDefault();
bool PIC = PIE || ToolChain.isPICDefault();
+ // The Darwin default to use PIC does not apply when using -static.
+ if (ToolChain.getTriple().isOSDarwin() && Args.hasArg(options::OPT_static))
+ PIE = PIC = false;
bool IsPICLevelTwo = PIC;
bool KernelOrKext =