[flang-commits] [flang] 3f80359 - [driver] return immediately in `addArchSpecificRPath` and `getArchSpecificLibPaths` on AIX (#134520)

via flang-commits flang-commits at lists.llvm.org
Tue Apr 29 07:39:56 PDT 2025


Author: Daniel Chen
Date: 2025-04-29T10:39:52-04:00
New Revision: 3f8035961f08d160851c40f7ac1f6e441149183c

URL: https://github.com/llvm/llvm-project/commit/3f8035961f08d160851c40f7ac1f6e441149183c
DIFF: https://github.com/llvm/llvm-project/commit/3f8035961f08d160851c40f7ac1f6e441149183c.diff

LOG: [driver] return immediately in `addArchSpecificRPath` and `getArchSpecificLibPaths` on AIX (#134520)

`addArchSpecificRPath` should immediately return for AIX as AIX doesn't
support `rpath` option.
`getArchSpecificLibPaths` should return as well as we don't want
`-L/ArchSepcificLibPaths` sent to the linker on AIX.

Added: 
    

Modified: 
    clang/lib/Driver/ToolChains/AIX.h
    clang/lib/Driver/ToolChains/CommonArgs.cpp
    flang/test/Driver/flang-ld-powerpc.f90

Removed: 
    


################################################################################
diff  --git a/clang/lib/Driver/ToolChains/AIX.h b/clang/lib/Driver/ToolChains/AIX.h
index 8f130f6b54547..23c93aaf86ba8 100644
--- a/clang/lib/Driver/ToolChains/AIX.h
+++ b/clang/lib/Driver/ToolChains/AIX.h
@@ -98,6 +98,8 @@ class LLVM_LIBRARY_VISIBILITY AIX : public ToolChain {
     return llvm::DebuggerKind::DBX;
   }
 
+  path_list getArchSpecificLibPaths() const override { return path_list(); };
+
 protected:
   Tool *buildAssembler() const override;
   Tool *buildLinker() const override;

diff  --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index 7cc4008ec1f2b..0406142fa916b 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()) // TODO: AIX doesn't support -rpath option.
+    return;
+
   SmallVector<std::string> CandidateRPaths(TC.getArchSpecificLibPaths());
   if (const auto CandidateRPath = TC.getStdlibPath())
     CandidateRPaths.emplace_back(*CandidateRPath);

diff  --git a/flang/test/Driver/flang-ld-powerpc.f90 b/flang/test/Driver/flang-ld-powerpc.f90
index a58cb1629cadc..5328077ac21af 100644
--- a/flang/test/Driver/flang-ld-powerpc.f90
+++ b/flang/test/Driver/flang-ld-powerpc.f90
@@ -23,6 +23,7 @@
 ! AIX64-LD-PER-TARGET-DEFAULT-SAME:     "[[RESOURCE_DIR]]{{/|\\\\}}lib{{/|\\\\}}powerpc64-ibm-aix{{/|\\\\}}libflang_rt.runtime.a"
 ! AIX64-LD-PER-TARGET-DEFAULT-SAME:     "-lm"
 ! AIX64-LD-PER-TARGET-DEFAULT-SAME:     "-lpthread"
+! AIX64-LD-PER-TARGET-DEFAULT-NOT:      "-L/[[RESOURCE_DIR]]{{/|\\\\}}lib{{/|\\\\}}powerpc64-ibm-aix"
 
 
 ! Check powerpc64-ibm-aix 64-bit linking to static flang-rt by option 


        


More information about the flang-commits mailing list