[libc++] Allow running ABI list tests with different ABI versions

Summary:
Currently, the ABI list test only works for ABI version 1. This commit
allows running the ABI list test with ABI version 2. It also adds an
ABI list file for ABI v2 on Mac OS X.

Reviewers: EricWF

Subscribers: mgorny, christof, dexonsmith, llvm-commits, mclow.lists

Differential Revision: https://reviews.llvm.org/D49509

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@337477 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Louis Dionne
2018-07-19 18:02:50 +00:00
parent f1f54dc0fb
commit c69e1a0615
4 changed files with 2425 additions and 17 deletions

View File

@@ -8,29 +8,19 @@ endif()
# Detect if we are building in the same configuration used to generate
# the abilist files.
if (DEFINED GENERIC_TARGET_TRIPLE
AND EXISTS "${CMAKE_CURRENT_LIST_DIR}/${GENERIC_TARGET_TRIPLE}.abilist"
set(ABILIST_FILE "${CMAKE_CURRENT_LIST_DIR}/${GENERIC_TARGET_TRIPLE}.v${LIBCXX_ABI_VERSION}.abilist")
set(SYMDIFF_EXE "${LIBCXX_SOURCE_DIR}/utils/sym_diff.py")
if (EXISTS "${ABILIST_FILE}"
AND TARGET cxx_shared
AND ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "libcxxabi" OR
(APPLE AND "${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "default"))
AND NOT LIBCXX_ABI_UNSTABLE
AND LIBCXX_ABI_VERSION EQUAL "1")
set(LIBCXX_HAS_ABILIST_CONFIGURATION 1 CACHE INTERNAL "")
else()
if (NOT DEFINED LIBCXX_HAS_ABILIST_CONFIGURATION)
message(STATUS "libc++ configuration differs from the abilist configuration. "
"check-cxx-abilist target is not supported")
endif()
set(LIBCXX_HAS_ABILIST_CONFIGURATION 0 CACHE INTERNAL "")
endif()
if (LIBCXX_HAS_ABILIST_CONFIGURATION)
set(ABILIST_FILE "${CMAKE_CURRENT_LIST_DIR}/${GENERIC_TARGET_TRIPLE}.abilist")
set(SYMDIFF_EXE "${LIBCXX_SOURCE_DIR}/utils/sym_diff.py")
AND NOT LIBCXX_ABI_UNSTABLE)
add_custom_target(check-cxx-abilist
${SYMDIFF_EXE} --only-stdlib-symbols --strict ${ABILIST_FILE}
$<TARGET_SONAME_FILE:cxx_shared>
DEPENDS cxx_shared
COMMENT "Testing ABI compatibility...")
else()
message(STATUS "there is no pre-generated ABI list for the requested libc++ configuration. "
"check-cxx-abilist target is not supported")
endif()

File diff suppressed because it is too large Load Diff