From 77b9ccebda12d8e95f6b78b7e390e37154306933 Mon Sep 17 00:00:00 2001 From: Louis Dionne Date: Thu, 20 Jun 2024 13:31:09 -0400 Subject: [PATCH] [libc++][libc++abi] Build with -fsized-deallocation This patch makes libc++ and libc++abi build with -fsized-deallocation. That flag is enabled by default in recent versions of Clang, so this patch will make these runtimes forward-compatible with ToT Clang. --- libcxx/CMakeLists.txt | 4 ++++ libcxxabi/CMakeLists.txt | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/libcxx/CMakeLists.txt b/libcxx/CMakeLists.txt index 4b927017f8c2ac..f0946b60222804 100644 --- a/libcxx/CMakeLists.txt +++ b/libcxx/CMakeLists.txt @@ -553,6 +553,10 @@ function(cxx_add_basic_build_flags target) target_add_compile_flags_if_supported(${target} PRIVATE -fvisibility=hidden) endif() + # Build with -fsized-deallocation, which is default in recent versions of Clang. + # TODO(LLVM 21): This can be dropped once we only support Clang >= 19. + target_compile_options(${target} PRIVATE -fsized-deallocation) + # Let the library headers know they are currently being used to build the # library. target_compile_definitions(${target} PRIVATE -D_LIBCPP_BUILDING_LIBRARY) diff --git a/libcxxabi/CMakeLists.txt b/libcxxabi/CMakeLists.txt index 52ba52f3439fb1..d45b104b41e320 100644 --- a/libcxxabi/CMakeLists.txt +++ b/libcxxabi/CMakeLists.txt @@ -247,6 +247,10 @@ endif() add_compile_flags("${LIBCXXABI_ADDITIONAL_COMPILE_FLAGS}") add_library_flags("${LIBCXXABI_ADDITIONAL_LIBRARIES}") +# Build with -fsized-deallocation, which is default in recent versions of Clang. +# TODO(LLVM 21): This can be dropped once we only support Clang >= 19. +add_compile_flags(-fsized-deallocation) + # Configure compiler. Must happen after setting the target flags. include(config-ix)