diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2017-12-18 20:12:08 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2017-12-18 20:12:08 +0000 |
| commit | 0564cdb94a7a1facbb0dbf888ceb90638aa70ecd (patch) | |
| tree | 3ccbf1ba827928fca93419d0b6cf83ce0f650f2a /docs | |
| parent | dbabdb5220c44e5938d404eefb84b5ed55667ea8 (diff) | |
Notes
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/BuildingLibcxx.rst | 9 | ||||
| -rw-r--r-- | docs/TestingLibcxx.rst | 2 | ||||
| -rw-r--r-- | docs/UsingLibcxx.rst | 20 | ||||
| -rw-r--r-- | docs/conf.py | 4 |
4 files changed, 31 insertions, 4 deletions
diff --git a/docs/BuildingLibcxx.rst b/docs/BuildingLibcxx.rst index 81a7c2341473..3dae2f41c274 100644 --- a/docs/BuildingLibcxx.rst +++ b/docs/BuildingLibcxx.rst @@ -130,7 +130,7 @@ just specify a toolset. -DCMAKE_SYSTEM_NAME=Windows ^ -DCMAKE_C_COMPILER=clang-cl ^ -DCMAKE_C_FLAGS="-fms-compatibility-version=19.00 --target=i686--windows" ^ - -DCMAKE_CXX_COMPILER=clang-c ^ + -DCMAKE_CXX_COMPILER=clang-cl ^ -DCMAKE_CXX_FLAGS="-fms-compatibility-version=19.00 --target=i686--windows" ^ -DLLVM_PATH=/path/to/llvm/tree ^ -DLIBCXX_ENABLE_SHARED=YES ^ @@ -347,6 +347,13 @@ The following options allow building libc++ for a different ABI version. Build the "unstable" ABI version of libc++. Includes all ABI changing features on top of the current stable version. +.. option:: LIBCXX_ABI_DEFINES:STRING + + **Default**: ``""`` + + A semicolon-separated list of ABI macros to persist in the site config header. + See ``include/__config`` for the list of ABI macros. + .. _LLVM-specific variables: LLVM-specific options diff --git a/docs/TestingLibcxx.rst b/docs/TestingLibcxx.rst index 5c48ebe61ddf..43c0684dc7de 100644 --- a/docs/TestingLibcxx.rst +++ b/docs/TestingLibcxx.rst @@ -112,7 +112,7 @@ configuration. Passing the option on the command line will override the default. .. option:: std=<standard version> - **Values**: c++98, c++03, c++11, c++14, c++1z + **Values**: c++98, c++03, c++11, c++14, c++17, c++2a Change the standard version used when building the tests. diff --git a/docs/UsingLibcxx.rst b/docs/UsingLibcxx.rst index 183664655aa3..f54234d6aa3f 100644 --- a/docs/UsingLibcxx.rst +++ b/docs/UsingLibcxx.rst @@ -185,6 +185,26 @@ thread safety annotations. * Giving `set`, `map`, `multiset`, `multimap` a comparator which is not const callable. +**_LIBCPP_NO_VCRUNTIME**: + Microsoft's C and C++ headers are fairly entangled, and some of their C++ + headers are fairly hard to avoid. In particular, `vcruntime_new.h` gets pulled + in from a lot of other headers and provides definitions which clash with + libc++ headers, such as `nothrow_t` (note that `nothrow_t` is a struct, so + there's no way for libc++ to provide a compatible definition, since you can't + have multiple definitions). + + By default, libc++ solves this problem by deferring to Microsoft's vcruntime + headers where needed. However, it may be undesirable to depend on vcruntime + headers, since they may not always be available in cross-compilation setups, + or they may clash with other headers. The `_LIBCPP_NO_VCRUNTIME` macro + prevents libc++ from depending on vcruntime headers. Consequently, it also + prevents libc++ headers from being interoperable with vcruntime headers (from + the aforementioned clashes), so users of this macro are promising to not + attempt to combine libc++ headers with the problematic vcruntime headers. This + macro also currently prevents certain `operator new`/`operator delete` + replacement scenarios from working, e.g. replacing `operator new` and + expecting a non-replaced `operator new[]` to call the replaced `operator new`. + C++17 Specific Configuration Macros ----------------------------------- **_LIBCPP_ENABLE_CXX17_REMOVED_FEATURES**: diff --git a/docs/conf.py b/docs/conf.py index 17fb401a8470..bb231ac3e353 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -47,9 +47,9 @@ copyright = u'2011-2017, LLVM Project' # built documents. # # The short X.Y version. -version = '5.0' +version = '6.0' # The full version, including alpha/beta/rc tags. -release = '5.0' +release = '6.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. |
