[libcxx] r272723 - Automatically detect export lists for OS X.
Eric Fiselier via cfe-commits
cfe-commits at lists.llvm.org
Tue Jun 14 14:55:14 PDT 2016
Author: ericwf
Date: Tue Jun 14 16:55:14 2016
New Revision: 272723
URL: http://llvm.org/viewvc/llvm-project?rev=272723&view=rev
Log:
Automatically detect export lists for OS X.
Summary:
Libc++ reexports symbols from the system libc++abi using -reexport_symbols_list. This can cause a linker failure if the list contains symbols not defined in the system libc++abi.
This patch attempts to detect the OS X version and use it to determine the correct symbol list.
It's my understanding that `lib/libc++abi2.exp` should be used on 10.9 and greater. Otherwise 'lib/libc++abi.exp' should be used
This fixes PR25666 (https://llvm.org/bugs/show_bug.cgi?id=25666)
Reviewers: mclow.lists, bcraig, dexonsmith, EricWF
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D20772
Modified:
libcxx/trunk/lib/CMakeLists.txt
Modified: libcxx/trunk/lib/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/lib/CMakeLists.txt?rev=272723&r1=272722&r2=272723&view=diff
==============================================================================
--- libcxx/trunk/lib/CMakeLists.txt (original)
+++ libcxx/trunk/lib/CMakeLists.txt Tue Jun 14 16:55:14 2016
@@ -88,7 +88,21 @@ add_link_flags_if_supported(-nodefaultli
if ( APPLE AND (LIBCXX_CXX_ABI_LIBNAME STREQUAL "libcxxabi" OR
LIBCXX_CXX_ABI_LIBNAME STREQUAL "none"))
if (NOT DEFINED LIBCXX_LIBCPPABI_VERSION)
- set(LIBCXX_LIBCPPABI_VERSION "2")
+ set(LIBCXX_LIBCPPABI_VERSION "2") # Default value
+ execute_process(
+ COMMAND xcrun --show-sdk-version
+ OUTPUT_VARIABLE sdk_ver
+ RESULT_VARIABLE res
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if (res EQUAL 0)
+ message(STATUS "Found SDK version ${sdk_ver}")
+ string(REPLACE "10." "" sdk_ver "${sdk_ver}")
+ if (sdk_ver LESS 9)
+ set(LIBCXX_LIBCPPABI_VERSION "")
+ else()
+ set(LIBCXX_LIBCPPABI_VERSION "2")
+ endif()
+ endif()
endif()
if ( CMAKE_OSX_DEPLOYMENT_TARGET STREQUAL "10.6" )
More information about the cfe-commits
mailing list