Skip to content

Commit 3d11c72

Browse files
[Clang][Driver][AArch64] Add support for aarch64-amazon-linux triple
I note that the comment nearby says "They are not needed when the user has correct LLVM_DEFAULT_TARGET_TRIPLE" and "The lists should shrink over time". The behviour was diverged between X86 and aarch64: prior to this patch, a standard clang with no configuration works on x86 but not aarch64 amazon linux; the latter fails to find C++ headers and libraries.
1 parent d267daa commit 3d11c72

File tree

5 files changed

+33
-15
lines changed

5 files changed

+33
-15
lines changed

clang/lib/Driver/ToolChains/Gnu.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2470,7 +2470,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
24702470
// lists should shrink over time. Please don't add more elements to *Triples.
24712471
static const char *const AArch64LibDirs[] = {"/lib64", "/lib"};
24722472
static const char *const AArch64Triples[] = {
2473-
"aarch64-none-linux-gnu", "aarch64-redhat-linux", "aarch64-suse-linux"};
2473+
"aarch64-none-linux-gnu", "aarch64-redhat-linux", "aarch64-suse-linux",
2474+
"aarch64-amazon-linux"};
24742475
static const char *const AArch64beLibDirs[] = {"/lib"};
24752476
static const char *const AArch64beTriples[] = {"aarch64_be-none-linux-gnu"};
24762477

clang/test/Driver/Inputs/ami_linux_tree/usr/lib/gcc/aarch64-amazon-linux/7/crtbegin.o

Whitespace-only changes.

clang/test/Driver/Inputs/ami_linux_tree/usr/lib/gcc/aarch64-amazon-linux/7/crtbeginT.o

Whitespace-only changes.

clang/test/Driver/Inputs/ami_linux_tree/usr/lib/gcc/aarch64-amazon-linux/7/crtend.o

Whitespace-only changes.

clang/test/Driver/linux-ld.c

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1705,23 +1705,40 @@
17051705
// CHECK-LD-RHEL7-DTS-NOT: /usr/bin/ld
17061706
// CHECK-LD-RHEL7-DTS: [[SYSROOT]]/usr/lib/gcc/x86_64-redhat-linux/7/../../../../bin/ld
17071707

1708-
// Check whether gcc7 install works fine on Amazon Linux AMI
1708+
// Check whether gcc7 install works fine on Amazon Linux AMI targeting x86_64
17091709
// RUN: %clang -### %s -Werror -no-pie 2>&1 \
17101710
// RUN: --target=x86_64-amazon-linux -rtlib=libgcc --unwindlib=platform \
17111711
// RUN: --sysroot=%S/Inputs/ami_linux_tree \
1712-
// RUN: | FileCheck --check-prefix=CHECK-LD-AMI %s
1713-
// CHECK-LD-AMI: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1714-
// CHECK-LD-AMI: "--eh-frame-hdr"
1715-
// CHECK-LD-AMI: "-m" "elf_x86_64"
1716-
// CHECK-LD-AMI: "-dynamic-linker"
1717-
// CHECK-LD-AMI: "{{.*}}/usr/lib/gcc/x86_64-amazon-linux/7{{/|\\\\}}crtbegin.o"
1718-
// CHECK-LD-AMI: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-amazon-linux/7"
1719-
// CHECK-LD-AMI: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-amazon-linux/7/../../../../lib64"
1720-
// CHECK-LD-AMI: "-L[[SYSROOT]]/lib"
1721-
// CHECK-LD-AMI: "-L[[SYSROOT]]/usr/lib"
1722-
// CHECK-LD-AMI: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
1723-
// CHECK-LD-AMI: "-lc"
1724-
// CHECK-LD-AMI: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
1712+
// RUN: | FileCheck --check-prefix=CHECK-LD-AMI-X86_64 %s
1713+
// CHECK-LD-AMI-X86_64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1714+
// CHECK-LD-AMI-X86_64: "--eh-frame-hdr"
1715+
// CHECK-LD-AMI-X86_64: "-m" "elf_x86_64"
1716+
// CHECK-LD-AMI-X86_64: "-dynamic-linker"
1717+
// CHECK-LD-AMI-X86_64: "{{.*}}/usr/lib/gcc/x86_64-amazon-linux/7{{/|\\\\}}crtbegin.o"
1718+
// CHECK-LD-AMI-X86_64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-amazon-linux/7"
1719+
// CHECK-LD-AMI-X86_64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-amazon-linux/7/../../../../lib64"
1720+
// CHECK-LD-AMI-X86_64: "-L[[SYSROOT]]/lib"
1721+
// CHECK-LD-AMI-X86_64: "-L[[SYSROOT]]/usr/lib"
1722+
// CHECK-LD-AMI-X86_64: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
1723+
// CHECK-LD-AMI-X86_64: "-lc"
1724+
// CHECK-LD-AMI-X86_64: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
1725+
1726+
// Check whether gcc7 install works fine on Amazon Linux AMI targeting aarch64
1727+
// RUN: %clang -### %s -Werror -no-pie 2>&1 \
1728+
// RUN: --target=aarch64-amazon-linux -rtlib=libgcc --unwindlib=platform \
1729+
// RUN: --sysroot=%S/Inputs/ami_linux_tree \
1730+
// RUN: | FileCheck --check-prefix=CHECK-LD-AMI-AARCH64 %s
1731+
// CHECK-LD-AMI-AARCH64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
1732+
// CHECK-LD-AMI-AARCH64: "--eh-frame-hdr"
1733+
// CHECK-LD-AMI-AARCH64: "-dynamic-linker"
1734+
// CHECK-LD-AMI-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-amazon-linux/7{{/|\\\\}}crtbegin.o"
1735+
// CHECK-LD-AMI-AARCH64: "-L[[SYSROOT]]/usr/lib/gcc/aarch64-amazon-linux/7"
1736+
// CHECK-LD-AMI-AARCH64: "-L[[SYSROOT]]/usr/lib/gcc/aarch64-amazon-linux/7/../../../../lib64"
1737+
// CHECK-LD-AMI-AARCH64: "-L[[SYSROOT]]/lib"
1738+
// CHECK-LD-AMI-AARCH64: "-L[[SYSROOT]]/usr/lib"
1739+
// CHECK-LD-AMI-AARCH64: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
1740+
// CHECK-LD-AMI-AARCH64: "-lc"
1741+
// CHECK-LD-AMI-AARCH64: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
17251742

17261743
// Check whether the OpenEmbedded ARM libs are added correctly.
17271744
// RUN: %clang -### %s -no-pie 2>&1 \

0 commit comments

Comments
 (0)