aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Driver/Tools.cpp
diff options
context:
space:
mode:
authorDouglas Katzman <dougk@google.com>2015-08-20 18:32:26 +0000
committerDouglas Katzman <dougk@google.com>2015-08-20 18:32:26 +0000
commit38857551b5e3e6d40685c4a70948403b507aa52c (patch)
treed844471a852eb5fc05354bad585201d7f443be82 /clang/lib/Driver/Tools.cpp
parente00b497242bcc40afab112f72d90397d0d769915 (diff)
downloadllvm-38857551b5e3e6d40685c4a70948403b507aa52c.zip
llvm-38857551b5e3e6d40685c4a70948403b507aa52c.tar.gz
llvm-38857551b5e3e6d40685c4a70948403b507aa52c.tar.bz2
[Sparc] Add '-EL' when invoking gcc to link little-endian binaries.
Differential Revision: http://reviews.llvm.org/D12201 llvm-svn: 245595
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r--clang/lib/Driver/Tools.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index 8be92fe..1a2a028 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -5617,12 +5617,22 @@ void gcc::Common::ConstructJob(Compilation &C, const JobAction &JA,
//
// FIXME: The triple class should directly provide the information we want
// here.
- const llvm::Triple::ArchType Arch = getToolChain().getArch();
- if (Arch == llvm::Triple::x86 || Arch == llvm::Triple::ppc)
+ switch (getToolChain().getArch()) {
+ default:
+ break;
+ case llvm::Triple::x86:
+ case llvm::Triple::ppc:
CmdArgs.push_back("-m32");
- else if (Arch == llvm::Triple::x86_64 || Arch == llvm::Triple::ppc64 ||
- Arch == llvm::Triple::ppc64le)
+ break;
+ case llvm::Triple::x86_64:
+ case llvm::Triple::ppc64:
+ case llvm::Triple::ppc64le:
CmdArgs.push_back("-m64");
+ break;
+ case llvm::Triple::sparcel:
+ CmdArgs.push_back("-EL");
+ break;
+ }
if (Output.isFilename()) {
CmdArgs.push_back("-o");