summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Smith <peter.smith@linaro.org>2018-09-03 12:36:32 +0000
committerPeter Smith <peter.smith@linaro.org>2018-09-03 12:36:32 +0000
commitd8e7ed6457b1ecad3ec2dc41151092e5a637540c (patch)
tree49dd95b93de2bfc1488f23f29b0025b056cfa8d5
parent6e5c7e6037a43c42efa9d3a2af2704322f704824 (diff)
downloadbcm5719-llvm-d8e7ed6457b1ecad3ec2dc41151092e5a637540c.tar.gz
bcm5719-llvm-d8e7ed6457b1ecad3ec2dc41151092e5a637540c.zip
[Aarch64] Fix linker emulation for Aarch64 big endian
This patch fixes target linker emulation for aarch64 big endian. aarch64_be_linux is not recognized by gnu ld. The equivalent emulation mode supported by gnu ld is aarch64linuxb. Patch by: Bharathi Seshadri Reviewed by: Peter Smith Differential Revision: https://reviews.llvm.org/D42930 llvm-svn: 341312
-rw-r--r--clang/lib/Driver/ToolChains/Gnu.cpp2
-rw-r--r--clang/test/Driver/linux-ld.c8
2 files changed, 9 insertions, 1 deletions
diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
index 9e24a631765..89119308490 100644
--- a/clang/lib/Driver/ToolChains/Gnu.cpp
+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
@@ -237,7 +237,7 @@ static const char *getLDMOption(const llvm::Triple &T, const ArgList &Args) {
case llvm::Triple::aarch64:
return "aarch64linux";
case llvm::Triple::aarch64_be:
- return "aarch64_be_linux";
+ return "aarch64linuxb";
case llvm::Triple::arm:
case llvm::Triple::thumb:
return "armelf_linux_eabi";
diff --git a/clang/test/Driver/linux-ld.c b/clang/test/Driver/linux-ld.c
index 6079c7458d7..030753cb2b1 100644
--- a/clang/test/Driver/linux-ld.c
+++ b/clang/test/Driver/linux-ld.c
@@ -1754,6 +1754,14 @@
// CHECK-ARMV7EB: "--be8"
// CHECK-ARMV7EB: "-m" "armelfb_linux_eabi"
+// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
+// RUN: --target=aarch64_be-unknown-linux \
+// RUN: --gcc-toolchain="" \
+// RUN: --sysroot=%S/Inputs/basic_linux_tree \
+// RUN: | FileCheck --check-prefix=CHECK-AARCH64BE %s
+// CHECK-AARCH64BE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
+// CHECK-AARCH64BE: "-m" "aarch64linuxb"
+
// Check dynamic-linker for musl-libc
// RUN: %clang %s -### -o %t.o 2>&1 \
// RUN: --target=i386-pc-linux-musl \
OpenPOWER on IntegriCloud