diff options
author | Douglas Katzman <dougk@google.com> | 2015-08-20 18:32:26 +0000 |
---|---|---|
committer | Douglas Katzman <dougk@google.com> | 2015-08-20 18:32:26 +0000 |
commit | 38857551b5e3e6d40685c4a70948403b507aa52c (patch) | |
tree | d844471a852eb5fc05354bad585201d7f443be82 /clang/lib/Driver/Tools.cpp | |
parent | e00b497242bcc40afab112f72d90397d0d769915 (diff) | |
download | llvm-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.cpp | 18 |
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"); |