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 | 7df3501b492244b1377d9f287538a54cb5816b13 (patch) | |
tree | 3962c5e7e9551196e25bdf89fdc19428450a00fb /clang/lib/Driver/Tools.cpp | |
parent | ea6ae57485c0799cd09aebaa02f12184ffc2df59 (diff) | |
download | bcm5719-llvm-7df3501b492244b1377d9f287538a54cb5816b13.tar.gz bcm5719-llvm-7df3501b492244b1377d9f287538a54cb5816b13.zip |
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.
llvm-svn: 167307
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index e9390e07aa9..05487c4193d 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/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"); } } |