================
@@ -338,6 +338,13 @@ void aix::Linker::ConstructJob(Compilation &C, const 
JobAction &JA,
     CmdArgs.push_back("-lpthread");
   }
   const char *Exec = Args.MakeArgString(ToolChain.GetLinkerPath());
+    
+// Required for 64-bit atomic operations used in sanitizer runtimes 
+// (e.g., sanitizer_common's atomic utilities). On 32-bit AIX, these 
+// are not natively supported, necessitating linkage with -latomic.
+  if (Sanitize.hasAnySanitizer() && IsArch32Bit) {
+    CmdArgs.push_back("-latomic");
----------------
honeygoyal wrote:

while I appreciate the suggestion and understand the merits of aligning with 
IBM’s downstream practices, I believe that maintaining the target-specific 
logic in `AIX.cpp` is the best course for now. This decision is based on 
ensuring clarity, minimizing risk, and preserving consistency with the 
community’s expected behavior.

Please let me know if there are additional points to consider.

https://github.com/llvm/llvm-project/pull/125388
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to