Skip to content

Commit c6f3b7b

Browse files
authoredNov 6, 2024··
[libc++] Refactor the configuration macros to being always defined (#112094)
This is a follow-up to #89178. This updates the `<__config_site>` macros.
1 parent 5acc4a3 commit c6f3b7b

File tree

215 files changed

+1064
-1082
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

215 files changed

+1064
-1082
lines changed
 

‎libcxx/CMakeLists.txt

+18-16
Original file line numberDiff line numberDiff line change
@@ -641,6 +641,8 @@ target_compile_options(cxx-sanitizer-flags INTERFACE ${SANITIZER_FLAGS})
641641
string(FIND "${LLVM_USE_SANITIZER}" "Address" building_with_asan)
642642
if (NOT "${building_with_asan}" STREQUAL "-1")
643643
config_define(ON _LIBCPP_INSTRUMENTED_WITH_ASAN)
644+
else()
645+
config_define(OFF _LIBCPP_INSTRUMENTED_WITH_ASAN)
644646
endif()
645647

646648
# Link system libraries =======================================================
@@ -734,26 +736,26 @@ endfunction()
734736
# Configuration file flags =====================================================
735737
config_define(${LIBCXX_ABI_VERSION} _LIBCPP_ABI_VERSION)
736738
config_define(${LIBCXX_ABI_NAMESPACE} _LIBCPP_ABI_NAMESPACE)
737-
config_define_if(LIBCXX_ABI_FORCE_ITANIUM _LIBCPP_ABI_FORCE_ITANIUM)
738-
config_define_if(LIBCXX_ABI_FORCE_MICROSOFT _LIBCPP_ABI_FORCE_MICROSOFT)
739-
config_define_if_not(LIBCXX_ENABLE_THREADS _LIBCPP_HAS_NO_THREADS)
740-
config_define_if_not(LIBCXX_ENABLE_MONOTONIC_CLOCK _LIBCPP_HAS_NO_MONOTONIC_CLOCK)
741-
config_define_if_not(LIBCXX_HAS_TERMINAL_AVAILABLE _LIBCPP_HAS_NO_TERMINAL)
739+
config_define(${LIBCXX_ABI_FORCE_ITANIUM} _LIBCPP_ABI_FORCE_ITANIUM)
740+
config_define(${LIBCXX_ABI_FORCE_MICROSOFT} _LIBCPP_ABI_FORCE_MICROSOFT)
741+
config_define(${LIBCXX_ENABLE_THREADS} _LIBCPP_HAS_THREADS)
742+
config_define(${LIBCXX_ENABLE_MONOTONIC_CLOCK} _LIBCPP_HAS_MONOTONIC_CLOCK)
743+
config_define(${LIBCXX_HAS_TERMINAL_AVAILABLE} _LIBCPP_HAS_TERMINAL)
742744
if (NOT LIBCXX_TYPEINFO_COMPARISON_IMPLEMENTATION STREQUAL "default")
743745
config_define("${LIBCXX_TYPEINFO_COMPARISON_IMPLEMENTATION}" _LIBCPP_TYPEINFO_COMPARISON_IMPLEMENTATION)
744746
endif()
745-
config_define_if(LIBCXX_HAS_PTHREAD_API _LIBCPP_HAS_THREAD_API_PTHREAD)
746-
config_define_if(LIBCXX_HAS_EXTERNAL_THREAD_API _LIBCPP_HAS_THREAD_API_EXTERNAL)
747-
config_define_if(LIBCXX_HAS_WIN32_THREAD_API _LIBCPP_HAS_THREAD_API_WIN32)
748-
config_define_if(LIBCXX_HAS_MUSL_LIBC _LIBCPP_HAS_MUSL_LIBC)
747+
config_define(${LIBCXX_HAS_PTHREAD_API} _LIBCPP_HAS_THREAD_API_PTHREAD)
748+
config_define(${LIBCXX_HAS_EXTERNAL_THREAD_API} _LIBCPP_HAS_THREAD_API_EXTERNAL)
749+
config_define(${LIBCXX_HAS_WIN32_THREAD_API} _LIBCPP_HAS_THREAD_API_WIN32)
750+
config_define(${LIBCXX_HAS_MUSL_LIBC} _LIBCPP_HAS_MUSL_LIBC)
749751
config_define_if(LIBCXX_NO_VCRUNTIME _LIBCPP_NO_VCRUNTIME)
750-
config_define_if_not(LIBCXX_ENABLE_FILESYSTEM _LIBCPP_HAS_NO_FILESYSTEM)
751-
config_define_if_not(LIBCXX_ENABLE_RANDOM_DEVICE _LIBCPP_HAS_NO_RANDOM_DEVICE)
752-
config_define_if_not(LIBCXX_ENABLE_LOCALIZATION _LIBCPP_HAS_NO_LOCALIZATION)
753-
config_define_if_not(LIBCXX_ENABLE_UNICODE _LIBCPP_HAS_NO_UNICODE)
754-
config_define_if_not(LIBCXX_ENABLE_WIDE_CHARACTERS _LIBCPP_HAS_NO_WIDE_CHARACTERS)
755-
config_define_if_not(LIBCXX_ENABLE_TIME_ZONE_DATABASE _LIBCPP_HAS_NO_TIME_ZONE_DATABASE)
756-
config_define_if_not(LIBCXX_ENABLE_VENDOR_AVAILABILITY_ANNOTATIONS _LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS)
752+
config_define(${LIBCXX_ENABLE_FILESYSTEM} _LIBCPP_HAS_FILESYSTEM)
753+
config_define(${LIBCXX_ENABLE_RANDOM_DEVICE} _LIBCPP_HAS_RANDOM_DEVICE)
754+
config_define(${LIBCXX_ENABLE_LOCALIZATION} _LIBCPP_HAS_LOCALIZATION)
755+
config_define(${LIBCXX_ENABLE_UNICODE} _LIBCPP_HAS_UNICODE)
756+
config_define(${LIBCXX_ENABLE_WIDE_CHARACTERS} _LIBCPP_HAS_WIDE_CHARACTERS)
757+
config_define(${LIBCXX_ENABLE_TIME_ZONE_DATABASE} _LIBCPP_HAS_TIME_ZONE_DATABASE)
758+
config_define(${LIBCXX_ENABLE_VENDOR_AVAILABILITY_ANNOTATIONS} _LIBCPP_HAS_VENDOR_AVAILABILITY_ANNOTATIONS)
757759

758760
# TODO: Remove in LLVM 21. We're leaving an error to make this fail explicitly.
759761
if (LIBCXX_ENABLE_ASSERTIONS)

‎libcxx/docs/DesignDocs/ThreadingSupportAPI.rst

+3-3
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@ API but leaves out the implementation.
4545
Threading Configuration Macros
4646
==============================
4747

48-
**_LIBCPP_HAS_NO_THREADS**
49-
This macro is defined when libc++ is built without threading support. It
50-
should not be manually defined by the user.
48+
**_LIBCPP_HAS_THREADS**
49+
This macro is set to 1 when libc++ is built with threading support. Otherwise
50+
it is set to 0. It should not be manually defined by the user.
5151

5252
**_LIBCPP_HAS_THREAD_API_EXTERNAL**
5353
This macro is defined when libc++ should use the ``<__external_threading>``

0 commit comments

Comments
 (0)
Please sign in to comment.