diff options
author | 2021-01-11 15:31:56 +0000 | |
---|---|---|
committer | 2021-01-11 15:31:56 +0000 | |
commit | 16ff81ed8b1ed9aa06fb1a731a2446b66cc49bef (patch) | |
tree | 1a7dd8152b94f6f8cd318bfaf85aa40882854583 /lib/libcxx/docs/DesignDocs/CapturingConfigInfo.rst | |
parent | sync (diff) | |
download | wireguard-openbsd-16ff81ed8b1ed9aa06fb1a731a2446b66cc49bef.tar.xz wireguard-openbsd-16ff81ed8b1ed9aa06fb1a731a2446b66cc49bef.zip |
Remove libc++ and libc++abi 8.0.0 now that we switched to version 10.0.1
in the gnu/ directory.
Diffstat (limited to 'lib/libcxx/docs/DesignDocs/CapturingConfigInfo.rst')
-rw-r--r-- | lib/libcxx/docs/DesignDocs/CapturingConfigInfo.rst | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/lib/libcxx/docs/DesignDocs/CapturingConfigInfo.rst b/lib/libcxx/docs/DesignDocs/CapturingConfigInfo.rst deleted file mode 100644 index 29156bff8bc..00000000000 --- a/lib/libcxx/docs/DesignDocs/CapturingConfigInfo.rst +++ /dev/null @@ -1,88 +0,0 @@ -======================================================= -Capturing configuration information during installation -======================================================= - -.. contents:: - :local: - -The Problem -=========== - -Currently the libc++ supports building the library with a number of different -configuration options. Unfortunately all of that configuration information is -lost when libc++ is installed. In order to support "persistent" -configurations libc++ needs a mechanism to capture the configuration options -in the INSTALLED headers. - - -Design Goals -============ - -* The solution should not INSTALL any additional headers. We don't want an extra - #include slowing everybody down. - -* The solution should not unduly affect libc++ developers. The problem is limited - to installed versions of libc++ and the solution should be as well. - -* The solution should not modify any existing headers EXCEPT during installation. - It makes developers lives harder if they have to regenerate the libc++ headers - every time they are modified. - -* The solution should not make any of the libc++ headers dependent on - files generated by the build system. The headers should be able to compile - out of the box without any modification. - -* The solution should not have ANY effect on users who don't need special - configuration options. The vast majority of users will never need this so it - shouldn't cost them. - - -The Solution -============ - -When you first configure libc++ using CMake we check to see if we need to -capture any options. If we haven't been given any "persistent" options then -we do NOTHING. - -Otherwise we create a custom installation rule that modifies the installed __config -header. The rule first generates a dummy "__config_site" header containing the required -#defines. The contents of the dummy header are then prepended to the installed -__config header. By manually prepending the files we avoid the cost of an -extra #include and we allow the __config header to be ignorant of the extra -configuration all together. An example "__config" header generated when --DLIBCXX_ENABLE_THREADS=OFF is given to CMake would look something like: - -.. code-block:: cpp - - //===----------------------------------------------------------------------===// - // - // The LLVM Compiler Infrastructure - // - // This file is dual licensed under the MIT and the University of Illinois Open - // Source Licenses. See LICENSE.TXT for details. - // - //===----------------------------------------------------------------------===// - - #ifndef _LIBCPP_CONFIG_SITE - #define _LIBCPP_CONFIG_SITE - - /* #undef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE */ - /* #undef _LIBCPP_HAS_NO_STDIN */ - /* #undef _LIBCPP_HAS_NO_STDOUT */ - #define _LIBCPP_HAS_NO_THREADS - /* #undef _LIBCPP_HAS_NO_MONOTONIC_CLOCK */ - /* #undef _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS */ - - #endif - // -*- C++ -*- - //===--------------------------- __config ---------------------------------===// - // - // The LLVM Compiler Infrastructure - // - // This file is dual licensed under the MIT and the University of Illinois Open - // Source Licenses. See LICENSE.TXT for details. - // - //===----------------------------------------------------------------------===// - - #ifndef _LIBCPP_CONFIG - #define _LIBCPP_CONFIG |