https://github.com/llvmbot created https://github.com/llvm/llvm-project/pull/100411
Backport 046a17717d9c5b5385ecd914621b48bdd91524d0 Requested by: @ldionne >From 2095218c297f9be66aef738d25f27d8a08c21017 Mon Sep 17 00:00:00 2001 From: Louis Dionne <ldionn...@gmail.com> Date: Wed, 24 Jul 2024 11:03:52 -0500 Subject: [PATCH] [libc++] Improve behavior when using relative path for LIBCXX_ASSERTION_HANDLER_FILE (#100157) Fixes #80696 (cherry picked from commit 046a17717d9c5b5385ecd914621b48bdd91524d0) --- libcxx/CMakeLists.txt | 8 ++++++-- libcxx/docs/BuildingLibcxx.rst | 3 ++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/libcxx/CMakeLists.txt b/libcxx/CMakeLists.txt index 332816b15260a..674082c7d1787 100644 --- a/libcxx/CMakeLists.txt +++ b/libcxx/CMakeLists.txt @@ -71,12 +71,16 @@ if (NOT "${LIBCXX_HARDENING_MODE}" IN_LIST LIBCXX_SUPPORTED_HARDENING_MODES) "Unsupported hardening mode: '${LIBCXX_HARDENING_MODE}'. Supported values are ${LIBCXX_SUPPORTED_HARDENING_MODES}.") endif() set(LIBCXX_ASSERTION_HANDLER_FILE - "${CMAKE_CURRENT_SOURCE_DIR}/vendor/llvm/default_assertion_handler.in" + "vendor/llvm/default_assertion_handler.in" CACHE STRING "Specify the path to a header that contains a custom implementation of the assertion handler that gets invoked when a hardening assertion fails. If provided, this header will be included by the library, replacing the - default assertion handler.") + default assertion handler. If this is specified as a relative path, it + is assumed to be relative to '<monorepo>/libcxx'.") +if (NOT IS_ABSOLUTE "${LIBCXX_ASSERTION_HANDLER_FILE}") + set(LIBCXX_ASSERTION_HANDLER_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${LIBCXX_ASSERTION_HANDLER_FILE}") +endif() option(LIBCXX_ENABLE_RANDOM_DEVICE "Whether to include support for std::random_device in the library. Disabling this can be useful when building the library for platforms that don't have diff --git a/libcxx/docs/BuildingLibcxx.rst b/libcxx/docs/BuildingLibcxx.rst index 66bb19bb5b2cd..5c224689e0f9f 100644 --- a/libcxx/docs/BuildingLibcxx.rst +++ b/libcxx/docs/BuildingLibcxx.rst @@ -406,7 +406,8 @@ libc++ Feature Options Specify the path to a header that contains a custom implementation of the assertion handler that gets invoked when a hardening assertion fails. If provided, this header will be included by the library, replacing the - default assertion handler. + default assertion handler. If this is specified as a relative path, it + is assumed to be relative to ``<monorepo>/libcxx``. libc++ ABI Feature Options _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits