Subject: CVS commit: pkgsrc/lang
From: Adam Ciarcinski
Date: 2021-07-12 20:46:07
Message id: 20210712184608.00947FA95@cvs.NetBSD.org

Log Message:
compiler-rt libunwind libcxx libcxxabi: updated to 12.0.1

What’s New in Libc++ 12.0.0?

New Features

Random device support has been made optional. It’s enabled by default and can \ 
be disabled by building libc++ with -DLIBCXX_ENABLE_RANDOM_DEVICE=OFF. Disabling \ 
random device support can be useful when building the library for platforms that \ 
don’t have a source of randomness, such as some embedded platforms. When this \ 
is not supported, most of <random> will still be available, but \ 
std::random_device will not.
Localization support has been made optional. It’s enabled by default and can \ 
be disabled by building libc++ with -DLIBCXX_ENABLE_LOCALIZATION=OFF. Disabling \ 
localization can be useful when porting to platforms that don’t support the C \ 
locale API (e.g. embedded). When localization is not supported, several parts of \ 
the library will be disabled: <iostream>, <regex>, <locale> \ 
will be completely unusable, and other parts may be only partly available.
If libc++ is compiled with a C++20 capable compiler it will be compiled in C++20 \ 
mode. Else libc++ will be compiled in C++17 mode.
Several unqualified lookups in libc++ have been changed to qualified lookups. \ 
This makes libc++ more ADL-proof.
The libc++ implementation status pages have been overhauled. Like other parts \ 
documentation they now use restructured text instead of html. Starting with \ 
libc++12 the status pages are part of libc++’s documentation.
More C++20 features have been implemented. libc++ C++20 Status has the full \ 
overview of libc++’s C++20 implementation status.
Work has started to implement new C++2b features. libc++ C++2b Status has the \ 
full overview of libc++’s C++2b implementation status.

API Changes

By default, libc++ will _not_ include the definition for new and delete, since \ 
those are provided in libc++abi. Vendors wishing to provide new and delete in \ 
libc++ can build the library with -DLIBCXX_ENABLE_NEW_DELETE_DEFINITIONS=ON to \ 
get back the old behavior. This was done to avoid providing new and delete in \ 
both libc++ and libc++abi, which is technically an ODR violation. Also note that \ 
we couldn’t decide to put the operators in libc++ only, because they are \ 
needed from libc++abi (which would create a circular dependency).
During the C++20 standardization process some new low-level bit functions have \ 
been renamed. Libc++ has renamed these functions to match the C++20 Standard. - \ 
ispow2 has been renamed to has_single_bit - ceil2 has been renamed to bit_ceil - \ 
floor2 has been renamed to bit_floor - log2p1 has been renamed to bit_width
In C++20 mode, std::filesystem::path::u8string() and generic_u8string() now \ 
return std::u8string according to P0428, while they return std::string in C++17. \ 
This can cause source incompatibility, which is discussed and acknowledged in \ 
P1423, but that paper doesn’t suggest any remediation for this \ 
incompatibility.

Files:
RevisionActionfile
1.17modifypkgsrc/lang/compiler-rt/Makefile
1.4modifypkgsrc/lang/compiler-rt/PLIST.Darwin
1.4modifypkgsrc/lang/compiler-rt/PLIST.NetBSD
1.12modifypkgsrc/lang/compiler-rt/distinfo
1.4modifypkgsrc/lang/compiler-rt/patches/patch-cmake_config-ix.cmake
1.3modifypkgsrc/lang/compiler-rt/patches/patch-lib_sanitizer__common_sanitizer__platform__limits__netbsd.cpp
1.11modifypkgsrc/lang/libcxx/Makefile
1.6modifypkgsrc/lang/libcxx/PLIST
1.5modifypkgsrc/lang/libcxx/buildlink3.mk
1.11modifypkgsrc/lang/libcxx/distinfo
1.11modifypkgsrc/lang/libcxxabi/Makefile
1.5modifypkgsrc/lang/libcxxabi/buildlink3.mk
1.10modifypkgsrc/lang/libcxxabi/distinfo
1.25modifypkgsrc/lang/libunwind/Makefile
1.9modifypkgsrc/lang/libunwind/buildlink3.mk
1.20modifypkgsrc/lang/libunwind/distinfo
1.1removepkgsrc/lang/compiler-rt/PLIST.NetBSD-x86_64
1.3removepkgsrc/lang/libcxx/patches/patch-src_experimental_memory__resource.cpp