summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/ToolChains/Arch/PPC.cpp
diff options
context:
space:
mode:
authorStrahinja Petrovic <strahinja.petrovic@rt-rk.com>2018-04-11 12:24:44 +0000
committerStrahinja Petrovic <strahinja.petrovic@rt-rk.com>2018-04-11 12:24:44 +0000
commit269a6e7952fcf76a1442b36c76729d2b554c6663 (patch)
treeb8e2f175ec55ac49fc9099abea75a5496aef68fc /clang/lib/Driver/ToolChains/Arch/PPC.cpp
parentf41ad5c59efd7a11d78b9742228dcf858bd33d84 (diff)
downloadbcm5719-llvm-269a6e7952fcf76a1442b36c76729d2b554c6663.tar.gz
bcm5719-llvm-269a6e7952fcf76a1442b36c76729d2b554c6663.zip
[PowerPC] Option for secure plt mode
This patch enables option for secure plt mode in clang (-msecure-plt). Differential Revision: https://reviews.llvm.org/D44921 llvm-svn: 329795
Diffstat (limited to 'clang/lib/Driver/ToolChains/Arch/PPC.cpp')
-rw-r--r--clang/lib/Driver/ToolChains/Arch/PPC.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/lib/Driver/ToolChains/Arch/PPC.cpp b/clang/lib/Driver/ToolChains/Arch/PPC.cpp
index 7c7e1c70e55..f6a95962ace 100644
--- a/clang/lib/Driver/ToolChains/Arch/PPC.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/PPC.cpp
@@ -106,6 +106,16 @@ void ppc::getPPCTargetFeatures(const Driver &D, const llvm::Triple &Triple,
ppc::FloatABI FloatABI = ppc::getPPCFloatABI(D, Args);
if (FloatABI == ppc::FloatABI::Soft)
Features.push_back("-hard-float");
+
+ ppc::ReadGOTPtrMode ReadGOT = ppc::getPPCReadGOTPtrMode(D, Args);
+ if (ReadGOT == ppc::ReadGOTPtrMode::SecurePlt)
+ Features.push_back("+secure-plt");
+}
+
+ppc::ReadGOTPtrMode ppc::getPPCReadGOTPtrMode(const Driver &D, const ArgList &Args) {
+ if (Args.getLastArg(options::OPT_msecure_plt))
+ return ppc::ReadGOTPtrMode::SecurePlt;
+ return ppc::ReadGOTPtrMode::Bss;
}
ppc::FloatABI ppc::getPPCFloatABI(const Driver &D, const ArgList &Args) {
OpenPOWER on IntegriCloud