forked from OSchip/llvm-project
[libc++] Re-apply "Always build c++experimental.a""
This re-appliesbb939931a1
, which had been reverted by09cebfb978
because it broke Chromium. The issues seen by Chromium should be addressed by1d0f79558c
. Differential Revision: https://reviews.llvm.org/D128927
This commit is contained in:
parent
1d0f79558c
commit
7300a651f5
|
@ -80,7 +80,6 @@ if(WIN32)
|
|||
set(RUNTIMES_${target}_CMAKE_SYSTEM_NAME Windows CACHE STRING "")
|
||||
set(RUNTIMES_${target}_CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "")
|
||||
set(RUNTIMES_${target}_LIBCXX_ABI_VERSION 2 CACHE STRING "")
|
||||
set(RUNTIMES_${target}_LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY OFF CACHE BOOL "")
|
||||
set(RUNTIMES_${target}_LIBCXX_ENABLE_FILESYSTEM OFF CACHE BOOL "")
|
||||
set(RUNTIMES_${target}_LIBCXX_ENABLE_ABI_LINKER_SCRIPT OFF CACHE BOOL "")
|
||||
set(RUNTIMES_${target}_LIBCXX_ENABLE_SHARED OFF CACHE BOOL "")
|
||||
|
|
|
@ -51,7 +51,6 @@ endif()
|
|||
|
||||
if(WIN32)
|
||||
set(LIBCXX_ABI_VERSION 2 CACHE STRING "")
|
||||
set(LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY OFF CACHE BOOL "")
|
||||
set(LIBCXX_ENABLE_FILESYSTEM OFF CACHE BOOL "")
|
||||
set(LIBCXX_ENABLE_ABI_LINKER_SCRIPT OFF CACHE BOOL "")
|
||||
set(LIBCXX_ENABLE_SHARED OFF CACHE BOOL "")
|
||||
|
|
|
@ -685,7 +685,6 @@ macro(add_custom_libcxx name prefix)
|
|||
-DLIBCXXABI_HERMETIC_STATIC_LIBRARY=ON
|
||||
-DLIBCXXABI_INCLUDE_TESTS=OFF
|
||||
-DLIBCXX_CXX_ABI=libcxxabi
|
||||
-DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF
|
||||
-DLIBCXX_ENABLE_SHARED=OFF
|
||||
-DLIBCXX_HERMETIC_STATIC_LIBRARY=ON
|
||||
-DLIBCXX_INCLUDE_BENCHMARKS=OFF
|
||||
|
|
|
@ -55,7 +55,6 @@ option(LIBCXX_ENABLE_ASSERTIONS
|
|||
by users in their own code regardless of this option." OFF)
|
||||
option(LIBCXX_ENABLE_SHARED "Build libc++ as a shared library." ON)
|
||||
option(LIBCXX_ENABLE_STATIC "Build libc++ as a static library." ON)
|
||||
option(LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY "Build libc++experimental.a" ON)
|
||||
set(ENABLE_FILESYSTEM_DEFAULT ON)
|
||||
if (WIN32 AND NOT MINGW)
|
||||
# Filesystem is buildable for windows, but it requires __int128 helper
|
||||
|
@ -167,9 +166,6 @@ cmake_dependent_option(LIBCXX_INSTALL_STATIC_LIBRARY
|
|||
cmake_dependent_option(LIBCXX_INSTALL_SHARED_LIBRARY
|
||||
"Install the shared libc++ library." ON
|
||||
"LIBCXX_ENABLE_SHARED;LIBCXX_INSTALL_LIBRARY" OFF)
|
||||
cmake_dependent_option(LIBCXX_INSTALL_EXPERIMENTAL_LIBRARY
|
||||
"Install libc++experimental.a" ON
|
||||
"LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY;LIBCXX_INSTALL_LIBRARY" OFF)
|
||||
|
||||
option(LIBCXX_ABI_UNSTABLE "Use the unstable ABI of libc++. This is equivalent to specifying LIBCXX_ABI_VERSION=n, where n is the not-yet-stable version." OFF)
|
||||
if (LIBCXX_ABI_UNSTABLE)
|
||||
|
@ -930,11 +926,7 @@ add_subdirectory(include)
|
|||
add_subdirectory(src)
|
||||
add_subdirectory(utils)
|
||||
|
||||
set(LIBCXX_TEST_DEPS "")
|
||||
|
||||
if (LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY)
|
||||
list(APPEND LIBCXX_TEST_DEPS cxx_experimental)
|
||||
endif()
|
||||
set(LIBCXX_TEST_DEPS "cxx_experimental")
|
||||
|
||||
if (LIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY)
|
||||
list(APPEND LIBCXX_TEST_DEPS cxx_external_threads)
|
||||
|
|
|
@ -45,7 +45,7 @@ build_script:
|
|||
#############################################################################
|
||||
- cmake -G "%GENERATOR%" %CMAKE_OPTIONS%
|
||||
"-DCMAKE_BUILD_TYPE=%configuration%"
|
||||
"-DLLVM_PATH=C:\projects\deps\llvm" -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF
|
||||
"-DLLVM_PATH=C:\projects\deps\llvm"
|
||||
-DLLVM_LIT_ARGS="-sv --show-xfail --show-unsupported"
|
||||
%APPVEYOR_BUILD_FOLDER%
|
||||
|
||||
|
|
|
@ -9,7 +9,6 @@ set(LIBCXX_USE_COMPILER_RT ON CACHE BOOL "")
|
|||
set(LIBCXX_ENABLE_ASSERTIONS OFF CACHE BOOL "")
|
||||
set(LIBCXX_ABI_VERSION "1" CACHE STRING "")
|
||||
set(LIBCXX_ENABLE_ABI_LINKER_SCRIPT OFF CACHE BOOL "")
|
||||
set(LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY OFF CACHE BOOL "")
|
||||
set(LIBCXX_ENABLE_SHARED ON CACHE BOOL "")
|
||||
set(LIBCXX_ENABLE_STATIC OFF CACHE BOOL "")
|
||||
set(LIBCXXABI_ENABLE_SHARED ON CACHE BOOL "")
|
||||
|
|
|
@ -4,7 +4,6 @@ set(CMAKE_POSITION_INDEPENDENT_CODE OFF CACHE BOOL "")
|
|||
set(LIBCXX_USE_COMPILER_RT ON CACHE BOOL "")
|
||||
set(LIBCXX_ENABLE_ASSERTIONS OFF CACHE BOOL "")
|
||||
set(LIBCXX_ABI_VERSION "1" CACHE STRING "")
|
||||
set(LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY OFF CACHE BOOL "")
|
||||
set(LIBCXX_ENABLE_STATIC ON CACHE BOOL "")
|
||||
set(LIBCXX_ENABLE_SHARED ON CACHE BOOL "")
|
||||
set(LIBCXX_CXX_ABI libcxxabi CACHE STRING "")
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
set(LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY OFF CACHE BOOL "")
|
||||
set(LIBCXX_TEST_PARAMS "enable_experimental=False" CACHE STRING "")
|
||||
set(LIBCXXABI_TEST_PARAMS "${LIBCXX_TEST_PARAMS}" CACHE STRING "")
|
||||
set(LIBCXX_ENABLE_INCOMPLETE_FEATURES OFF CACHE BOOL "")
|
||||
|
|
|
@ -99,8 +99,7 @@ it is the simplest way to build.
|
|||
-T "ClangCL" ^
|
||||
-DLLVM_ENABLE_RUNTIMES=libcxx ^
|
||||
-DLIBCXX_ENABLE_SHARED=YES ^
|
||||
-DLIBCXX_ENABLE_STATIC=NO ^
|
||||
-DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=NO
|
||||
-DLIBCXX_ENABLE_STATIC=NO
|
||||
> cmake --build build
|
||||
|
||||
CMake + ninja (MSVC)
|
||||
|
@ -131,8 +130,7 @@ In either case, then run:
|
|||
> cmake -G Ninja -S runtimes -B build ^
|
||||
-DCMAKE_C_COMPILER=clang-cl ^
|
||||
-DCMAKE_CXX_COMPILER=clang-cl ^
|
||||
-DLLVM_ENABLE_RUNTIMES=libcxx ^
|
||||
-DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=NO
|
||||
-DLLVM_ENABLE_RUNTIMES=libcxx
|
||||
> ninja -C build cxx
|
||||
> ninja -C build check-cxx
|
||||
|
||||
|
@ -298,23 +296,6 @@ libc++ specific options
|
|||
Path where target-specific libc++ headers should be installed. If a relative
|
||||
path, relative to ``CMAKE_INSTALL_PREFIX``.
|
||||
|
||||
.. _libc++experimental options:
|
||||
|
||||
libc++experimental Specific Options
|
||||
------------------------------------
|
||||
|
||||
.. option:: LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY:BOOL
|
||||
|
||||
**Default**: ``ON``
|
||||
|
||||
Build and test libc++experimental.a.
|
||||
|
||||
.. option:: LIBCXX_INSTALL_EXPERIMENTAL_LIBRARY:BOOL
|
||||
|
||||
**Default**: ``LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY AND LIBCXX_INSTALL_LIBRARY``
|
||||
|
||||
Install libc++experimental.a alongside libc++.
|
||||
|
||||
|
||||
.. _ABI Library Specific Options:
|
||||
|
||||
|
|
|
@ -34,22 +34,20 @@ matches that Standard in the library.
|
|||
library until the standard has been ratified.
|
||||
|
||||
|
||||
Using libc++experimental and ``<experimental/...>``
|
||||
===================================================
|
||||
Enabling experimental C++ Library features
|
||||
==========================================
|
||||
|
||||
Libc++ provides implementations of experimental technical specifications
|
||||
in a separate library, ``libc++experimental.a``. Users of ``<experimental/...>``
|
||||
headers may be required to link ``-lc++experimental``. Note that not all
|
||||
vendors ship ``libc++experimental.a``, and as a result, you may not be
|
||||
able to use those experimental features.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ clang++ test.cpp -lc++experimental
|
||||
Libc++ provides implementations of some experimental features. Experimental features
|
||||
are either Technical Specifications (TSes) or official features that were voted to
|
||||
the Standard but whose implementation is not complete or stable yet in libc++. Those
|
||||
are disabled by default because they are neither API nor ABI stable. However, the
|
||||
``_LIBCPP_ENABLE_EXPERIMENTAL`` macro can be defined to turn those features on. Note
|
||||
that you will also need to link to the appropriate ``libc++experimental.a`` static
|
||||
archive.
|
||||
|
||||
.. warning::
|
||||
Experimental libraries are Experimental.
|
||||
* The contents of the ``<experimental/...>`` headers and ``libc++experimental.a``
|
||||
* The contents of the ``<experimental/...>`` headers and the associated static
|
||||
library will not remain compatible between versions.
|
||||
* No guarantees of API or ABI stability are provided.
|
||||
* When the standardized version of an experimental feature is implemented,
|
||||
|
|
|
@ -315,32 +315,31 @@ endif()
|
|||
# Add a meta-target for both libraries.
|
||||
add_custom_target(cxx DEPENDS ${LIBCXX_BUILD_TARGETS})
|
||||
|
||||
if (LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY)
|
||||
set(LIBCXX_EXPERIMENTAL_SOURCES
|
||||
experimental/memory_resource.cpp
|
||||
)
|
||||
add_library(cxx_experimental STATIC ${LIBCXX_EXPERIMENTAL_SOURCES})
|
||||
target_link_libraries(cxx_experimental PUBLIC cxx-headers)
|
||||
if (LIBCXX_ENABLE_SHARED)
|
||||
target_link_libraries(cxx_experimental PRIVATE cxx_shared)
|
||||
else()
|
||||
target_link_libraries(cxx_experimental PRIVATE cxx_static)
|
||||
endif()
|
||||
|
||||
set_target_properties(cxx_experimental
|
||||
PROPERTIES
|
||||
COMPILE_FLAGS "${LIBCXX_COMPILE_FLAGS}"
|
||||
OUTPUT_NAME "c++experimental"
|
||||
set(LIBCXX_EXPERIMENTAL_SOURCES
|
||||
experimental/memory_resource.cpp
|
||||
)
|
||||
cxx_add_common_build_flags(cxx_experimental)
|
||||
|
||||
if (LIBCXX_HERMETIC_STATIC_LIBRARY)
|
||||
# _LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS can be defined in __config_site
|
||||
# too. Define it in the same way here, to avoid redefinition conflicts.
|
||||
target_compile_definitions(cxx_experimental PRIVATE _LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS=)
|
||||
endif()
|
||||
add_library(cxx_experimental STATIC ${LIBCXX_EXPERIMENTAL_SOURCES})
|
||||
target_link_libraries(cxx_experimental PUBLIC cxx-headers)
|
||||
if (LIBCXX_ENABLE_SHARED)
|
||||
target_link_libraries(cxx_experimental PRIVATE cxx_shared)
|
||||
else()
|
||||
target_link_libraries(cxx_experimental PRIVATE cxx_static)
|
||||
endif()
|
||||
|
||||
if (LIBCXX_HERMETIC_STATIC_LIBRARY)
|
||||
# _LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS can be defined in __config_site
|
||||
# too. Define it in the same way here, to avoid redefinition conflicts.
|
||||
target_compile_definitions(cxx_experimental PRIVATE _LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS=)
|
||||
endif()
|
||||
|
||||
set_target_properties(cxx_experimental
|
||||
PROPERTIES
|
||||
COMPILE_FLAGS "${LIBCXX_COMPILE_FLAGS}"
|
||||
OUTPUT_NAME "c++experimental"
|
||||
)
|
||||
cxx_add_common_build_flags(cxx_experimental)
|
||||
|
||||
|
||||
if (LIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY)
|
||||
set(LIBCXX_EXTERNAL_THREADING_SUPPORT_SOURCES
|
||||
|
@ -376,7 +375,7 @@ if (LIBCXX_INSTALL_STATIC_LIBRARY)
|
|||
RUNTIME DESTINATION ${LIBCXX_INSTALL_RUNTIME_DIR} COMPONENT cxx)
|
||||
endif()
|
||||
|
||||
if(LIBCXX_INSTALL_EXPERIMENTAL_LIBRARY)
|
||||
if (LIBCXX_INSTALL_LIBRARY)
|
||||
install(TARGETS cxx_experimental
|
||||
LIBRARY DESTINATION ${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
|
||||
ARCHIVE DESTINATION ${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
|
||||
|
@ -393,10 +392,7 @@ endif()
|
|||
|
||||
if (NOT CMAKE_CONFIGURATION_TYPES)
|
||||
if(LIBCXX_INSTALL_LIBRARY)
|
||||
set(lib_install_target cxx)
|
||||
endif()
|
||||
if (LIBCXX_INSTALL_EXPERIMENTAL_LIBRARY)
|
||||
set(experimental_lib_install_target cxx_experimental)
|
||||
set(lib_install_target "cxx;cxx_experimental")
|
||||
endif()
|
||||
if(LIBCXX_INSTALL_HEADERS)
|
||||
set(header_install_target install-cxx-headers)
|
||||
|
@ -406,7 +402,7 @@ if (NOT CMAKE_CONFIGURATION_TYPES)
|
|||
endif()
|
||||
add_custom_target(install-cxx
|
||||
DEPENDS ${lib_install_target}
|
||||
${experimental_lib_install_target}
|
||||
cxx_experimental
|
||||
${header_install_target}
|
||||
${pstl_install_target}
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
|
@ -414,7 +410,7 @@ if (NOT CMAKE_CONFIGURATION_TYPES)
|
|||
-P "${LIBCXX_BINARY_DIR}/cmake_install.cmake")
|
||||
add_custom_target(install-cxx-stripped
|
||||
DEPENDS ${lib_install_target}
|
||||
${experimental_lib_install_target}
|
||||
cxx_experimental
|
||||
${header_install_target}
|
||||
${pstl_install_target}
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
|
|
|
@ -93,10 +93,6 @@ if (NOT LIBCXX_ENABLE_EXCEPTIONS)
|
|||
serialize_lit_param(enable_exceptions False)
|
||||
endif()
|
||||
|
||||
if (NOT LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY)
|
||||
serialize_lit_param(enable_experimental False)
|
||||
endif()
|
||||
|
||||
if (NOT LIBCXX_ENABLE_RTTI)
|
||||
serialize_lit_param(enable_rtti False)
|
||||
endif()
|
||||
|
|
|
@ -8,6 +8,11 @@
|
|||
|
||||
// UNSUPPORTED: c++03
|
||||
|
||||
// Aligned allocation is required by std::experimental::pmr, but it was not provided
|
||||
// before macosx10.13 and as a result we get linker errors when deploying to older than
|
||||
// macosx10.13.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12}}
|
||||
|
||||
// <experimental/memory_resource>
|
||||
|
||||
// memory_resource * new_delete_resource()
|
||||
|
|
|
@ -8,6 +8,11 @@
|
|||
|
||||
// UNSUPPORTED: c++03
|
||||
|
||||
// Aligned allocation is required by std::experimental::pmr, but it was not provided
|
||||
// before macosx10.13 and as a result we get linker errors when deploying to older than
|
||||
// macosx10.13.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12}}
|
||||
|
||||
// <experimental/memory_resource>
|
||||
|
||||
// memory_resource * new_delete_resource()
|
||||
|
|
|
@ -8,6 +8,11 @@
|
|||
|
||||
// UNSUPPORTED: c++03
|
||||
|
||||
// Aligned allocation is required by std::experimental::pmr, but it was not provided
|
||||
// before macosx10.13 and as a result we get linker errors when deploying to older than
|
||||
// macosx10.13.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12}}
|
||||
|
||||
// <experimental/memory_resource>
|
||||
|
||||
// template <class T> class polymorphic_allocator
|
||||
|
|
|
@ -8,6 +8,11 @@
|
|||
|
||||
// UNSUPPORTED: c++03
|
||||
|
||||
// Aligned allocation is required by std::experimental::pmr, but it was not provided
|
||||
// before macosx10.13 and as a result we get linker errors when deploying to older than
|
||||
// macosx10.13.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12}}
|
||||
|
||||
// <memory_resource>
|
||||
|
||||
// template <class T> class polymorphic_allocator
|
||||
|
|
|
@ -8,6 +8,11 @@
|
|||
|
||||
// UNSUPPORTED: c++03
|
||||
|
||||
// Aligned allocation is required by std::experimental::pmr, but it was not provided
|
||||
// before macosx10.13 and as a result we get linker errors when deploying to older than
|
||||
// macosx10.13.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12}}
|
||||
|
||||
// <experimental/memory_resource>
|
||||
|
||||
// template <class T> class polymorphic_allocator
|
||||
|
|
|
@ -8,6 +8,11 @@
|
|||
|
||||
// UNSUPPORTED: c++03
|
||||
|
||||
// Aligned allocation is required by std::experimental::pmr, but it was not provided
|
||||
// before macosx10.13 and as a result we get linker errors when deploying to older than
|
||||
// macosx10.13.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12}}
|
||||
|
||||
// <experimental/memory_resource>
|
||||
|
||||
// template <class T> class polymorphic_allocator
|
||||
|
|
|
@ -8,6 +8,11 @@
|
|||
|
||||
// UNSUPPORTED: c++03
|
||||
|
||||
// Aligned allocation is required by std::experimental::pmr, but it was not provided
|
||||
// before macosx10.13 and as a result we get linker errors when deploying to older than
|
||||
// macosx10.13.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12}}
|
||||
|
||||
// <experimental/memory_resource>
|
||||
|
||||
// template <class T> class polymorphic_allocator
|
||||
|
|
|
@ -8,6 +8,11 @@
|
|||
|
||||
// UNSUPPORTED: c++03
|
||||
|
||||
// Aligned allocation is required by std::experimental::pmr, but it was not provided
|
||||
// before macosx10.13 and as a result we get linker errors when deploying to older than
|
||||
// macosx10.13.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12}}
|
||||
|
||||
// <experimental/deque>
|
||||
|
||||
// namespace std { namespace experimental { namespace pmr {
|
||||
|
|
|
@ -8,6 +8,11 @@
|
|||
|
||||
// UNSUPPORTED: c++03
|
||||
|
||||
// Aligned allocation is required by std::experimental::pmr, but it was not provided
|
||||
// before macosx10.13 and as a result we get linker errors when deploying to older than
|
||||
// macosx10.13.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12}}
|
||||
|
||||
// <experimental/forward_list>
|
||||
|
||||
// namespace std { namespace experimental { namespace pmr {
|
||||
|
|
|
@ -8,6 +8,11 @@
|
|||
|
||||
// UNSUPPORTED: c++03
|
||||
|
||||
// Aligned allocation is required by std::experimental::pmr, but it was not provided
|
||||
// before macosx10.13 and as a result we get linker errors when deploying to older than
|
||||
// macosx10.13.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12}}
|
||||
|
||||
// <experimental/list>
|
||||
|
||||
// namespace std { namespace experimental { namespace pmr {
|
||||
|
|
|
@ -8,6 +8,11 @@
|
|||
|
||||
// UNSUPPORTED: c++03
|
||||
|
||||
// Aligned allocation is required by std::experimental::pmr, but it was not provided
|
||||
// before macosx10.13 and as a result we get linker errors when deploying to older than
|
||||
// macosx10.13.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12}}
|
||||
|
||||
// <experimental/map>
|
||||
|
||||
// namespace std { namespace experimental { namespace pmr {
|
||||
|
|
|
@ -9,6 +9,11 @@
|
|||
// UNSUPPORTED: c++03
|
||||
// UNSUPPORTED: no-localization
|
||||
|
||||
// Aligned allocation is required by std::experimental::pmr, but it was not provided
|
||||
// before macosx10.13 and as a result we get linker errors when deploying to older than
|
||||
// macosx10.13.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12}}
|
||||
|
||||
// <experimental/regex>
|
||||
|
||||
// namespace std { namespace experimental { namespace pmr {
|
||||
|
|
|
@ -8,6 +8,11 @@
|
|||
|
||||
// UNSUPPORTED: c++03
|
||||
|
||||
// Aligned allocation is required by std::experimental::pmr, but it was not provided
|
||||
// before macosx10.13 and as a result we get linker errors when deploying to older than
|
||||
// macosx10.13.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12}}
|
||||
|
||||
// <experimental/set>
|
||||
|
||||
// namespace std { namespace experimental { namespace pmr {
|
||||
|
|
|
@ -8,6 +8,11 @@
|
|||
|
||||
// UNSUPPORTED: c++03
|
||||
|
||||
// Aligned allocation is required by std::experimental::pmr, but it was not provided
|
||||
// before macosx10.13 and as a result we get linker errors when deploying to older than
|
||||
// macosx10.13.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12}}
|
||||
|
||||
// <experimental/string>
|
||||
|
||||
// namespace std { namespace experimental { namespace pmr {
|
||||
|
|
|
@ -8,6 +8,11 @@
|
|||
|
||||
// UNSUPPORTED: c++03
|
||||
|
||||
// Aligned allocation is required by std::experimental::pmr, but it was not provided
|
||||
// before macosx10.13 and as a result we get linker errors when deploying to older than
|
||||
// macosx10.13.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12}}
|
||||
|
||||
// <experimental/unordered_map>
|
||||
|
||||
// namespace std { namespace experimental { namespace pmr {
|
||||
|
|
|
@ -8,6 +8,11 @@
|
|||
|
||||
// UNSUPPORTED: c++03
|
||||
|
||||
// Aligned allocation is required by std::experimental::pmr, but it was not provided
|
||||
// before macosx10.13 and as a result we get linker errors when deploying to older than
|
||||
// macosx10.13.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12}}
|
||||
|
||||
// <experimental/unordered_set>
|
||||
|
||||
// namespace std { namespace experimental { namespace pmr {
|
||||
|
|
|
@ -8,6 +8,11 @@
|
|||
|
||||
// UNSUPPORTED: c++03
|
||||
|
||||
// Aligned allocation is required by std::experimental::pmr, but it was not provided
|
||||
// before macosx10.13 and as a result we get linker errors when deploying to older than
|
||||
// macosx10.13.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12}}
|
||||
|
||||
// <experimental/vector>
|
||||
|
||||
// namespace std { namespace experimental { namespace pmr {
|
||||
|
|
|
@ -8,6 +8,11 @@
|
|||
|
||||
// UNSUPPORTED: c++03
|
||||
|
||||
// Aligned allocation is required by std::experimental::pmr, but it was not provided
|
||||
// before macosx10.13 and as a result we get linker errors when deploying to older than
|
||||
// macosx10.13.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12}}
|
||||
|
||||
// <experimental/memory_resource>
|
||||
|
||||
// memory_resource * new_delete_resource()
|
||||
|
|
|
@ -8,6 +8,11 @@
|
|||
|
||||
// UNSUPPORTED: c++03
|
||||
|
||||
// Aligned allocation is required by std::experimental::pmr, but it was not provided
|
||||
// before macosx10.13 and as a result we get linker errors when deploying to older than
|
||||
// macosx10.13.
|
||||
// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12}}
|
||||
|
||||
// <experimental/memory_resource>
|
||||
|
||||
// memory_resource * null_memory_resource()
|
||||
|
|
|
@ -105,7 +105,6 @@ function generate-cmake-libcxx-win() {
|
|||
# -D_LIBCPP_HAS_NO_INT128 (both when building the library itself and
|
||||
# when building tests) to allow enabling filesystem for running tests,
|
||||
# even if it uses a non-permanent ABI.
|
||||
|
||||
generate-cmake-base \
|
||||
-DLLVM_ENABLE_RUNTIMES="libcxx" \
|
||||
-DCMAKE_C_COMPILER=clang-cl \
|
||||
|
@ -523,7 +522,7 @@ clang-cl-dll)
|
|||
# correctly when libc++ visibility attributes indicate dllimport linkage
|
||||
# anyway), thus just disable the experimental library. Remove this
|
||||
# setting when cmake and the test driver does the right thing automatically.
|
||||
generate-cmake-libcxx-win -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF
|
||||
generate-cmake-libcxx-win -DLIBCXX_TEST_PARAMS="enable_experimental=False"
|
||||
echo "+++ Running the libc++ tests"
|
||||
${NINJA} -vC "${BUILD_DIR}" check-cxx
|
||||
;;
|
||||
|
|
|
@ -159,15 +159,19 @@ DEFAULT_PARAMETERS = [
|
|||
])),
|
||||
|
||||
Parameter(name='enable_experimental', choices=[True, False], type=bool, default=True,
|
||||
help="Whether to enable tests for experimental C++ libraries (typically Library Fundamentals TSes).",
|
||||
help="Whether to enable tests for experimental C++ Library features.",
|
||||
actions=lambda experimental: [] if not experimental else [
|
||||
AddFeature('c++experimental'),
|
||||
# When linking in MSVC mode via the Clang driver, a -l<foo>
|
||||
# maps to <foo>.lib, so we need to use -llibc++experimental here
|
||||
# to make it link against the static libc++experimental.lib.
|
||||
# We can't check for the feature 'msvc' in available_features
|
||||
# as those features are added after processing parameters.
|
||||
PrependLinkFlag(lambda config: '-llibc++experimental' if _isMSVC(config) else '-lc++experimental')
|
||||
#
|
||||
# TODO: Switch to using the appropriate experimental compiler flag once
|
||||
# all compilers we support implement that flag.
|
||||
AddFeature('c++experimental'),
|
||||
PrependLinkFlag(lambda cfg: '-llibc++experimental' if _isMSVC(cfg) else '-lc++experimental'),
|
||||
AddCompileFlag('-D_LIBCPP_ENABLE_EXPERIMENTAL'),
|
||||
]),
|
||||
|
||||
Parameter(name='long_tests', choices=[True, False], type=bool, default=True,
|
||||
|
|
Loading…
Reference in New Issue