forked from OSchip/llvm-project
[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
This commit is contained in:
parent
6e5c7e6037
commit
d8e7ed6457
|
@ -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";
|
||||
|
|
|
@ -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 \
|
||||
|
|
Loading…
Reference in New Issue