================ @@ -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:
**3. Testing and Maintainability:** The tests in clang/test/Driver/aix-ld.c are designed around this implementation. Moving the logic would complicate our test setup and risk unintended side effects. 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