diff options
| -rw-r--r-- | clang/lib/Driver/Tools.cpp | 5 | ||||
| -rw-r--r-- | clang/test/Driver/ppc-features.cpp | 18 |
2 files changed, 22 insertions, 1 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 393f4b47ffe..2307713db7c 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -6522,8 +6522,9 @@ void gnutools::Assemble::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("-many"); } else if (getToolChain().getArch() == llvm::Triple::ppc64le) { CmdArgs.push_back("-a64"); - CmdArgs.push_back("-mppc64le"); + CmdArgs.push_back("-mppc64"); CmdArgs.push_back("-many"); + CmdArgs.push_back("-mlittle-endian"); } else if (getToolChain().getArch() == llvm::Triple::sparc) { CmdArgs.push_back("-32"); CmdArgs.push_back("-Av8plusa"); @@ -6778,6 +6779,8 @@ void gnutools::Link::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("elf32ppclinux"); else if (ToolChain.getArch() == llvm::Triple::ppc64) CmdArgs.push_back("elf64ppc"); + else if (ToolChain.getArch() == llvm::Triple::ppc64le) + CmdArgs.push_back("elf64lppc"); else if (ToolChain.getArch() == llvm::Triple::sparc) CmdArgs.push_back("elf32_sparc"); else if (ToolChain.getArch() == llvm::Triple::sparcv9) diff --git a/clang/test/Driver/ppc-features.cpp b/clang/test/Driver/ppc-features.cpp index ab4bb365a16..a7ccedf99b6 100644 --- a/clang/test/Driver/ppc-features.cpp +++ b/clang/test/Driver/ppc-features.cpp @@ -98,3 +98,21 @@ // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-crbits -mcrbits -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-CRBITS %s // CHECK-CRBITS: "-target-feature" "+crbits" +// Assembler features +// RUN: %clang -target powerpc64-unknown-linux-gnu %s -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK_BE_AS_ARGS %s +// CHECK_BE_AS_ARGS: "-mppc64" +// CHECK_BE_AS_ARGS: "-many" + +// RUN: %clang -target powerpc64le-unknown-linux-gnu %s -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK_LE_AS_ARGS %s +// CHECK_LE_AS_ARGS: "-mppc64" +// CHECK_LE_AS_ARGS: "-many" +// CHECK_LE_AS_ARGS: "-mlittle-endian" + +// linker features +// RUN: %clang -target powerpc64-unknown-linux-gnu %s -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK_BE_LD_ARGS %s +// CHECK_BE_LD_ARGS: "elf64ppc" + +// RUN: %clang -target powerpc64le-unknown-linux-gnu %s -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK_LE_LD_ARGS %s +// CHECK_LE_LD_ARGS: "elf64lppc" + + |

