[llvm] ab00b10 - [AIX] Update CMake linker flags to use large glink code

David Tenty via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 8 10:17:48 PDT 2023


Author: Alison Zhang
Date: 2023-06-08T13:17:24-04:00
New Revision: ab00b10d722d5df840b68475bb219299f70955da

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

LOG: [AIX] Update CMake linker flags to use large glink code

Building clang/llvm as a debug build results in TOC overflow even when
using large code model on AIX. This review updates the
llvm/cmake/modules/HandleLLVMOptions.cmake file to use large glink code
in addition to building as a large code model.

Differential Revision: https://reviews.llvm.org/D151733

Added: 
    

Modified: 
    llvm/cmake/modules/HandleLLVMOptions.cmake

Removed: 
    


################################################################################
diff  --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake
index 1322a54ee6e99..b8e9ac9558b37 100644
--- a/llvm/cmake/modules/HandleLLVMOptions.cmake
+++ b/llvm/cmake/modules/HandleLLVMOptions.cmake
@@ -212,6 +212,8 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "AIX")
   # -fPIC does not enable the large code model for GCC on AIX but does for XL.
   if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
     append("-mcmodel=large" CMAKE_CXX_FLAGS CMAKE_C_FLAGS)
+    append("-Wl,-bglink=large"
+        CMAKE_EXE_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS)
   elseif(CMAKE_CXX_COMPILER_ID MATCHES "XL")
     # XL generates a small number of relocations not of the large model, -bbigtoc is needed.
     append("-Wl,-bbigtoc"


        


More information about the llvm-commits mailing list