diff options
author | Bob Wilson <bob.wilson@apple.com> | 2015-12-18 20:37:54 +0000 |
---|---|---|
committer | Bob Wilson <bob.wilson@apple.com> | 2015-12-18 20:37:54 +0000 |
commit | 2b2a0ae76d36232a8ac67855dce8f36a956433f4 (patch) | |
tree | 610e720643903620afec630ae37f9a669c2ffc17 /clang/lib/Driver/Tools.cpp | |
parent | 21dc8bdd9e3efd1b660b91c6f27eb9cb38517205 (diff) | |
download | llvm-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.cpp | 3 |
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 = |