diff --git a/compiler-rt/cmake/base-config-ix.cmake b/compiler-rt/cmake/base-config-ix.cmake index d92bc0e71fa1a..c2a861583b9c1 100644 --- a/compiler-rt/cmake/base-config-ix.cmake +++ b/compiler-rt/cmake/base-config-ix.cmake @@ -109,7 +109,7 @@ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" lib) set(COMPILER_RT_INSTALL_LIBRARY_DIR "${default_install_path}" CACHE PATH "Path where built compiler-rt libraries should be installed.") -else(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) +else() set(COMPILER_RT_OUTPUT_LIBRARY_DIR ${COMPILER_RT_OUTPUT_DIR}/lib/${COMPILER_RT_OS_DIR}) extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "lib/${COMPILER_RT_OS_DIR}") diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt index 18b6ee85fae8d..5639061bea206 100644 --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -1190,9 +1190,9 @@ endif() # Build with _XOPEN_SOURCE on AIX, as stray macros in _ALL_SOURCE mode tend to # break things. In this case we need to enable the large-file API as well. if (UNIX AND ${CMAKE_SYSTEM_NAME} MATCHES "AIX") - add_compile_definitions(_XOPEN_SOURCE=700) - add_compile_definitions(_LARGE_FILE_API) - add_compile_options(-pthread) + add_compile_definitions(_XOPEN_SOURCE=700) + add_compile_definitions(_LARGE_FILE_API) + add_compile_options(-pthread) # Modules should be built with -shared -Wl,-G, so we can use runtime linking # with plugins. @@ -1200,6 +1200,13 @@ if (UNIX AND ${CMAKE_SYSTEM_NAME} MATCHES "AIX") # Also set the correct flags for building shared libraries. string(APPEND CMAKE_SHARED_LINKER_FLAGS " -shared") + + # Set LLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF as AIX doesn't support it + if (LLVM_ENABLE_PER_TARGET_RUNTIME_DIR) + message(WARNING + "LLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON is not supported on AIX. LLVM_ENABLE_PER_TARGET_RUNTIME_DIR is set to OFF.") + set(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR OFF CACHE BOOL "" FORCE) + endif() endif() # Build with _XOPEN_SOURCE on z/OS. diff --git a/runtimes/CMakeLists.txt b/runtimes/CMakeLists.txt index 7f1e2ae065d6c..437dcb1365b18 100644 --- a/runtimes/CMakeLists.txt +++ b/runtimes/CMakeLists.txt @@ -223,6 +223,13 @@ endif() # This can be used to detect whether we're in the runtimes build. set(LLVM_RUNTIMES_BUILD ON) +if (LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND UNIX AND ${CMAKE_SYSTEM_NAME} MATCHES "AIX") + # Set LLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF as AIX doesn't support it + message(WARNING + "LLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON is not supported on AIX. LLVM_ENABLE_PER_TARGET_RUNTIME_DIR is set to OFF.") + set(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR OFF CACHE BOOL "" FORCE) +endif() + foreach(entry ${runtimes}) get_filename_component(projName ${entry} NAME)