--- ./CMake/AbseilHelpers.cmake_orig 2026-06-02 10:46:37.129751482 -0500 +++ ./CMake/AbseilHelpers.cmake 2026-06-02 10:46:37.797558060 -0500 @@ -255,11 +255,17 @@ "${_gtest_link_define}" ) + elseif(_build_type STREQUAL "static" OR _build_type STREQUAL "shared") add_library(${_NAME} "") target_sources(${_NAME} PRIVATE ${ABSL_CC_LIB_SRCS} ${ABSL_CC_LIB_HDRS}) - if(APPLE) + if(CMAKE_SYSTEM_NAME STREQUAL "AIX") + # On AIX, always set INSTALL_RPATH from CMAKE_INSTALL_RPATH + # This prevents the literal $CMAKE_INSTALL_RPATH from appearing set_target_properties(${_NAME} PROPERTIES + INSTALL_RPATH "${CMAKE_INSTALL_RPATH}") + elseif(APPLE) + set_target_properties(${_NAME} PROPERTIES INSTALL_RPATH "@loader_path") elseif(UNIX) set_target_properties(${_NAME} PROPERTIES @@ -275,7 +281,7 @@ message(FATAL_ERROR "Invalid build type: ${_build_type}") endif() - # Linker language can be inferred from sources, but in the case of DLLs we + #Linker language can be inferred from sources, but in the case of DLLs we # don't have any .cc files so it would be ambiguous. We could set it # explicitly only in the case of DLLs but, because "CXX" is always the # correct linker language for static or for shared libraries, we set it @@ -459,6 +465,11 @@ # Top-level application CMake projects should ensure a consistent C++ # standard for all compiled sources by setting CMAKE_CXX_STANDARD. target_compile_features(${_NAME} PUBLIC ${ABSL_INTERNAL_CXX_STD_FEATURE}) + endif() + + + if (${CMAKE_SYSTEM_NAME} MATCHES "AIX") + set_target_properties(${_NAME} PROPERTIES ENABLE_EXPORTS 1) endif() add_test(NAME ${_NAME} COMMAND ${_NAME}) --- ./CMakeLists.txt_orig 2026-06-02 10:46:59.513106280 -0500 +++ ./CMakeLists.txt 2026-06-02 10:46:36.809755963 -0500 @@ -41,9 +41,22 @@ option(ABSL_ENABLE_INSTALL "Enable install rule" ON) endif() -set(CMAKE_INSTALL_RPATH "$ORIGIN") -set(CMAKE_INSTALL_RPATH_USE_LINK_PATH ON) -set(CMAKE_BUILD_RPATH_USE_ORIGIN ON) +if(CMAKE_SYSTEM_NAME STREQUAL "AIX") + # On AIX, disable automatic RPATH handling and set it explicitly + set(CMAKE_SKIP_BUILD_RPATH FALSE) + set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) + set(CMAKE_INSTALL_RPATH_USE_LINK_PATH OFF) + # Set the install RPATH if not already defined + if(NOT DEFINED CMAKE_INSTALL_RPATH) + set(CMAKE_INSTALL_RPATH "") + endif() +else() + if(NOT DEFINED CMAKE_INSTALL_RPATH) + set(CMAKE_INSTALL_RPATH "$ORIGIN") + endif() + set(CMAKE_INSTALL_RPATH_USE_LINK_PATH ON) + set(CMAKE_BUILD_RPATH_USE_ORIGIN ON) +endif() option(ABSL_PROPAGATE_CXX_STD "Use CMake C++ standard meta features (e.g. cxx_std_17) that propagate to targets that link to Abseil"