diff options
| author | Peter Collingbourne <pcc@google.com> | 2025-10-10 16:11:52 -0700 |
|---|---|---|
| committer | Peter Collingbourne <peter@pcc.me.uk> | 2025-10-10 16:11:52 -0700 |
| commit | 7820ec4faa7ecb99217569794db9328211a61553 (patch) | |
| tree | f9c60e0fe112a95df49b9f0ac22032f449104a06 | |
| parent | a7305bc2458f41178762e8117ecc67ceb9625844 (diff) | |
Address review commentsusers/pcc/spr/prepare-libcxx-and-libcxxabi-for-pointer-field-protection
Created using spr 1.3.6-beta.1
| -rw-r--r-- | libcxx/CMakeLists.txt | 6 | ||||
| -rw-r--r-- | libcxx/include/__config | 15 |
2 files changed, 6 insertions, 15 deletions
diff --git a/libcxx/CMakeLists.txt b/libcxx/CMakeLists.txt index a119850cd808..3a87029b5298 100644 --- a/libcxx/CMakeLists.txt +++ b/libcxx/CMakeLists.txt @@ -201,7 +201,11 @@ set(LIBCXX_LIBRARY_VERSION "${LIBCXX_ABI_VERSION}.0" CACHE STRING For example, -DLIBCXX_LIBRARY_VERSION=x.y will result in the library being named libc++.x.y.dylib, along with the usual symlinks pointing to that. On Apple platforms, this also controls the linker's 'current_version' property.") -set(LIBCXX_ABI_NAMESPACE "__${LIBCXX_ABI_VERSION}" CACHE STRING "The inline ABI namespace used by libc++. It defaults to __n where `n` is the current ABI version.") +set(default_abi_namespace "__${LIBCXX_ABI_VERSION}") +if(NOT LIBCXX_PFP STREQUAL "none") + set(default_abi_namespace "${default_abi_namespace}_pfp_${LIBCXX_PFP}") +endif() +set(LIBCXX_ABI_NAMESPACE "${default_abi_namespace}" CACHE STRING "The inline ABI namespace used by libc++. It defaults to __n where `n` is the current ABI version.") if (NOT LIBCXX_ABI_NAMESPACE MATCHES "__.*") message(FATAL_ERROR "LIBCXX_ABI_NAMESPACE must be a reserved identifier, got '${LIBCXX_ABI_NAMESPACE}'.") endif() diff --git a/libcxx/include/__config b/libcxx/include/__config index 63e6eceabd5e..7e996bbf92ba 100644 --- a/libcxx/include/__config +++ b/libcxx/include/__config @@ -484,21 +484,8 @@ typedef __char32_t char32_t; # define _LIBCPP_EXCEPTIONS_SIG e # endif -# if !_LIBCPP_HAS_EXCEPTIONS -# define _LIBCPP_EXCEPTIONS_SIG n -# else -# define _LIBCPP_EXCEPTIONS_SIG e -# endif - -# if defined(__POINTER_FIELD_PROTECTION__) -# define _LIBCPP_PFP_SIG p -# else -# define _LIBCPP_PFP_SIG -# endif - # define _LIBCPP_ODR_SIGNATURE \ - _LIBCPP_CONCAT(_LIBCPP_CONCAT(_LIBCPP_CONCAT(_LIBCPP_HARDENING_SIG, _LIBCPP_EXCEPTIONS_SIG), _LIBCPP_PFP_SIG), \ - _LIBCPP_VERSION) + _LIBCPP_CONCAT(_LIBCPP_CONCAT(_LIBCPP_HARDENING_SIG, _LIBCPP_EXCEPTIONS_SIG), _LIBCPP_VERSION) // This macro marks a symbol as being hidden from libc++'s ABI. This is achieved // on two levels: |
