Author: ericwf Date: Thu Jun 2 03:14:28 2016 New Revision: 271500 URL: http://llvm.org/viewvc/llvm-project?rev=271500&view=rev Log: Partially revert r270816: build with -fvisibility=hidden.
This patch breaks the ABI on linux when libc++abi.a is statically linked into libc++.so. Certain libc++ symbols get exported from libc++abi.a as hidden and therefore they also get hidden in libc++.so. The symbols is question are: * _ZNKSt3__121__basic_string_commonILb1EE20__throw_out_of_rangeEv * _ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv * _ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv I imagine we just need to fix the visibility for these symbols in the libc++ headers but I'm reverting the patch until it's sorted. Modified: libcxxabi/trunk/CMakeLists.txt libcxxabi/trunk/cmake/config-ix.cmake Modified: libcxxabi/trunk/CMakeLists.txt URL: http://llvm.org/viewvc/llvm-project/libcxxabi/trunk/CMakeLists.txt?rev=271500&r1=271499&r2=271500&view=diff ============================================================================== --- libcxxabi/trunk/CMakeLists.txt (original) +++ libcxxabi/trunk/CMakeLists.txt Thu Jun 2 03:14:28 2016 @@ -293,8 +293,6 @@ else() append_if(LIBCXXABI_CXX_FLAGS LIBCXXABI_HAS_NO_EHA_FLAG -EHa-) endif() -append_if(LIBCXXABI_COMPILE_FLAGS LIBCXXABI_HAS_FVISIBILITY_HIDDEN_FLAG -fvisibility=hidden) - # Assert string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE) if (LIBCXXABI_ENABLE_ASSERTIONS) Modified: libcxxabi/trunk/cmake/config-ix.cmake URL: http://llvm.org/viewvc/llvm-project/libcxxabi/trunk/cmake/config-ix.cmake?rev=271500&r1=271499&r2=271500&view=diff ============================================================================== --- libcxxabi/trunk/cmake/config-ix.cmake (original) +++ libcxxabi/trunk/cmake/config-ix.cmake Thu Jun 2 03:14:28 2016 @@ -8,7 +8,6 @@ check_cxx_compiler_flag(-fPIC check_cxx_compiler_flag(-fno-exceptions LIBCXXABI_HAS_NO_EXCEPTIONS_FLAG) check_cxx_compiler_flag(-fno-rtti LIBCXXABI_HAS_NO_RTTI_FLAG) check_cxx_compiler_flag(-fstrict-aliasing LIBCXXABI_HAS_FSTRICT_ALIASING_FLAG) -check_cxx_compiler_flag(-fvisibility=hidden LIBCXXABI_HAS_FVISIBILITY_HIDDEN_FLAG) check_cxx_compiler_flag(-nodefaultlibs LIBCXXABI_HAS_NODEFAULTLIBS_FLAG) check_cxx_compiler_flag(-nostdinc++ LIBCXXABI_HAS_NOSTDINCXX_FLAG) check_cxx_compiler_flag(-Wall LIBCXXABI_HAS_WALL_FLAG) _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits