summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/Tools.cpp
diff options
context:
space:
mode:
authorChih-Hung Hsieh <chh@google.com>2015-07-28 16:27:56 +0000
committerChih-Hung Hsieh <chh@google.com>2015-07-28 16:27:56 +0000
commit2c656c9417d5f384815c382130813addd87f2551 (patch)
tree8396848187fa9e47b849a4e79e198067992406ca /clang/lib/Driver/Tools.cpp
parent9938310ab3357137ec5629dad3ed2ace12500764 (diff)
downloadbcm5719-llvm-2c656c9417d5f384815c382130813addd87f2551.tar.gz
bcm5719-llvm-2c656c9417d5f384815c382130813addd87f2551.zip
Add -femulated-tls flag to select the emulated TLS model.
This will be used for old targets like Android that do not support ELF TLS models. Differential Revision: http://reviews.llvm.org/D10524 llvm-svn: 243441
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r--clang/lib/Driver/Tools.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index dd281ad08f5..f5cb90efa0a 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -4036,6 +4036,12 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
Args.AddLastArg(CmdArgs, options::OPT_fstandalone_debug);
Args.AddLastArg(CmdArgs, options::OPT_fno_standalone_debug);
Args.AddLastArg(CmdArgs, options::OPT_fno_operator_names);
+ // Emulated TLS is enabled by default on Android, and can be enabled manually
+ // with -femulated-tls.
+ bool EmulatedTLSDefault = Triple.getEnvironment() == llvm::Triple::Android;
+ if (Args.hasFlag(options::OPT_femulated_tls, options::OPT_fno_emulated_tls,
+ EmulatedTLSDefault))
+ CmdArgs.push_back("-femulated-tls");
// AltiVec language extensions aren't relevant for assembling.
if (!isa<PreprocessJobAction>(JA) || Output.getType() != types::TY_PP_Asm)
Args.AddLastArg(CmdArgs, options::OPT_faltivec);
OpenPOWER on IntegriCloud