From 26b803177456112b4c6c2d30b7c3dc4d439af7e2 Mon Sep 17 00:00:00 2001 From: David Tenty Date: Thu, 19 Aug 2021 23:01:22 -0400 Subject: [PATCH] [CMake][AIX] Disable visibility options in build Visibility options currently have limited support on AIX and may cause warnings or errors depending on the build compiler used. Reviewed By: ZarkoCA Differential Revision: https://reviews.llvm.org/D108467 --- llvm/cmake/modules/HandleLLVMOptions.cmake | 4 ++-- llvm/lib/Target/CMakeLists.txt | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake index 278a38a..1d5552d 100644 --- a/llvm/cmake/modules/HandleLLVMOptions.cmake +++ b/llvm/cmake/modules/HandleLLVMOptions.cmake @@ -341,9 +341,9 @@ if( LLVM_ENABLE_PIC ) endif() endif() -if(NOT WIN32 AND NOT CYGWIN AND NOT (${CMAKE_SYSTEM_NAME} MATCHES "AIX" AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU")) +if(NOT WIN32 AND NOT CYGWIN AND NOT (${CMAKE_SYSTEM_NAME} MATCHES "AIX")) # MinGW warns if -fvisibility-inlines-hidden is used. - # GCC on AIX warns if -fvisibility-inlines-hidden is used. + # GCC on AIX warns if -fvisibility-inlines-hidden is used and Clang on AIX doesn't currently support visibility. check_cxx_compiler_flag("-fvisibility-inlines-hidden" SUPPORTS_FVISIBILITY_INLINES_HIDDEN_FLAG) append_if(SUPPORTS_FVISIBILITY_INLINES_HIDDEN_FLAG "-fvisibility-inlines-hidden" CMAKE_CXX_FLAGS) endif() diff --git a/llvm/lib/Target/CMakeLists.txt b/llvm/lib/Target/CMakeLists.txt index 417fd83..35a8e9a 100644 --- a/llvm/lib/Target/CMakeLists.txt +++ b/llvm/lib/Target/CMakeLists.txt @@ -22,6 +22,7 @@ add_llvm_component_library(LLVMTarget # When building shared objects for each target there are some internal APIs # that are used across shared objects which we can't hide. if (NOT BUILD_SHARED_LIBS AND NOT APPLE AND + NOT (${CMAKE_SYSTEM_NAME} MATCHES "AIX") AND NOT DEFINED CMAKE_CXX_VISIBILITY_PRESET) # Set default visibility to hidden, so we don't export all the Target classes # in libLLVM.so. -- 2.7.4