diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2012-11-02 20:41:30 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2012-11-02 20:41:30 +0000 |
commit | 715852c9ce1a0b6afe1928d8da4d51e138aed851 (patch) | |
tree | 82a9830656efaa9644ef692ca3ba487153956de4 /lib/Driver/Tools.cpp | |
parent | 710392d8d8ce1a8938cee441186e5ff699b65973 (diff) |
Improve x86 android support:
* -Bsymbolic must be added for x86 as well.
* Default CPU name also set to 'core2' for x86 android.
Patch by Edwin Vane.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167307 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Driver/Tools.cpp')
-rw-r--r-- | lib/Driver/Tools.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index e9390e07aa..05487c4193 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -1110,6 +1110,8 @@ void Clang::AddSparcTargetArgs(const ArgList &Args, void Clang::AddX86TargetArgs(const ArgList &Args, ArgStringList &CmdArgs) const { + const bool isAndroid = + getToolChain().getTriple().getEnvironment() == llvm::Triple::Android; if (!Args.hasFlag(options::OPT_mred_zone, options::OPT_mno_red_zone, true) || @@ -1174,7 +1176,9 @@ void Clang::AddX86TargetArgs(const ArgList &Args, if (getToolChain().getArch() == llvm::Triple::x86_64) CPUName = "x86-64"; else if (getToolChain().getArch() == llvm::Triple::x86) - CPUName = "pentium4"; + // All x86 devices running Android have core2 as their common + // denominator. This makes a better choice than pentium4. + CPUName = isAndroid ? "core2" : "pentium4"; } } @@ -5802,8 +5806,8 @@ void linuxtools::Link::ConstructJob(Compilation &C, const JobAction &JA, const toolchains::Linux& ToolChain = static_cast<const toolchains::Linux&>(getToolChain()); const Driver &D = ToolChain.getDriver(); - const bool isAndroid = ToolChain.getTriple().getEnvironment() == - llvm::Triple::Android; + const bool isAndroid = + ToolChain.getTriple().getEnvironment() == llvm::Triple::Android; ArgStringList CmdArgs; @@ -5873,8 +5877,7 @@ void linuxtools::Link::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("-static"); } else if (Args.hasArg(options::OPT_shared)) { CmdArgs.push_back("-shared"); - if ((ToolChain.getArch() == llvm::Triple::arm - || ToolChain.getArch() == llvm::Triple::thumb) && isAndroid) { + if (isAndroid) { CmdArgs.push_back("-Bsymbolic"); } } |