https://github.com/DanielCChen created 
https://github.com/llvm/llvm-project/pull/134520

`addArchSpecificRPath` shoudl immediately return for AIX as AIX doesn't support 
`rpath` option.
`getArchSpecificLibPaths` also needs to get the triple without the OS version 
on AIX.

>From a3583c59f7797a40a11b550df5be9c56191f22a7 Mon Sep 17 00:00:00 2001
From: Daniel Chen <cdc...@ca.ibm.com>
Date: Sat, 5 Apr 2025 23:24:09 -0400
Subject: [PATCH] [driver] return in addArchSpecificRPath for AIX and also get
 the triple without the OS on AIX.

---
 clang/lib/Driver/ToolChain.cpp             | 7 ++++++-
 clang/lib/Driver/ToolChains/CommonArgs.cpp | 3 +++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp
index 36d0ae34dec86..dd3cc33b5a233 100644
--- a/clang/lib/Driver/ToolChain.cpp
+++ b/clang/lib/Driver/ToolChain.cpp
@@ -999,7 +999,12 @@ ToolChain::path_list ToolChain::getArchSpecificLibPaths() 
const {
     Paths.push_back(std::string(Path));
   };
 
-  AddPath({getTriple().str()});
+  // For AIX, get the triple without the OS version.
+  if (Triple.isOSAIX()) {
+    const llvm::Triple &TripleWithoutVersion = getTripleWithoutOSVersion();
+    AddPath({TripleWithoutVersion.str()});
+  } else
+    AddPath({getTriple().str()});
   AddPath({getOSLibName(), llvm::Triple::getArchTypeName(getArch())});
   return Paths;
 }
diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp 
b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index ddeadff8f6dfb..e5d221cbf8b51 100644
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -1252,6 +1252,9 @@ void tools::addArchSpecificRPath(const ToolChain &TC, 
const ArgList &Args,
                     options::OPT_fno_rtlib_add_rpath, false))
     return;
 
+  if (TC.getTriple().isOSAIX()) // AIX doesn't support -rpath option.
+    return;
+
   SmallVector<std::string> CandidateRPaths(TC.getArchSpecificLibPaths());
   if (const auto CandidateRPath = TC.getStdlibPath())
     CandidateRPaths.emplace_back(*CandidateRPath);

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to