[libcxx-commits] [PATCH] D121706: [libc++] Do not install the C++ ABI library's headers as part of libc++'s build
Louis Dionne via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Mar 15 08:18:53 PDT 2022
ldionne created this revision.
Herald added a subscriber: mgorny.
Herald added a project: All.
ldionne requested review of this revision.
Herald added a project: libc++.
Herald added a subscriber: libcxx-commits.
Herald added a reviewer: libc++.
It's the role of the C++ ABI library to install its own headers, not libc++.
This fixes an existing issue causing spurious CI failures where both libc++
and libc++abi would try to install <cxxabi.h> & friends in the same location,
leading to failures during the installation step.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D121706
Files:
libcxx/cmake/Modules/HandleLibCXXABI.cmake
libcxx/docs/ReleaseNotes.rst
Index: libcxx/docs/ReleaseNotes.rst
===================================================================
--- libcxx/docs/ReleaseNotes.rst
+++ libcxx/docs/ReleaseNotes.rst
@@ -98,3 +98,11 @@
library should set ``LIBCXXABI_HERMETIC_STATIC_LIBRARY=ON`` when configuring CMake. The current
behavior, which tries to guess the correct dll-export semantics based on whether we're building
the libc++ shared library, will be removed in LLVM 16.
+
+- Previously, the C++ ABI library headers would be installed inside ``<prefix>/include/c++/v1``
+ alongside the libc++ headers as part of building libc++. This is not the case anymore -- the
+ ABI library is expected to install its headers where it wants them as part of its own build.
+ Note that no action is required for most users, who build libc++ against libc++abi, since
+ libc++abi already installs its headers in the right location. However, vendors building
+ libc++ against alternate ABI libraries should make sure that their ABI library installs
+ its own headers.
Index: libcxx/cmake/Modules/HandleLibCXXABI.cmake
===================================================================
--- libcxx/cmake/Modules/HandleLibCXXABI.cmake
+++ libcxx/cmake/Modules/HandleLibCXXABI.cmake
@@ -15,8 +15,7 @@
# libc++ build tree for the build. These files will be copied
# twice: once into include/, so the libc++ build itself can find
# them, and once into include/c++/v1, so that a clang built into
-# the same build area will find them. These files will also be
-# installed alongside the libc++ headers.
+# the same build area will find them.
# abidirs : A list of relative paths to create under an include directory
# in the libc++ build directory.
#
@@ -61,14 +60,6 @@
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst}
COMMENT "Copying C++ ABI header ${fpath}...")
list(APPEND abilib_headers "${dst}")
-
- if (LIBCXX_INSTALL_HEADERS)
- install(FILES "${LIBCXX_BINARY_INCLUDE_DIR}/${fpath}"
- DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/c++/v1/${dstdir}"
- COMPONENT cxx-headers
- PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
- )
- endif()
else()
message(STATUS "Looking for ${fpath} in ${incpath} - not found")
endif()
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D121706.415448.patch
Type: text/x-patch
Size: 2431 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20220315/5990f76f/attachment-0001.bin>
More information about the libcxx-commits
mailing list