aboutsummaryrefslogtreecommitdiff
path: root/libcxx
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2024-03-13 22:01:01 +0200
committerGitHub <noreply@github.com>2024-03-13 16:01:01 -0400
commit1f973efd335f34c75fcba1ccbe288fd5ece15a64 (patch)
tree477b7ad2edc8744a2067e8ae217044529f2a7e91 /libcxx
parent8237520eb42b37d7ed353d64a865d3ba5ac24ec6 (diff)
downloadllvm-1f973efd335f34c75fcba1ccbe288fd5ece15a64.zip
llvm-1f973efd335f34c75fcba1ccbe288fd5ece15a64.tar.gz
llvm-1f973efd335f34c75fcba1ccbe288fd5ece15a64.tar.bz2
[runtimes] Prefer -fvisibility-global-new-delete=force-hidden (#84917)
27ce26b06655cfece3d54b30e442ef93d3e78ac7 added the new option -fvisibility-global-new-delete=, where -fvisibility-global-new-delete=force-hidden is equivalent to the old option -fvisibility-global-new-delete-hidden. At the same time, the old option was deprecated. Test for and use the new option form first; if unsupported, try using the old form. This avoids warnings in the MinGW builds, if built with Clang 18 or newer.
Diffstat (limited to 'libcxx')
-rw-r--r--libcxx/src/CMakeLists.txt5
1 files changed, 4 insertions, 1 deletions
diff --git a/libcxx/src/CMakeLists.txt b/libcxx/src/CMakeLists.txt
index 07ffc8b..1110a79 100644
--- a/libcxx/src/CMakeLists.txt
+++ b/libcxx/src/CMakeLists.txt
@@ -301,7 +301,10 @@ if (LIBCXX_ENABLE_STATIC)
# then its code shouldn't declare them with hidden visibility. They might
# actually be provided by a shared library at link time.
if (LIBCXX_ENABLE_NEW_DELETE_DEFINITIONS)
- append_flags_if_supported(CXX_STATIC_LIBRARY_FLAGS -fvisibility-global-new-delete-hidden)
+ append_flags_if_supported(CXX_STATIC_LIBRARY_FLAGS -fvisibility-global-new-delete=force-hidden)
+ if (NOT CXX_SUPPORTS_FVISIBILITY_GLOBAL_NEW_DELETE_EQ_FORCE_HIDDEN_FLAG)
+ append_flags_if_supported(CXX_STATIC_LIBRARY_FLAGS -fvisibility-global-new-delete-hidden)
+ endif()
endif()
target_compile_options(cxx_static PRIVATE ${CXX_STATIC_LIBRARY_FLAGS})
# _LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS can be defined in __config_site