[clang] [Driver] Add linker options to support statical linking to shared flang-rt on AIX. (PR #131822)

Daniel Chen via cfe-commits cfe-commits at lists.llvm.org
Sun Mar 30 08:24:05 PDT 2025


================
@@ -127,9 +127,19 @@ void aix::Linker::ConstructJob(Compilation &C, const JobAction &JA,
   }
 
   // Force static linking when "-static" is present.
-  if (Args.hasArg(options::OPT_static))
+  if (Args.hasArg(options::OPT_static)) {
     CmdArgs.push_back("-bnso");
 
+    if (D.IsFlangMode()) {
+      // The folllowing linker options are needed to statically link to the
+      // shared libflang_rt.runtime.a on AIX
+      CmdArgs.push_back("-bI:/usr/lib/syscalls.exp");
+      CmdArgs.push_back("-bI:/usr/lib/aio.exp");
+      CmdArgs.push_back("-bI:/usr/lib/threads.exp");
+      CmdArgs.push_back("-lcrypt");
+    }
----------------
DanielCChen wrote:

These extra options will be linked in when `flang` is the invocation driver. As the driver code is written in PR #131041, `libflang_rt.runtime.a` is always linked in with the full path name no matter if it is static or shared.


https://github.com/llvm/llvm-project/pull/131822


More information about the cfe-commits mailing list