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.
2021-07-12 20:46:07 +02:00
|
|
|
# $NetBSD: Makefile,v 1.25 2021/07/12 18:46:07 adam Exp $
|
2016-03-28 14:56:03 +02:00
|
|
|
|
2019-12-29 16:31:21 +01:00
|
|
|
.include "../../lang/llvm/version.mk"
|
|
|
|
|
|
|
|
DISTNAME= libunwind-${LLVM_VERSION}.src
|
2016-03-28 14:56:03 +02:00
|
|
|
PKGNAME= ${DISTNAME:S/.src//}
|
|
|
|
CATEGORIES= lang devel
|
|
|
|
|
|
|
|
MAINTAINER= pkgsrc-users@NetBSD.org
|
2017-08-16 22:45:30 +02:00
|
|
|
#HOMEPAGE= http://libunwind.llvm.org/
|
2016-03-28 14:56:03 +02:00
|
|
|
COMMENT= LLVM libunwind
|
2019-10-24 13:52:20 +02:00
|
|
|
LICENSE= apache-2.0
|
2016-03-28 14:56:03 +02:00
|
|
|
|
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.
2021-07-12 20:46:07 +02:00
|
|
|
# libunwind requires llvm and libcxx source code to build
|
|
|
|
LIBCXX= libcxx-${LLVM_VERSION}.src
|
|
|
|
LLVMDIST= llvm-${LLVM_VERSION}.src
|
|
|
|
_EXTRA_DIST= ${LIBCXX}${EXTRACT_SUFX} ${LLVMDIST}${EXTRACT_SUFX}
|
|
|
|
SITES.${LIBCXX}${EXTRACT_SUFX}= ${MASTER_SITES:=${GITHUB_PROJECT}/releases/download/${GITHUB_RELEASE}/}
|
|
|
|
SITES.${LLLVMDIST}${EXTRACT_SUFX}= ${MASTER_SITES:=${GITHUB_PROJECT}/releases/download/${GITHUB_RELEASE}/}
|
|
|
|
|
|
|
|
DISTFILES= ${DEFAULT_DISTFILES} ${_EXTRA_DIST}
|
|
|
|
|
|
|
|
CONFIGURE_DIRS= ${WRKDIR}/build
|
|
|
|
CMAKE_ARG_PATH= ${WRKSRC}
|
2016-03-28 14:56:03 +02:00
|
|
|
|
|
|
|
USE_CMAKE= yes
|
2017-12-30 11:39:24 +01:00
|
|
|
USE_LANGUAGES= c c++11
|
|
|
|
USE_TOOLS+= pax
|
2016-03-28 14:56:03 +02:00
|
|
|
GCC_REQD+= 4.8
|
2018-08-09 15:51:42 +02:00
|
|
|
SSP_SUPPORTED= no
|
2016-03-28 14:56:03 +02:00
|
|
|
|
|
|
|
CMAKE_ARGS+= -DCMAKE_BUILD_TYPE=Release
|
2017-05-06 01:20:50 +02:00
|
|
|
CMAKE_ARGS+= -DCMAKE_C_COMPILER=${CC:Q}
|
|
|
|
CMAKE_ARGS+= -DCMAKE_CXX_COMPILER=${CXX:Q}
|
2016-03-28 14:56:03 +02:00
|
|
|
|
|
|
|
INSTALLATION_DIRS= include
|
|
|
|
|
|
|
|
post-extract:
|
2019-10-19 15:59:06 +02:00
|
|
|
${MKDIR} ${WRKDIR}/build
|
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.
2021-07-12 20:46:07 +02:00
|
|
|
${LN} -f -s ${WRKDIR}/${LIBCXX} ${WRKDIR}/libcxx
|
|
|
|
${LN} -f -s ${WRKDIR}/${LLVMDIST} ${WRKDIR}/llvm
|
2016-03-28 14:56:03 +02:00
|
|
|
|
|
|
|
post-install:
|
2020-10-20 08:34:23 +02:00
|
|
|
${RM} -f ${WRKSRC}/include/__libunwind_config.h.orig
|
2016-03-28 14:56:03 +02:00
|
|
|
cd ${WRKSRC}/include && ${PAX} -rw . ${DESTDIR}${PREFIX}/include
|
|
|
|
|
|
|
|
BUILDLINK_DEPMETHOD.llvm= build
|
|
|
|
.include "../../lang/llvm/buildlink3.mk"
|
|
|
|
.include "../../mk/bsd.pkg.mk"
|