https://github.com/jakeegan updated https://github.com/llvm/llvm-project/pull/140850
>From 120423abadbfd63dbb50387fb5ce26ff0f3ff257 Mon Sep 17 00:00:00 2001 From: Jake Egan <jake.e...@ibm.com> Date: Wed, 21 May 2025 01:51:00 -0400 Subject: [PATCH 1/4] Handle triple environment component for target runtime directory on AIX --- clang/lib/Driver/ToolChain.cpp | 7 +++++++ clang/test/Driver/aix-print-runtime-dir.c | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp index 664aafad0f680..90fb0375d1925 100644 --- a/clang/lib/Driver/ToolChain.cpp +++ b/clang/lib/Driver/ToolChain.cpp @@ -935,6 +935,13 @@ ToolChain::getTargetSubDirPath(StringRef BaseDir) const { if (auto Path = getPathForTriple(T)) return *Path; + // On AIX, the environment component is not used in the target sub dir name. + if (T.isOSAIX() && T.hasEnvironment()) { + llvm::Triple AIXTriple(T.getArchName(), T.getVendorName(), llvm::Triple::getOSTypeName(T.getOS())); + if (auto Path = getPathForTriple(AIXTriple)) + return *Path; + } + if (T.isOSzOS() && (!T.getOSVersion().empty() || !T.getEnvironmentVersion().empty())) { // Build the triple without version information diff --git a/clang/test/Driver/aix-print-runtime-dir.c b/clang/test/Driver/aix-print-runtime-dir.c index ffa4d15c21208..ad841cb4f9b5b 100644 --- a/clang/test/Driver/aix-print-runtime-dir.c +++ b/clang/test/Driver/aix-print-runtime-dir.c @@ -16,6 +16,10 @@ // RUN: -resource-dir=%S/Inputs/resource_dir_with_per_target_subdir\ // RUN: | FileCheck --check-prefix=PRINT-RUNTIME-DIR64-PER-TARGET %s +// RUN: %clang -print-runtime-dir --target=powerpc-ibm-aix-unknown \ +// RUN: -resource-dir=%S/Inputs/resource_dir_with_per_target_subdir\ +// RUN: | FileCheck --check-prefix=PRINT-RUNTIME-DIR32-PER-TARGET %s + // PRINT-RUNTIME-DIR: lib{{/|\\}}aix{{$}} // PRINT-RUNTIME-DIR32-PER-TARGET: lib{{/|\\}}powerpc-ibm-aix{{$}} // PRINT-RUNTIME-DIR64-PER-TARGET: lib{{/|\\}}powerpc64-ibm-aix{{$}} >From 6ed30e6b6b1a1627c554f2ec7c08d5014a21251c Mon Sep 17 00:00:00 2001 From: Jake Egan <jake.e...@ibm.com> Date: Wed, 21 May 2025 09:45:50 -0400 Subject: [PATCH 2/4] Fix formatting --- clang/lib/Driver/ToolChain.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp index 90fb0375d1925..4d66a53dad134 100644 --- a/clang/lib/Driver/ToolChain.cpp +++ b/clang/lib/Driver/ToolChain.cpp @@ -937,7 +937,8 @@ ToolChain::getTargetSubDirPath(StringRef BaseDir) const { // On AIX, the environment component is not used in the target sub dir name. if (T.isOSAIX() && T.hasEnvironment()) { - llvm::Triple AIXTriple(T.getArchName(), T.getVendorName(), llvm::Triple::getOSTypeName(T.getOS())); + llvm::Triple AIXTriple(T.getArchName(), T.getVendorName(), + llvm::Triple::getOSTypeName(T.getOS())); if (auto Path = getPathForTriple(AIXTriple)) return *Path; } >From 2f230ce42da85029964bfa82c96eb09bb2cfae90 Mon Sep 17 00:00:00 2001 From: Jake Egan <jake.e...@ibm.com> Date: Thu, 22 May 2025 22:11:59 -0400 Subject: [PATCH 3/4] Only strip -unknown environment component --- clang/lib/Driver/ToolChain.cpp | 8 ++++---- clang/test/Driver/aix-print-runtime-dir.c | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp index 4d66a53dad134..9875f2096f89b 100644 --- a/clang/lib/Driver/ToolChain.cpp +++ b/clang/lib/Driver/ToolChain.cpp @@ -935,10 +935,10 @@ ToolChain::getTargetSubDirPath(StringRef BaseDir) const { if (auto Path = getPathForTriple(T)) return *Path; - // On AIX, the environment component is not used in the target sub dir name. - if (T.isOSAIX() && T.hasEnvironment()) { - llvm::Triple AIXTriple(T.getArchName(), T.getVendorName(), - llvm::Triple::getOSTypeName(T.getOS())); + if (T.isOSAIX() && T.getEnvironment() == Triple::UnknownEnvironment) { + // Strip unknown environment from the triple. + const llvm::Triple AIXTriple(llvm::Triple(T.getArchName(), T.getVendorName(), + llvm::Triple::getOSTypeName(T.getOS()))); if (auto Path = getPathForTriple(AIXTriple)) return *Path; } diff --git a/clang/test/Driver/aix-print-runtime-dir.c b/clang/test/Driver/aix-print-runtime-dir.c index ad841cb4f9b5b..16fe59c918804 100644 --- a/clang/test/Driver/aix-print-runtime-dir.c +++ b/clang/test/Driver/aix-print-runtime-dir.c @@ -18,8 +18,9 @@ // RUN: %clang -print-runtime-dir --target=powerpc-ibm-aix-unknown \ // RUN: -resource-dir=%S/Inputs/resource_dir_with_per_target_subdir\ -// RUN: | FileCheck --check-prefix=PRINT-RUNTIME-DIR32-PER-TARGET %s +// RUN: | FileCheck --check-prefix=PRINT-RUNTIME-DIR-UNKNOWN-ENV %s // PRINT-RUNTIME-DIR: lib{{/|\\}}aix{{$}} // PRINT-RUNTIME-DIR32-PER-TARGET: lib{{/|\\}}powerpc-ibm-aix{{$}} // PRINT-RUNTIME-DIR64-PER-TARGET: lib{{/|\\}}powerpc64-ibm-aix{{$}} +// PRINT-RUNTIME-DIR-UNKNOWN-ENV: lib{{/|\\}}powerpc-ibm-aix >From 2d679ad7daa1c48a7cf04b1329a54849da89b29f Mon Sep 17 00:00:00 2001 From: Jake Egan <jake.e...@ibm.com> Date: Thu, 22 May 2025 22:15:15 -0400 Subject: [PATCH 4/4] Fix formatting --- clang/lib/Driver/ToolChain.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp index 9875f2096f89b..db37dccbd40b8 100644 --- a/clang/lib/Driver/ToolChain.cpp +++ b/clang/lib/Driver/ToolChain.cpp @@ -937,8 +937,9 @@ ToolChain::getTargetSubDirPath(StringRef BaseDir) const { if (T.isOSAIX() && T.getEnvironment() == Triple::UnknownEnvironment) { // Strip unknown environment from the triple. - const llvm::Triple AIXTriple(llvm::Triple(T.getArchName(), T.getVendorName(), - llvm::Triple::getOSTypeName(T.getOS()))); + const llvm::Triple AIXTriple( + llvm::Triple(T.getArchName(), T.getVendorName(), + llvm::Triple::getOSTypeName(T.getOS()))); if (auto Path = getPathForTriple(AIXTriple)) return *Path; } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits