[llvm] d4cb392 - [AIX][LTO] Properly respect LDR_CNTRL and set MAXDATA32 to 0xA0000000 at DSA.
Wael Yehia via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 29 14:16:16 PST 2022
Author: Wael Yehia
Date: 2022-11-29T22:15:59Z
New Revision: d4cb39287c50234e15d11e1b5bc90e9c7ebf08b7
URL: https://github.com/llvm/llvm-project/commit/d4cb39287c50234e15d11e1b5bc90e9c7ebf08b7
DIFF: https://github.com/llvm/llvm-project/commit/d4cb39287c50234e15d11e1b5bc90e9c7ebf08b7.diff
LOG: [AIX][LTO] Properly respect LDR_CNTRL and set MAXDATA32 to 0xA0000000 at DSA.
Reviewed By: rzurob
Differential Revision: https://reviews.llvm.org/D138944
Added:
Modified:
llvm/lib/LTO/LTOCodeGenerator.cpp
Removed:
################################################################################
diff --git a/llvm/lib/LTO/LTOCodeGenerator.cpp b/llvm/lib/LTO/LTOCodeGenerator.cpp
index b1f0cf9a7480..1f1c9bb5f896 100644
--- a/llvm/lib/LTO/LTOCodeGenerator.cpp
+++ b/llvm/lib/LTO/LTOCodeGenerator.cpp
@@ -261,13 +261,18 @@ bool LTOCodeGenerator::runAIXSystemAssembler(SmallString<128> &AssemblyFile) {
}
}
+ // Setup the LDR_CNTRL variable
+ std::string LDR_CNTRL_var = "LDR_CNTRL=MAXDATA32=0xA0000000 at DSA";
+ if (Optional<std::string> V = sys::Process::GetEnv("LDR_CNTRL"))
+ LDR_CNTRL_var += ("@" + *V);
+
// Prepare inputs for the assember.
const auto &Triple = TargetMach->getTargetTriple();
const char *Arch = Triple.isArch64Bit() ? "-a64" : "-a32";
std::string ObjectFileName(AssemblyFile);
ObjectFileName[ObjectFileName.size() - 1] = 'o';
SmallVector<StringRef, 8> Args = {
- "/bin/env", "LDR_CNTRL=MAXDATA32=0x80000000@${LDR_CNTRL}",
+ "/bin/env", LDR_CNTRL_var,
AssemblerPath, Arch,
"-many", "-o",
ObjectFileName, AssemblyFile};
More information about the llvm-commits
mailing list