diff options
author | Chih-Hung Hsieh <chh@google.com> | 2015-07-28 16:27:56 +0000 |
---|---|---|
committer | Chih-Hung Hsieh <chh@google.com> | 2015-07-28 16:27:56 +0000 |
commit | 2c656c9417d5f384815c382130813addd87f2551 (patch) | |
tree | 8396848187fa9e47b849a4e79e198067992406ca /clang/lib/Driver | |
parent | 9938310ab3357137ec5629dad3ed2ace12500764 (diff) | |
download | bcm5719-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')
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 6 |
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); |