[clang] [Clang] Add azurelinux to fallback triples (PR #200894)
Tobias Brick via cfe-commits
cfe-commits at lists.llvm.org
Mon Jun 8 07:32:21 PDT 2026
https://github.com/tobiasb-ms updated https://github.com/llvm/llvm-project/pull/200894
>From f89031e5e3c2d4c907c55be1e4d66a96206b8a17 Mon Sep 17 00:00:00 2001
From: Tobias Brick <tobiasb at microsoft.com>
Date: Fri, 29 May 2026 19:08:42 +0000
Subject: [PATCH] [Clang] Add azurelinux to fallback triples
---
clang/lib/Driver/ToolChains/Gnu.cpp | 6 +++--
.../Driver/Inputs/azurelinux_tree/lib/.keep | 0
.../aarch64-azurelinux-linux/11/crtbegin.o | 0
.../gcc/aarch64-azurelinux-linux/11/crtend.o | 0
.../gcc/x86_64-azurelinux-linux/11/crtbegin.o | 0
.../gcc/x86_64-azurelinux-linux/11/crtend.o | 0
.../Inputs/azurelinux_tree/usr/lib64/crt1.o | 0
.../Inputs/azurelinux_tree/usr/lib64/crti.o | 0
.../Inputs/azurelinux_tree/usr/lib64/crtn.o | 0
clang/test/Driver/linux-ld.c | 22 +++++++++++++++++++
10 files changed, 26 insertions(+), 2 deletions(-)
create mode 100644 clang/test/Driver/Inputs/azurelinux_tree/lib/.keep
create mode 100644 clang/test/Driver/Inputs/azurelinux_tree/usr/lib/gcc/aarch64-azurelinux-linux/11/crtbegin.o
create mode 100644 clang/test/Driver/Inputs/azurelinux_tree/usr/lib/gcc/aarch64-azurelinux-linux/11/crtend.o
create mode 100644 clang/test/Driver/Inputs/azurelinux_tree/usr/lib/gcc/x86_64-azurelinux-linux/11/crtbegin.o
create mode 100644 clang/test/Driver/Inputs/azurelinux_tree/usr/lib/gcc/x86_64-azurelinux-linux/11/crtend.o
create mode 100644 clang/test/Driver/Inputs/azurelinux_tree/usr/lib64/crt1.o
create mode 100644 clang/test/Driver/Inputs/azurelinux_tree/usr/lib64/crti.o
create mode 100644 clang/test/Driver/Inputs/azurelinux_tree/usr/lib64/crtn.o
diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
index 9aa0ec38a1191..d54df41bb8797 100644
--- a/clang/lib/Driver/ToolChains/Gnu.cpp
+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
@@ -2336,7 +2336,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
// lists should shrink over time. Please don't add more elements to *Triples.
static const char *const AArch64LibDirs[] = {"/lib64", "/lib"};
static const char *const AArch64Triples[] = {
- "aarch64-none-linux-gnu", "aarch64-redhat-linux", "aarch64-suse-linux"};
+ "aarch64-none-linux-gnu", "aarch64-redhat-linux", "aarch64-suse-linux",
+ "aarch64-azurelinux-linux"};
static const char *const AArch64beLibDirs[] = {"/lib"};
static const char *const AArch64beTriples[] = {"aarch64_be-none-linux-gnu"};
@@ -2364,7 +2365,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
"x86_64-pc-linux-gnu", "x86_64-redhat-linux6E",
"x86_64-redhat-linux", "x86_64-suse-linux",
"x86_64-manbo-linux-gnu", "x86_64-slackware-linux",
- "x86_64-unknown-linux", "x86_64-amazon-linux"};
+ "x86_64-unknown-linux", "x86_64-amazon-linux",
+ "x86_64-azurelinux-linux"};
static const char *const X32Triples[] = {"x86_64-linux-gnux32",
"x86_64-pc-linux-gnux32"};
static const char *const X32LibDirs[] = {"/libx32", "/lib"};
diff --git a/clang/test/Driver/Inputs/azurelinux_tree/lib/.keep b/clang/test/Driver/Inputs/azurelinux_tree/lib/.keep
new file mode 100644
index 0000000000000..e69de29bb2d1d
diff --git a/clang/test/Driver/Inputs/azurelinux_tree/usr/lib/gcc/aarch64-azurelinux-linux/11/crtbegin.o b/clang/test/Driver/Inputs/azurelinux_tree/usr/lib/gcc/aarch64-azurelinux-linux/11/crtbegin.o
new file mode 100644
index 0000000000000..e69de29bb2d1d
diff --git a/clang/test/Driver/Inputs/azurelinux_tree/usr/lib/gcc/aarch64-azurelinux-linux/11/crtend.o b/clang/test/Driver/Inputs/azurelinux_tree/usr/lib/gcc/aarch64-azurelinux-linux/11/crtend.o
new file mode 100644
index 0000000000000..e69de29bb2d1d
diff --git a/clang/test/Driver/Inputs/azurelinux_tree/usr/lib/gcc/x86_64-azurelinux-linux/11/crtbegin.o b/clang/test/Driver/Inputs/azurelinux_tree/usr/lib/gcc/x86_64-azurelinux-linux/11/crtbegin.o
new file mode 100644
index 0000000000000..e69de29bb2d1d
diff --git a/clang/test/Driver/Inputs/azurelinux_tree/usr/lib/gcc/x86_64-azurelinux-linux/11/crtend.o b/clang/test/Driver/Inputs/azurelinux_tree/usr/lib/gcc/x86_64-azurelinux-linux/11/crtend.o
new file mode 100644
index 0000000000000..e69de29bb2d1d
diff --git a/clang/test/Driver/Inputs/azurelinux_tree/usr/lib64/crt1.o b/clang/test/Driver/Inputs/azurelinux_tree/usr/lib64/crt1.o
new file mode 100644
index 0000000000000..e69de29bb2d1d
diff --git a/clang/test/Driver/Inputs/azurelinux_tree/usr/lib64/crti.o b/clang/test/Driver/Inputs/azurelinux_tree/usr/lib64/crti.o
new file mode 100644
index 0000000000000..e69de29bb2d1d
diff --git a/clang/test/Driver/Inputs/azurelinux_tree/usr/lib64/crtn.o b/clang/test/Driver/Inputs/azurelinux_tree/usr/lib64/crtn.o
new file mode 100644
index 0000000000000..e69de29bb2d1d
diff --git a/clang/test/Driver/linux-ld.c b/clang/test/Driver/linux-ld.c
index 8de1988d606cf..787b22f266283 100644
--- a/clang/test/Driver/linux-ld.c
+++ b/clang/test/Driver/linux-ld.c
@@ -1789,6 +1789,28 @@
// CHECK-LD-AMI: "-lc"
// CHECK-LD-AMI: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"
+
+// Check that Azure Linux GCC is found via fallback triple detection (x86_64).
+// The sysroot has GCC installed under x86_64-azurelinux-linux, but we target
+// the generic x86_64-unknown-linux-gnu to exercise the fallback triple list.
+// RUN: %clang -### %s -no-pie 2>&1 \
+// RUN: --target=x86_64-unknown-linux-gnu -rtlib=libgcc --unwindlib=platform \
+// RUN: --sysroot=%S/Inputs/azurelinux_tree \
+// RUN: | FileCheck --check-prefix=CHECK-LD-AZURELINUX %s
+// CHECK-LD-AZURELINUX: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
+// CHECK-LD-AZURELINUX: "{{.*}}/usr/lib/gcc/x86_64-azurelinux-linux/11{{/|\\\\}}crtbegin.o"
+// CHECK-LD-AZURELINUX: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-azurelinux-linux/11"
+// CHECK-LD-AZURELINUX: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-azurelinux-linux/11/../../../../lib64"
+
+// Check that Azure Linux GCC is found via fallback triple detection (aarch64).
+// RUN: %clang -### %s -no-pie 2>&1 \
+// RUN: --target=aarch64-unknown-linux-gnu -rtlib=libgcc --unwindlib=platform \
+// RUN: --sysroot=%S/Inputs/azurelinux_tree \
+// RUN: | FileCheck --check-prefix=CHECK-LD-AZURELINUX-AARCH64 %s
+// CHECK-LD-AZURELINUX-AARCH64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
+// CHECK-LD-AZURELINUX-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-azurelinux-linux/11{{/|\\\\}}crtbegin.o"
+// CHECK-LD-AZURELINUX-AARCH64: "-L[[SYSROOT]]/usr/lib/gcc/aarch64-azurelinux-linux/11"
+// CHECK-LD-AZURELINUX-AARCH64: "-L[[SYSROOT]]/usr/lib/gcc/aarch64-azurelinux-linux/11/../../../../lib64"
// Check whether the OpenEmbedded ARM libs are added correctly.
// RUN: %clang -### %s -no-pie 2>&1 \
// RUN: --target=arm-oe-linux-gnueabi -rtlib=libgcc --unwindlib=platform \
More information about the cfe-commits
mailing list