summaryrefslogtreecommitdiff
path: root/sys-libs
diff options
context:
space:
mode:
Diffstat (limited to 'sys-libs')
-rw-r--r--sys-libs/Manifest.gzbin14089 -> 14072 bytes
-rw-r--r--sys-libs/compiler-rt-sanitizers/Manifest10
-rw-r--r--sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-12.0.1.ebuild2
-rw-r--r--sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.0.9999.ebuild5
-rw-r--r--sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.0_rc1.ebuild201
-rw-r--r--sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-14.0.0.9999.ebuild5
-rw-r--r--sys-libs/compiler-rt-sanitizers/metadata.xml1
-rw-r--r--sys-libs/compiler-rt/Manifest8
-rw-r--r--sys-libs/compiler-rt/compiler-rt-12.0.1.ebuild2
-rw-r--r--sys-libs/compiler-rt/compiler-rt-13.0.0.9999.ebuild1
-rw-r--r--sys-libs/compiler-rt/compiler-rt-13.0.0_rc1.ebuild125
-rw-r--r--sys-libs/compiler-rt/compiler-rt-14.0.0.9999.ebuild1
-rw-r--r--sys-libs/glibc/Manifest9
-rw-r--r--sys-libs/glibc/glibc-2.33-r1.ebuild5
-rw-r--r--sys-libs/glibc/glibc-2.33-r5.ebuild5
-rw-r--r--sys-libs/glibc/glibc-2.34.ebuild1558
-rw-r--r--sys-libs/glibc/glibc-9999.ebuild2
-rw-r--r--sys-libs/kpmcore/Manifest2
-rw-r--r--sys-libs/kpmcore/kpmcore-21.04.3.ebuild2
-rw-r--r--sys-libs/ldb/Manifest2
-rw-r--r--sys-libs/ldb/ldb-2.3.0-r1.ebuild2
-rw-r--r--sys-libs/libblockdev/Manifest4
-rw-r--r--sys-libs/libblockdev/libblockdev-2.24.ebuild119
-rw-r--r--sys-libs/libblockdev/libblockdev-2.25.ebuild2
-rw-r--r--sys-libs/libcap/Manifest6
-rw-r--r--sys-libs/libcap/files/libcap-2.50-install_capsh_again.patch38
-rw-r--r--sys-libs/libcap/files/libcap-2.52-build-system-fixes.patch219
-rw-r--r--sys-libs/libcap/libcap-2.52.ebuild (renamed from sys-libs/libcap/libcap-2.50-r1.ebuild)8
-rw-r--r--sys-libs/libcxx/Manifest8
-rw-r--r--sys-libs/libcxx/libcxx-12.0.1.ebuild2
-rw-r--r--sys-libs/libcxx/libcxx-13.0.0.9999.ebuild3
-rw-r--r--sys-libs/libcxx/libcxx-13.0.0_rc1.ebuild213
-rw-r--r--sys-libs/libcxx/libcxx-14.0.0.9999.ebuild3
-rw-r--r--sys-libs/libcxxabi/Manifest8
-rw-r--r--sys-libs/libcxxabi/libcxxabi-12.0.1.ebuild2
-rw-r--r--sys-libs/libcxxabi/libcxxabi-13.0.0.9999.ebuild15
-rw-r--r--sys-libs/libcxxabi/libcxxabi-13.0.0_rc1.ebuild123
-rw-r--r--sys-libs/libcxxabi/libcxxabi-14.0.0.9999.ebuild15
-rw-r--r--sys-libs/libomp/Manifest4
-rw-r--r--sys-libs/libomp/libomp-12.0.1.ebuild2
-rw-r--r--sys-libs/libomp/libomp-13.0.0_rc1.ebuild106
-rw-r--r--sys-libs/libvpd/Manifest4
-rw-r--r--sys-libs/libvpd/files/2.2.8-gcc11.patch84
-rw-r--r--sys-libs/libvpd/files/2.2.8-warnings.patch52
-rw-r--r--sys-libs/libvpd/libvpd-2.2.8-r1.ebuild (renamed from sys-libs/libvpd/libvpd-2.2.8.ebuild)7
-rw-r--r--sys-libs/llvm-libunwind/Manifest8
-rw-r--r--sys-libs/llvm-libunwind/llvm-libunwind-12.0.1.ebuild2
-rw-r--r--sys-libs/llvm-libunwind/llvm-libunwind-13.0.0.9999.ebuild33
-rw-r--r--sys-libs/llvm-libunwind/llvm-libunwind-13.0.0_rc1.ebuild141
-rw-r--r--sys-libs/llvm-libunwind/llvm-libunwind-14.0.0.9999.ebuild33
50 files changed, 2955 insertions, 257 deletions
diff --git a/sys-libs/Manifest.gz b/sys-libs/Manifest.gz
index 7a95633cfe78..eddbccc4210d 100644
--- a/sys-libs/Manifest.gz
+++ b/sys-libs/Manifest.gz
Binary files differ
diff --git a/sys-libs/compiler-rt-sanitizers/Manifest b/sys-libs/compiler-rt-sanitizers/Manifest
index ef3a6792e240..ed90ea3de5a9 100644
--- a/sys-libs/compiler-rt-sanitizers/Manifest
+++ b/sys-libs/compiler-rt-sanitizers/Manifest
@@ -7,10 +7,12 @@ DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3
DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
DIST llvmorg-12.0.0.tar.gz 134226215 BLAKE2B f9c3ba8c58571855caa4f206fd285c9b5be66672fb0814cb8bc0964a051f57f5d35013aa1e27cbda502652b37df1ec23474129109e76a42066847860db441dbe SHA512 0cff02155c5ac0d6db2b72d60d9819d5b5dd859663b45f721b1c7540239c2fceb1f57d9173f6870c49de851c242ed8e85c5c6d6577a1f8092a7c5dcd12513b26
DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
+DIST llvmorg-13.0.0-rc1.tar.gz 147235597 BLAKE2B 089fed119dee8a16f278cebb13808bd5a95629cc87ebee3050225cc041b78fee51acacc5bcc913d4a99e830bfe5774b19a04a845293c5087dd2a8c9d94d2fde9 SHA512 6e307e2c2dcb7ff41d11ee29d69f41c0ef55f200999847a3a924a2e773fc9c2160015746789af8b723c628bd232f97fce63370209bd0065491d80b0cc0017e85
EBUILD compiler-rt-sanitizers-10.0.1-r1.ebuild 4513 BLAKE2B daa067db497d6548d10041d7a2e99aca314c0b8c136e045d799f1205df135c04af2bce717e0fa281b67a6ef6bbf95fad014d1ae354eada02b2c79884af8e7576 SHA512 3579b322368ca2f350d2d373f6addc871aa8046d80dfead13d90a6564f288f35244bd5957b96d743356af7aa9560e3ca8ebb5863eea7c835fd8648e8b0fb4d8e
EBUILD compiler-rt-sanitizers-11.1.0-r1.ebuild 6036 BLAKE2B 30bbe8f96289a6a4e66367728d74c3cd4631a11273dd0b2a597251c9742205577d4561c92ca9ba15d1afa7a58cb049441828b09b1d77ab1bee4d4cc6227d2673 SHA512 6755070c159402442b3e02ab21a9415313ddf82c6c54bd0a171b987c155bd85f6d0882d4146d02695fc4c157892106b9d1678235f92c28d7fe86fe8e9bb9486e
EBUILD compiler-rt-sanitizers-12.0.0.ebuild 6081 BLAKE2B 7b72248427b99b3210a6aaab4d2d335c66d113bd3b473f16e660396009d1e1444241748d40b2d91851433754227fce0a893132dc668d43c7a8e962ddb83cd635 SHA512 ad69ec8901fa6273498b2b249d87c7546deeb7c294a8625fb3568faad9edaa2dd55443c00686ce18008201fecc3cba120e6282c2cec056db87af4440c920e293
-EBUILD compiler-rt-sanitizers-12.0.1.ebuild 5958 BLAKE2B 817b71b56351dd4ec5fd1b812949b5f02826b6d1122f7ab9d40975aa65f7ff8e8f068bbe4eb111ac579686485be06cf386f621386993cae1c628f1636bed3ab6 SHA512 0ba1217f5949313bd857fe62c0a773d587e629c640eee4d39c2db0a2b558db4398eb39b73cb52dfa0ec2eb5eba9b108fa9c4a219ebd9a979e894eb503d33a3bb
-EBUILD compiler-rt-sanitizers-13.0.0.9999.ebuild 5886 BLAKE2B 63ff0582aae1fb2ec007553d3d0800f9caf900e95299fa8571d5151c2f029696391af2fab3358b5b378c1ae5fe6de4a60136c09b3f8f72435b92d353e948c24e SHA512 c553a0cd3d4849af21324eeb1498aee728bba3705d00c734f6f55ad6d0354cafd3078addfa691be494bf79b902fc8c669cd76b13a45868ddcb00ea196cd5454d
-EBUILD compiler-rt-sanitizers-14.0.0.9999.ebuild 5886 BLAKE2B 63ff0582aae1fb2ec007553d3d0800f9caf900e95299fa8571d5151c2f029696391af2fab3358b5b378c1ae5fe6de4a60136c09b3f8f72435b92d353e948c24e SHA512 c553a0cd3d4849af21324eeb1498aee728bba3705d00c734f6f55ad6d0354cafd3078addfa691be494bf79b902fc8c669cd76b13a45868ddcb00ea196cd5454d
-MISC metadata.xml 1341 BLAKE2B 27ba2b57b7ba21538680b5535aec8b0e8e772a040b25ac8c9285765ed00a485a01ce6dd47c32686c7d162d072f4d6d7d2e1a790e9bd867b61a460b01ad79bade SHA512 909a922e1b0e9649534d88bb7692b1d1d7a9d3d539a4926054dac834d672da065cfea5b2aab02dd23f2a7b0dde0eb0b10ae453990c3ecf99ec20f6a2d2bdbac6
+EBUILD compiler-rt-sanitizers-12.0.1.ebuild 5957 BLAKE2B ca70b1bcb71e5219a95cb27cead388818395c6b2f55cb775e3007be1c2c92cfeebf08718aefe27a0410bc623fd4b923d50fa9bd92f9e7b1614669d8809d5e11b SHA512 dd6c020c00eb22177c1db9a38ca15f016e91bd675a7a1832c972643f1d8317d1c29149ac0bfa78d41aa12cd69d58fc54c966af0d9b2852d7dad8e9959d6e9c02
+EBUILD compiler-rt-sanitizers-13.0.0.9999.ebuild 5933 BLAKE2B 74922d3c2fec0c97e72748142c4b3f4ebe38b7e488f1fa92593f5399efcbe4629afcf9587a8d5adbc68034c62110912c8882bc88deffdad4963d5841f6147b09 SHA512 86d8343941cb32e6fd8c3c8590c4e975fc40b3dc87dbb27c4b01db16c52ce68ca430dd90365ae8972e16c016a2ad780b6c569738856ef20081480832a67192ea
+EBUILD compiler-rt-sanitizers-13.0.0_rc1.ebuild 5933 BLAKE2B 74922d3c2fec0c97e72748142c4b3f4ebe38b7e488f1fa92593f5399efcbe4629afcf9587a8d5adbc68034c62110912c8882bc88deffdad4963d5841f6147b09 SHA512 86d8343941cb32e6fd8c3c8590c4e975fc40b3dc87dbb27c4b01db16c52ce68ca430dd90365ae8972e16c016a2ad780b6c569738856ef20081480832a67192ea
+EBUILD compiler-rt-sanitizers-14.0.0.9999.ebuild 5933 BLAKE2B 74922d3c2fec0c97e72748142c4b3f4ebe38b7e488f1fa92593f5399efcbe4629afcf9587a8d5adbc68034c62110912c8882bc88deffdad4963d5841f6147b09 SHA512 86d8343941cb32e6fd8c3c8590c4e975fc40b3dc87dbb27c4b01db16c52ce68ca430dd90365ae8972e16c016a2ad780b6c569738856ef20081480832a67192ea
+MISC metadata.xml 1386 BLAKE2B cf5470df8e8b812b622d707ec7f6a8ec1e120fd24dea4ee52d07747f8b20600618e111002c6cb75d6f0fb209d6b8300e0ea3ada5441a8d0609145084079a0794 SHA512 7ed2225dfdd77711b46eb153149680fe340afcb2d57b912a59daf11d240fc1aad552b386ae41251b4cbc84ba9352dae0e1bb123274b0c1cbd300d42605424ecb
diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-12.0.1.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-12.0.1.ebuild
index 57d1ab1f3837..dd24d7b58862 100644
--- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-12.0.1.ebuild
+++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-12.0.1.ebuild
@@ -11,7 +11,7 @@ HOMEPAGE="https://llvm.org/"
LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
SLOT="$(ver_cut 1-3)"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
IUSE="+clang test elibc_glibc"
# base targets
IUSE+=" +libfuzzer +memprof +profile +xray"
diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.0.9999.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.0.9999.ebuild
index cc239e8feec6..86e4d10a7c76 100644
--- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.0.9999.ebuild
+++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.0.9999.ebuild
@@ -14,7 +14,7 @@ SLOT="$(ver_cut 1-3)"
KEYWORDS=""
IUSE="+clang test elibc_glibc"
# base targets
-IUSE+=" +libfuzzer +memprof +profile +xray"
+IUSE+=" +libfuzzer +memprof +orc +profile +xray"
# sanitizer targets, keep in sync with config-ix.cmake
# NB: ubsan, scudo deliberately match two entries
SANITIZER_FLAGS=(
@@ -23,7 +23,7 @@ SANITIZER_FLAGS=(
)
IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
REQUIRED_USE="
- || ( ${SANITIZER_FLAGS[*]} libfuzzer profile xray )
+ || ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
test? (
cfi? ( ubsan )
gwp-asan? ( scudo )
@@ -126,6 +126,7 @@ src_configure() {
-DCOMPILER_RT_BUILD_CRT=OFF
-DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer)
-DCOMPILER_RT_BUILD_MEMPROF=$(usex memprof)
+ -DCOMPILER_RT_BUILD_ORC=$(usex orc)
-DCOMPILER_RT_BUILD_PROFILE=$(usex profile)
-DCOMPILER_RT_BUILD_SANITIZERS="${want_sanitizer}"
-DCOMPILER_RT_BUILD_XRAY=$(usex xray)
diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.0_rc1.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.0_rc1.ebuild
new file mode 100644
index 000000000000..86e4d10a7c76
--- /dev/null
+++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.0_rc1.ebuild
@@ -0,0 +1,201 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{8..10} )
+inherit check-reqs cmake flag-o-matic llvm llvm.org python-any-r1
+
+DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="$(ver_cut 1-3)"
+KEYWORDS=""
+IUSE="+clang test elibc_glibc"
+# base targets
+IUSE+=" +libfuzzer +memprof +orc +profile +xray"
+# sanitizer targets, keep in sync with config-ix.cmake
+# NB: ubsan, scudo deliberately match two entries
+SANITIZER_FLAGS=(
+ asan dfsan lsan msan hwasan tsan ubsan safestack cfi scudo
+ shadowcallstack gwp-asan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+ || ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+ test? (
+ cfi? ( ubsan )
+ gwp-asan? ( scudo )
+ )"
+RESTRICT="!test? ( test ) !clang? ( test )"
+
+CLANG_SLOT=${SLOT%%.*}
+# llvm-6 for new lit options
+DEPEND="
+ >=sys-devel/llvm-6"
+BDEPEND="
+ >=dev-util/cmake-3.16
+ clang? ( sys-devel/clang )
+ elibc_glibc? ( net-libs/libtirpc )
+ test? (
+ !<sys-apps/sandbox-2.13
+ $(python_gen_any_dep ">=dev-python/lit-5[\${PYTHON_USEDEP}]")
+ =sys-devel/clang-${PV%_*}*:${CLANG_SLOT}
+ sys-libs/compiler-rt:${SLOT}
+ )
+ ${PYTHON_DEPS}"
+
+LLVM_COMPONENTS=( compiler-rt )
+LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support llvm/utils/unittest )
+LLVM_PATCHSET=9999-1
+llvm.org_set_globals
+
+python_check_deps() {
+ use test || return 0
+ has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+check_space() {
+ if use test; then
+ local CHECKREQS_DISK_BUILD=11G
+ check-reqs_pkg_pretend
+ fi
+}
+
+pkg_pretend() {
+ check_space
+}
+
+pkg_setup() {
+ check_space
+ llvm_pkg_setup
+ python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
+
+ local flag
+ for flag in "${SANITIZER_FLAGS[@]}"; do
+ if ! use "${flag}"; then
+ local cmake_flag=${flag/-/_}
+ sed -i -e "/COMPILER_RT_HAS_${cmake_flag^^}/s:TRUE:FALSE:" \
+ cmake/config-ix.cmake || die
+ fi
+ done
+
+ # TODO: fix these tests to be skipped upstream
+ if use asan && ! use profile; then
+ rm test/asan/TestCases/asan_and_llvm_coverage_test.cpp || die
+ fi
+ if use ubsan && ! use cfi; then
+ > test/cfi/CMakeLists.txt || die
+ fi
+
+ llvm.org_src_prepare
+}
+
+src_configure() {
+ # pre-set since we need to pass it to cmake
+ BUILD_DIR=${WORKDIR}/compiler-rt_build
+
+ if use clang; then
+ local -x CC=${CHOST}-clang
+ local -x CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ local flag want_sanitizer=OFF
+ for flag in "${SANITIZER_FLAGS[@]}"; do
+ if use "${flag}"; then
+ want_sanitizer=ON
+ break
+ fi
+ done
+
+ local mycmakeargs=(
+ -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}"
+ # use a build dir structure consistent with install
+ # this makes it possible to easily deploy test-friendly clang
+ -DCOMPILER_RT_OUTPUT_DIR="${BUILD_DIR}/lib/clang/${SLOT}"
+
+ -DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+ # builtins & crt installed by sys-libs/compiler-rt
+ -DCOMPILER_RT_BUILD_BUILTINS=OFF
+ -DCOMPILER_RT_BUILD_CRT=OFF
+ -DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer)
+ -DCOMPILER_RT_BUILD_MEMPROF=$(usex memprof)
+ -DCOMPILER_RT_BUILD_ORC=$(usex orc)
+ -DCOMPILER_RT_BUILD_PROFILE=$(usex profile)
+ -DCOMPILER_RT_BUILD_SANITIZERS="${want_sanitizer}"
+ -DCOMPILER_RT_BUILD_XRAY=$(usex xray)
+
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+ if use test; then
+ mycmakeargs+=(
+ -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm"
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+
+ # they are created during src_test()
+ -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang"
+ -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang++"
+ )
+
+ # same flags are passed for build & tests, so we need to strip
+ # them down to a subset supported by clang
+ CC=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang \
+ CXX=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++ \
+ strip-unsupported-flags
+ fi
+
+ if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then
+ mycmakeargs+=(
+ # setting -isysroot is disabled with compiler-rt-prefix-paths.patch
+ # this allows adding arm64 support using SDK in EPREFIX
+ -DDARWIN_macosx_CACHED_SYSROOT="${EPREFIX}/MacOSX.sdk"
+ # Set version based on the SDK in EPREFIX
+ # This disables i386 for SDK >= 10.15
+ # Will error if has_use tsan and SDK < 10.12
+ -DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath ${EPREFIX}/MacOSX.sdk | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')"
+ # Use our libtool instead of looking it up with xcrun
+ -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool"
+ )
+ fi
+
+ cmake_src_configure
+
+ if use test; then
+ local sys_dir=( "${EPREFIX}"/usr/lib/clang/${SLOT}/lib/* )
+ [[ -e ${sys_dir} ]] || die "Unable to find ${sys_dir}"
+ [[ ${#sys_dir[@]} -eq 1 ]] || die "Non-deterministic compiler-rt install: ${sys_dir[*]}"
+
+ # copy clang over since resource_dir is located relatively to binary
+ # therefore, we can put our new libraries in it
+ mkdir -p "${BUILD_DIR}"/lib/{llvm/${CLANG_SLOT}/{bin,$(get_libdir)},clang/${SLOT}/include} || die
+ cp "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/bin/clang{,++} \
+ "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/bin/ || die
+ cp "${EPREFIX}"/usr/lib/clang/${SLOT}/include/*.h \
+ "${BUILD_DIR}"/lib/clang/${SLOT}/include/ || die
+ cp "${sys_dir}"/*builtins*.a \
+ "${BUILD_DIR}/lib/clang/${SLOT}/lib/${sys_dir##*/}/" || die
+ # we also need LLVMgold.so for gold-based tests
+ if [[ -f ${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so ]]; then
+ ln -s "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so \
+ "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/$(get_libdir)/ || die
+ fi
+ fi
+}
+
+src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+ # disable sandbox to have it stop clobbering LD_PRELOAD
+ local -x SANDBOX_ON=0
+ # wipe LD_PRELOAD to make ASAN happy
+ local -x LD_PRELOAD=
+
+ cmake_build check-all
+}
diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-14.0.0.9999.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-14.0.0.9999.ebuild
index cc239e8feec6..86e4d10a7c76 100644
--- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-14.0.0.9999.ebuild
+++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-14.0.0.9999.ebuild
@@ -14,7 +14,7 @@ SLOT="$(ver_cut 1-3)"
KEYWORDS=""
IUSE="+clang test elibc_glibc"
# base targets
-IUSE+=" +libfuzzer +memprof +profile +xray"
+IUSE+=" +libfuzzer +memprof +orc +profile +xray"
# sanitizer targets, keep in sync with config-ix.cmake
# NB: ubsan, scudo deliberately match two entries
SANITIZER_FLAGS=(
@@ -23,7 +23,7 @@ SANITIZER_FLAGS=(
)
IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
REQUIRED_USE="
- || ( ${SANITIZER_FLAGS[*]} libfuzzer profile xray )
+ || ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
test? (
cfi? ( ubsan )
gwp-asan? ( scudo )
@@ -126,6 +126,7 @@ src_configure() {
-DCOMPILER_RT_BUILD_CRT=OFF
-DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer)
-DCOMPILER_RT_BUILD_MEMPROF=$(usex memprof)
+ -DCOMPILER_RT_BUILD_ORC=$(usex orc)
-DCOMPILER_RT_BUILD_PROFILE=$(usex profile)
-DCOMPILER_RT_BUILD_SANITIZERS="${want_sanitizer}"
-DCOMPILER_RT_BUILD_XRAY=$(usex xray)
diff --git a/sys-libs/compiler-rt-sanitizers/metadata.xml b/sys-libs/compiler-rt-sanitizers/metadata.xml
index b1905bb2cb09..bfdf4ba33fb5 100644
--- a/sys-libs/compiler-rt-sanitizers/metadata.xml
+++ b/sys-libs/compiler-rt-sanitizers/metadata.xml
@@ -9,6 +9,7 @@
than the default CC/CXX).</flag>
<flag name="libfuzzer">Build fuzzing runtime.</flag>
<flag name="memprof">Build memory profiler runtime.</flag>
+ <flag name="orc">Build ORC runtime.</flag>
<flag name="profile">Build profiling runtime.</flag>
<flag name="sanitize">Build sanitizer runtimes.</flag>
<flag name="xray">Build XRay runtime.</flag>
diff --git a/sys-libs/compiler-rt/Manifest b/sys-libs/compiler-rt/Manifest
index 6a73abf3dbb5..22e081e9fbe7 100644
--- a/sys-libs/compiler-rt/Manifest
+++ b/sys-libs/compiler-rt/Manifest
@@ -7,10 +7,12 @@ DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3
DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
DIST llvmorg-12.0.0.tar.gz 134226215 BLAKE2B f9c3ba8c58571855caa4f206fd285c9b5be66672fb0814cb8bc0964a051f57f5d35013aa1e27cbda502652b37df1ec23474129109e76a42066847860db441dbe SHA512 0cff02155c5ac0d6db2b72d60d9819d5b5dd859663b45f721b1c7540239c2fceb1f57d9173f6870c49de851c242ed8e85c5c6d6577a1f8092a7c5dcd12513b26
DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
+DIST llvmorg-13.0.0-rc1.tar.gz 147235597 BLAKE2B 089fed119dee8a16f278cebb13808bd5a95629cc87ebee3050225cc041b78fee51acacc5bcc913d4a99e830bfe5774b19a04a845293c5087dd2a8c9d94d2fde9 SHA512 6e307e2c2dcb7ff41d11ee29d69f41c0ef55f200999847a3a924a2e773fc9c2160015746789af8b723c628bd232f97fce63370209bd0065491d80b0cc0017e85
EBUILD compiler-rt-10.0.1.ebuild 2782 BLAKE2B cdc7937f616e86c3394d1cc68eeea05f3eebdcac051ca48e477d3a2cb765be1d616159f72a2b77ac21a0c2a4ebf1cc79f9d9cd23a2a1c7b26a4a252142c3af21 SHA512 4380bb10112f745e0034d36be105a1b4df159f34adafdd2b24157dc3652881ab8792e7758555ce167f59e2c3360b5d36b5d4f8d456df44fa5ee754f3c310677a
EBUILD compiler-rt-11.1.0.ebuild 3506 BLAKE2B fea54ca4aabe9bf35afc64a579ae18eb4491eeecb58ede43369ba9c294f624851214525f399cfa3adadee70ca66cbe64821376272b9965304266bcfc07b9f220 SHA512 f50906ee9f3b044a251ddd56db6ce10d3d2b632ffa7d3fd608cc5d7320e8d4b47b1ada26965b5fc9bb746e77c1b01ec61b5f719bc6bb2805720df035fca993da
EBUILD compiler-rt-12.0.0.ebuild 3541 BLAKE2B 0d5581a8a0f45d6843d3aca9ff184bb447e886e7e41faee2e4ebebb2154cfb2138ffa04be73eb6f76c60f7bbd65a8589649c64c60612037221c646535f04b7b5 SHA512 fa67b1e4105f9aa3bfa95c95a24c8bfeade28c521d4c69b0c08d8e8c469a06d62eb3a2b8c97175806922bd319ece1e016437c693baaab50646ec650f7aecd46e
-EBUILD compiler-rt-12.0.1.ebuild 3544 BLAKE2B b1841f87854a8fe106739b4248ef914219bc82c922a229fc6280ca2213e669bce4c64e06cc389bc3183f098afec0786492a3163d373a51a2664f586f7e700097 SHA512 2555664baf282d0d0e56cbb53c6824a196b4448e28c3c472e9d5f2c8cb114e12c0f1771219a8b62645a9cfbaf77ea8c80dd433b88a48d8a01922ad460e37cd26
-EBUILD compiler-rt-13.0.0.9999.ebuild 3472 BLAKE2B f51cde79576ea3eca64225cc1c9dd85b3613409739593f1ac362282328b5801c5ebd79cea1bb09935b6e33e0bbb080b2a9f6be33b909b3af9ff18270dd4ee120 SHA512 0bce4326f3c704f1f56c3a54e8c53b3424500f1bf0d30cf63d6645bc05daf87dcc8c27c894746c5a14c8b9121ed952e87c3a1c08e8d5c263d1d2fc97d2d952cf
-EBUILD compiler-rt-14.0.0.9999.ebuild 3472 BLAKE2B f51cde79576ea3eca64225cc1c9dd85b3613409739593f1ac362282328b5801c5ebd79cea1bb09935b6e33e0bbb080b2a9f6be33b909b3af9ff18270dd4ee120 SHA512 0bce4326f3c704f1f56c3a54e8c53b3424500f1bf0d30cf63d6645bc05daf87dcc8c27c894746c5a14c8b9121ed952e87c3a1c08e8d5c263d1d2fc97d2d952cf
+EBUILD compiler-rt-12.0.1.ebuild 3543 BLAKE2B 712b9ac026db2cb651ca4ce885e9a13d09ac72a048cfc9c795365309734b5cba35d6797e6027e04b4178b84bd73d62026d7cb212096c78e11f59e6b14b4c53c0 SHA512 b9ce661a62aad0f40a31ec9f0256558e02ce121e35a823891b7c2b4c23b340b4a27ec441ed4a8b650993436d4677acee920bfff4eb6e19ad0306fa62ec332566
+EBUILD compiler-rt-13.0.0.9999.ebuild 3502 BLAKE2B 260e765d2fbb17d20f3a4635301f2374b1197064746449d5ac4dbb3bfc3272bf033e8f12b71f8fbebed1175960942245b4bc835b86a2ebceb14cc0e8c3a71db3 SHA512 a28b48c91f9385ce0af256dbd7a8623e2da99619462ce7430fc219aed01198dd383196259f25f31c6daf44a51b405110f907a88456c13ea6fa5d389ed32b68fb
+EBUILD compiler-rt-13.0.0_rc1.ebuild 3502 BLAKE2B 260e765d2fbb17d20f3a4635301f2374b1197064746449d5ac4dbb3bfc3272bf033e8f12b71f8fbebed1175960942245b4bc835b86a2ebceb14cc0e8c3a71db3 SHA512 a28b48c91f9385ce0af256dbd7a8623e2da99619462ce7430fc219aed01198dd383196259f25f31c6daf44a51b405110f907a88456c13ea6fa5d389ed32b68fb
+EBUILD compiler-rt-14.0.0.9999.ebuild 3502 BLAKE2B 260e765d2fbb17d20f3a4635301f2374b1197064746449d5ac4dbb3bfc3272bf033e8f12b71f8fbebed1175960942245b4bc835b86a2ebceb14cc0e8c3a71db3 SHA512 a28b48c91f9385ce0af256dbd7a8623e2da99619462ce7430fc219aed01198dd383196259f25f31c6daf44a51b405110f907a88456c13ea6fa5d389ed32b68fb
MISC metadata.xml 333 BLAKE2B fc411d2ccf9b848ed7ba71d6a1eb01c54237a38e3c612c22d39549f6b23ebc3179dd08c855852a72b9a4f4ae89418a078048702324df27b4fac11c36e80f846b SHA512 ca50c4e5ef7d52c167bca6a4ab2961a1f7f82d0e84722ec65b8ae44d0ff8a4a7db1dce630f6f18f7b526f77c432af7ebc9a29564659631bad1e3900b6f1df49b
diff --git a/sys-libs/compiler-rt/compiler-rt-12.0.1.ebuild b/sys-libs/compiler-rt/compiler-rt-12.0.1.ebuild
index 6470229215e3..ab455e9a4d17 100644
--- a/sys-libs/compiler-rt/compiler-rt-12.0.1.ebuild
+++ b/sys-libs/compiler-rt/compiler-rt-12.0.1.ebuild
@@ -11,7 +11,7 @@ HOMEPAGE="https://llvm.org/"
LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
SLOT="$(ver_cut 1-3)"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
IUSE="+clang test"
RESTRICT="!test? ( test ) !clang? ( test )"
diff --git a/sys-libs/compiler-rt/compiler-rt-13.0.0.9999.ebuild b/sys-libs/compiler-rt/compiler-rt-13.0.0.9999.ebuild
index 6f732cc60ab6..f726db78861b 100644
--- a/sys-libs/compiler-rt/compiler-rt-13.0.0.9999.ebuild
+++ b/sys-libs/compiler-rt/compiler-rt-13.0.0.9999.ebuild
@@ -83,6 +83,7 @@ src_configure() {
-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-DCOMPILER_RT_BUILD_LIBFUZZER=OFF
-DCOMPILER_RT_BUILD_MEMPROF=OFF
+ -DCOMPILER_RT_BUILD_ORC=OFF
-DCOMPILER_RT_BUILD_PROFILE=OFF
-DCOMPILER_RT_BUILD_SANITIZERS=OFF
-DCOMPILER_RT_BUILD_XRAY=OFF
diff --git a/sys-libs/compiler-rt/compiler-rt-13.0.0_rc1.ebuild b/sys-libs/compiler-rt/compiler-rt-13.0.0_rc1.ebuild
new file mode 100644
index 000000000000..f726db78861b
--- /dev/null
+++ b/sys-libs/compiler-rt/compiler-rt-13.0.0_rc1.ebuild
@@ -0,0 +1,125 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{8..10} )
+inherit cmake flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs
+
+DESCRIPTION="Compiler runtime library for clang (built-in part)"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="$(ver_cut 1-3)"
+KEYWORDS=""
+IUSE="+clang test"
+RESTRICT="!test? ( test ) !clang? ( test )"
+
+CLANG_SLOT=${SLOT%%.*}
+# llvm-6 for new lit options
+DEPEND="
+ >=sys-devel/llvm-6"
+BDEPEND="
+ >=dev-util/cmake-3.16
+ clang? ( sys-devel/clang )
+ test? (
+ $(python_gen_any_dep ">=dev-python/lit-9.0.1[\${PYTHON_USEDEP}]")
+ =sys-devel/clang-${PV%_*}*:${CLANG_SLOT}
+ )
+ ${PYTHON_DEPS}"
+
+LLVM_COMPONENTS=( compiler-rt )
+LLVM_PATCHSET=9999-1
+llvm.org_set_globals
+
+python_check_deps() {
+ use test || return 0
+ has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_pretend() {
+ if ! use clang && ! tc-is-clang; then
+ ewarn "Building using a compiler other than clang may result in broken atomics"
+ ewarn "library. Enable USE=clang unless you have a very good reason not to."
+ fi
+}
+
+pkg_setup() {
+ # Darwin Prefix builds do not have llvm installed yet, so rely on
+ # bootstrap-prefix to set the appropriate path vars to LLVM instead
+ # of using llvm_pkg_setup.
+ if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then
+ llvm_pkg_setup
+ fi
+ python-any-r1_pkg_setup
+}
+
+test_compiler() {
+ $(tc-getCC) ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \
+ <<<'int main() { return 0; }' &>/dev/null
+}
+
+src_configure() {
+ # pre-set since we need to pass it to cmake
+ BUILD_DIR=${WORKDIR}/${P}_build
+
+ local nolib_flags=( -nodefaultlibs -lc )
+ if use clang; then
+ local -x CC=${CHOST}-clang
+ local -x CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ # ensure we can use clang before installing compiler-rt
+ local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}"
+ elif ! test_compiler; then
+ if test_compiler "${nolib_flags[@]}"; then
+ local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}"
+ ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}"
+ fi
+ fi
+
+ local mycmakeargs=(
+ -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}"
+
+ -DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+ -DCOMPILER_RT_BUILD_LIBFUZZER=OFF
+ -DCOMPILER_RT_BUILD_MEMPROF=OFF
+ -DCOMPILER_RT_BUILD_ORC=OFF
+ -DCOMPILER_RT_BUILD_PROFILE=OFF
+ -DCOMPILER_RT_BUILD_SANITIZERS=OFF
+ -DCOMPILER_RT_BUILD_XRAY=OFF
+
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+
+ if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then
+ mycmakeargs+=(
+ # setting -isysroot is disabled with compiler-rt-prefix-paths.patch
+ # this allows adding arm64 support using SDK in EPREFIX
+ -DDARWIN_macosx_CACHED_SYSROOT="${EPREFIX}/MacOSX.sdk"
+ # Set version based on the SDK in EPREFIX.
+ # This disables i386 for SDK >= 10.15
+ -DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath ${EPREFIX}/MacOSX.sdk | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')"
+ # Use our libtool instead of looking it up with xcrun
+ -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool"
+ )
+ fi
+
+ if use test; then
+ mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+
+ -DCOMPILER_RT_TEST_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang"
+ -DCOMPILER_RT_TEST_CXX_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++"
+ )
+ fi
+
+ cmake_src_configure
+}
+
+src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+
+ cmake_build check-builtins
+}
diff --git a/sys-libs/compiler-rt/compiler-rt-14.0.0.9999.ebuild b/sys-libs/compiler-rt/compiler-rt-14.0.0.9999.ebuild
index 6f732cc60ab6..f726db78861b 100644
--- a/sys-libs/compiler-rt/compiler-rt-14.0.0.9999.ebuild
+++ b/sys-libs/compiler-rt/compiler-rt-14.0.0.9999.ebuild
@@ -83,6 +83,7 @@ src_configure() {
-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-DCOMPILER_RT_BUILD_LIBFUZZER=OFF
-DCOMPILER_RT_BUILD_MEMPROF=OFF
+ -DCOMPILER_RT_BUILD_ORC=OFF
-DCOMPILER_RT_BUILD_PROFILE=OFF
-DCOMPILER_RT_BUILD_SANITIZERS=OFF
-DCOMPILER_RT_BUILD_XRAY=OFF
diff --git a/sys-libs/glibc/Manifest b/sys-libs/glibc/Manifest
index cef0573f729a..326441fd9535 100644
--- a/sys-libs/glibc/Manifest
+++ b/sys-libs/glibc/Manifest
@@ -26,6 +26,8 @@ DIST glibc-2.33-patches-3.tar.xz 37076 BLAKE2B 718ab706df85c966145958fb6137b5499
DIST glibc-2.33-patches-4.tar.xz 60124 BLAKE2B a7a99f39c16df241745772c31b10946dc44c51e6c09f8a447b905e7dd6ba529aee08f66a581431453c6665485ac1848861559aa3f0aaba8c2061c1f1eb77d9be SHA512 05c33dc465a98097f836783bb5037dfa14b3a2c0c140014f642ea72954222ae919fe2db9573ee70ca9c1881b3b59dd4b815a8f39f331494fa12951c9012797ef
DIST glibc-2.33-patches-5.tar.xz 63032 BLAKE2B e7f5952b2d84dc264e960d8bd3d9af4ca43089ca269735168933e80a0a74d7be1cadc90935b429cfdf5f0052d3ce3482a8f073b15378e7f9c05034535d9eae4d SHA512 00c2f8f104e7899b76398a6a39f054cd109a71f5fcc4020304b7d7e15ae0c53df1c3acbafd56898427b3849452f9fb9e5064ff584d6c86c4d18c8a9201c89d29
DIST glibc-2.33.tar.xz 17031280 BLAKE2B 703d12121c1e2c5d9e0c6ba5341f5fb5c4d9111611a83f2360029b5de9c6e5a5611249d1833684a58ed4afdf49cae614365d87ec8721ba0e5d218f593b1f229d SHA512 4cb5777b68b22b746cc51669e0e9282b43c83f6944e42656e6db7195ebb68f2f9260f130fdeb4e3cfc64efae4f58d96c43d388f52be1eb024ca448084684abdb
+DIST glibc-2.34-patches-1.tar.xz 7656 BLAKE2B e4ed403a10276a4ea468632b3f2baf31c8e7cd6c95a6f50fb6dd8f1196890e2ce5e66c878a67a3a28451d662b71ba67177d467f94a2161d3b13894eccbe54694 SHA512 d495a27c38eb685273e509d02b1c87e17b9908af9ff838925c34e0f2bcb063afb89e666eca1e5829edf91ffe41f4e70f66ed6cbd738b1df82ef6af4b3f99f502
+DIST glibc-2.34.tar.xz 17301232 BLAKE2B 874031192f2f5a3b35c3f5b044a467d4be4e67e8593e070e5b49b901ce8ea6bde2f8d2f6c92fa33b3f61eb723572a9e5f2b45e56064168df80a96d3fdb6fa30c SHA512 15252affd9ef4523a8001db16d497f4fdcb3ddf4cde7fe80e075df0bd3cc6524dc29fbe20229dbf5f97af580556e6b1fac0de321a5fe25322bc3e72f93beb624
DIST glibc-systemd-20210727.tar.gz 1454 BLAKE2B 0383338f73cec9a13165f0be261eb3d46c0362425b5fe31846f0ec00da9aff69d941e8b0e0ad1f8691edf9dc30796c239e8e984207725e4cf98fd037e7168e22 SHA512 09a91f6351657abfca200d110b0a43d541399c2db142c5706e06b4eebb736932e8f1b026be8d844be64f8e2c981777c342004492ef99c3c81cb04bf75a2c3ee8
DIST glibc-systemd-20210729.tar.gz 1480 BLAKE2B 37722c7579df782d890e44dbab99c3de52ab466eb9de80d82405e9bb5620bf39ffc8c5f466a435bdb86ef6d36dd7019c0736573916bda6c67d02a2581e0ec979 SHA512 efd75af58b50522c28cdac7abd1fc56555bc1bb042512c90d8340c1ec09c5791b3872a305bf83723252bbde5855b75d958c041083457765c4cfd170732d09238
DIST locale-gen-2.00.tar.gz 7738 BLAKE2B cde6de5ba3400aea24d0d5f1b79471f89f09fb747c8e371e38316c7ada92f967e0865f573f23cb353d82419c234724143c0aeca9eb70eb945dfc581cc7491eb1 SHA512 b609fddb9ec5e567c008841fef3390eddb5d6e7699a8271b3b8c0ade1b44b0ac2e5d1daa8b9acabf3432e3b88110b538a96f209b1ad0f9e988b7efce66606dff
@@ -35,8 +37,9 @@ EBUILD glibc-2.25-r11.ebuild 6071 BLAKE2B aed6cdc8141eb47e7f734ca59e98314d0c5340
EBUILD glibc-2.30-r9.ebuild 43403 BLAKE2B 039f1e866d0ecbe7e6805265694800ed4873a5643b5ccbaedd18c24ab42bdb2797bd4a597d3cb5321a527eb4feda555b31a143ce80f984774f2ae5498b57c45f SHA512 b9843ca092e6814b23ac1b9741bec02bd9d54a6d48df3caf451e65eae8db2068137a425c9d03d86daccdf67c856f8bf1c8200b8c95461fcbc7aa790599fdccd6
EBUILD glibc-2.31-r7.ebuild 44522 BLAKE2B 1adfba68c35d3af5ec8476b2fe5d3bebf13880eeacb5aaa8438b41b98f5b275f0816a0e654446f62ee2f34f412c5c6e72befcc0deb8988b6faec2c53a07601a9 SHA512 5247b1d75efa86b1a1c85a09219f54d402aae8aaecf0e377ca663a984daf7c69ea97b3072fe83a20002ec7d72661ec7737fbc72982122b58c26cb5bc89997548
EBUILD glibc-2.32-r8.ebuild 44853 BLAKE2B 724f95c0ed2cda18dc2edcaa03b0783a2bc603b72a67e1451535040ddc83be6d1a90ad4b30f9623140b5c0a329ecafb6f19793390137e629d43a3c26e202b28a SHA512 0973b86c266e40203e301cf0c6f8fddc4273c002ffb8fd6c16f6e78f2cfdfbea95fda04adfebb8ee84a14dc950763ba706eadadb2e83f7982b800bee636d5d8f
-EBUILD glibc-2.33-r1.ebuild 45207 BLAKE2B 0512c0b719895136a6a5ab76e2625805539c8733403d3738ddc5d069f5d74fdc3592e3fa4fd8865d839c179189260fa74f6a37eaa4ae1e26f008eab60484cbf7 SHA512 42c84f34a6559ebd3d957d6a73a757a542f83f34ba32c98bd013b8b392329816f3e2c09c37afb24fbbfb1a6720ccd2321ed3d555102c0b5a0e797a36995eb6f8
-EBUILD glibc-2.33-r5.ebuild 46548 BLAKE2B 242f7ec2f124fc172e89e21602a8fda9b1ce0d92ac953237736cc83afedb81fbbc7a2204ee99a2149e86a88310ec5d5d229d2db4be47bc93beec0389fc28c3b0 SHA512 f825bede4d8bc7bfebe030ec987fc90dabade3ab8df53cb163227d9bd81395f52d02819e3c65e996c3e1847d6190e3ca42768aef50b3c70636afb634a29ad3ff
+EBUILD glibc-2.33-r1.ebuild 45234 BLAKE2B 2a698cab717d087df0f991d2849cd293e9b7504265f1049906d64d36cabf7bd7d44204db38da3ea95984dec6908ae665d471ff1cf077c1b89d9677fec6447224 SHA512 d8799b40c1f61ed11f081285af9998fcfa025cc0b11eeed1de2798f3524ad9b8771708b01f1853ee203875ba881659c7a863ecebd363840dea4118d942b17b22
+EBUILD glibc-2.33-r5.ebuild 46575 BLAKE2B 077bf1b4f462242a54d3730f9c5ee0cb137958b0687f40408f4af12f1665cdc0eceb82b05578a4448f7f0f4892da5c489b90996803ce0fd58e2d3c1d3f3ed434 SHA512 c807e788d85ecfeb8d9ade66ceb757976294b1ebb8aae17dabeb46be6304c14f643ecd1bd893591a24448ab4b27b6be57c30460c4ae702d30a5fb6d2ce4b819e
EBUILD glibc-2.33.ebuild 43992 BLAKE2B b5fd1fa3b2e2b727574028241e7805cab448b37d3975502f12140e2cd6cf98784af36393a1116c13ebaa490db3f18b7b20a56bd53343015abc521201c193eb3f SHA512 911c152ce3ff50ff79db9d53b570ff0fcf837549a072656fef8ad429d02788f89d6ee1266605c539dcbcf273aa791cf075043e8b4895eb8d67404be531631086
-EBUILD glibc-9999.ebuild 46809 BLAKE2B 4d0728aaccb95fae5aed73bcc14c1cf1301ec021b39772ffa281b8112f7e8c4ffb2a4e794197657ec66df62e87c1147fd64004e444e9bfc04d89025782487fd8 SHA512 fe4e3d759c7efb4926b987ebb10de093355e5afe8cdc63c9c893d3e923a78681f4563df1c0813470117262a49acf0acedad9b26485ed247f704e71d34a218d67
+EBUILD glibc-2.34.ebuild 46846 BLAKE2B a879fcda54e7fb31e86992fd1a0f1beb06472f99033e886d8ab84aef7fefd853cae341707f15c12a5da8089dd947dd01914d97d4833de1563c44785ed35036ae SHA512 7c0cba27ac833a9c20c9d7072be33f3de3ebe46112854c4640917de68d655d04005a28e60820d5e258561bdc9bc7fe35d970cb73b2b197b0d1ecc0ed20d76673
+EBUILD glibc-9999.ebuild 46844 BLAKE2B f509268bfe2452c28f5e75565ef2c704251452dc090ae9c0f1c01a37bafa450f65dae6b4a19b6fe968cc3eb9ae1dfd272c7f776001dc0999e5c60158caa6545a SHA512 27fde2de8f1aa15de4e6df6a7d04c416832628cf7420267485a624e2f6cffb9a7f464cb34e0ed2de78c69ff1a4f99951756cf7d6389dec4ca3ed4e05c7c972db
MISC metadata.xml 1611 BLAKE2B 3bd777c160ea20cdbd86cca791d9fd4ff02f8d100344235ec74fff37d5cae1e7119e0ec26969707e75a983dcdb23e994559c8be128ef40fa0ec9ed655017466d SHA512 08be6d085ac47b140fff17a3be8cee77e066a4536cdce76fa44c77875dec2a9dc236ff67ff44301abf75cb196d1902feb2a139dda420220248b46dd9cdb16b9f
diff --git a/sys-libs/glibc/glibc-2.33-r1.ebuild b/sys-libs/glibc/glibc-2.33-r1.ebuild
index fe0ef6cbb240..bf6573015127 100644
--- a/sys-libs/glibc/glibc-2.33-r1.ebuild
+++ b/sys-libs/glibc/glibc-2.33-r1.ebuild
@@ -94,7 +94,7 @@ fi
BDEPEND="
${PYTHON_DEPS}
- >=app-misc/pax-utils-0.1.10
+ >=app-misc/pax-utils-1.3.1
sys-devel/bison
doc? ( sys-apps/texinfo )
!compile-locales? (
@@ -112,7 +112,6 @@ COMMON_DEPEND="
suid? ( caps? ( sys-libs/libcap ) )
selinux? ( sys-libs/libselinux )
systemtap? ( dev-util/systemtap )
- !<net-misc/openssh-8.1_p1-r2
"
DEPEND="${COMMON_DEPEND}
compile-locales? (
@@ -127,6 +126,8 @@ RDEPEND="${COMMON_DEPEND}
sys-apps/grep
virtual/awk
sys-apps/gentoo-functions
+ !<app-misc/pax-utils-1.3.1
+ !<net-misc/openssh-8.1_p1-r2
"
RESTRICT="!test? ( test )"
diff --git a/sys-libs/glibc/glibc-2.33-r5.ebuild b/sys-libs/glibc/glibc-2.33-r5.ebuild
index 8c7ab1e3d329..65857001c425 100644
--- a/sys-libs/glibc/glibc-2.33-r5.ebuild
+++ b/sys-libs/glibc/glibc-2.33-r5.ebuild
@@ -97,7 +97,7 @@ fi
BDEPEND="
${PYTHON_DEPS}
- >=app-misc/pax-utils-0.1.10
+ >=app-misc/pax-utils-1.3.1
sys-devel/bison
doc? ( sys-apps/texinfo )
!compile-locales? (
@@ -115,7 +115,6 @@ COMMON_DEPEND="
suid? ( caps? ( sys-libs/libcap ) )
selinux? ( sys-libs/libselinux )
systemtap? ( dev-util/systemtap )
- !<net-misc/openssh-8.1_p1-r2
"
DEPEND="${COMMON_DEPEND}
compile-locales? (
@@ -130,6 +129,8 @@ RDEPEND="${COMMON_DEPEND}
sys-apps/grep
virtual/awk
sys-apps/gentoo-functions
+ !<app-misc/pax-utils-1.3.1
+ !<net-misc/openssh-8.1_p1-r2
"
RESTRICT="!test? ( test )"
diff --git a/sys-libs/glibc/glibc-2.34.ebuild b/sys-libs/glibc/glibc-2.34.ebuild
new file mode 100644
index 000000000000..b9c6d96cb9f1
--- /dev/null
+++ b/sys-libs/glibc/glibc-2.34.ebuild
@@ -0,0 +1,1558 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{7,8,9,10} )
+TMPFILES_OPTIONAL=1
+
+inherit python-any-r1 prefix preserve-libs toolchain-funcs flag-o-matic gnuconfig \
+ multilib systemd multiprocessing tmpfiles
+
+DESCRIPTION="GNU libc C library"
+HOMEPAGE="https://www.gnu.org/software/libc/"
+LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE"
+SLOT="2.2"
+
+EMULTILIB_PKG="true"
+
+# Gentoo patchset (ignored for live ebuilds)
+PATCH_VER=1
+PATCH_DEV=dilfridge
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+else
+ #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+ KEYWORDS=""
+ SRC_URI="mirror://gnu/glibc/${P}.tar.xz"
+ SRC_URI+=" https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz"
+fi
+
+RELEASE_VER=${PV}
+
+GCC_BOOTSTRAP_VER=20201208
+
+LOCALE_GEN_VER=2.10
+
+GLIBC_SYSTEMD_VER=20210729
+
+SRC_URI+=" https://gitweb.gentoo.org/proj/locale-gen.git/snapshot/locale-gen-${LOCALE_GEN_VER}.tar.gz"
+SRC_URI+=" multilib-bootstrap? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )"
+SRC_URI+=" systemd? ( https://gitweb.gentoo.org/proj/toolchain/glibc-systemd.git/snapshot/glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz )"
+
+IUSE="audit caps cet compile-locales +crypt custom-cflags doc gd headers-only +multiarch multilib multilib-bootstrap nscd profile selinux +ssp +static-libs static-pie suid systemd systemtap test vanilla"
+
+# Minimum kernel version that glibc requires
+MIN_KERN_VER="3.2.0"
+
+# Here's how the cross-compile logic breaks down ...
+# CTARGET - machine that will target the binaries
+# CHOST - machine that will host the binaries
+# CBUILD - machine that will build the binaries
+# If CTARGET != CHOST, it means you want a libc for cross-compiling.
+# If CHOST != CBUILD, it means you want to cross-compile the libc.
+# CBUILD = CHOST = CTARGET - native build/install
+# CBUILD != (CHOST = CTARGET) - cross-compile a native build
+# (CBUILD = CHOST) != CTARGET - libc for cross-compiler
+# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler
+# For install paths:
+# CHOST = CTARGET - install into /
+# CHOST != CTARGET - install into /usr/CTARGET/
+#
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+
+# Note [Disable automatic stripping]
+# Disabling automatic stripping for a few reasons:
+# - portage's attempt to strip breaks non-native binaries at least on
+# arm: bug #697428
+# - portage's attempt to strip libpthread.so.0 breaks gdb thread
+# enumeration: bug #697910. This is quite subtle:
+# * gdb uses glibc's libthread_db-1.0.so to enumerate threads.
+# * libthread_db-1.0.so needs access to libpthread.so.0 local symbols
+# via 'ps_pglobal_lookup' symbol defined in gdb.
+# * 'ps_pglobal_lookup' uses '.symtab' section table to resolve all
+# known symbols in 'libpthread.so.0'. Specifically 'nptl_version'
+# (unexported) is used to sanity check compatibility before enabling
+# debugging.
+# Also see https://sourceware.org/gdb/wiki/FAQ#GDB_does_not_see_any_threads_besides_the_one_in_which_crash_occurred.3B_or_SIGTRAP_kills_my_program_when_I_set_a_breakpoint
+# * normal 'strip' command trims '.symtab'
+# Thus our main goal here is to prevent 'libpthread.so.0' from
+# losing it's '.symtab' entries.
+# As Gentoo's strip does not allow us to pass less aggressive stripping
+# options and does not check the machine target we strip selectively.
+
+# We need a new-enough binutils/gcc to match upstream baseline.
+# Also we need to make sure our binutils/gcc supports TLS,
+# and that gcc already contains the hardened patches.
+# Lastly, let's avoid some openssh nastiness, bug 708224, as
+# convenience to our users.
+
+# gzip, grep, awk are needed by locale-gen, bug 740750
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-misc/pax-utils-1.3.3
+ sys-devel/bison
+ doc? ( sys-apps/texinfo )
+ !compile-locales? (
+ app-arch/gzip
+ sys-apps/grep
+ virtual/awk
+ )
+"
+COMMON_DEPEND="
+ gd? ( media-libs/gd:2= )
+ nscd? ( selinux? (
+ audit? ( sys-process/audit )
+ caps? ( sys-libs/libcap )
+ ) )
+ suid? ( caps? ( sys-libs/libcap ) )
+ selinux? ( sys-libs/libselinux )
+ systemtap? ( dev-util/systemtap )
+"
+DEPEND="${COMMON_DEPEND}
+ compile-locales? (
+ app-arch/gzip
+ sys-apps/grep
+ virtual/awk
+ )
+ test? ( >=net-dns/libidn2-2.3.0 )
+"
+RDEPEND="${COMMON_DEPEND}
+ app-arch/gzip
+ sys-apps/grep
+ virtual/awk
+ sys-apps/gentoo-functions
+ !<app-misc/pax-utils-1.3.3
+ !<net-misc/openssh-8.1_p1-r2
+"
+
+RESTRICT="!test? ( test )"
+
+if [[ ${CATEGORY} == cross-* ]] ; then
+ BDEPEND+=" !headers-only? (
+ >=${CATEGORY}/binutils-2.27
+ >=${CATEGORY}/gcc-6
+ )"
+ [[ ${CATEGORY} == *-linux* ]] && DEPEND+=" ${CATEGORY}/linux-headers"
+else
+ BDEPEND+="
+ >=sys-devel/binutils-2.27
+ >=sys-devel/gcc-6
+ "
+ DEPEND+=" virtual/os-headers "
+ RDEPEND+="
+ >=net-dns/libidn2-2.3.0
+ vanilla? ( !sys-libs/timezone-data )
+ "
+ PDEPEND+=" !vanilla? ( sys-libs/timezone-data )"
+fi
+
+# Ignore tests whitelisted below
+GENTOO_GLIBC_XFAIL_TESTS="${GENTOO_GLIBC_XFAIL_TESTS:-yes}"
+
+# The following tests fail due to the Gentoo build system and are thus
+# executed but ignored:
+XFAIL_TEST_LIST=(
+ # 9) Failures of unknown origin
+ tst-latepthread
+
+ # buggy test, assumes /dev/ and /dev/null on a single filesystem
+ # 'mount --bind /dev/null /chroot/dev/null' breaks it.
+ # https://sourceware.org/PR25909
+ tst-support_descriptors
+
+ # Flaky test, known to fail occasionally:
+ # https://sourceware.org/PR19329
+ # https://bugs.gentoo.org/719674#c12
+ tst-stack4
+)
+
+#
+# Small helper functions
+#
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+
+just_headers() {
+ is_crosscompile && use headers-only
+}
+
+alt_prefix() {
+ is_crosscompile && echo /usr/${CTARGET}
+}
+
+# This prefix is applicable to CHOST when building against this
+# glibc. It is baked into the library at configure time.
+host_eprefix() {
+ is_crosscompile || echo "${EPREFIX}"
+}
+
+# This prefix is applicable to CBUILD when building against this
+# glibc. It determines the destination path at install time.
+build_eprefix() {
+ is_crosscompile && echo "${EPREFIX}"
+}
+
+# We need to be able to set alternative headers for compiling for non-native
+# platform. Will also become useful for testing kernel-headers without screwing
+# up the whole system.
+alt_headers() {
+ echo ${ALT_HEADERS:=$(alt_prefix)/usr/include}
+}
+
+alt_build_headers() {
+ if [[ -z ${ALT_BUILD_HEADERS} ]] ; then
+ ALT_BUILD_HEADERS="$(host_eprefix)$(alt_headers)"
+ if tc-is-cross-compiler ; then
+ ALT_BUILD_HEADERS=${SYSROOT}$(alt_headers)
+ if [[ ! -e ${ALT_BUILD_HEADERS}/linux/version.h ]] ; then
+ local header_path=$(echo '#include <linux/version.h>' | $(tc-getCPP ${CTARGET}) ${CFLAGS} 2>&1 | grep -o '[^"]*linux/version.h')
+ ALT_BUILD_HEADERS=${header_path%/linux/version.h}
+ fi
+ fi
+ fi
+ echo "${ALT_BUILD_HEADERS}"
+}
+
+alt_libdir() {
+ echo $(alt_prefix)/$(get_libdir)
+}
+alt_usrlibdir() {
+ echo $(alt_prefix)/usr/$(get_libdir)
+}
+
+builddir() {
+ echo "${WORKDIR}/build-${ABI}-${CTARGET}-$1"
+}
+
+do_compile_test() {
+ local ret save_cflags=${CFLAGS}
+ CFLAGS+=" $1"
+ shift
+
+ pushd "${T}" >/dev/null
+
+ rm -f glibc-test*
+ printf '%b' "$*" > glibc-test.c
+
+ # Most of the time CC is already set, but not in early sanity checks.
+ nonfatal emake glibc-test CC="${CC-$(tc-getCC ${CTARGET})}"
+ ret=$?
+
+ popd >/dev/null
+
+ CFLAGS=${save_cflags}
+ return ${ret}
+}
+
+do_run_test() {
+ local ret
+
+ if [[ ${MERGE_TYPE} == "binary" ]] ; then
+ # ignore build failures when installing a binary package #324685
+ do_compile_test "" "$@" 2>/dev/null || return 0
+ else
+ if ! do_compile_test "" "$@" ; then
+ ewarn "Simple build failed ... assuming this is desired #324685"
+ return 0
+ fi
+ fi
+
+ pushd "${T}" >/dev/null
+
+ ./glibc-test
+ ret=$?
+ rm -f glibc-test*
+
+ popd >/dev/null
+
+ return ${ret}
+}
+
+setup_target_flags() {
+ # This largely mucks with compiler flags. None of which should matter
+ # when building up just the headers.
+ just_headers && return 0
+
+ case $(tc-arch) in
+ x86)
+ # -march needed for #185404 #199334
+ # TODO: When creating the first glibc cross-compile, this test will
+ # always fail as it does a full link which in turn requires glibc.
+ # Probably also applies when changing multilib profile settings (e.g.
+ # enabling x86 when the profile was amd64-only previously).
+ # We could change main to _start and pass -nostdlib here so that we
+ # only test the gcc code compilation. Or we could do a compile and
+ # then look for the symbol via scanelf.
+ if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then
+ local t=${CTARGET_OPT:-${CTARGET}}
+ t=${t%%-*}
+ filter-flags '-march=*'
+ export CFLAGS="-march=${t} ${CFLAGS}"
+ einfo "Auto adding -march=${t} to CFLAGS #185404"
+ fi
+ ;;
+ amd64)
+ # -march needed for #185404 #199334
+ # TODO: See cross-compile issues listed above for x86.
+ [[ ${ABI} == x86 ]] &&
+ if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then
+ local t=${CTARGET_OPT:-${CTARGET}}
+ t=${t%%-*}
+ # Normally the target is x86_64-xxx, so turn that into the -march that
+ # gcc actually accepts. #528708
+ [[ ${t} == "x86_64" ]] && t="x86-64"
+ filter-flags '-march=*'
+ # ugly, ugly, ugly. ugly.
+ CFLAGS_x86=$(CFLAGS=${CFLAGS_x86} filter-flags '-march=*'; echo "${CFLAGS}")
+ export CFLAGS_x86="${CFLAGS_x86} -march=${t}"
+ einfo "Auto adding -march=${t} to CFLAGS_x86 #185404 (ABI=${ABI})"
+ fi
+ ;;
+ mips)
+ # The mips abi cannot support the GNU style hashes. #233233
+ filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both
+ ;;
+ ppc|ppc64)
+ # Many arch-specific implementations do not work on ppc with
+ # cache-block not equal to 128 bytes. This breaks memset:
+ # https://sourceware.org/PR26522
+ # https://bugs.gentoo.org/737996
+ # Use default -mcpu=. For ppc it means non-multiarch setup.
+ filter-flags '-mcpu=*'
+ ;;
+ sparc)
+ # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though.
+ filter-flags "-fcall-used-g7"
+ append-flags "-fcall-used-g6"
+
+ local cpu
+ case ${CTARGET} in
+ sparc64-*)
+ cpu="sparc64"
+ case $(get-flag mcpu) in
+ v9)
+ # We need to force at least v9a because the base build doesn't
+ # work with just v9.
+ # https://sourceware.org/bugzilla/show_bug.cgi?id=19477
+ append-flags "-Wa,-xarch=v9a"
+ ;;
+ esac
+ ;;
+ sparc-*)
+ case $(get-flag mcpu) in
+ v8|supersparc|hypersparc|leon|leon3)
+ cpu="sparcv8"
+ ;;
+ *)
+ cpu="sparcv9"
+ ;;
+ esac
+ ;;
+ esac
+ [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}"
+ ;;
+ esac
+}
+
+setup_flags() {
+ # Make sure host make.conf doesn't pollute us
+ if is_crosscompile || tc-is-cross-compiler ; then
+ CHOST=${CTARGET} strip-unsupported-flags
+ fi
+
+ # Store our CFLAGS because it's changed depending on which CTARGET
+ # we are building when pulling glibc on a multilib profile
+ CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}}
+ CFLAGS=${CFLAGS_BASE}
+ CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}}
+ CXXFLAGS=${CXXFLAGS_BASE}
+ ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}}
+ ASFLAGS=${ASFLAGS_BASE}
+
+ # Allow users to explicitly avoid flag sanitization via
+ # USE=custom-cflags.
+ if ! use custom-cflags; then
+ # Over-zealous CFLAGS can often cause problems. What may work for one
+ # person may not work for another. To avoid a large influx of bugs
+ # relating to failed builds, we strip most CFLAGS out to ensure as few
+ # problems as possible.
+ strip-flags
+ # Lock glibc at -O2; we want to be conservative here.
+ filter-flags '-O?'
+ append-flags -O2
+ fi
+ strip-unsupported-flags
+ filter-flags -m32 -m64 '-mabi=*'
+
+ # glibc aborts if rpath is set by LDFLAGS
+ filter-ldflags '-Wl,-rpath=*'
+
+ # ld can't use -r & --relax at the same time, bug #788901
+ # https://sourceware.org/PR27837
+ filter-ldflags '-Wl,--relax'
+
+ # #492892
+ filter-flags -frecord-gcc-switches
+
+ unset CBUILD_OPT CTARGET_OPT
+ if use multilib ; then
+ CTARGET_OPT=$(get_abi_CTARGET)
+ [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST)
+ fi
+
+ setup_target_flags
+
+ if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then
+ CBUILD_OPT=${CTARGET_OPT}
+ fi
+
+ # glibc's headers disallow -O0 and fail at build time:
+ # include/libc-symbols.h:75:3: #error "glibc cannot be compiled without optimization"
+ replace-flags -O0 -O1
+
+ filter-flags '-fstack-protector*'
+}
+
+want_tls() {
+ # Archs that can use TLS (Thread Local Storage)
+ case $(tc-arch) in
+ x86)
+ # requires i486 or better #106556
+ [[ ${CTARGET} == i[4567]86* ]] && return 0
+ return 1
+ ;;
+ esac
+ return 0
+}
+
+want__thread() {
+ want_tls || return 1
+
+ # For some reason --with-tls --with__thread is causing segfaults on sparc32.
+ [[ ${PROFILE_ARCH} == "sparc" ]] && return 1
+
+ [[ -n ${WANT__THREAD} ]] && return ${WANT__THREAD}
+
+ # only test gcc -- can't test linking yet
+ tc-has-tls -c ${CTARGET}
+ WANT__THREAD=$?
+
+ return ${WANT__THREAD}
+}
+
+use_multiarch() {
+ # Allow user to disable runtime arch detection in multilib.
+ use multiarch || return 1
+ # Make sure binutils is new enough to support indirect functions,
+ # #336792. This funky sed supports gold and bfd linkers.
+ local bver nver
+ bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}')
+ case $(tc-arch ${CTARGET}) in
+ amd64|x86) nver="2.20" ;;
+ arm) nver="2.22" ;;
+ hppa) nver="2.23" ;;
+ ppc|ppc64) nver="2.20" ;;
+ # ifunc support was added in 2.23, but glibc also needs
+ # machinemode which is in 2.24.
+ s390) nver="2.24" ;;
+ sparc) nver="2.21" ;;
+ *) return 1 ;;
+ esac
+ ver_test ${bver} -ge ${nver}
+}
+
+# Setup toolchain variables that had historically been defined in the
+# profiles for these archs.
+setup_env() {
+ # silly users
+ unset LD_RUN_PATH
+ unset LD_ASSUME_KERNEL
+
+ if is_crosscompile || tc-is-cross-compiler ; then
+ multilib_env ${CTARGET_OPT:-${CTARGET}}
+
+ if ! use multilib ; then
+ MULTILIB_ABIS=${DEFAULT_ABI}
+ else
+ MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}}
+ fi
+
+ # If the user has CFLAGS_<CTARGET> in their make.conf, use that,
+ # and fall back on CFLAGS.
+ local VAR=CFLAGS_${CTARGET//[-.]/_}
+ CFLAGS=${!VAR-${CFLAGS}}
+ einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}"
+ fi
+
+ setup_flags
+
+ export ABI=${ABI:-${DEFAULT_ABI:-default}}
+
+ if just_headers ; then
+ # Avoid mixing host's CC and target's CFLAGS_${ABI}:
+ # At this bootstrap stage we have only binutils for
+ # target but not compiler yet.
+ einfo "Skip CC ABI injection. We can't use (cross-)compiler yet."
+ return 0
+ fi
+ local VAR=CFLAGS_${ABI}
+ # We need to export CFLAGS with abi information in them because glibc's
+ # configure script checks CFLAGS for some targets (like mips). Keep
+ # around the original clean value to avoid appending multiple ABIs on
+ # top of each other.
+ : ${__GLIBC_CC:=$(tc-getCC ${CTARGET})}
+ export __GLIBC_CC CC="${__GLIBC_CC} ${!VAR}"
+ einfo " $(printf '%15s' 'Manual CC:') ${CC}"
+}
+
+foreach_abi() {
+ setup_env
+
+ local ret=0
+ local abilist=""
+ if use multilib ; then
+ abilist=$(get_install_abis)
+ else
+ abilist=${DEFAULT_ABI}
+ fi
+ local -x ABI
+ for ABI in ${abilist:-default} ; do
+ setup_env
+ einfo "Running $1 for ABI ${ABI}"
+ $1
+ : $(( ret |= $? ))
+ done
+ return ${ret}
+}
+
+glibc_banner() {
+ local b="Gentoo ${PVR}"
+ [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" p${PATCH_VER}"
+ echo "${b}"
+}
+
+# The following Kernel version handling functions are mostly copied from portage
+# source. It's better not to use linux-info.eclass here since a) it adds too
+# much magic, see bug 326693 for some of the arguments, and b) some of the
+# functions are just not provided.
+
+g_get_running_KV() {
+ uname -r
+ return $?
+}
+
+g_KV_major() {
+ [[ -z $1 ]] && return 1
+ local KV=$@
+ echo "${KV%%.*}"
+}
+
+g_KV_minor() {
+ [[ -z $1 ]] && return 1
+ local KV=$@
+ KV=${KV#*.}
+ echo "${KV%%.*}"
+}
+
+g_KV_micro() {
+ [[ -z $1 ]] && return 1
+ local KV=$@
+ KV=${KV#*.*.}
+ echo "${KV%%[^[:digit:]]*}"
+}
+
+g_KV_to_int() {
+ [[ -z $1 ]] && return 1
+ local KV_MAJOR=$(g_KV_major "$1")
+ local KV_MINOR=$(g_KV_minor "$1")
+ local KV_MICRO=$(g_KV_micro "$1")
+ local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO ))
+
+ # We make version 2.2.0 the minimum version we will handle as
+ # a sanity check ... if its less, we fail ...
+ if [[ ${KV_int} -ge 131584 ]] ; then
+ echo "${KV_int}"
+ return 0
+ fi
+ return 1
+}
+
+g_int_to_KV() {
+ local version=$1 major minor micro
+ major=$((version / 65536))
+ minor=$(((version % 65536) / 256))
+ micro=$((version % 256))
+ echo ${major}.${minor}.${micro}
+}
+
+eend_KV() {
+ [[ $(g_KV_to_int $1) -ge $(g_KV_to_int $2) ]]
+ eend $?
+}
+
+get_kheader_version() {
+ printf '#include <linux/version.h>\nLINUX_VERSION_CODE\n' | \
+ $(tc-getCPP ${CTARGET}) -I "$(build_eprefix)$(alt_build_headers)" - | \
+ tail -n 1
+}
+
+# We collect all sanity checks here. Consistency is not guranteed between
+# pkg_ and src_ phases, so we call this function both in pkg_pretend and in
+# src_unpack.
+sanity_prechecks() {
+ # Prevent native builds from downgrading
+ if [[ ${MERGE_TYPE} != "buildonly" ]] && \
+ [[ -z ${ROOT} ]] && \
+ [[ ${CBUILD} == ${CHOST} ]] && \
+ [[ ${CHOST} == ${CTARGET} ]] ; then
+
+ # The high rev # is to allow people to downgrade between -r#
+ # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2
+ # should be fine. Hopefully we never actually use a r# this
+ # high.
+ if has_version ">${CATEGORY}/${P}-r10000" ; then
+ eerror "Sanity check to keep you from breaking your system:"
+ eerror " Downgrading glibc is not supported and a sure way to destruction."
+ [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system."
+ fi
+
+ if ! do_run_test '#include <unistd.h>\n#include <sys/syscall.h>\nint main(){return syscall(1000)!=-1;}\n' ; then
+ eerror "Your old kernel is broken. You need to update it to a newer"
+ eerror "version as syscall(<bignum>) will break. See bug 279260."
+ die "Old and broken kernel."
+ fi
+ fi
+
+ # Users have had a chance to phase themselves, time to give em the boot
+ if [[ -e ${EROOT}/etc/locale.gen ]] && [[ -e ${EROOT}/etc/locales.build ]] ; then
+ eerror "You still haven't deleted ${EROOT}/etc/locales.build."
+ eerror "Do so now after making sure ${EROOT}/etc/locale.gen is kosher."
+ die "Lazy upgrader detected"
+ fi
+
+ if [[ ${CTARGET} == i386-* ]] ; then
+ eerror "i386 CHOSTs are no longer supported."
+ eerror "Chances are you don't actually want/need i386."
+ eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml"
+ die "Please fix your CHOST"
+ fi
+
+ if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then
+ ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS."
+ ewarn "This will result in a 50% performance penalty when running with a 32bit"
+ ewarn "hypervisor, which is probably not what you want."
+ fi
+
+ # ABI-specific checks follow here. Hey, we have a lot more specific conditions that
+ # we test for...
+ if ! is_crosscompile ; then
+ if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then
+ ebegin "Checking that IA32 emulation is enabled in the running kernel"
+ echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c"
+ local STAT
+ if "${CC-${CHOST}-gcc}" ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then
+ "${T}/check-ia32-emulation.elf32"
+ STAT=$?
+ else
+ # Don't fail here to allow single->multi ABI switch
+ # or recover from breakage like bug #646424
+ ewarn "Failed to compile the ABI test. Broken host glibc?"
+ STAT=0
+ fi
+ rm -f "${T}/check-ia32-emulation.elf32"
+ eend $STAT
+ [[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc."
+ fi
+
+ fi
+
+ # When we actually have to compile something...
+ if ! just_headers && [[ ${MERGE_TYPE} != "binary" ]] ; then
+ ebegin "Checking gcc for __thread support"
+ if ! eend $(want__thread ; echo $?) ; then
+ echo
+ eerror "Could not find a gcc that supports the __thread directive!"
+ eerror "Please update your binutils/gcc and try again."
+ die "No __thread support in gcc!"
+ fi
+
+ if [[ ${CTARGET} == *-linux* ]] ; then
+ local run_kv build_kv want_kv
+
+ run_kv=$(g_get_running_KV)
+ build_kv=$(g_int_to_KV $(get_kheader_version))
+ want_kv=${MIN_KERN_VER}
+
+ if ! is_crosscompile && ! tc-is-cross-compiler ; then
+ # Building fails on an non-supporting kernel
+ ebegin "Checking running kernel version (${run_kv} >= ${want_kv})"
+ if ! eend_KV ${run_kv} ${want_kv} ; then
+ echo
+ eerror "You need a kernel of at least ${want_kv}!"
+ die "Kernel version too low!"
+ fi
+ fi
+
+ ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})"
+ if ! eend_KV ${build_kv} ${want_kv} ; then
+ echo
+ eerror "You need linux-headers of at least ${want_kv}!"
+ die "linux-headers version too low!"
+ fi
+ fi
+ fi
+}
+
+#
+# the phases
+#
+
+# pkg_pretend
+
+pkg_pretend() {
+ # All the checks...
+ einfo "Checking general environment sanity."
+ sanity_prechecks
+}
+
+pkg_setup() {
+ # see bug 682570
+ [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup
+}
+
+# src_unpack
+
+src_unpack() {
+ # Consistency is not guaranteed between pkg_ and src_ ...
+ sanity_prechecks
+
+ use multilib-bootstrap && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz
+
+ setup_env
+
+ if [[ ${PV} == 9999* ]] ; then
+ EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/glibc-patches.git"
+ EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git
+ git-r3_src_unpack
+ mv patches-git/9999 patches || die
+
+ EGIT_REPO_URI="https://sourceware.org/git/glibc.git"
+ EGIT_CHECKOUT_DIR=${S}
+ git-r3_src_unpack
+ else
+ unpack ${P}.tar.xz
+
+ cd "${WORKDIR}" || die
+ unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz
+ fi
+
+ cd "${WORKDIR}" || die
+ unpack locale-gen-${LOCALE_GEN_VER}.tar.gz
+ use systemd && unpack glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz
+}
+
+src_prepare() {
+ local patchsetname
+ if ! use vanilla ; then
+ if [[ ${PV} == 9999* ]] ; then
+ patchsetname="from git master"
+ else
+ patchsetname="${RELEASE_VER}-${PATCH_VER}"
+ fi
+ einfo "Applying Gentoo Glibc Patchset ${patchsetname}"
+ eapply "${WORKDIR}"/patches
+ einfo "Done."
+ fi
+
+ default
+
+ gnuconfig_update
+
+ cd "${WORKDIR}"
+ find . -name configure -exec touch {} +
+
+ # move the external locale-gen to its old place
+ mkdir extra || die
+ mv locale-gen-${LOCALE_GEN_VER} extra/locale || die
+
+ eprefixify extra/locale/locale-gen
+
+ # Fix permissions on some of the scripts.
+ chmod u+x "${S}"/scripts/*.sh
+
+ cd "${S}"
+}
+
+glibc_do_configure() {
+ # Glibc does not work with gold (for various reasons) #269274.
+ tc-ld-disable-gold
+
+ # CXX isnt handled by the multilib system, so if we dont unset here
+ # we accumulate crap across abis
+ unset CXX
+
+ einfo "Configuring glibc for nptl"
+
+ if use doc ; then
+ export MAKEINFO=makeinfo
+ else
+ export MAKEINFO=/dev/null
+ fi
+
+ local v
+ for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO NM READELF; do
+ einfo " $(printf '%15s' ${v}:) ${!v}"
+ done
+
+ # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760
+ # To build .S (assembly) files with the same ABI-specific flags
+ # upstream currently recommends adding CFLAGS to CC/CXX:
+ # https://sourceware.org/PR23273
+ # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS
+ # and breaks multiarch support. See 659030#c3 for an example.
+ # The glibc configure script doesn't properly use LDFLAGS all the time.
+ export CC="$(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS}"
+ einfo " $(printf '%15s' 'Manual CC:') ${CC}"
+
+ # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548
+ export CXX="$(tc-getCXX ${CTARGET}) $(get_abi_CFLAGS) ${CFLAGS}"
+
+ if is_crosscompile; then
+ # Assume worst-case bootstrap: glibc is buil first time
+ # when ${CTARGET}-g++ is not available yet. We avoid
+ # building auxiliary programs that require C++: bug #683074
+ # It should not affect final result.
+ export libc_cv_cxx_link_ok=no
+ # The line above has the same effect. We set CXX explicitly
+ # to make build logs less confusing.
+ export CXX=
+ fi
+ einfo " $(printf '%15s' 'Manual CXX:') ${CXX}"
+
+ # Always use tuple-prefixed toolchain. For non-native ABI glibc's configure
+ # can't detect them automatically due to ${CHOST} mismatch and fallbacks
+ # to unprefixed tools. Similar to multilib.eclass:multilib_toolchain_setup().
+ export NM="$(tc-getNM ${CTARGET})"
+ export READELF="$(tc-getREADELF ${CTARGET})"
+ einfo " $(printf '%15s' 'Manual NM:') ${NM}"
+ einfo " $(printf '%15s' 'Manual READELF:') ${READELF}"
+
+ echo
+
+ local myconf=()
+
+ case ${CTARGET} in
+ m68k*)
+ # setjmp() is not compatible with stack protection:
+ # https://sourceware.org/PR24202
+ myconf+=( --enable-stack-protector=no )
+ ;;
+ *)
+ # Use '=strong' instead of '=all' to protect only functions
+ # worth protecting from stack smashes.
+ # '=all' is also known to have a problem in IFUNC resolution
+ # tests: https://sourceware.org/PR25680, bug #712356.
+ myconf+=( --enable-stack-protector=$(usex ssp strong no) )
+ ;;
+ esac
+ myconf+=( --enable-stackguard-randomization )
+
+ # Keep a whitelist of targets supporing IFUNC. glibc's ./configure
+ # is not robust enough to detect proper support:
+ # https://bugs.gentoo.org/641216
+ # https://sourceware.org/PR22634#c0
+ case $(tc-arch ${CTARGET}) in
+ # Keep whitelist of targets where autodetection mostly works.
+ amd64|x86|sparc|ppc|ppc64|arm|arm64|s390) ;;
+ # Blacklist everywhere else
+ *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;;
+ esac
+
+ # Enable Intel Control-flow Enforcement Technology on amd64 if requested
+ case ${CTARGET} in
+ x86_64-*) myconf+=( $(use_enable cet) ) ;;
+ *) ;;
+ esac
+
+ [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp )
+
+ myconf+=( --enable-kernel=${MIN_KERN_VER} )
+
+ # Since SELinux support is only required for nscd, only enable it if:
+ # 1. USE selinux
+ # 2. only for the primary ABI on multilib systems
+ # 3. Not a crosscompile
+ if ! is_crosscompile && use selinux ; then
+ if use multilib ; then
+ if is_final_abi ; then
+ myconf+=( --with-selinux )
+ else
+ myconf+=( --without-selinux )
+ fi
+ else
+ myconf+=( --with-selinux )
+ fi
+ else
+ myconf+=( --without-selinux )
+ fi
+
+ # Force a few tests where we always know the answer but
+ # configure is incapable of finding it.
+ if is_crosscompile ; then
+ export \
+ libc_cv_c_cleanup=yes \
+ libc_cv_forced_unwind=yes
+ fi
+
+ myconf+=(
+ --without-cvs
+ --disable-werror
+ --enable-bind-now
+ --build=${CBUILD_OPT:-${CBUILD}}
+ --host=${CTARGET_OPT:-${CTARGET}}
+ $(use_enable profile)
+ $(use_with gd)
+ --with-headers=$(build_eprefix)$(alt_build_headers)
+ --prefix="$(host_eprefix)/usr"
+ --sysconfdir="$(host_eprefix)/etc"
+ --localstatedir="$(host_eprefix)/var"
+ --libdir='$(prefix)'/$(get_libdir)
+ --mandir='$(prefix)'/share/man
+ --infodir='$(prefix)'/share/info
+ --libexecdir='$(libdir)'/misc/glibc
+ --with-bugurl=https://bugs.gentoo.org/
+ --with-pkgversion="$(glibc_banner)"
+ $(use_enable crypt)
+ $(use_multiarch || echo --disable-multi-arch)
+ $(use_enable static-pie)
+ $(use_enable systemtap)
+ $(use_enable nscd)
+
+ # locale data is arch-independent
+ # https://bugs.gentoo.org/753740
+ libc_cv_complocaledir='${exec_prefix}/lib/locale'
+
+ # -march= option tricks build system to infer too
+ # high ISA level: https://sourceware.org/PR27318
+ libc_cv_include_x86_isa_level=no
+ # Explicit override of https://sourceware.org/PR27991
+ # exposes a bug in glibc's configure:
+ # https://sourceware.org/PR27991
+ libc_cv_have_x86_lahf_sahf=no
+ libc_cv_have_x86_movbe=no
+
+ ${EXTRA_ECONF}
+ )
+
+ # We rely on sys-libs/timezone-data for timezone tools normally.
+ myconf+=( $(use_enable vanilla timezone-tools) )
+
+ # These libs don't have configure flags.
+ ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no)
+ ac_cv_lib_cap_cap_init=$(usex caps || echo no)
+
+ # There is no configure option for this and we need to export it
+ # since the glibc build will re-run configure on itself
+ export libc_cv_rootsbindir="$(host_eprefix)/sbin"
+ export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)"
+
+ # We take care of patching our binutils to use both hash styles,
+ # and many people like to force gnu hash style only, so disable
+ # this overriding check. #347761
+ export libc_cv_hashstyle=no
+
+ local builddir=$(builddir nptl)
+ mkdir -p "${builddir}"
+ cd "${builddir}"
+ set -- "${S}"/configure "${myconf[@]}"
+ echo "$@"
+ "$@" || die "failed to configure glibc"
+
+ # ia64 static cross-compilers are a pita in so much that they
+ # can't produce static ELFs (as the libgcc.a is broken). so
+ # disable building of the programs for those targets if it
+ # doesn't work.
+ # XXX: We could turn this into a compiler test, but ia64 is
+ # the only one that matters, so this should be fine for now.
+ if is_crosscompile && [[ ${CTARGET} == ia64* ]] ; then
+ sed -i '1i+link-static = touch $@' config.make
+ fi
+
+ # If we're trying to migrate between ABI sets, we need
+ # to lie and use a local copy of gcc. Like if the system
+ # is built with MULTILIB_ABIS="amd64 x86" but we want to
+ # add x32 to it, gcc/glibc don't yet support x32.
+ #
+ if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib-bootstrap ; then
+ echo 'main(){}' > "${T}"/test.c
+ if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then
+ sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die
+ fi
+ fi
+}
+
+glibc_headers_configure() {
+ export ABI=default
+
+ local builddir=$(builddir "headers")
+ mkdir -p "${builddir}"
+ cd "${builddir}"
+
+ # if we don't have a compiler yet, we can't really test it now ...
+ # hopefully they don't affect header generation, so let's hope for
+ # the best here ...
+ local v vars=(
+ ac_cv_header_cpuid_h=yes
+ libc_cv_{386,390,alpha,arm,hppa,ia64,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes
+ libc_cv_asm_cfi_directives=yes
+ libc_cv_broken_visibility_attribute=no
+ libc_cv_c_cleanup=yes
+ libc_cv_compiler_powerpc64le_binary128_ok=yes
+ libc_cv_forced_unwind=yes
+ libc_cv_gcc___thread=yes
+ libc_cv_mlong_double_128=yes
+ libc_cv_mlong_double_128ibm=yes
+ libc_cv_ppc_machine=yes
+ libc_cv_ppc_rel16=yes
+ libc_cv_predef_fortify_source=no
+ libc_cv_target_power8_ok=yes
+ libc_cv_visibility_attribute=yes
+ libc_cv_z_combreloc=yes
+ libc_cv_z_execstack=yes
+ libc_cv_z_initfirst=yes
+ libc_cv_z_nodelete=yes
+ libc_cv_z_nodlopen=yes
+ libc_cv_z_relro=yes
+ libc_mips_abi=${ABI}
+ libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard)
+ # These libs don't have configure flags.
+ ac_cv_lib_audit_audit_log_user_avc_message=no
+ ac_cv_lib_cap_cap_init=no
+ )
+
+ einfo "Forcing cached settings:"
+ for v in "${vars[@]}" ; do
+ einfo " ${v}"
+ export ${v}
+ done
+
+ local headers_only_arch_CPPFLAGS=()
+
+ # Blow away some random CC settings that screw things up. #550192
+ if [[ -d ${S}/sysdeps/mips ]]; then
+ pushd "${S}"/sysdeps/mips >/dev/null
+ sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die
+ sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die
+
+ # Force the mips ABI to the default. This is OK because the set of
+ # installed headers in this phase is the same between the 3 ABIs.
+ # If this ever changes, this hack will break, but that's unlikely
+ # as glibc discourages that behavior.
+ # https://crbug.com/647033
+ sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die
+
+ popd >/dev/null
+ fi
+
+ case ${CTARGET} in
+ riscv*)
+ # RISC-V interrogates the compiler to determine which target to
+ # build. If building the headers then we don't strictly need a
+ # RISC-V compiler, so the built-in definitions that are provided
+ # along with all RISC-V compiler might not exist. This causes
+ # glibc's RISC-V preconfigure script to blow up. Since we're just
+ # building the headers any value will actually work here, so just
+ # pick the standard one (rv64g/lp64d) to make the build scripts
+ # happy for now -- the headers are all the same anyway so it
+ # doesn't matter.
+ headers_only_arch_CPPFLAGS+=(
+ -D__riscv_xlen=64
+ -D__riscv_flen=64
+ -D__riscv_float_abi_double=1
+ -D__riscv_atomic=1
+ ) ;;
+ esac
+
+ local myconf=()
+ myconf+=(
+ --disable-sanity-checks
+ --enable-hacker-mode
+ --without-cvs
+ --disable-werror
+ --enable-bind-now
+ --build=${CBUILD_OPT:-${CBUILD}}
+ --host=${CTARGET_OPT:-${CTARGET}}
+ --with-headers=$(build_eprefix)$(alt_build_headers)
+ --prefix="$(host_eprefix)/usr"
+ ${EXTRA_ECONF}
+ )
+
+ # Nothing is compiled here which would affect the headers for the target.
+ # So forcing CC/CFLAGS is sane.
+ local headers_only_CC=$(tc-getBUILD_CC)
+ local headers_only_CFLAGS="-O1 -pipe"
+ local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}"
+ local headers_only_LDFLAGS=""
+ set -- "${S}"/configure "${myconf[@]}"
+ echo \
+ "CC=${headers_only_CC}" \
+ "CFLAGS=${headers_only_CFLAGS}" \
+ "CPPFLAGS=${headers_only_CPPFLAGS}" \
+ "LDFLAGS=${headers_only_LDFLAGS}" \
+ "$@"
+ CC=${headers_only_CC} \
+ CFLAGS=${headers_only_CFLAGS} \
+ CPPFLAGS=${headers_only_CPPFLAGS} \
+ LDFLAGS="" \
+ "$@" || die "failed to configure glibc"
+}
+
+do_src_configure() {
+ if just_headers ; then
+ glibc_headers_configure
+ else
+ glibc_do_configure nptl
+ fi
+}
+
+src_configure() {
+ foreach_abi do_src_configure
+}
+
+do_src_compile() {
+ emake -C "$(builddir nptl)"
+}
+
+src_compile() {
+ if just_headers ; then
+ return
+ fi
+
+ foreach_abi do_src_compile
+}
+
+glibc_src_test() {
+ cd "$(builddir nptl)"
+
+ local myxfailparams=""
+ if [[ "${GENTOO_GLIBC_XFAIL_TESTS}" == "yes" ]] ; then
+ for myt in ${XFAIL_TEST_LIST[@]} ; do
+ myxfailparams+="test-xfail-${myt}=yes "
+ done
+ fi
+
+ # sandbox does not understand unshare() and prevents
+ # writes to /proc/, which makes many tests fail
+
+ SANDBOX_ON=0 LD_PRELOAD= emake ${myxfailparams} check
+}
+
+do_src_test() {
+ local ret=0
+
+ glibc_src_test
+ : $(( ret |= $? ))
+
+ return ${ret}
+}
+
+src_test() {
+ if just_headers ; then
+ return
+ fi
+
+ # Give tests more time to complete.
+ export TIMEOUTFACTOR=5
+
+ foreach_abi do_src_test || die "tests failed"
+}
+
+run_locale_gen() {
+ # if the host locales.gen contains no entries, we'll install everything
+ local root="$1"
+ local inplace=""
+
+ if [[ "${root}" == "--inplace-glibc" ]] ; then
+ inplace="--inplace-glibc"
+ root="$2"
+ fi
+
+ local locale_list="${root}/etc/locale.gen"
+
+ pushd "${ED}"/$(get_libdir) >/dev/null
+
+ if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then
+ [[ -z ${inplace} ]] && ewarn "Generating all locales; edit /etc/locale.gen to save time/space"
+ locale_list="${root}/usr/share/i18n/SUPPORTED"
+ fi
+
+ set -- locale-gen ${inplace} --jobs $(makeopts_jobs) --config "${locale_list}" \
+ --destdir "${root}"
+ echo "$@"
+ "$@"
+
+ popd >/dev/null
+}
+
+glibc_do_src_install() {
+ local builddir=$(builddir nptl)
+ cd "${builddir}"
+
+ emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install
+
+ # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support
+ # which come without headers etc. Only needed for binary packages since the
+ # external net-libs/libnsl has increased soversion. Keep only versioned libraries.
+ find "${D}" -name "libnsl.a" -delete
+ find "${D}" -name "libnsl.so" -delete
+
+ # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need
+ # to infer upstream version:
+ # '#define VERSION "2.26.90"' -> '2.26.90'
+ local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h)
+
+ # Avoid stripping binaries not targeted by ${CHOST}. Or else
+ # ${CHOST}-strip would break binaries build for ${CTARGET}.
+ is_crosscompile && dostrip -x /
+ # gdb thread introspection relies on local libpthreas symbols. stripping breaks it
+ # See Note [Disable automatic stripping]
+ dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so
+
+ if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then
+ # Move versioned .a file out of libdir to evade portage QA checks
+ # instead of using gen_usr_ldscript(). We fix ldscript as:
+ # "GROUP ( /usr/lib64/libm-<pv>.a ..." -> "GROUP ( /usr/lib64/glibc-<pv>/libm-<pv>.a ..."
+ sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" "${ED}"/$(alt_usrlibdir)/libm.a || die
+ dodir $(alt_usrlibdir)/${P}
+ mv "${ED}"/$(alt_usrlibdir)/libm-${upstream_pv}.a "${ED}"/$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die
+ fi
+
+ # We'll take care of the cache ourselves
+ rm -f "${ED}"/etc/ld.so.cache
+
+ # Everything past this point just needs to be done once ...
+ is_final_abi || return 0
+
+ # Make sure the non-native interp can be found on multilib systems even
+ # if the main library set isn't installed into the right place. Maybe
+ # we should query the active gcc for info instead of hardcoding it ?
+ local i ldso_abi ldso_name
+ local ldso_abi_list=(
+ # x86
+ amd64 /lib64/ld-linux-x86-64.so.2
+ x32 /libx32/ld-linux-x32.so.2
+ x86 /lib/ld-linux.so.2
+ # mips
+ o32 /lib/ld.so.1
+ n32 /lib32/ld.so.1
+ n64 /lib64/ld.so.1
+ # powerpc
+ ppc /lib/ld.so.1
+ # riscv
+ ilp32d /lib/ld-linux-riscv32-ilp32d.so.1
+ ilp32 /lib/ld-linux-riscv32-ilp32.so.1
+ lp64d /lib/ld-linux-riscv64-lp64d.so.1
+ lp64 /lib/ld-linux-riscv64-lp64.so.1
+ # s390
+ s390 /lib/ld.so.1
+ s390x /lib/ld64.so.1
+ # sparc
+ sparc32 /lib/ld-linux.so.2
+ sparc64 /lib64/ld-linux.so.2
+ )
+ case $(tc-endian) in
+ little)
+ ldso_abi_list+=(
+ # arm
+ arm64 /lib/ld-linux-aarch64.so.1
+ # ELFv2 (glibc does not support ELFv1 on LE)
+ ppc64 /lib64/ld64.so.2
+ )
+ ;;
+ big)
+ ldso_abi_list+=(
+ # arm
+ arm64 /lib/ld-linux-aarch64_be.so.1
+ # ELFv1 (glibc does not support ELFv2 on BE)
+ ppc64 /lib64/ld64.so.1
+ )
+ ;;
+ esac
+ if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then
+ dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib
+ fi
+ for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do
+ ldso_abi=${ldso_abi_list[i]}
+ has ${ldso_abi} $(get_install_abis) || continue
+
+ ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}"
+ if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then
+ dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name}
+ fi
+ done
+
+ # In the LSB 5.0 definition, someone had the excellent idea to "standardize"
+ # the runtime loader name, see also https://xkcd.com/927/
+ # Normally, in Gentoo one should never come across executables that require this.
+ # However, binary commercial packages are known to adhere to weird practices.
+ # https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-AMD64/LSB-Core-AMD64.html#BASELIB
+ local lsb_ldso_name native_ldso_name lsb_ldso_abi
+ local lsb_ldso_abi_list=(
+ # x86
+ amd64 ld-linux-x86-64.so.2 ld-lsb-x86-64.so.3
+ )
+ for (( i = 0; i < ${#lsb_ldso_abi_list[@]}; i += 3 )) ; do
+ lsb_ldso_abi=${lsb_ldso_abi_list[i]}
+ native_ldso_name=${lsb_ldso_abi_list[i+1]}
+ lsb_ldso_name=${lsb_ldso_abi_list[i+2]}
+ has ${lsb_ldso_abi} $(get_install_abis) || continue
+
+ if [[ ! -L ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} && ! -e ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} ]] ; then
+ dosym ${native_ldso_name} "$(alt_prefix)/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name}"
+ fi
+ done
+
+ # With devpts under Linux mounted properly, we do not need the pt_chown
+ # binary to be setuid. This is because the default owners/perms will be
+ # exactly what we want.
+ if ! use suid ; then
+ find "${ED}" -name pt_chown -exec chmod -s {} +
+ fi
+
+ #################################################################
+ # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY #
+ # Make sure we install some symlink hacks so that when we build
+ # a 2nd stage cross-compiler, gcc finds the target system
+ # headers correctly. See gcc/doc/gccinstall.info
+ if is_crosscompile ; then
+ # We need to make sure that /lib and /usr/lib always exists.
+ # gcc likes to use relative paths to get to its multilibs like
+ # /usr/lib/../lib64/. So while we don't install any files into
+ # /usr/lib/, we do need it to exist.
+ keepdir $(alt_prefix)/lib
+ keepdir $(alt_prefix)/usr/lib
+
+ dosym usr/include $(alt_prefix)/sys-include
+ return 0
+ fi
+
+ # Files for Debian-style locale updating
+ dodir /usr/share/i18n
+ sed \
+ -e "/^#/d" \
+ -e "/SUPPORTED-LOCALES=/d" \
+ -e "s: \\\\::g" -e "s:/: :g" \
+ "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \
+ || die "generating /usr/share/i18n/SUPPORTED failed"
+ cd "${WORKDIR}"/extra/locale
+ dosbin locale-gen
+ doman *.[0-8]
+ insinto /etc
+ doins locale.gen
+
+ keepdir /usr/lib/locale
+
+ cd "${S}"
+
+ # Install misc network config files
+ insinto /etc
+ doins posix/gai.conf
+
+ if use systemd ; then
+ doins "${WORKDIR}/glibc-systemd-${GLIBC_SYSTEMD_VER}/gentoo-config/nsswitch.conf"
+ else
+ doins nss/nsswitch.conf
+ fi
+
+ # Gentoo-specific
+ newins "${FILESDIR}"/host.conf-1 host.conf
+
+ if use nscd ; then
+ doins nscd/nscd.conf
+
+ newinitd "$(prefixify_ro "${FILESDIR}"/nscd-1)" nscd
+
+ local nscd_args=(
+ -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):"
+ )
+
+ sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd
+
+ use systemd && systemd_dounit nscd/nscd.service
+ newtmpfiles nscd/nscd.tmpfiles nscd.conf
+ fi
+
+ echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc
+ doenvd "${T}"/00glibc
+
+ for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do
+ [[ -s ${d} ]] && dodoc ${d}
+ done
+ dodoc -r ChangeLog.old
+
+ # Prevent overwriting of the /etc/localtime symlink. We'll handle the
+ # creation of the "factory" symlink in pkg_postinst().
+ rm -f "${ED}"/etc/localtime
+
+ # Generate all locales if this is a native build as locale generation
+ if use compile-locales && ! is_crosscompile ; then
+ run_locale_gen --inplace-glibc "${ED}/"
+ sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die
+ fi
+}
+
+glibc_headers_install() {
+ local builddir=$(builddir "headers")
+ cd "${builddir}"
+ emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers
+
+ insinto $(alt_headers)/gnu
+ doins "${S}"/include/gnu/stubs.h
+
+ # Make sure we install the sys-include symlink so that when
+ # we build a 2nd stage cross-compiler, gcc finds the target
+ # system headers correctly. See gcc/doc/gccinstall.info
+ dosym usr/include $(alt_prefix)/sys-include
+}
+
+src_install() {
+ if just_headers ; then
+ export ABI=default
+ glibc_headers_install
+ return
+ fi
+
+ foreach_abi glibc_do_src_install
+
+ if ! use static-libs ; then
+ einfo "Not installing static glibc libraries"
+ find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete
+ fi
+}
+
+# Simple test to make sure our new glibc isn't completely broken.
+# Make sure we don't test with statically built binaries since
+# they will fail. Also, skip if this glibc is a cross compiler.
+#
+# If coreutils is built with USE=multicall, some of these files
+# will just be wrapper scripts, not actual ELFs we can test.
+glibc_sanity_check() {
+ cd / #228809
+
+ # We enter ${ED} so to avoid trouble if the path contains
+ # special characters; for instance if the path contains the
+ # colon character (:), then the linker will try to split it
+ # and look for the libraries in an unexpected place. This can
+ # lead to unsafe code execution if the generated prefix is
+ # within a world-writable directory.
+ # (e.g. /var/tmp/portage:${HOSTNAME})
+ pushd "${ED}"/$(get_libdir) >/dev/null
+
+ # first let's find the actual dynamic linker here
+ # symlinks may point to the wrong abi
+ local newldso=$(find . -name 'ld*so.?' -type f -print -quit)
+
+ einfo Last-minute run tests with ${newldso} in /$(get_libdir) ...
+
+ local x striptest
+ for x in cal date env free ls true uname uptime ; do
+ x=$(type -p ${x})
+ [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue
+ striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue
+ case ${striptest} in
+ *"statically linked"*) continue;;
+ *"ASCII text"*) continue;;
+ esac
+ # We need to clear the locale settings as the upgrade might want
+ # incompatible locale data. This test is not for verifying that.
+ LC_ALL=C \
+ ${newldso} --library-path . ${x} > /dev/null \
+ || die "simple run test (${x}) failed"
+ done
+
+ popd >/dev/null
+}
+
+pkg_preinst() {
+ # nothing to do if just installing headers
+ just_headers && return
+
+ # prepare /etc/ld.so.conf.d/ for files
+ mkdir -p "${EROOT}"/etc/ld.so.conf.d
+
+ # Default /etc/hosts.conf:multi to on for systems with small dbs.
+ if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then
+ sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf
+ einfo "Defaulting /etc/host.conf:multi to on"
+ fi
+
+ [[ -n ${ROOT} ]] && return 0
+ [[ -d ${ED}/$(get_libdir) ]] || return 0
+ [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check
+
+ if [[ -L ${EROOT}/usr/lib/locale ]]; then
+ # Help portage migrate this to a directory
+ # https://bugs.gentoo.org/753740
+ rm "${EROOT}"/usr/lib/locale || die
+ fi
+
+ # Keep around libcrypt so that Perl doesn't break when merging libxcrypt
+ # (libxcrypt is the new provider for now of libcrypt.so.{1,2}).
+ # bug #802207
+ if ! use crypt && has_version "${CATEGORY}/${PN}[crypt]"; then
+ PRESERVED_OLD_LIBCRYPT=1
+ preserve_old_lib /$(get_libdir)/libcrypt$(get_libname 1)
+ cp "${EROOT}"/usr/include/crypt.h "${T}"/crypt.h || die
+ else
+ PRESERVED_OLD_LIBCRYPT=0
+ fi
+}
+
+pkg_postinst() {
+ # nothing to do if just installing headers
+ just_headers && return
+
+ if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then
+ # Generate fastloading iconv module configuration file.
+ "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}/"
+ fi
+
+ if ! is_crosscompile && [[ -z ${ROOT} ]] ; then
+ use compile-locales || run_locale_gen "${EROOT}/"
+ fi
+
+ # Check for sanity of /etc/nsswitch.conf, take 2
+ if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then
+ local entry
+ for entry in passwd group shadow; do
+ if egrep -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then
+ ewarn ""
+ ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been"
+ ewarn "removed from glibc and is now provided by the package"
+ ewarn " sys-auth/libnss-nis"
+ ewarn "Install it now to keep your NIS setup working."
+ ewarn ""
+ fi
+ done
+ fi
+
+ if [[ ${PRESERVED_OLD_LIBCRYPT} -eq 1 ]] ; then
+ preserve_old_lib_notify /$(get_libdir)/libcrypt$(get_libname 1)
+ cp "${T}"/crypt.h "${EROOT}"/usr/include/crypt.h || eerror "Error restoring crypt.h, please file a bug"
+ elog "Please ignore a possible later error message about a file collision involving"
+ elog "/usr/include/crypt.h. We need to preserve this file for the moment to keep"
+ elog "the upgrade working, but it also needs to be overwritten when"
+ elog "sys-libs/libxcrypt is installed. See bug 802210 for more details."
+ fi
+}
diff --git a/sys-libs/glibc/glibc-9999.ebuild b/sys-libs/glibc/glibc-9999.ebuild
index 60bd75d08acd..564367df0b9d 100644
--- a/sys-libs/glibc/glibc-9999.ebuild
+++ b/sys-libs/glibc/glibc-9999.ebuild
@@ -678,7 +678,7 @@ sanity_prechecks() {
fi
# When we actually have to compile something...
- if ! just_headers ; then
+ if ! just_headers && [[ ${MERGE_TYPE} != "binary" ]] ; then
ebegin "Checking gcc for __thread support"
if ! eend $(want__thread ; echo $?) ; then
echo
diff --git a/sys-libs/kpmcore/Manifest b/sys-libs/kpmcore/Manifest
index 5fa9f88ce09b..67a868412c93 100644
--- a/sys-libs/kpmcore/Manifest
+++ b/sys-libs/kpmcore/Manifest
@@ -1,5 +1,5 @@
DIST kpmcore-20.12.3.tar.xz 584264 BLAKE2B de80d48bb6becb3e8d6f5b9b4456e4ad4e220ca52d76700c6be33942c5d762e1fc39b43b3595894a3d28605d7010662ebec588c3f1d3a4525a9efe797dbf65ed SHA512 90083374bbc4b91e948e9ef8e3e272cf7bd6b038261414c7e08eea1a903bd61c723f29a4afe462e29c1a083c6771be435fd4dfbf8a364c2c167f1eed19d04323
DIST kpmcore-21.04.3.tar.xz 586264 BLAKE2B b9733f8b941fed98503e78b9c0357e002df92a39c4e70885822f6bb8944cf2c76be1fbba23e4cedf104b46a95832e72d2384c0d78abde312e0b2be40aa4d5745 SHA512 44614e3a0db646b81e56b87daa841b7b7e03ff97699ea393d83b6cc61e6c12efa36ac6b8aba87da612f2973a1d108bdad21ef0d73fc2db98595e5b711e5a0fcf
EBUILD kpmcore-20.12.3.ebuild 749 BLAKE2B 0e0cd54e67d6fed17f721cf615ac5ebb0a405ed67a7338834d235e15e156119cbd0f8fe9489abb13231e47b89b975314f0fc84f7576833b1262cd6823a4cc1ba SHA512 4db6919ded366d2c343f68c84e929727a0cc6cc2762f886f4a087829b1c30b1f350d20fdaa57fe89cc041f96b30150e79f5966b7f9f968c41a5b79cc63af67d9
-EBUILD kpmcore-21.04.3.ebuild 741 BLAKE2B 41fa2450cc6387ee771ba56aa2e62343b656fd6dcf55076a3105550205dd10f72d0a974fcde784117a1c94274e2c2b4ad2c29c3891391b091944ba130cb39a4e SHA512 c9e94cf51a85e97536686f65011166b5d88504348c99d2d0ceab5fc259f3f42c06d46a986806ed963042b93419c67e41c753df38fe222b58485f2e4f25f9bdc3
+EBUILD kpmcore-21.04.3.ebuild 739 BLAKE2B e2e9d5d52455505c26ab307b474b0011c1c619744093f780f1fda1bee8aefc5fb87edf5d50313e7bda211b8522cf1c55f0e134d2231f25612d68866243df3665 SHA512 1e5f2062dd648e5832b89a2f2ebd39f2eeaf47bb524453e71aa4d9adb31c0f10580767a461b9f85f0758a6314ff974781609659cdbb268a30051615948eaffaa
MISC metadata.xml 249 BLAKE2B ad415db89e5dee1627aa77f44ded9d4e1e5b8217d06c7ca25bbaa3fe92ce67c2b1090957c45a821b407d7927e5af798498aa6a5b903895ee1af8ee20a446c7f7 SHA512 76a5a340b13f0053ca3c5e94ed24380ea8d29b45ac8655419e22eaadb1e4a827c04d2e7e36b65145c4964e6526f656618fc6ac144e277ef53cb7373e6239e3c3
diff --git a/sys-libs/kpmcore/kpmcore-21.04.3.ebuild b/sys-libs/kpmcore/kpmcore-21.04.3.ebuild
index 202540698757..af64abdb788d 100644
--- a/sys-libs/kpmcore/kpmcore-21.04.3.ebuild
+++ b/sys-libs/kpmcore/kpmcore-21.04.3.ebuild
@@ -14,7 +14,7 @@ HOMEPAGE="https://apps.kde.org/partitionmanager/"
LICENSE="GPL-3"
SLOT="5/10"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc64 x86"
IUSE=""
# bug 689468, tests need polkit etc.
diff --git a/sys-libs/ldb/Manifest b/sys-libs/ldb/Manifest
index 676d4b8e5f59..e286325ff3a3 100644
--- a/sys-libs/ldb/Manifest
+++ b/sys-libs/ldb/Manifest
@@ -4,6 +4,6 @@ DIST ldb-2.2.1.tar.gz 1676819 BLAKE2B 794575d5bd7d33dcd586cb5de6c392411795c467f4
DIST ldb-2.3.0.tar.gz 1686378 BLAKE2B b31949e14a41f6fc99ef022e4072021d135037d835aeca80ee81a58ed20cab4f8cbd96e394f59460df11e2424e2e263d5fb01b9cebbfb4ca1bcc77162e93ed3f SHA512 7e389c0b4700a809893276d69216436ebd6d30e1f52407e4a08a1113cf14e151aed74300d8c36765c91c8f3195d8054b13a28cbdfcab031f88fd1d353e415348
DIST ldb-2.4.0.tar.gz 1689484 BLAKE2B 904d74900011ce3f63ad1c24fe88b1a090e835c68829ddfda5e8af2c0ab3674d7a8cd9a62b95c1f38f26578d0704556d3562e46e21a54cbb44a15b9d83676521 SHA512 6c500b723c081488bc0717b6a5b0e8966c5d8a751232f8856281a6fe4d358ae6b5878c8400a82fa666379066105fbb9259b2967313e73efabef0e1386095e2ee
EBUILD ldb-2.2.1-r1.ebuild 2932 BLAKE2B 004dc7b83fcd5705135df1e4848a49296b75d850152bc41bfff56ea1c352fd4a0e4f6074a0b96a54576e594b1f8f79ad669a22f39390b90489654180665fcf1c SHA512 8ec5dd9111c238dbad97e0a1ae1f0ebaf90a4e8e083dca3946e597a7d28922ae72ccedfa3e9b6425a997a3f2d21abf7c407231808415076b0dfc2126d47cd164
-EBUILD ldb-2.3.0-r1.ebuild 2945 BLAKE2B 3206c45d381d82395b3f4862d7784f5657e4ee813a94f625a0f6d7a37edc6d8a0160a171d6167a70bf41bff77362982ce6a52d4da2fd26513a694ee7c04f349f SHA512 aaafae8b4f21815701e955c6a4e9f876a55919a0795d343b544afae5b423cc938d4ed0b8a28b500f7b1187330a37507d257db9e48a3bb7a2c0447638bab56d50
+EBUILD ldb-2.3.0-r1.ebuild 2942 BLAKE2B 462a024d8fb1eb9c1b3e1b1e038b92333681c64b9d1ad03c2e590fb3de4f7a6224314d2cd3935d4810f4316d9a0a17e95d5c920cbc8fe5285fe1859f3dfd44d1 SHA512 c13f21a177ebb9583def8fae9d2f3c9ca6212f8158da846d811c8eee667c7bae2a3856800626839e5842242082d98b80c1eca30cc6282ba744825ff46d6b6f9f
EBUILD ldb-2.4.0-r1.ebuild 2946 BLAKE2B dde6e4beeec5907b3e32cfbc675bbd08d1f52081fd547d58e30b490305000c36be8a8d55b3daf9ad8b21edc8c7bc90fbd8984dad1bdff90273d1c66b3eb0b0ab SHA512 9994c7964012f99db5c6d2972e6e0a750a3632fcc25d0a6435fbc42bea3b067f8853efe018f7b9e25ea41420f9de325aff1c2e42fae8501c3ec314a9f2494c04
MISC metadata.xml 525 BLAKE2B 161146886c9d4b7139238e5753f02bbbd3eb4aa6c59415f45710c11b25e80d6e4085036e00808b38d06b671dc976922dacbab9ef3f4f18ed9793d5b5621ff546 SHA512 87a8414b97c3f08fed9395574f7be7739c845c593c2fa324e6928758e455e2ee9d45c2607dba298da2c1e21863878c147e613f6fc3750111952b7e7a7b7ada95
diff --git a/sys-libs/ldb/ldb-2.3.0-r1.ebuild b/sys-libs/ldb/ldb-2.3.0-r1.ebuild
index 9af82267e426..af3afbf29527 100644
--- a/sys-libs/ldb/ldb-2.3.0-r1.ebuild
+++ b/sys-libs/ldb/ldb-2.3.0-r1.ebuild
@@ -13,7 +13,7 @@ SRC_URI="https://samba.org/ftp/pub/${PN}/${P}.tar.gz"
LICENSE="LGPL-3"
SLOT="0/${PV}"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 sparc ~x86"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 sparc x86"
IUSE="doc ldap +lmdb python test"
REQUIRED_USE="${PYTHON_REQUIRED_USE}
diff --git a/sys-libs/libblockdev/Manifest b/sys-libs/libblockdev/Manifest
index d2f268a0e096..5fe81eddc4ed 100644
--- a/sys-libs/libblockdev/Manifest
+++ b/sys-libs/libblockdev/Manifest
@@ -1,8 +1,6 @@
-DIST libblockdev-2.24.tar.gz 905838 BLAKE2B dcc31021d72c2a4f92d8f70387537ec409302e85a9bdb338a09449b02318113d40cabf7fc2f6b4aca819400baccba69a9f67a616b30c744cf843eeac785875e4 SHA512 92b7d734ea2cefbb67e626bef369d6785ba2a4bbbf09a4f59345febe977bc32319fb44f38b3c3177b8652abbc1f87b6cc76d41fdd2d70783c1c168049bdcb1d6
DIST libblockdev-2.25.tar.gz 930238 BLAKE2B ae28c40b5e114826baf4a8ba9012267b297dbc4abee52669cf39c886d2c9989291f41937ec742c7457049a6a30e674f9c89ad6478923f393ae1773db3afcf621 SHA512 628d05f3a257b44208a9d0b5d84ae248fefd415812d9a93d132c03039b09fefc4d6110beb9aa0d3072e3f0c992e642d7867d0241209056538f132f86a748e195
DIST libblockdev-2.26.tar.gz 932129 BLAKE2B 39d95db69de917449e6009fa0160b6288327b2c49b64309d17a1e4e028756d1ce170779ce1c4df926c8796d8a8ed7b9131b5d4b51115a3ea901dacdaa971961a SHA512 ddd4e9c22135bd7dad0bb9bc254ac0c63e3bacc592e7c5a0c846e367da3fc248bf6187f1c81407c3bce599d3b0ceeec9a8a0030ad8e981e245f715b35eaec523
-EBUILD libblockdev-2.24.ebuild 2607 BLAKE2B 8070fda4de97cbb3744f72abe7a26e5a158382569d2af63e094b4983485a29096f672ab9ed97e323e5b2a810697669fc8214e47ed0a685a0de43d16201437c11 SHA512 13fb01f0d87e6f9f92d8c94b59404e08976e98f7d7729801b6d5be1f929aaba2f43ce0b15249ef669fb486e2e463e9946cfa1cb72f08e0b34ea6ef0fa9d9e75a
-EBUILD libblockdev-2.25.ebuild 2614 BLAKE2B f1ae37eb906d009c780d19afe0f16a125ad61538a68bfd35b521570b21d6e0607de12229cbbe986f36a3c6e9bcec96ec5f4f5631ac419d1d9a329824da4ea55c SHA512 ae0188fa83fdf9da01e37d5dc599b5cae1e5e6f8fe5fb96440f6ca66c4f2b9a82d8cfd0a1e742ec69bb4701883e540670347715183ca86677c599d62358186fa
+EBUILD libblockdev-2.25.ebuild 2613 BLAKE2B 848c426ed0dc619799901680eb16d5d00d94c36894adf29c9b8338edb711a090d57ebadd94d6dc720217902fda2390f1d45f46c41febe3dee89333b42fd845f8 SHA512 781c02b20d97d28430ba2834998c62aff5721e6b9f36f7e2325285dbaab4eaa7adf5b2511caf6accf48d0935c9bdff455c976c7f0b4a9bebc36c31c71fd919ad
EBUILD libblockdev-2.26.ebuild 2620 BLAKE2B abdec73cdc1336f734acd7658dc0869f3b05c0653c0cb52b976393f5e4056196cc5e98f5b1072812ae0c593d93eddcf905cb814bb592d3c2b025a738dd08174e SHA512 90894691d584bea79837c9b6c216c7104ffbe59c928ba7c3d7f491cae90650870e12489771c2c62403481580f01d3f331760a61b442a0ffcd40c2666555739e2
EBUILD libblockdev-9999.ebuild 2620 BLAKE2B abdec73cdc1336f734acd7658dc0869f3b05c0653c0cb52b976393f5e4056196cc5e98f5b1072812ae0c593d93eddcf905cb814bb592d3c2b025a738dd08174e SHA512 90894691d584bea79837c9b6c216c7104ffbe59c928ba7c3d7f491cae90650870e12489771c2c62403481580f01d3f331760a61b442a0ffcd40c2666555739e2
MISC metadata.xml 1079 BLAKE2B 927991dfdfefd599210651f76fa8bffbd5a54700791b57847a9ecf85cd1aa04a449eea84c4e1ee3e9eb50e541eab3d97a6218c814a018439aa6f520970a8acca SHA512 492cabe5b464c0bae48e8def1e771a27f28bcd03a47276be26a4351367bcd53e198358f8c0cbf25cd0c6c8e841ee67435b22fbe669bde1a6aa74668e70fa8fc9
diff --git a/sys-libs/libblockdev/libblockdev-2.24.ebuild b/sys-libs/libblockdev/libblockdev-2.24.ebuild
deleted file mode 100644
index 3d13b5989022..000000000000
--- a/sys-libs/libblockdev/libblockdev-2.24.ebuild
+++ /dev/null
@@ -1,119 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{7,8,9} )
-inherit autotools python-single-r1 xdg-utils
-
-DESCRIPTION="A library for manipulating block devices"
-HOMEPAGE="https://github.com/storaged-project/libblockdev"
-if [[ "${PV}" == *9999 ]] ; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/storaged-project/libblockdev.git"
- BDEPEND="
- sys-devel/autoconf-archive
- "
-else
- MY_PV="${PV}-1"
- #MY_P="${PN}-${MY_PV}"
- #SRC_URI="https://github.com/storaged-project/${PN}/archive/${MY_PV}.tar.gz -> ${MY_P}.tar.gz"
- SRC_URI="https://github.com/storaged-project/${PN}/releases/download/${MY_PV}/${P}.tar.gz"
- KEYWORDS="~alpha amd64 arm arm64 ~ia64 ~mips ppc ppc64 sparc x86"
- #S="${WORKDIR}/${MY_P}"
-fi
-LICENSE="LGPL-2+"
-SLOT="0"
-IUSE="bcache +cryptsetup device-mapper dmraid escrow gtk-doc introspection lvm kbd test +tools vdo"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-libs/glib-2.42.2
- dev-libs/libbytesize
- >=sys-apps/kmod-19
- >=sys-apps/util-linux-2.27
- >=sys-block/parted-3.1
- cryptsetup? (
- escrow? (
- >=dev-libs/nss-3.18.0
- dev-libs/volume_key
- )
- >=sys-fs/cryptsetup-1.6.7:=
- )
- device-mapper? ( sys-fs/lvm2 )
- dmraid? (
- sys-fs/dmraid
- sys-fs/lvm2
- )
- lvm? (
- sys-fs/lvm2
- virtual/udev
- )
- vdo? ( dev-libs/libyaml )
- ${PYTHON_DEPS}
-"
-
-DEPEND="
- ${RDEPEND}
-"
-
-BDEPEND+="
- dev-util/gtk-doc-am
- gtk-doc? ( dev-util/gtk-doc )
- introspection? ( >=dev-libs/gobject-introspection-1.3.0 )
-"
-
-REQUIRED_USE="${PYTHON_REQUIRED_USE}
- escrow? ( cryptsetup )"
-
-pkg_setup() {
- python-single-r1_pkg_setup
-}
-
-src_prepare() {
- xdg_environment_reset #623992
- default
-
- # https://bugs.gentoo.org/744289
- find -type f \( -name "Makefile.am" -o -name "configure.ac" \) -print0 \
- | xargs --null sed "s@ -Werror@@" -i || die
-
- eautoreconf
-}
-
-src_configure() {
- local myeconfargs=(
- --with-btrfs
- --with-fs
- --with-part
- --without-mpath
- --without-nvdimm
- $(use_enable introspection)
- $(use_enable test tests)
- $(use_with bcache)
- $(use_with cryptsetup crypto)
- $(use_with device-mapper dm)
- $(use_with dmraid)
- $(use_with escrow)
- $(use_with gtk-doc)
- $(use_with kbd)
- $(use_with lvm lvm)
- $(use_with lvm lvm-dbus)
- $(use_with tools)
- $(use_with vdo)
- --without-python2
- --with-python3
- )
- econf "${myeconfargs[@]}"
-}
-
-src_install() {
- default
- find "${ED}" -type f -name "*.la" -delete || die
- # This is installed even with USE=-lvm, but libbd_lvm are omitted so it
- # doesn't work at all.
- if ! use lvm; then
- rm -f "${ED}"/usr/bin/lvm-cache-stats || die
- fi
- python_optimize #718576
-}
diff --git a/sys-libs/libblockdev/libblockdev-2.25.ebuild b/sys-libs/libblockdev/libblockdev-2.25.ebuild
index 6cf07b867f96..542a3e9e88c6 100644
--- a/sys-libs/libblockdev/libblockdev-2.25.ebuild
+++ b/sys-libs/libblockdev/libblockdev-2.25.ebuild
@@ -19,7 +19,7 @@ else
#MY_P="${PN}-${MY_PV}"
#SRC_URI="https://github.com/storaged-project/${PN}/archive/${MY_PV}.tar.gz -> ${MY_P}.tar.gz"
SRC_URI="https://github.com/storaged-project/${PN}/releases/download/${MY_PV}/${P}.tar.gz"
- KEYWORDS="~alpha amd64 arm ~arm64 ~ia64 ~mips ppc ppc64 ~riscv sparc x86"
+ KEYWORDS="~alpha amd64 arm arm64 ~ia64 ~mips ppc ppc64 ~riscv sparc x86"
#S="${WORKDIR}/${MY_P}"
fi
LICENSE="LGPL-2+"
diff --git a/sys-libs/libcap/Manifest b/sys-libs/libcap/Manifest
index 9b80ad6996f5..21096467e341 100644
--- a/sys-libs/libcap/Manifest
+++ b/sys-libs/libcap/Manifest
@@ -3,11 +3,11 @@ AUX libcap-2.25-ignore-RAISE_SETFCAP-install-failures.patch 988 BLAKE2B 63417032
AUX libcap-2.38-no_perl.patch 3049 BLAKE2B 77fdcda75b273fd69695161d48f37fda40375f5f36acdb31e9f9e5b7585e6933733586c6ad96673efb79a6657dbbffd4431612ed723905e9f4d595a9dd8c49c4 SHA512 f3938a8a78407639bfdda4d9c4b4096025f956430f9efbce438689aabbea74915c55c6afbd45a7af4ecc0c437ee72e9aa8335da52d3237c928702e62824e537a
AUX libcap-2.48-build-system-fixes.patch 6274 BLAKE2B 4c81eb50b0a682ca9df03145a53e884589e0961e1b754b522f40d48fca60fe983ae93349d256e62977bf28c99c8c25763d05aa8483aebfc436664756a220d70a SHA512 5b88a5c5ea14d2270ed4018249ceb32b0c91db03ed18a6989cc44250da91887385dc3f37087f716771ddbaa90c7e3d733a64063507465eb354252d9f64b85f80
AUX libcap-2.50-build-system-fixes.patch 6687 BLAKE2B d46b6f0734a5acd930248b29c17850447d87f4e554b4d3e79cb35d978b17552e84e27e036c3b0c4ae6573f94e9e7033a9264b646d61dc8c441c04bc6d9b12af8 SHA512 0fd3b5463dcbbaca41d7c1099be7dd370945408f3763dad68d128a650cbf62c23c653a971b07ed4cdc1b56d425caeec3775b91912635c6a2539534bd20e00756
-AUX libcap-2.50-install_capsh_again.patch 991 BLAKE2B f9260fe8d3045e7d4408d5c2ba976a7c22031f174a14c282c31df8e4ac9a7a9cfe8207bdacd0b10d4ed741030319f2524edfc6ca28abdc0040118f2e3286b350 SHA512 891f690440b6d67a2d1f32bb1a8fc51048ba2b6d8c5e0cc1543d741e1ed0b32898a7df7641382698b23056b279c7cf7ed1cfa162a1908ff6362cf011e22d632b
+AUX libcap-2.52-build-system-fixes.patch 7320 BLAKE2B 7b7de195e7cec61b395e9cbf1d8b41195079fb2b0742db2e6a53380de3e43ee038aac092b3fd69bea0906fc668abd67673a11699323c2003b4a9583ba472b59d SHA512 db569516789792020f975591a553bd4b7ca205a9bbbae6adb245fe719377f78335dcabe7ec987d5729da1052083a972ce725ecb263d990cec169a2960584e55a
DIST libcap-2.49.tar.xz 139568 BLAKE2B 5746dcdf2a737e747450bd50a701ee8543277b17b7fbf1304b79f707a088ea74dc6dc79c61ff89b55b718a460a7b0814f960f44d07944a97b832b78f4e14e07f SHA512 2934a2ded1370edeb9603dbf43d8ca23a2eb5d67efc5cec5d4ba96c707a8db2702da8aa9be0cb86c5ff100d37ec96115c7777a7566ad0ab2e0b4a288bbe357d0
-DIST libcap-2.50.tar.xz 143792 BLAKE2B be83dfe1e55a4363936f53afb13edd2c1fd8c9bc27f7946bfda1eb8fb3046d0370997dcf85ba9dab7de10673527b4e8d15f104a75eaf407cba8ed0fc42465790 SHA512 6ac2df1ea9a9154e082c0595d343380ff8abed953b53c635a9297683289f2fa708eff488a42c6053e5ac556a5d90faa8709b3d98a47b2911f05bf80f2663a543
DIST libcap-2.51.tar.xz 145440 BLAKE2B 9f004e28891fbbb3552016e2e9250eab38935b6b40ad9e808a64ab07eecb52c5fa9032caed0baab719df8afe9aeec98403d10b05336bebe15a50b64020e5afc2 SHA512 3b4a97ef864a2ce2f87056ebc282223b0c71ca71c539744dc629ffe7905ca5fdde937ca70c34ec84406fe54863d39abf32775818a5e5a6fdf3069706b1723a88
+DIST libcap-2.52.tar.xz 158720 BLAKE2B 0696ae00a485df019f5441efe1d71676ddf294f1116e7fc3f352ad0595f9d4830f2e4fac1f98353016de36a4866f9d018f53419970ccd114c6df0faa556bcea3 SHA512 95d9e0f81fd955c42a0f299163a4402f00e9e7a2b392dfbabe613abea4babba2730576e76c9b612665a0bb8bd88aa98bf28ea3eb5582b5c06cd1137594a59893
EBUILD libcap-2.49.ebuild 2195 BLAKE2B b5950f22f86e8ee2008751b9ab76013d603c201e5b1c1665c34f4d7e31bb2102ad1e3ad1c0ad67b2ca48ae5f76ba4c12169f61493a3861e97f1744a3d5355133 SHA512 2a84719633d35cd16a301cbdcde67dc1ee4e7f1f04c043303404d1b088529491fdfdfadd29c3eb5f8a2afbfe7dede105885063322645bca986ffcdf002bb42ee
-EBUILD libcap-2.50-r1.ebuild 2263 BLAKE2B c05c69b56c92c537dbfa49a48ce1090552c274e638638c6e934ed8b97fb872169d077b07a73e7439210ce9d7a0a3cd935692ae766669603d9482a64f0e3d7eaa SHA512 5f667e05321f15f55ced0dc98520429085808cbbc751f9c7aeab2e75067512fc03fe04bb0f41d27390ea634cc0a2f8a30856142bbd8cbc633042e41163082f07
EBUILD libcap-2.51.ebuild 2203 BLAKE2B 399ce7893f4ca837e9dfef9812c20f59d415e713ce8c8e12e314c9661afbff6eec1be46550b75d2b853babf4cf1b10d51272ab3b8effc3d3cfe20f6244f9bc12 SHA512 c156a98c337eb09e24a36bbe746d1f724f360df9d53a6e551ee556bf0d794414c505251611e2dd7fafbe759b1550837d609eada16dea2354e5e13fc9f4995902
+EBUILD libcap-2.52.ebuild 2146 BLAKE2B d9876af9fcd0de4fd1e1289ec51e1697700162c57c7222a3a63c5a8faff5233458cc2251e66914768d6ce2a46ce95ff5dde738388054480f4fafcdc5c8a7b7d2 SHA512 ca8d558788aa27fc57270906e6df1f10f50135ccf8e2c5fc329f3f2c15358a6dbed9e0bcc0962f810387f3bf3bd963c757a873f646740885631640ba15d2346e
MISC metadata.xml 332 BLAKE2B 2177c836192a85a6d943221da405f7f11f355011767789d81009d5e4d822a203302a946fa1a0ffbc66be6a37a7069aa94a796125fa1dedbdf023762b47f8f614 SHA512 a9887500fd60b72156ac2589b1fefab8dd70b0c03477dd795f147fdc91bbe6fd027b8cf58c3e86cdb6e831368d34b4881cdf0e833af5aee9e7d1a01e90408ae1
diff --git a/sys-libs/libcap/files/libcap-2.50-install_capsh_again.patch b/sys-libs/libcap/files/libcap-2.50-install_capsh_again.patch
deleted file mode 100644
index 0ae7520dc7b9..000000000000
--- a/sys-libs/libcap/files/libcap-2.50-install_capsh_again.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 1f8d32942be54850a3a89c7b58ba5613b5525c58 Mon Sep 17 00:00:00 2001
-From: "Andrew G. Morgan" <morgan@kernel.org>
-Date: Fri, 28 May 2021 13:41:17 -0700
-Subject: [PATCH] Make capsh an installed binary again
-
-Bug report from Jan Palus:
-
- https://bugzilla.kernel.org/show_bug.cgi?id=213261
-
-Signed-off-by: Andrew G. Morgan <morgan@kernel.org>
----
- progs/Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/progs/Makefile b/progs/Makefile
-index 313dc4d..3c3dc97 100644
---- a/progs/Makefile
-+++ b/progs/Makefile
-@@ -32,14 +32,14 @@ $(BUILD): %: %.o $(DEPS)
-
- install: all
- mkdir -p -m 0755 $(FAKEROOT)$(SBINDIR)
-- for p in $(PROGS) ; do \
-+ for p in $(PROGS) capsh ; do \
- install -m 0755 $$p $(FAKEROOT)$(SBINDIR) ; \
- done
- ifeq ($(RAISE_SETFCAP),yes)
- $(FAKEROOT)$(SBINDIR)/setcap cap_setfcap=i $(FAKEROOT)$(SBINDIR)/setcap
- endif
-
--test: $(PROGS)
-+test: $(PROGS) capsh
-
- capshdoc.h.cf: capshdoc.h ./mkcapshdoc.sh
- ./mkcapshdoc.sh > $@
---
-2.32.0.rc2
-
diff --git a/sys-libs/libcap/files/libcap-2.52-build-system-fixes.patch b/sys-libs/libcap/files/libcap-2.52-build-system-fixes.patch
new file mode 100644
index 000000000000..2d6b441c485d
--- /dev/null
+++ b/sys-libs/libcap/files/libcap-2.52-build-system-fixes.patch
@@ -0,0 +1,219 @@
+From 0e977b8595d4e8690bd3f3a816c9ec407dca5ba6 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Wed, 4 Nov 2020 22:46:20 +0100
+Subject: [PATCH] build system fixes
+
+This touches up the homebrewed build system to work much better "out of the
+box" for people. Specifically:
+ - allow toolchain vars to be set via environment
+ - CC / BUILD_CC / AR / RANLIB
+ - CFLAGS / CPPFLAGS / LDFLAGS
+ - split CPPFLAGS out of CFLAGS
+ - break -fPIC out of global CFLAGS and only use where needed
+ - use LDLIBS for libraries, not LDFLAGS
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+
+Forward ported from libcap-2.24 to libcap-2.25
+Forward ported from libcap-2.25 to libcap-2.28
+Forward ported from libcap-2.28 to libcap-2.29
+Forward ported from libcap-2.29 to libcap-2.33
+Forward ported from libcap-2.33 to libcap-2.34
+Forward ported from libcap-2.34 to libcap-2.37
+Forward ported from libcap-2.37 to libcap-2.39
+Forward ported from libcap-2.39 to libcap-2.42
+Forward ported from libcap-2.42 to libcap-2.44
+Forward ported from libcap-2.44 to libcap-2.45
+Forward ported from libcap-2.45 to libcap-2.48
+Forward ported from libcap-2.48 to libcap-2.50
+Forward ported from libcap-2.50 to libcap-2.52
+
+Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
+---
+ Make.Rules | 10 ++++++----
+ Makefile | 1 -
+ libcap/Makefile | 7 ++++---
+ pam_cap/Makefile | 10 ++++++----
+ progs/Makefile | 4 ++--
+ tests/Makefile | 6 ++++--
+ 6 files changed, 22 insertions(+), 16 deletions(-)
+
+diff --git a/Make.Rules b/Make.Rules
+index 8f7906c..fea4c78 100644
+--- a/Make.Rules
++++ b/Make.Rules
+@@ -52,18 +52,13 @@ GOMAJOR=1
+ # Compilation specifics
+
+ KERNEL_HEADERS := $(topdir)/libcap/include/uapi
+-IPATH += -fPIC -I$(KERNEL_HEADERS) -I$(topdir)/libcap/include
+
+-CC := $(CROSS_COMPILE)gcc
+ DEFINES := -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
+ COPTS ?= -O2
+ CFLAGS ?= $(COPTS) $(DEFINES)
+ BUILD_CC ?= $(CC)
+ BUILD_COPTS ?= -O2
+-BUILD_CFLAGS ?= $(BUILD_COPTS) $(DEFINES) $(IPATH)
+-AR := $(CROSS_COMPILE)ar
+-RANLIB := $(CROSS_COMPILE)ranlib
+-OBJCOPY := $(CROSS_COMPILE)objcopy
++BUILD_CFLAGS ?= $(CFLAGS)
+ DEBUG = -g #-DDEBUG
+ WARNINGS=-Wall -Wwrite-strings \
+ -Wpointer-arith -Wcast-qual -Wcast-align \
+@@ -77,10 +72,13 @@
+
+ BUILD_GPERF := $(shell which gperf >/dev/null 2>/dev/null && echo yes)
+
+-SYSTEM_HEADERS = /usr/include
++LIBCAP_CPPFLAGS = -I$(KERNEL_HEADERS) -I$(topdir)/libcap/include $(DEFINES)
++CPPFLAGS += $(LIBCAP_CPPFLAGS)
++BUILD_CPPFLAGS += $(LIBCAP_CPPFLAGS)
+ INCS=$(topdir)/libcap/include/sys/capability.h
+ LDFLAGS += -L$(topdir)/libcap
+-CFLAGS += -Dlinux $(WARNINGS) $(DEBUG)
++CPPFLAGS += -Dlinux
++CFLAGS += $(WARNINGS) $(DEBUG)
+ INDENT := $(shell if [ -n "$$(which indent 2>/dev/null)" ]; then echo "| indent -kr" ; fi)
+
+ # SHARED tracks whether or not the SHARED libraries (libcap.so,
+diff --git a/Makefile b/Makefile
+index 984d502..a917238 100644
+--- a/Makefile
++++ b/Makefile
+@@ -17,7 +17,6 @@ ifeq ($(GOLANG),yes)
+ $(MAKE) -C go $@
+ rm -f cap/go.sum
+ endif
+- $(MAKE) -C tests $@
+ $(MAKE) -C progs $@
+ $(MAKE) -C doc $@
+ $(MAKE) -C kdebug $@
+diff --git a/libcap/Makefile b/libcap/Makefile
+index 47cf8f4..5125ffb 100644
+--- a/libcap/Makefile
++++ b/libcap/Makefile
+@@ -32,6 +32,7 @@ MINCAPLIBNAME=$(MAJCAPLIBNAME).$(MINOR)
+ PSXOBJS=$(addsuffix .o, $(PSXFILES))
+ MAJPSXLIBNAME=$(PSXLIBNAME).$(VERSION)
+ MINPSXLIBNAME=$(MAJPSXLIBNAME).$(MINOR)
++CFLAGS += -fPIC
+
+ all: pcs $(STACAPLIBNAME)
+ ifeq ($(SHARED),yes)
+@@ -73,7 +74,7 @@ $(PSXTITLE).pc: $(PSXTITLE).pc.in
+ $< >$@
+
+ _makenames: _makenames.c cap_names.list.h
+- $(BUILD_CC) $(BUILD_CFLAGS) $< -o $@
++ $(BUILD_CC) $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) $< -o $@
+
+ cap_names.h: _makenames
+ ./_makenames > cap_names.h
+@@ -125,10 +126,10 @@ $(PSXLIBNAME) $(MAJPSXLIBNAME) $(MINPSXLIBNAME): $(PSXOBJS) include/sys/psx_sysc
+ endif
+
+ %.o: %.c $(INCLS)
+- $(CC) $(CFLAGS) $(IPATH) -c $< -o $@
++ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
+
+ cap_text.o: cap_text.c $(USE_GPERF_OUTPUT) $(INCLS)
+- $(CC) $(CFLAGS) $(IPATH) $(INCLUDE_GPERF_OUTPUT) -c $< -o $@
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(INCLUDE_GPERF_OUTPUT) -c $< -o $@
+
+ cap_test: cap_test.c libcap.h $(CAPOBJS)
+ $(CC) $(CFLAGS) $(IPATH) $< $(CAPOBJS) -o $@
+diff --git a/pam_cap/Makefile b/pam_cap/Makefile
+index a4c4891..a15feae 100644
+--- a/pam_cap/Makefile
++++ b/pam_cap/Makefile
+@@ -3,6 +3,8 @@
+ topdir=$(shell pwd)/..
+ include ../Make.Rules
+
++CFLAGS += -fPIC
++
+ all: pam_cap.so
+ $(MAKE) testlink
+
+@@ -19,13 +21,13 @@ install: all
+ $(MAKE) -C ../libcap loader.txt
+
+ execable.o: execable.c ../libcap/execable.h ../libcap/loader.txt
+- $(CC) $(CFLAGS) $(IPATH) -DLIBCAP_VERSION=\"libcap-$(VERSION).$(MINOR)\" -DSHARED_LOADER=\"$(shell cat ../libcap/loader.txt)\" -c execable.c -o $@
++ $(CC) $(CFLAGS) $(LDFLAGS) $(CPPFLAGS) -DLIBCAP_VERSION=\"libcap-$(VERSION).$(MINOR)\" -DSHARED_LOADER=\"$(shell cat ../libcap/loader.txt)\" -c execable.c -o $@
+
+ pam_cap.so: pam_cap.o execable.o
+- $(LD) -o pam_cap.so $+ $(LIBCAPLIB) $(LDFLAGS) --entry=__so_start
++ $(LD) $(CFLAGS) -o pam_cap.so $+ $(LIBCAPLIB) $(LDFLAGS) --entry=__so_start
+
+ pam_cap.o: pam_cap.c
+- $(CC) $(CFLAGS) $(IPATH) -c $< -o $@
++ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
+
+ ../libcap/libcap.a:
+ $(MAKE) -C ../libcap libcap.a
+@@ -34,7 +36,7 @@ test_pam_cap: test_pam_cap.c pam_cap.c ../libcap/libcap.a
+ $(CC) $(CFLAGS) $(IPATH) -o $@ test_pam_cap.c $(LIBCAPLIB) $(LDFLAGS) --static
+
+ testlink: test.c pam_cap.o
+- $(CC) $(CFLAGS) -o $@ $+ -lpam -ldl $(LIBCAPLIB) $(LDFLAGS)
++ $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $+ -lpam -ldl $(LIBCAPLIB) $(LDFLAGS)
+
+ test: testlink test_pam_cap pam_cap.so
+ $(MAKE) testlink
+diff --git a/progs/Makefile b/progs/Makefile
+index 3e82862..dba7e8f 100644
+--- a/progs/Makefile
++++ b/progs/Makefile
+@@ -28,7 +28,7 @@ $(BUILD): %: %.o $(DEPS)
+ $(CC) $(CFLAGS) -o $@ $< $(LIBCAPLIB) $(LDFLAGS)
+
+ %.o: %.c $(INCS)
+- $(CC) $(IPATH) $(CFLAGS) -c $< -o $@
++ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
+
+ install: all
+ mkdir -p -m 0755 $(FAKEROOT)$(SBINDIR)
+@@ -46,7 +46,7 @@ capshdoc.h.cf: capshdoc.h ./mkcapshdoc.sh
+ diff -u capshdoc.h $@ || (rm $@ ; exit 1)
+
+ capsh: capsh.c capshdoc.h.cf $(DEPS)
+- $(CC) $(IPATH) $(CAPSH_SHELL) $(CFLAGS) -o $@ $< $(LIBCAPLIB) $(LDFLAGS)
++ $(CC) $(CAPSH_SHELL) $(CFLAGS) $(CPPFLAGS) -o $@ $< $(LIBCAPLIB) $(LDFLAGS)
+
+ tcapsh-static: capsh.c capshdoc.h.cf $(DEPS)
+ $(CC) $(IPATH) $(CAPSH_SHELL) $(CFLAGS) -o $@ $< $(LIBCAPLIB) $(LDFLAGS) --static
+diff --git a/tests/Makefile b/tests/Makefile
+index 3a917c4..07eb2d5 100644
+--- a/tests/Makefile
++++ b/tests/Makefile
+@@ -13,6 +13,8 @@ ifeq ($(PTHREADS),yes)
+ $(MAKE) psx_test libcap_psx_test libcap_psx_launch_test
+ endif
+
++CFLAGS += -fPIC
++
+ install: all
+
+ ifeq ($(DYNAMIC),yes)
+@@ -63,13 +65,13 @@ run_psx_test: psx_test
+ ./psx_test
+
+ psx_test: psx_test.c $(DEPS)
+- $(CC) $(CFLAGS) $(IPATH) $< -o $@ $(LINKEXTRA) $(LIBPSXLIB) $(LDFLAGS)
++ $(CC) $(CFLAGS) $(CPPFLAGS) $< -o $@ $(LINKEXTRA) $(LIBPSXLIB) $(LDFLAGS)
+
+ run_libcap_psx_test: libcap_psx_test
+ ./libcap_psx_test
+
+ libcap_psx_test: libcap_psx_test.c $(DEPS)
+- $(CC) $(CFLAGS) $(IPATH) $< -o $@ $(LINKEXTRA) $(LIBCAPLIB) $(LIBPSXLIB) $(LDFLAGS)
++ $(CC) $(CFLAGS) $(CPPFLAGS) $< -o $@ $(LINKEXTRA) $(LIBCAPLIB) $(LIBPSXLIB) $(LDFLAGS)
+
+ # privileged
+ uns_test: uns_test.c $(DEPS)
+--
+2.32.0
+
diff --git a/sys-libs/libcap/libcap-2.50-r1.ebuild b/sys-libs/libcap/libcap-2.52.ebuild
index 2745eb56bf9d..6dc8e00f317b 100644
--- a/sys-libs/libcap/libcap-2.50-r1.ebuild
+++ b/sys-libs/libcap/libcap-2.52.ebuild
@@ -27,8 +27,7 @@ DEPEND="${RDEPEND}
RESTRICT="test"
PATCHES=(
- "${FILESDIR}"/${PN}-2.50-build-system-fixes.patch
- "${FILESDIR}"/${PN}-2.50-install_capsh_again.patch #793026
+ "${FILESDIR}"/${PN}-2.52-build-system-fixes.patch
"${FILESDIR}"/${PN}-2.38-no_perl.patch
"${FILESDIR}"/${PN}-2.25-ignore-RAISE_SETFCAP-install-failures.patch
"${FILESDIR}"/${PN}-2.21-include.patch
@@ -48,15 +47,12 @@ run_emake() {
PAM_CAP="$(usex pam yes no)"
DYNAMIC=yes
GOLANG=no
- CC="$(tc-getCC)"
- AR="$(tc-getAR)"
- RANLIB="$(tc-getRANLIB)"
)
emake "${args[@]}" "$@"
}
src_configure() {
- tc-export AR CC RANLIB
+ tc-export AR CC OBJCOPY RANLIB
tc-export_build_env BUILD_CC
multilib-minimal_src_configure
}
diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 1277986bcb72..6d5074496612 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,10 +7,12 @@ DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3
DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
DIST llvmorg-12.0.0.tar.gz 134226215 BLAKE2B f9c3ba8c58571855caa4f206fd285c9b5be66672fb0814cb8bc0964a051f57f5d35013aa1e27cbda502652b37df1ec23474129109e76a42066847860db441dbe SHA512 0cff02155c5ac0d6db2b72d60d9819d5b5dd859663b45f721b1c7540239c2fceb1f57d9173f6870c49de851c242ed8e85c5c6d6577a1f8092a7c5dcd12513b26
DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
+DIST llvmorg-13.0.0-rc1.tar.gz 147235597 BLAKE2B 089fed119dee8a16f278cebb13808bd5a95629cc87ebee3050225cc041b78fee51acacc5bcc913d4a99e830bfe5774b19a04a845293c5087dd2a8c9d94d2fde9 SHA512 6e307e2c2dcb7ff41d11ee29d69f41c0ef55f200999847a3a924a2e773fc9c2160015746789af8b723c628bd232f97fce63370209bd0065491d80b0cc0017e85
EBUILD libcxx-10.0.1.ebuild 5796 BLAKE2B c3c1e4d49ad96de1338998d35b0495ba2aa448db3558988bbbc9e5d4603d3d2ded354b1c04b186b0134be930edd72c931240ac3a068744e72e18087fc1550160 SHA512 7fbae29d2658305ddac7854a96e353ccf1901fcc6b1c15370d7a69a602f41b7d9f1afdd91018ea5be949955b3f8f1424903b5bac13d840e8f8c72ffcf7d7d34d
EBUILD libcxx-11.1.0.ebuild 6661 BLAKE2B 93445de819484ea32a708d2ff616501d715e7fd3a3f4204f143e64c40bc89ebceb8e50c80215c6b54d7c8a3cce00fcecaac099298b41e010bf77655563d30a20 SHA512 ce56f24e7b4aed1405e682af6b3cb48bad6617d5b7e2ecf5b990fae4f7d6badc479a583ef24801e34b0155c12354a7b76a414402f89c31f228315eb92f279a62
EBUILD libcxx-12.0.0.ebuild 6950 BLAKE2B 44bdf31592a101724f3a45f41856e68ae2522a9f63cbb1b29d9eecc370fc6e1eb25ba435f9bf06c2faf14107abc3dd0df85f2dbb3cca29c7ca48f7ed5f2deb62 SHA512 9fc4ca41655c5a677ae6a52210943dd00246b080a11d17175f184c956c286915836cfe850716efd91c3c74d0e4b56dc1258d524d4aac9cb787c46c8a4e6e57aa
-EBUILD libcxx-12.0.1.ebuild 6704 BLAKE2B dda3c886e800201a33f2a84bf8ee081637ebbdae1ba61c74da2d5bc46a3b7252b14814cb2bcbf49eaadd7cb0627c8ed3fc5d193e2167351ee445c1c8daaac7ca SHA512 7af30677b2df8518cbe0feee57fe874bd8b1f64d34998f83fe497b9412327ec49445a2e62a71184449b45ddae18fd544ff7e7253cf5599737ec70daaebf63b3e
-EBUILD libcxx-13.0.0.9999.ebuild 6663 BLAKE2B 29fdc86ece97a67463eea19ac3fc7354bae72abda4791960a62af3c3ff8e3b8d24264f191a1e74651b10a451c8bc7e90fb8b37dc6ce9f031de370e6d442f53e5 SHA512 e1bb8090d04e21db78521944f7393e67dc875b1979ec308a204f695d45a9f6975f3eb57a1707d1a0a55c2df7c459a818682db311fc051ef8c29f7d247f257efd
-EBUILD libcxx-14.0.0.9999.ebuild 6663 BLAKE2B 29fdc86ece97a67463eea19ac3fc7354bae72abda4791960a62af3c3ff8e3b8d24264f191a1e74651b10a451c8bc7e90fb8b37dc6ce9f031de370e6d442f53e5 SHA512 e1bb8090d04e21db78521944f7393e67dc875b1979ec308a204f695d45a9f6975f3eb57a1707d1a0a55c2df7c459a818682db311fc051ef8c29f7d247f257efd
+EBUILD libcxx-12.0.1.ebuild 6703 BLAKE2B 22768e6a6a4fdf0c78da96d0c20d47c71961a545a64d6817056a904ec70e55db7bb1c29f6841bb39516383f35e95c5f1808eec50379cfb7cafa61ff3f8db108b SHA512 955ed1b3ca5b6d27d00ab3d1836f4ca23293beccc049153545b3b3da563b470e3d8d438a1cb91edce00b5be95c5a3c1362e3eefaf85db7f30cc69d8a29efd3f6
+EBUILD libcxx-13.0.0.9999.ebuild 6703 BLAKE2B e4988bec759918ae49a368a4b7c79918cfc99a6da325b04153f548f64c1d0de9698c9aa0f2c917a9a5fc75c96bac54771c2681f46a79bc698d175e29b7bcf3c4 SHA512 75408fcc8004065d88c5b114487107ed754e7fd7c4474f2b39d8956e704bc6889b7d5ad6159d593731d78c4fd1996468026827b21e2ae929eef6f9f0742466ba
+EBUILD libcxx-13.0.0_rc1.ebuild 6703 BLAKE2B e4988bec759918ae49a368a4b7c79918cfc99a6da325b04153f548f64c1d0de9698c9aa0f2c917a9a5fc75c96bac54771c2681f46a79bc698d175e29b7bcf3c4 SHA512 75408fcc8004065d88c5b114487107ed754e7fd7c4474f2b39d8956e704bc6889b7d5ad6159d593731d78c4fd1996468026827b21e2ae929eef6f9f0742466ba
+EBUILD libcxx-14.0.0.9999.ebuild 6703 BLAKE2B e4988bec759918ae49a368a4b7c79918cfc99a6da325b04153f548f64c1d0de9698c9aa0f2c917a9a5fc75c96bac54771c2681f46a79bc698d175e29b7bcf3c4 SHA512 75408fcc8004065d88c5b114487107ed754e7fd7c4474f2b39d8956e704bc6889b7d5ad6159d593731d78c4fd1996468026827b21e2ae929eef6f9f0742466ba
MISC metadata.xml 621 BLAKE2B d8b68920ece0e3a700f1e425cf72a4ca7e75cf4b0b35e1ac6db9374d32020fc9f62b434da2108ad5b3538a46a2a7f4f5de7aa1640cd4b10046f2480ebb89450d SHA512 e1b0c874a6d229e098ffe7c0c2827502f2cdbf74fb7a0254687a0ca75dde74db06ef2bc79bfe8b526c413b13beac27b8261eab8d0b8df36011790dada3eae421
diff --git a/sys-libs/libcxx/libcxx-12.0.1.ebuild b/sys-libs/libcxx/libcxx-12.0.1.ebuild
index bf4009dbd8fb..99b2c61fd2b8 100644
--- a/sys-libs/libcxx/libcxx-12.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-12.0.1.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
+KEYWORDS="amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
REQUIRED_USE="libunwind? ( libcxxabi )"
RESTRICT="!test? ( test )"
diff --git a/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild
index db5b489c505b..5dca7551438c 100644
--- a/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild
@@ -34,7 +34,7 @@ BDEPEND="
DOCS=( CREDITS.TXT )
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} )
LLVM_PATCHSET=9999-1
llvm.org_set_globals
@@ -142,6 +142,7 @@ multilib_src_configure() {
mycmakeargs+=(
-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}"
+ -DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
-DPython3_EXECUTABLE="${PYTHON}"
)
fi
diff --git a/sys-libs/libcxx/libcxx-13.0.0_rc1.ebuild b/sys-libs/libcxx/libcxx-13.0.0_rc1.ebuild
new file mode 100644
index 000000000000..5dca7551438c
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-13.0.0_rc1.ebuild
@@ -0,0 +1,213 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{8..10} )
+inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+ !libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+ >=sys-devel/llvm-6"
+BDEPEND="
+ test? (
+ >=dev-util/cmake-3.16
+ >=sys-devel/clang-3.9.0
+ $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+ )"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} )
+LLVM_PATCHSET=9999-1
+llvm.org_set_globals
+
+python_check_deps() {
+ has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ # Darwin Prefix builds do not have llvm installed yet, so rely on
+ # bootstrap-prefix to set the appropriate path vars to LLVM instead
+ # of using llvm_pkg_setup.
+ if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then
+ llvm_pkg_setup
+ fi
+ use test && python-any-r1_pkg_setup
+
+ if ! use libcxxabi && ! tc-is-gcc ; then
+ eerror "To build ${PN} against libsupc++, you have to use gcc. Other"
+ eerror "compilers are not supported. Please set CC=gcc and CXX=g++"
+ eerror "and try again."
+ die
+ fi
+}
+
+test_compiler() {
+ $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
+ <<<'int main() { return 0; }' &>/dev/null
+}
+
+src_configure() {
+ # note: we need to do this before multilib kicks in since it will
+ # alter the CHOST
+ local cxxabi cxxabi_incs
+ if use libcxxabi; then
+ cxxabi=libcxxabi
+ cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+ else
+ local gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)"
+ cxxabi=libsupc++
+ cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}"
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ # we want -lgcc_s for unwinder, and for compiler runtime when using
+ # gcc, clang with gcc runtime (or any unknown compiler)
+ local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+ if use libunwind; then
+ # work-around missing -lunwind upstream
+ extra_libs+=( -lunwind )
+ # if we're using libunwind and clang with compiler-rt, we want
+ # to link to compiler-rt instead of -lgcc_s
+ if tc-is-clang; then
+ local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+ ${LDFLAGS} -print-libgcc-file-name)
+ if [[ ${compiler_rt} == *libclang_rt* ]]; then
+ want_gcc_s=OFF
+ want_compiler_rt=ON
+ extra_libs+=( "${compiler_rt}" )
+ fi
+ fi
+ elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+ # clang-based darwin prefix disables libunwind useflag during
+ # bootstrap, because libunwind is not in the prefix yet.
+ # override the default, though, because clang based libcxx
+ # should never use gcc_s on Darwin.
+ want_gcc_s=OFF
+ # compiler_rt is not available in EPREFIX during bootstrap,
+ # so we cannot link to it yet anyway, so keep the defaults
+ # of want_compiler_rt=OFF and extra_libs=()
+ fi
+
+ # bootstrap: cmake is unhappy if compiler can't link to stdlib
+ local nolib_flags=( -nodefaultlibs -lc )
+ if ! test_compiler; then
+ if test_compiler "${nolib_flags[@]}"; then
+ local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}"
+ ewarn "${CXX} seems to lack runtime, trying with ${nolib_flags[*]}"
+ fi
+ fi
+
+ local libdir=$(get_libdir)
+ local mycmakeargs=(
+ -DLIBCXX_LIBDIR_SUFFIX=${libdir#lib}
+ -DLIBCXX_ENABLE_SHARED=ON
+ -DLIBCXX_ENABLE_STATIC=$(usex static-libs)
+ -DLIBCXX_CXX_ABI=${cxxabi}
+ -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi_incs}
+ # we're using our own mechanism for generating linker scripts
+ -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
+ -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
+ -DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s}
+ -DLIBCXX_INCLUDE_TESTS=$(usex test)
+ -DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+ -DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
+ -DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+ )
+
+ if use test; then
+ local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+ [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+ mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}"
+ -DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+ fi
+ cmake_src_configure
+}
+
+multilib_src_test() {
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check-cxx
+}
+
+# Usage: deps
+gen_ldscript() {
+ local output_format
+ output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p')
+ [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )"
+
+ cat <<-END_LDSCRIPT
+/* GNU ld script
+ Include missing dependencies
+*/
+${output_format}
+GROUP ( $@ )
+END_LDSCRIPT
+}
+
+gen_static_ldscript() {
+ local libdir=$(get_libdir)
+ local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+ # Move it first.
+ mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${libdir}/libc++_static.a" || die
+ # Generate libc++.a ldscript for inclusion of its dependencies so that
+ # clang++ -stdlib=libc++ -static works out of the box.
+ local deps="libc++_static.a ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.a)"
+ # On Linux/glibc it does not link without libpthread or libdl. It is
+ # fine on FreeBSD.
+ use elibc_glibc && deps+=" libpthread.a libdl.a"
+
+ gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+ local libdir=$(get_libdir)
+ # libsupc++ doesn't have a shared version
+ local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+ mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+ local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+ gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+ cmake_src_install
+ if [[ ${CHOST} != *-darwin* ]] ; then
+ gen_shared_ldscript
+ use static-libs && gen_static_ldscript
+ fi
+}
+
+pkg_postinst() {
+ elog "This package (${PN}) is mainly intended as a replacement for the C++"
+ elog "standard library when using clang."
+ elog "To use it, instead of libstdc++, use:"
+ elog " clang++ -stdlib=libc++"
+ elog "to compile your C++ programs."
+}
diff --git a/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
index db5b489c505b..5dca7551438c 100644
--- a/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
@@ -34,7 +34,7 @@ BDEPEND="
DOCS=( CREDITS.TXT )
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} )
LLVM_PATCHSET=9999-1
llvm.org_set_globals
@@ -142,6 +142,7 @@ multilib_src_configure() {
mycmakeargs+=(
-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}"
+ -DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
-DPython3_EXECUTABLE="${PYTHON}"
)
fi
diff --git a/sys-libs/libcxxabi/Manifest b/sys-libs/libcxxabi/Manifest
index e0baca913334..68f97287f7a4 100644
--- a/sys-libs/libcxxabi/Manifest
+++ b/sys-libs/libcxxabi/Manifest
@@ -2,10 +2,12 @@ DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3
DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
DIST llvmorg-12.0.0.tar.gz 134226215 BLAKE2B f9c3ba8c58571855caa4f206fd285c9b5be66672fb0814cb8bc0964a051f57f5d35013aa1e27cbda502652b37df1ec23474129109e76a42066847860db441dbe SHA512 0cff02155c5ac0d6db2b72d60d9819d5b5dd859663b45f721b1c7540239c2fceb1f57d9173f6870c49de851c242ed8e85c5c6d6577a1f8092a7c5dcd12513b26
DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
+DIST llvmorg-13.0.0-rc1.tar.gz 147235597 BLAKE2B 089fed119dee8a16f278cebb13808bd5a95629cc87ebee3050225cc041b78fee51acacc5bcc913d4a99e830bfe5774b19a04a845293c5087dd2a8c9d94d2fde9 SHA512 6e307e2c2dcb7ff41d11ee29d69f41c0ef55f200999847a3a924a2e773fc9c2160015746789af8b723c628bd232f97fce63370209bd0065491d80b0cc0017e85
EBUILD libcxxabi-10.0.1.ebuild 3237 BLAKE2B 828cabd1bccb0f7dc672648fd1143f1913df2b3f075194da3b053413ad8e0ff8f8669ce6263fa51ed0b02702e0bd611a77f4009e57a7d2659362db21c5665e4e SHA512 b9fef273fea1343aab604c3606fa4b9ed340e0e6f649e68f81f1285d96374f440ab787937b203ee5eba5b8e867a5926b48f63d8739c326fd1a646193635dd65e
EBUILD libcxxabi-11.1.0.ebuild 3559 BLAKE2B dc74318b252f772fbc6833e413ee2dd9b682c01ae3bca88a78d2f7854aa374311474f7af9f19453e4b4fbb6db4149e8330db7632faf710a0aeb2e0d741119096 SHA512 18632637cb6fb86a3c003ba66f6a80aece299f50e356870599bb932fa100ba3e51293cee71576cc994a7e2b5f56f3b4ec8b4d3eae6202322d50a9bc0aa922ac3
EBUILD libcxxabi-12.0.0.ebuild 3542 BLAKE2B b64bd260671e5109a31ac3f779f46720ea2972d5da3e5d4b0293453be3e8ab209a1bca2a459c160271fa4cfa39cba968b6faaab1cd12667dd3822bfc0633266f SHA512 8b1874aa691d2aec5f149625d9865f23ef4ba181d8d805852a9cfa22bb7649872183d94f047a3406d2bd9135127e854a477eb8b31281ff7ce2f7a120888fe04f
-EBUILD libcxxabi-12.0.1.ebuild 3547 BLAKE2B 80a38e4458df2465501399df48d71e8907c17f302967b318eb980ef581121b4e7d1f333ff275673b731e8f17dca2efd6da534b418064b1f4240ae6d942a9adb9 SHA512 adabd99bb5fafe4cdf1f8ec72fca0cbe9536ff370cd12327661523ae495056f7a67602e759c766ad09b9f4ff75cc4a1e18cd40d9f44d6049d37af406ecf65416
-EBUILD libcxxabi-13.0.0.9999.ebuild 3498 BLAKE2B 5483dca08c66645c4ecc947884a103384076d092a2ff3e52d7a4354ec5a0aecca5aa0ec06331120dfef3227823b9a0fd91b3e37c52519a93a44d6293419e9bc1 SHA512 3ff549741d571ea4952e6658c41c1aa476b8db033097aa56f741148bd991e0a62181b60a51969a4e04f8b3a0d8b5cf7491a1e3fc6c2046f1c74941407a17e493
-EBUILD libcxxabi-14.0.0.9999.ebuild 3498 BLAKE2B 5483dca08c66645c4ecc947884a103384076d092a2ff3e52d7a4354ec5a0aecca5aa0ec06331120dfef3227823b9a0fd91b3e37c52519a93a44d6293419e9bc1 SHA512 3ff549741d571ea4952e6658c41c1aa476b8db033097aa56f741148bd991e0a62181b60a51969a4e04f8b3a0d8b5cf7491a1e3fc6c2046f1c74941407a17e493
+EBUILD libcxxabi-12.0.1.ebuild 3546 BLAKE2B 1975a7acd224df87f5e6b705b7588f75493e90d09ec8d078516a270b5afa7ef1c89a54a3e4172a5f27605d9dd90c57a5ffd1898b4026c0a19b06ed5902443d7c SHA512 4903ef1c6a71d41d7174ebef0c1f3b9b7122c59e862919589a1f3bc5de10c6785d4403a41789cbbce33328743377b2fac8a85e207d73e1c99492ebf41ab12a50
+EBUILD libcxxabi-13.0.0.9999.ebuild 3504 BLAKE2B bfa2d35ac94fb452d09b37a9d7d1810a7ecf33ee9509020caecb700d8e5b8e30067429f03db8297cc40ba194b819689e2bc6a46e78b48cc0f943da10536aec8a SHA512 830df6f081e8012d43062e0388bf5bd8975a3896765d38567c0ba52a54435b8be06df3955ed8dda5d6025091fd52eb1b1ec1c774e558ffc5eae5812822bb6725
+EBUILD libcxxabi-13.0.0_rc1.ebuild 3504 BLAKE2B bfa2d35ac94fb452d09b37a9d7d1810a7ecf33ee9509020caecb700d8e5b8e30067429f03db8297cc40ba194b819689e2bc6a46e78b48cc0f943da10536aec8a SHA512 830df6f081e8012d43062e0388bf5bd8975a3896765d38567c0ba52a54435b8be06df3955ed8dda5d6025091fd52eb1b1ec1c774e558ffc5eae5812822bb6725
+EBUILD libcxxabi-14.0.0.9999.ebuild 3504 BLAKE2B bfa2d35ac94fb452d09b37a9d7d1810a7ecf33ee9509020caecb700d8e5b8e30067429f03db8297cc40ba194b819689e2bc6a46e78b48cc0f943da10536aec8a SHA512 830df6f081e8012d43062e0388bf5bd8975a3896765d38567c0ba52a54435b8be06df3955ed8dda5d6025091fd52eb1b1ec1c774e558ffc5eae5812822bb6725
MISC metadata.xml 350 BLAKE2B 67b70b8d7292327882a845b76667ce24fee728cd84f27ed7e329bc7963631cba4c28bafce5e6a5fefb4ba1df5c7fd572b3b0d7a2b31ef649496f2f991b691bff SHA512 317dd7b59a711dd0461b5369f7e31ea196882b018e047e1dbae8077274d06cb68542c8762efb852cce0b8021bedea69c19aa0c124b9414a36cf1a9c00e0b9703
diff --git a/sys-libs/libcxxabi/libcxxabi-12.0.1.ebuild b/sys-libs/libcxxabi/libcxxabi-12.0.1.ebuild
index 392b9a3630f5..efc23d05bba2 100644
--- a/sys-libs/libcxxabi/libcxxabi-12.0.1.ebuild
+++ b/sys-libs/libcxxabi/libcxxabi-12.0.1.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxxabi.llvm.org/"
LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
+KEYWORDS="amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
IUSE="+libunwind static-libs test elibc_musl"
RESTRICT="!test? ( test )"
diff --git a/sys-libs/libcxxabi/libcxxabi-13.0.0.9999.ebuild b/sys-libs/libcxxabi/libcxxabi-13.0.0.9999.ebuild
index 953c0c81796c..d11be625eea5 100644
--- a/sys-libs/libcxxabi/libcxxabi-13.0.0.9999.ebuild
+++ b/sys-libs/libcxxabi/libcxxabi-13.0.0.9999.ebuild
@@ -31,7 +31,6 @@ BDEPEND="
$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
)"
-# libcxx is needed uncondtionally for the headers
LLVM_COMPONENTS=( libcxx{abi,} llvm/cmake )
llvm.org_set_globals
@@ -49,6 +48,10 @@ pkg_setup() {
}
multilib_src_configure() {
+ # we need a configured libc++ for __config_site
+ wrap_libcxx cmake_src_configure
+ wrap_libcxx cmake_build generate-cxx-headers
+
# link against compiler-rt instead of libgcc if we are using clang with libunwind
local want_compiler_rt=OFF
if use libunwind && tc-is-clang; then
@@ -68,7 +71,7 @@ multilib_src_configure() {
-DLIBCXXABI_INCLUDE_TESTS=$(usex test)
-DLIBCXXABI_USE_COMPILER_RT=${want_compiler_rt}
- -DLIBCXXABI_LIBCXX_INCLUDES="${WORKDIR}"/libcxx/include
+ -DLIBCXXABI_LIBCXX_INCLUDES="${BUILD_DIR}"/libcxx/include/c++/v1
# upstream is omitting standard search path for this
# probably because gcc & clang are bundling their own unwind.h
-DLIBCXXABI_LIBUNWIND_INCLUDES="${EPREFIX}"/usr/include
@@ -86,7 +89,7 @@ multilib_src_configure() {
cmake_src_configure
}
-build_libcxx() {
+wrap_libcxx() {
local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)"
local CMAKE_USE_DIR=${WORKDIR}/libcxx
local BUILD_DIR=${BUILD_DIR}/libcxx
@@ -103,13 +106,11 @@ build_libcxx() {
-DLIBCXX_INCLUDE_TESTS=OFF
)
- cmake_src_configure
- cmake_src_compile
+ "${@}"
}
multilib_src_test() {
- # build a local copy of libc++ for testing to avoid circular dep
- build_libcxx
+ wrap_libcxx cmake_src_compile
mv "${BUILD_DIR}"/libcxx/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die
local -x LIT_PRESERVES_TMP=1
diff --git a/sys-libs/libcxxabi/libcxxabi-13.0.0_rc1.ebuild b/sys-libs/libcxxabi/libcxxabi-13.0.0_rc1.ebuild
new file mode 100644
index 000000000000..d11be625eea5
--- /dev/null
+++ b/sys-libs/libcxxabi/libcxxabi-13.0.0_rc1.ebuild
@@ -0,0 +1,123 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{8..10} )
+inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
+
+DESCRIPTION="Low level support for a standard C++ library"
+HOMEPAGE="https://libcxxabi.llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS=""
+IUSE="+libunwind static-libs test elibc_musl"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ libunwind? (
+ || (
+ >=sys-libs/libunwind-1.0.1-r1[static-libs?,${MULTILIB_USEDEP}]
+ >=sys-libs/llvm-libunwind-3.9.0-r1[static-libs?,${MULTILIB_USEDEP}]
+ )
+ )"
+# llvm-6 for new lit options
+DEPEND="${RDEPEND}
+ >=sys-devel/llvm-6"
+BDEPEND="
+ test? ( >=sys-devel/clang-3.9.0
+ $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+ )"
+
+LLVM_COMPONENTS=( libcxx{abi,} llvm/cmake )
+llvm.org_set_globals
+
+python_check_deps() {
+ has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ # darwin prefix builds do not have llvm installed yet, so rely on bootstrap-prefix
+ # to set the appropriate path vars to LLVM instead of using llvm_pkg_setup.
+ if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then
+ llvm_pkg_setup
+ fi
+ use test && python-any-r1_pkg_setup
+}
+
+multilib_src_configure() {
+ # we need a configured libc++ for __config_site
+ wrap_libcxx cmake_src_configure
+ wrap_libcxx cmake_build generate-cxx-headers
+
+ # link against compiler-rt instead of libgcc if we are using clang with libunwind
+ local want_compiler_rt=OFF
+ if use libunwind && tc-is-clang; then
+ local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+ ${LDFLAGS} -print-libgcc-file-name)
+ if [[ ${compiler_rt} == *libclang_rt* ]]; then
+ want_compiler_rt=ON
+ fi
+ fi
+
+ local libdir=$(get_libdir)
+ local mycmakeargs=(
+ -DLIBCXXABI_LIBDIR_SUFFIX=${libdir#lib}
+ -DLIBCXXABI_ENABLE_SHARED=ON
+ -DLIBCXXABI_ENABLE_STATIC=$(usex static-libs)
+ -DLIBCXXABI_USE_LLVM_UNWINDER=$(usex libunwind)
+ -DLIBCXXABI_INCLUDE_TESTS=$(usex test)
+ -DLIBCXXABI_USE_COMPILER_RT=${want_compiler_rt}
+
+ -DLIBCXXABI_LIBCXX_INCLUDES="${BUILD_DIR}"/libcxx/include/c++/v1
+ # upstream is omitting standard search path for this
+ # probably because gcc & clang are bundling their own unwind.h
+ -DLIBCXXABI_LIBUNWIND_INCLUDES="${EPREFIX}"/usr/include
+ )
+ if use test; then
+ local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+ [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+ mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}"
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+ fi
+ cmake_src_configure
+}
+
+wrap_libcxx() {
+ local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)"
+ local CMAKE_USE_DIR=${WORKDIR}/libcxx
+ local BUILD_DIR=${BUILD_DIR}/libcxx
+ local mycmakeargs=(
+ -DLIBCXX_LIBDIR_SUFFIX=
+ -DLIBCXX_ENABLE_SHARED=OFF
+ -DLIBCXX_ENABLE_STATIC=ON
+ -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${S}"/include
+ -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
+ -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
+ -DLIBCXX_HAS_GCC_S_LIB=OFF
+ -DLIBCXX_INCLUDE_TESTS=OFF
+ )
+
+ "${@}"
+}
+
+multilib_src_test() {
+ wrap_libcxx cmake_src_compile
+ mv "${BUILD_DIR}"/libcxx/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die
+
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check-cxxabi
+}
+
+multilib_src_install_all() {
+ insinto /usr/include/libcxxabi
+ doins -r include/.
+}
diff --git a/sys-libs/libcxxabi/libcxxabi-14.0.0.9999.ebuild b/sys-libs/libcxxabi/libcxxabi-14.0.0.9999.ebuild
index 953c0c81796c..d11be625eea5 100644
--- a/sys-libs/libcxxabi/libcxxabi-14.0.0.9999.ebuild
+++ b/sys-libs/libcxxabi/libcxxabi-14.0.0.9999.ebuild
@@ -31,7 +31,6 @@ BDEPEND="
$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
)"
-# libcxx is needed uncondtionally for the headers
LLVM_COMPONENTS=( libcxx{abi,} llvm/cmake )
llvm.org_set_globals
@@ -49,6 +48,10 @@ pkg_setup() {
}
multilib_src_configure() {
+ # we need a configured libc++ for __config_site
+ wrap_libcxx cmake_src_configure
+ wrap_libcxx cmake_build generate-cxx-headers
+
# link against compiler-rt instead of libgcc if we are using clang with libunwind
local want_compiler_rt=OFF
if use libunwind && tc-is-clang; then
@@ -68,7 +71,7 @@ multilib_src_configure() {
-DLIBCXXABI_INCLUDE_TESTS=$(usex test)
-DLIBCXXABI_USE_COMPILER_RT=${want_compiler_rt}
- -DLIBCXXABI_LIBCXX_INCLUDES="${WORKDIR}"/libcxx/include
+ -DLIBCXXABI_LIBCXX_INCLUDES="${BUILD_DIR}"/libcxx/include/c++/v1
# upstream is omitting standard search path for this
# probably because gcc & clang are bundling their own unwind.h
-DLIBCXXABI_LIBUNWIND_INCLUDES="${EPREFIX}"/usr/include
@@ -86,7 +89,7 @@ multilib_src_configure() {
cmake_src_configure
}
-build_libcxx() {
+wrap_libcxx() {
local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)"
local CMAKE_USE_DIR=${WORKDIR}/libcxx
local BUILD_DIR=${BUILD_DIR}/libcxx
@@ -103,13 +106,11 @@ build_libcxx() {
-DLIBCXX_INCLUDE_TESTS=OFF
)
- cmake_src_configure
- cmake_src_compile
+ "${@}"
}
multilib_src_test() {
- # build a local copy of libc++ for testing to avoid circular dep
- build_libcxx
+ wrap_libcxx cmake_src_compile
mv "${BUILD_DIR}"/libcxx/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die
local -x LIT_PRESERVES_TMP=1
diff --git a/sys-libs/libomp/Manifest b/sys-libs/libomp/Manifest
index 43b49c671a0a..db81b8b28d78 100644
--- a/sys-libs/libomp/Manifest
+++ b/sys-libs/libomp/Manifest
@@ -3,10 +3,12 @@ DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3
DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
DIST llvmorg-12.0.0.tar.gz 134226215 BLAKE2B f9c3ba8c58571855caa4f206fd285c9b5be66672fb0814cb8bc0964a051f57f5d35013aa1e27cbda502652b37df1ec23474129109e76a42066847860db441dbe SHA512 0cff02155c5ac0d6db2b72d60d9819d5b5dd859663b45f721b1c7540239c2fceb1f57d9173f6870c49de851c242ed8e85c5c6d6577a1f8092a7c5dcd12513b26
DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
+DIST llvmorg-13.0.0-rc1.tar.gz 147235597 BLAKE2B 089fed119dee8a16f278cebb13808bd5a95629cc87ebee3050225cc041b78fee51acacc5bcc913d4a99e830bfe5774b19a04a845293c5087dd2a8c9d94d2fde9 SHA512 6e307e2c2dcb7ff41d11ee29d69f41c0ef55f200999847a3a924a2e773fc9c2160015746789af8b723c628bd232f97fce63370209bd0065491d80b0cc0017e85
EBUILD libomp-10.0.1.ebuild 2893 BLAKE2B 6085966e4e392ded8492c6b398d3a14ba5205aee8ecf3f63d0853e463f1bf007ff3b3c31555eb7cb566cc8c4bdc580e9d0ce38ca7cd58785820a7949e2969024 SHA512 e1b7b17dd0800908adbb06b29c7ef2d5bd73c66784104b554c59e5c5176c9c49c5432e0ecd72c6e3c00e71def839342cbedbd666f3886afa3ea92d8fc94ba591
EBUILD libomp-11.1.0.ebuild 2901 BLAKE2B e18155f24e5d0aa2de9a1976c818777e8d2d16092aa5e58b5c38197461a0b4ca5967ec161140b2a63835a0cfa601eb31fc08cbaa492088269808d6d803c7a47a SHA512 23a429ded341114ea3c4282b974520146ea0734e01b5863c837d119517b39365b537126091f5efcf752ca7860bccf0e0e2d763b507e903321532db87bcd42b79
EBUILD libomp-12.0.0.ebuild 2947 BLAKE2B b8ad55a9462099224e7a15c781d0ef10b5b408749878496d7813e638cc21c789914f16143ab307bf5f6c42300f5b31145ddf650147c16915e6407469431e30a7 SHA512 69e37474b659a8f05af8ef0a725a6f99911882364ccca279e3179d2bf89bed603067bf760f0c430a9184d95208d41c7f418a023eae534013f2765de98d73ea57
-EBUILD libomp-12.0.1.ebuild 2973 BLAKE2B 2a00ea561ea97eaf205c12f15f9cadf854a24a119e659b605a2ffc94ef645dcc945723d2637ae5c550f997806a74786c49a5fd842cc012888c3872036bd551b2 SHA512 3cc4f781c5e485671a47cc9a46a52a8ac50ccd543d7d3aa34b1499d7572394ad789cada576640738a6d80dbcc2b4af1b8865d5abf885442ec3d8e3345267338e
+EBUILD libomp-12.0.1.ebuild 2972 BLAKE2B 7864989b48b85abf2b1ce9bb2485234fb55f2da3250db1d691e53f9229bf2eb04ec53bc5248f557a17b1e2c4f0b45e20684cda5d458d9e5d570d2b577e5ac50f SHA512 399cdb4f287a707e262105139b290d9ab1b2b41f94512d6239e680194f0e5b2a1228d9701e5c162ef7ddcb97fefb0987eab1cca4cb8b86fc32c795dbeda5d209
EBUILD libomp-13.0.0.9999.ebuild 2886 BLAKE2B 277ab76b2a945ad163abaf324eaa463185c4c331c024ba672328cec8b07d13b86bfb0447705aa9d58a26e75cf10d62d5e95a81f043154f08b0c694845190e669 SHA512 f7dcfc17813949f3bee56104f58931784dda788eabd6ea9e06f8898fdf27f6f1e90a415193028285d0e079663339d77b44a26a98dea6ea997e231940df0af296
+EBUILD libomp-13.0.0_rc1.ebuild 2886 BLAKE2B 277ab76b2a945ad163abaf324eaa463185c4c331c024ba672328cec8b07d13b86bfb0447705aa9d58a26e75cf10d62d5e95a81f043154f08b0c694845190e669 SHA512 f7dcfc17813949f3bee56104f58931784dda788eabd6ea9e06f8898fdf27f6f1e90a415193028285d0e079663339d77b44a26a98dea6ea997e231940df0af296
EBUILD libomp-14.0.0.9999.ebuild 2886 BLAKE2B 277ab76b2a945ad163abaf324eaa463185c4c331c024ba672328cec8b07d13b86bfb0447705aa9d58a26e75cf10d62d5e95a81f043154f08b0c694845190e669 SHA512 f7dcfc17813949f3bee56104f58931784dda788eabd6ea9e06f8898fdf27f6f1e90a415193028285d0e079663339d77b44a26a98dea6ea997e231940df0af296
MISC metadata.xml 825 BLAKE2B 9c4afd81e02ecba9db7cac8487acf4e9dcbf772d62ee46c5c95510f1c624b52e0005786d06c119d4d7f0bf498fbd9cae2f9200a27ea427c9d6e83a5d74d45c1c SHA512 b2ba293ffb87f06c21172607234e8f69730d8ade0732fe98a5bc876353a01853dbef8cbe0ace0f6a556f2ae7217facee040349b460815dc2cf2f3b48cfd46762
diff --git a/sys-libs/libomp/libomp-12.0.1.ebuild b/sys-libs/libomp/libomp-12.0.1.ebuild
index 72bb4548cf87..c9bea8e17293 100644
--- a/sys-libs/libomp/libomp-12.0.1.ebuild
+++ b/sys-libs/libomp/libomp-12.0.1.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://openmp.llvm.org"
LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x64-macos"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x64-macos"
IUSE="cuda hwloc kernel_linux offload ompt test"
# CUDA works only with the x86_64 ABI
REQUIRED_USE="offload? ( cuda? ( abi_x86_64 ) )"
diff --git a/sys-libs/libomp/libomp-13.0.0_rc1.ebuild b/sys-libs/libomp/libomp-13.0.0_rc1.ebuild
new file mode 100644
index 000000000000..5adaa0dfbcac
--- /dev/null
+++ b/sys-libs/libomp/libomp-13.0.0_rc1.ebuild
@@ -0,0 +1,106 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{8..10} )
+inherit cmake-multilib linux-info llvm.org python-any-r1
+
+DESCRIPTION="OpenMP runtime library for LLVM/clang compiler"
+HOMEPAGE="https://openmp.llvm.org"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS=""
+IUSE="cuda hwloc kernel_linux offload ompt test"
+# CUDA works only with the x86_64 ABI
+REQUIRED_USE="offload? ( cuda? ( abi_x86_64 ) )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ hwloc? ( sys-apps/hwloc:0=[${MULTILIB_USEDEP}] )
+ offload? (
+ virtual/libelf:=[${MULTILIB_USEDEP}]
+ dev-libs/libffi:=[${MULTILIB_USEDEP}]
+ cuda? ( dev-util/nvidia-cuda-toolkit:= )
+ )"
+# tests:
+# - dev-python/lit provides the test runner
+# - sys-devel/llvm provide test utils (e.g. FileCheck)
+# - sys-devel/clang provides the compiler to run tests
+DEPEND="${RDEPEND}"
+BDEPEND="dev-lang/perl
+ offload? ( virtual/pkgconfig )
+ test? (
+ $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+ >=sys-devel/clang-6
+ )"
+
+LLVM_COMPONENTS=( openmp llvm/include )
+llvm.org_set_globals
+
+python_check_deps() {
+ has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+kernel_pds_check() {
+ if use kernel_linux && kernel_is -lt 4 15 && kernel_is -ge 4 13; then
+ local CONFIG_CHECK="~!SCHED_PDS"
+ local ERROR_SCHED_PDS="\
+PDS scheduler versions >= 0.98c < 0.98i (e.g. used in kernels >= 4.13-pf11
+< 4.14-pf9) do not implement sched_yield() call which may result in horrible
+performance problems with libomp. If you are using one of the specified
+kernel versions, you may want to disable the PDS scheduler."
+
+ check_extra_config
+ fi
+}
+
+pkg_pretend() {
+ kernel_pds_check
+}
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+multilib_src_configure() {
+ local libdir="$(get_libdir)"
+ local mycmakeargs=(
+ -DOPENMP_LIBDIR_SUFFIX="${libdir#lib}"
+
+ -DLIBOMP_USE_HWLOC=$(usex hwloc)
+ -DLIBOMP_OMPT_SUPPORT=$(usex ompt)
+
+ -DOPENMP_ENABLE_LIBOMPTARGET=$(usex offload)
+
+ # do not install libgomp.so & libiomp5.so aliases
+ -DLIBOMP_INSTALL_ALIASES=OFF
+ # disable unnecessary hack copying stuff back to srcdir
+ -DLIBOMP_COPY_EXPORTS=OFF
+ )
+ use offload && mycmakeargs+=(
+ # this is non-fatal and libomp checks for CUDA conditionally
+ # to ABI, so we can just ignore passing the wrong value
+ # on non-amd64 ABIs
+ -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=$(usex !cuda)
+ )
+ use test && mycmakeargs+=(
+ # this project does not use standard LLVM cmake macros
+ -DOPENMP_LLVM_LIT_EXECUTABLE="${EPREFIX}/usr/bin/lit"
+ -DOPENMP_LIT_ARGS="$(get_lit_flags)"
+
+ -DOPENMP_TEST_C_COMPILER="$(type -P "${CHOST}-clang")"
+ -DOPENMP_TEST_CXX_COMPILER="$(type -P "${CHOST}-clang++")"
+ )
+ addpredict /dev/nvidiactl
+ cmake_src_configure
+}
+
+multilib_src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+
+ cmake_build check-libomp
+}
diff --git a/sys-libs/libvpd/Manifest b/sys-libs/libvpd/Manifest
index 38a0fa01ba17..ac9d0e127109 100644
--- a/sys-libs/libvpd/Manifest
+++ b/sys-libs/libvpd/Manifest
@@ -1,3 +1,5 @@
+AUX 2.2.8-gcc11.patch 3279 BLAKE2B 50816aa628d6c9b3f9c9d27b1a4550a10c83fafc9a95dd5a9f499a68534fa96b4ce6fd73d7b28777e09dfe45580b7928a7370e51f1784f59c6ee7e78dd45d2a2 SHA512 817d00ffb794b685f5c20625dba50950ea67baae8cd7d4120e907d789bd93d5ea306681dd384296782d6037560b72aefd5db9c004a8a711a4e3df0aa639746e2
+AUX 2.2.8-warnings.patch 2326 BLAKE2B 71a480bedc290a447ae988ed96d4ec3b8f68fc74773c39c0b813b0083c69f5bb659fbbee078b741c496c46f1906e6e6c47bf5acbb29c2b8064b8eefa79851828 SHA512 b095be3e4d9cfe03d8b01d0d1861df2934a7695cc1585af556702dee9c6692fbbe68ea1266181250f72ff74d97694516329de0fde00cd574d60eff004d7083e1
DIST libvpd-2.2.8.tar.gz 52725 BLAKE2B 76bdc6ddf80236a6848185273c2cac181d44214f0c609d7c5af6fa4d09a7cd816324af35745617ce3daa7268311e2ed754335600df1d4970a324eb327015d051 SHA512 d0b7d1760c6ae54717c538405c651317b7318dec5780961f5386c09b7d245e35a84c2fc47d89c47c3cd2168d73d7186f5819981d52c3ba962514639833dc62aa
-EBUILD libvpd-2.2.8.ebuild 909 BLAKE2B 6b3e715ce6d8c736d205340513b93479f1c8d176e29b2e162f27d448f8d08fe962232050a44eb57c46d9049c4a4cf5af8f533a4061dd2670b6504e579042abd4 SHA512 c1af2a36595cae47c3d803b2ce14e664587aa7348376f03f194d5d89a7c64e86c15e8da0aff50858a8862bf194b8dfaa597b3000fa4940dce91d38ac4c304e08
+EBUILD libvpd-2.2.8-r1.ebuild 991 BLAKE2B 8e3145531b1e1dbae7eeba2e0df7c7810d6045f93c97c83567bdd786c33b2913662f54be950e9677e2ff6b34dd8a904a738ad2ed4863e1497de5418a6114e4e3 SHA512 716bb2e1d385ec53f99281f7f1bc8c466c266461570f65b8e700263bf8ab9a484c3efeb1ec81f0816efd77a765038f7e41a23df533f1ced7dcd5571853564003
MISC metadata.xml 343 BLAKE2B 88ff852b7b901d0f81c494ab49f283835edb7e312965526050fde66fcf0b259c197e0b1b312e09910a77257e4e1b8d8f3fd6c465b95a9fbe7288b8d64a4a6659 SHA512 42f1b8b76a107cfa61ae9db8b900aed22a3bc8e8d3573dbb3c507ebde688ef2c50f7f79847eb345e738365fbb99ba22d99aee56e302c6eed064379ddc1e3a710
diff --git a/sys-libs/libvpd/files/2.2.8-gcc11.patch b/sys-libs/libvpd/files/2.2.8-gcc11.patch
new file mode 100644
index 000000000000..7e09f8329bba
--- /dev/null
+++ b/sys-libs/libvpd/files/2.2.8-gcc11.patch
@@ -0,0 +1,84 @@
+From 83ccb994e30364c0703d7b8c15817d56b42da2e6 Mon Sep 17 00:00:00 2001
+From: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
+Date: Wed, 7 Apr 2021 14:11:41 +0530
+Subject: [PATCH] Remove dynamic exception specification
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Tomasz Kłoczko reported that the build fails, while compiling
+with GCC 11:
+
+In file included from src/vpdretriever.cpp:25:
+./src/libvpd-2/vpdretriever.hpp:62:33: error: ISO C++17 does not allow dynamic exception specifications
+ 62 | throw( VpdException& );
+ | ^~~~~
+./src/libvpd-2/vpdretriever.hpp:74:33: error: ISO C++17 does not allow dynamic exception specifications
+ 74 | throw( VpdException& );
+ | ^~~~~
+src/vpdretriever.cpp:50:37: error: ISO C++17 does not allow dynamic exception specifications
+ 50 | string dbFileName ) throw( VpdException& )
+ | ^~~~~
+src/vpdretriever.cpp:62:39: error: ISO C++17 does not allow dynamic exception specifications
+ 62 | VpdRetriever::VpdRetriever( ) throw( VpdException& )
+ | ^~~~~
+make: *** [Makefile:660: src/vpdretriever.lo] Error 1
+
+As part of
+http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0003r5.html,
+the dynamic exception specification have been removed. Remove the
+throw specifier, to specify that the function might throw an exception.
+
+Signed-off-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
+Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
+---
+ src/libvpd-2/vpdretriever.hpp | 6 ++----
+ src/vpdretriever.cpp | 4 ++--
+ 2 files changed, 4 insertions(+), 6 deletions(-)
+
+diff --git a/src/libvpd-2/vpdretriever.hpp b/src/libvpd-2/vpdretriever.hpp
+index 0d91ac4..1be2664 100644
+--- a/src/libvpd-2/vpdretriever.hpp
++++ b/src/libvpd-2/vpdretriever.hpp
+@@ -58,8 +58,7 @@ namespace lsvpd
+ * @param dbFileName
+ * The file name for the VPD database.
+ */
+- VpdRetriever( string envDir, string dbFileName )
+- throw( VpdException& );
++ VpdRetriever( string envDir, string dbFileName );
+
+ /**
+ * Builds A VpdRetriever object that can be used for reading the
+@@ -70,8 +69,7 @@ namespace lsvpd
+ * this constructor, there were serious underlying issues that
+ * are not recoverable. Uses the default dir and filename
+ */
+- VpdRetriever( )
+- throw( VpdException& );
++ VpdRetriever( );
+ ~VpdRetriever( );
+
+ /**
+diff --git a/src/vpdretriever.cpp b/src/vpdretriever.cpp
+index 9f7e7a0..470047e 100644
+--- a/src/vpdretriever.cpp
++++ b/src/vpdretriever.cpp
+@@ -47,7 +47,7 @@ namespace lsvpd
+ const string VpdRetriever::UDEV_NOTIFY_FILE ( "/run/run.vpdupdate" );
+
+ VpdRetriever::VpdRetriever( string envDir,
+- string dbFileName ) throw( VpdException& )
++ string dbFileName )
+ {
+ try {
+ db = new VpdDbEnv( envDir, dbFileName, true );
+@@ -59,7 +59,7 @@ namespace lsvpd
+ }
+ }
+
+- VpdRetriever::VpdRetriever( ) throw( VpdException& )
++ VpdRetriever::VpdRetriever( )
+ {
+ struct stat vpd_stat,udev_stat;
+ const string vpddb = VpdRetriever::DEFAULT_DIR + VpdRetriever::DEFAULT_FILE;
diff --git a/sys-libs/libvpd/files/2.2.8-warnings.patch b/sys-libs/libvpd/files/2.2.8-warnings.patch
new file mode 100644
index 000000000000..1419de3dda49
--- /dev/null
+++ b/sys-libs/libvpd/files/2.2.8-warnings.patch
@@ -0,0 +1,52 @@
+From 72b75e1976b50372f07271a5235ee8e9c75bdac4 Mon Sep 17 00:00:00 2001
+From: Kamalesh Babulal <kamalesh@linux.ibm.com>
+Date: Mon, 21 Jun 2021 11:42:02 +0530
+Subject: [PATCH] vpddbenv_c: fix compile warnings
+
+src/vpddbenv_c.c: In function 'new_vpddbenv':
+src/vpddbenv_c.c:56:17: warning: 'strncat' specified bound 1 equals source length [-Wstringop-overflow=]
+ 56 | strncat( ret->fullPath, "/" , 1 );
+ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+src/vpddbenv_c.c:58:17: warning: 'strncat' accessing between 258 and 9223372036854775804 bytes at offsets 514 and 257 may overlap 1 byte at offset 514 [-Wrestrict]
+ 58 | strncat( ret->fullPath, ret->dbFileName, strlen(ret->dbFileName) );
+ |
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+While compiling the code with GCC-11 (Fedora 34), the GCC complains
+about src string length and N bytes mentioned in the strncat() are of
+same length. It gets suspicious, when strncat() mimics strcat(), the
+strcat() was replaced using strncat() by the commit 38de4e65205
+("libvpd: Convert strcat to strncat") as part of secure coding.
+
+refactor the code using snprintf(), making the code lean and keep the
+GCC happy as well.
+
+Signed-off-by: Kamalesh Babulal <kamalesh@linux.ibm.com>
+Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
+---
+ src/vpddbenv_c.c | 12 ++++--------
+ 1 file changed, 4 insertions(+), 8 deletions(-)
+
+diff --git a/src/vpddbenv_c.c b/src/vpddbenv_c.c
+index 96aecd3..bae36e9 100644
+--- a/src/vpddbenv_c.c
++++ b/src/vpddbenv_c.c
+@@ -50,14 +50,10 @@ struct vpddbenv * new_vpddbenv( const char *dir, const char *file )
+ ret->dbFileName[MAX_NAME_LENGTH] = '\0';
+ }
+
+- strncpy( ret->fullPath, ret->envDir , FULL_PATH_SIZE - 1);
+-
+- if (strlen(ret->fullPath) + 1 < FULL_PATH_SIZE)
+- strncat( ret->fullPath, "/" , 1 );
+- if (strlen(ret->fullPath) + strlen(ret->dbFileName) < FULL_PATH_SIZE)
+- strncat( ret->fullPath, ret->dbFileName, strlen (ret->dbFileName) );
+-
+- ret->fullPath[FULL_PATH_SIZE - 1] = '\0';
++ if ( ( strlen( ret->envDir ) + strlen( ret->dbFileName ) + 1 ) <
++ FULL_PATH_SIZE )
++ snprintf( ret->fullPath, FULL_PATH_SIZE,
++ "%s/%s", ret->envDir, ret->dbFileName );
+
+ rc = sqlite3_open( ret->fullPath, &(ret->db) );
+ if( rc != SQLITE_OK )
diff --git a/sys-libs/libvpd/libvpd-2.2.8.ebuild b/sys-libs/libvpd/libvpd-2.2.8-r1.ebuild
index 0c38cecb19fc..3b69e327edd6 100644
--- a/sys-libs/libvpd/libvpd-2.2.8.ebuild
+++ b/sys-libs/libvpd/libvpd-2.2.8-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -18,6 +18,11 @@ DEPEND="
"
RDEPEND="${DEPEND}"
+PATCHES=(
+ "${FILESDIR}/2.2.8-gcc11.patch"
+ "${FILESDIR}/2.2.8-warnings.patch"
+)
+
src_prepare() {
default
eautoreconf
diff --git a/sys-libs/llvm-libunwind/Manifest b/sys-libs/llvm-libunwind/Manifest
index 0026d73ea600..dce681e9b03f 100644
--- a/sys-libs/llvm-libunwind/Manifest
+++ b/sys-libs/llvm-libunwind/Manifest
@@ -2,10 +2,12 @@ DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3
DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
DIST llvmorg-12.0.0.tar.gz 134226215 BLAKE2B f9c3ba8c58571855caa4f206fd285c9b5be66672fb0814cb8bc0964a051f57f5d35013aa1e27cbda502652b37df1ec23474129109e76a42066847860db441dbe SHA512 0cff02155c5ac0d6db2b72d60d9819d5b5dd859663b45f721b1c7540239c2fceb1f57d9173f6870c49de851c242ed8e85c5c6d6577a1f8092a7c5dcd12513b26
DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
+DIST llvmorg-13.0.0-rc1.tar.gz 147235597 BLAKE2B 089fed119dee8a16f278cebb13808bd5a95629cc87ebee3050225cc041b78fee51acacc5bcc913d4a99e830bfe5774b19a04a845293c5087dd2a8c9d94d2fde9 SHA512 6e307e2c2dcb7ff41d11ee29d69f41c0ef55f200999847a3a924a2e773fc9c2160015746789af8b723c628bd232f97fce63370209bd0065491d80b0cc0017e85
EBUILD llvm-libunwind-10.0.1.ebuild 3185 BLAKE2B 150bde0a85684ac2cbc01d20139e458f57377c2c9692037e7fec432019b16f073d6e14d772dfee190ab8a682e4b133f538dce51fce3ede54e8e20152575ac7c1 SHA512 4cdf4ce69be5ca630701d4e41bdcfead01eac10ced7edc39a9b20628e3225b65b33ac493d3010f8ac8cfe5cce73b70bb2d4988d1ea00f2766efdbe30c03aa6de
EBUILD llvm-libunwind-11.1.0.ebuild 3223 BLAKE2B c39bdefd6bf0656db7d84f3cd868da01aa4b37f51c729951d1bcb73336f6ab1d8beb114a7d10d79c1441ce945b03aaf9444481e5e1b3e7dd7fdb9a7e971c451d SHA512 ad8cb081326e4dd6cd888882fabcc3fa1a152c37b28197c9565d46d8f8419f233a1a9f6cc9f3bcfe4ba1441cf97147dafb684e3eb60453020d2b64ccfb56d1c1
EBUILD llvm-libunwind-12.0.0.ebuild 3657 BLAKE2B 4370cc5e2c1d423a7ab3bb3ed6c208d02e785c89d6d5159c5f6f967591dadf6a49602b34f6e94a66e3c8700b3cab273140aeeaabf941eac49c03cf0926470b7e SHA512 0d0aaadc05b8beca6e692b9b6325e426a4c29186b45376d1501cde2c1ee66f69ab5b60b2f148188f7ae708908a200395a51b02920a62c755101176b035aafd2d
-EBUILD llvm-libunwind-12.0.1.ebuild 3662 BLAKE2B cca4b3398c6ab63c31d06e49e81de202cab987c85b0cdb98faa2f91989f27f8c2853d53acc5ed5b80bcedf931d2750d4cf9db21d1c6c08a1b1f59255e1d3a15b SHA512 482caf63adb19a49809a7ca2350c5d9801aa765de96ede422e346da3c5d961b820c629cb77405789d7cfb68fdfca9a5692ca50d54b1e5ee7fe3299910637073c
-EBUILD llvm-libunwind-13.0.0.9999.ebuild 3606 BLAKE2B d1f27261c22950e15e904340132567781446e14a349f5e39d538ed4eee3659d4a93a27efaf4350e2de14829c93560e66d5a123bebcb04f731c80f81075548e83 SHA512 adfc61c4c2d9f09d5573d04c200fa84f7ca61d59073406ea01d35ff9b6095f8d7aabb30fb09f7a4f97a19fff9368816dae099e8d52427e1c7b32613cfcb3dc83
-EBUILD llvm-libunwind-14.0.0.9999.ebuild 3606 BLAKE2B d1f27261c22950e15e904340132567781446e14a349f5e39d538ed4eee3659d4a93a27efaf4350e2de14829c93560e66d5a123bebcb04f731c80f81075548e83 SHA512 adfc61c4c2d9f09d5573d04c200fa84f7ca61d59073406ea01d35ff9b6095f8d7aabb30fb09f7a4f97a19fff9368816dae099e8d52427e1c7b32613cfcb3dc83
+EBUILD llvm-libunwind-12.0.1.ebuild 3661 BLAKE2B afe1ac798786ab4d666e7af78d853bbd0c8a5f8385e189436227a6283f4f2cedffbd98572d2fd441ef65b955da121fcbf6a58250b7079e5875555fc8ea5cbc1c SHA512 85c47c9ce6eba843c19b93e81bd3765d1a9ed2524b9052ea2b83511514aa509a81b90957c98514c8103f3df95db1c1394125533632a6a354b9b3f454123f4615
+EBUILD llvm-libunwind-13.0.0.9999.ebuild 3700 BLAKE2B 20bca0c3633cb0d0c9e522b113e32593fa8b86a0f5a4d87089f3fe9363c404b2c1684415a5fa4446a2114c597d7d80c4208f1db8f92e3486e7208f9f024f98e7 SHA512 a02b45822393f7a0d48ff26754e22b532ff4216df16468254eb7e38afd8ea9deed908c9273e86fe94effeae12b1065d41c34dc12312a156eb12d5e9292c78382
+EBUILD llvm-libunwind-13.0.0_rc1.ebuild 3700 BLAKE2B 20bca0c3633cb0d0c9e522b113e32593fa8b86a0f5a4d87089f3fe9363c404b2c1684415a5fa4446a2114c597d7d80c4208f1db8f92e3486e7208f9f024f98e7 SHA512 a02b45822393f7a0d48ff26754e22b532ff4216df16468254eb7e38afd8ea9deed908c9273e86fe94effeae12b1065d41c34dc12312a156eb12d5e9292c78382
+EBUILD llvm-libunwind-14.0.0.9999.ebuild 3700 BLAKE2B 20bca0c3633cb0d0c9e522b113e32593fa8b86a0f5a4d87089f3fe9363c404b2c1684415a5fa4446a2114c597d7d80c4208f1db8f92e3486e7208f9f024f98e7 SHA512 a02b45822393f7a0d48ff26754e22b532ff4216df16468254eb7e38afd8ea9deed908c9273e86fe94effeae12b1065d41c34dc12312a156eb12d5e9292c78382
MISC metadata.xml 302 BLAKE2B ef8858b3c26dfa1727e57685381dbf71eb74008e74127b06467aaff9eea2fd7f3fdcdb1819529b8e828d42720745855e948d608bbe3eb40778fe1e4e260118ad SHA512 d5e641d63402052ef7af157f98998868a816d5e5072424725b09ded5c2477b26aaafbb8874473367a860d3fc365e0f4f0db451315ec4be3df23cce4c1194f2d7
diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-12.0.1.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-12.0.1.ebuild
index f436a136f170..a1da7f398e2e 100644
--- a/sys-libs/llvm-libunwind/llvm-libunwind-12.0.1.ebuild
+++ b/sys-libs/llvm-libunwind/llvm-libunwind-12.0.1.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://github.com/llvm-mirror/libunwind"
LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86 ~x64-macos"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86 ~x64-macos"
IUSE="debug static-libs test"
RESTRICT="!test? ( test )"
diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-13.0.0.9999.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-13.0.0.9999.ebuild
index ba5225ffe696..a4b1aceef510 100644
--- a/sys-libs/llvm-libunwind/llvm-libunwind-13.0.0.9999.ebuild
+++ b/sys-libs/llvm-libunwind/llvm-libunwind-13.0.0.9999.ebuild
@@ -78,10 +78,7 @@ multilib_src_configure() {
cmake_src_configure
}
-build_libcxxabi() {
- local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)"
- local CMAKE_USE_DIR=${WORKDIR}/libcxxabi
- local BUILD_DIR=${BUILD_DIR}/libcxxabi
+wrap_libcxxabi() {
local mycmakeargs=(
-DLIBCXXABI_LIBDIR_SUFFIX=
-DLIBCXXABI_ENABLE_SHARED=OFF
@@ -89,18 +86,18 @@ build_libcxxabi() {
-DLIBCXXABI_USE_LLVM_UNWINDER=ON
-DLIBCXXABI_INCLUDE_TESTS=OFF
- -DLIBCXXABI_LIBCXX_INCLUDES="${WORKDIR}"/libcxx/include
+ -DLIBCXXABI_LIBCXX_INCLUDES="${BUILD_DIR}"/libcxx/include/c++/v1
-DLIBCXXABI_LIBUNWIND_INCLUDES="${S}"/include
)
- cmake_src_configure
- cmake_src_compile
+ local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)"
+ local CMAKE_USE_DIR=${WORKDIR}/libcxxabi
+ local BUILD_DIR=${BUILD_DIR}/libcxxabi
+
+ "${@}"
}
-build_libcxx() {
- local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/libcxxabi/lib -L${BUILD_DIR}/$(get_libdir)"
- local CMAKE_USE_DIR=${WORKDIR}/libcxx
- local BUILD_DIR=${BUILD_DIR}/libcxx
+wrap_libcxx() {
local mycmakeargs=(
-DLIBCXX_LIBDIR_SUFFIX=
-DLIBCXX_ENABLE_SHARED=OFF
@@ -115,15 +112,21 @@ build_libcxx() {
-DLIBCXX_INCLUDE_TESTS=OFF
)
- cmake_src_configure
- cmake_src_compile
+ local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/libcxxabi/lib -L${BUILD_DIR}/$(get_libdir)"
+ local CMAKE_USE_DIR=${WORKDIR}/libcxx
+ local BUILD_DIR=${BUILD_DIR}/libcxx
+
+ "${@}"
}
multilib_src_test() {
# build local copies of libc++ & libc++abi for testing to avoid
# circular deps
- build_libcxxabi
- build_libcxx
+ wrap_libcxx cmake_src_configure
+ wrap_libcxx cmake_build generate-cxx-headers
+ wrap_libcxxabi cmake_src_configure
+ wrap_libcxxabi cmake_src_compile
+ wrap_libcxx cmake_src_compile
mv "${BUILD_DIR}"/libcxx*/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die
local -x LIT_PRESERVES_TMP=1
diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-13.0.0_rc1.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-13.0.0_rc1.ebuild
new file mode 100644
index 000000000000..a4b1aceef510
--- /dev/null
+++ b/sys-libs/llvm-libunwind/llvm-libunwind-13.0.0_rc1.ebuild
@@ -0,0 +1,141 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{8..10} )
+inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
+
+DESCRIPTION="C++ runtime stack unwinder from LLVM"
+HOMEPAGE="https://github.com/llvm-mirror/libunwind"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS=""
+IUSE="debug static-libs test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="!sys-libs/libunwind"
+# llvm-6 for new lit options
+DEPEND="
+ >=sys-devel/llvm-6"
+BDEPEND="
+ test? ( >=sys-devel/clang-3.9.0
+ $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+ )"
+
+LLVM_COMPONENTS=( libunwind libcxx llvm/cmake )
+LLVM_TEST_COMPONENTS=( libcxxabi )
+llvm.org_set_globals
+
+python_check_deps() {
+ has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+multilib_src_configure() {
+ local use_compiler_rt=OFF
+ local libdir=$(get_libdir)
+
+ # link to compiler-rt
+ # https://github.com/gentoo/gentoo/pull/21516
+ if tc-is-clang; then
+ local compiler-rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+ ${LD_FLAGS} -print-libgcc-file-name)
+ if [[ ${compiler_rt} == *libclang_rt* ]]; then
+ use_compiler_rt=ON
+ fi
+ fi
+
+ local mycmakeargs=(
+ -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
+ -DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug)
+ -DLIBUNWIND_ENABLE_STATIC=$(usex static-libs)
+ -DLLVM_INCLUDE_TESTS=$(usex test)
+
+ # support non-native unwinding; given it's small enough,
+ # enable it unconditionally
+ -DLIBUNWIND_ENABLE_CROSS_UNWINDING=ON
+
+ # avoid dependency on libgcc_s if compiler-rt is used
+ -DLIBUNWIND_USE_COMPILER_RT=${use_compiler_rt}
+ )
+ if use test; then
+ local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+ [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+ mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}"
+ -DLIBUNWIND_LIBCXX_PATH="${WORKDIR}/libcxx"
+ )
+ fi
+
+ cmake_src_configure
+}
+
+wrap_libcxxabi() {
+ local mycmakeargs=(
+ -DLIBCXXABI_LIBDIR_SUFFIX=
+ -DLIBCXXABI_ENABLE_SHARED=OFF
+ -DLIBCXXABI_ENABLE_STATIC=ONF
+ -DLIBCXXABI_USE_LLVM_UNWINDER=ON
+ -DLIBCXXABI_INCLUDE_TESTS=OFF
+
+ -DLIBCXXABI_LIBCXX_INCLUDES="${BUILD_DIR}"/libcxx/include/c++/v1
+ -DLIBCXXABI_LIBUNWIND_INCLUDES="${S}"/include
+ )
+
+ local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)"
+ local CMAKE_USE_DIR=${WORKDIR}/libcxxabi
+ local BUILD_DIR=${BUILD_DIR}/libcxxabi
+
+ "${@}"
+}
+
+wrap_libcxx() {
+ local mycmakeargs=(
+ -DLIBCXX_LIBDIR_SUFFIX=
+ -DLIBCXX_ENABLE_SHARED=OFF
+ -DLIBCXX_ENABLE_STATIC=ON
+ -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF
+ -DLIBCXXABI_USE_LLVM_UNWINDER=ON
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${WORKDIR}"/libcxxabi/include
+ -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
+ -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
+ -DLIBCXX_HAS_GCC_S_LIB=OFF
+ -DLIBCXX_INCLUDE_TESTS=OFF
+ )
+
+ local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/libcxxabi/lib -L${BUILD_DIR}/$(get_libdir)"
+ local CMAKE_USE_DIR=${WORKDIR}/libcxx
+ local BUILD_DIR=${BUILD_DIR}/libcxx
+
+ "${@}"
+}
+
+multilib_src_test() {
+ # build local copies of libc++ & libc++abi for testing to avoid
+ # circular deps
+ wrap_libcxx cmake_src_configure
+ wrap_libcxx cmake_build generate-cxx-headers
+ wrap_libcxxabi cmake_src_configure
+ wrap_libcxxabi cmake_src_compile
+ wrap_libcxx cmake_src_compile
+ mv "${BUILD_DIR}"/libcxx*/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die
+
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check-unwind
+}
+
+multilib_src_install() {
+ cmake_src_install
+
+ # install headers like sys-libs/libunwind
+ doheader "${S}"/include/*.h
+}
diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-14.0.0.9999.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-14.0.0.9999.ebuild
index ba5225ffe696..a4b1aceef510 100644
--- a/sys-libs/llvm-libunwind/llvm-libunwind-14.0.0.9999.ebuild
+++ b/sys-libs/llvm-libunwind/llvm-libunwind-14.0.0.9999.ebuild
@@ -78,10 +78,7 @@ multilib_src_configure() {
cmake_src_configure
}
-build_libcxxabi() {
- local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)"
- local CMAKE_USE_DIR=${WORKDIR}/libcxxabi
- local BUILD_DIR=${BUILD_DIR}/libcxxabi
+wrap_libcxxabi() {
local mycmakeargs=(
-DLIBCXXABI_LIBDIR_SUFFIX=
-DLIBCXXABI_ENABLE_SHARED=OFF
@@ -89,18 +86,18 @@ build_libcxxabi() {
-DLIBCXXABI_USE_LLVM_UNWINDER=ON
-DLIBCXXABI_INCLUDE_TESTS=OFF
- -DLIBCXXABI_LIBCXX_INCLUDES="${WORKDIR}"/libcxx/include
+ -DLIBCXXABI_LIBCXX_INCLUDES="${BUILD_DIR}"/libcxx/include/c++/v1
-DLIBCXXABI_LIBUNWIND_INCLUDES="${S}"/include
)
- cmake_src_configure
- cmake_src_compile
+ local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)"
+ local CMAKE_USE_DIR=${WORKDIR}/libcxxabi
+ local BUILD_DIR=${BUILD_DIR}/libcxxabi
+
+ "${@}"
}
-build_libcxx() {
- local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/libcxxabi/lib -L${BUILD_DIR}/$(get_libdir)"
- local CMAKE_USE_DIR=${WORKDIR}/libcxx
- local BUILD_DIR=${BUILD_DIR}/libcxx
+wrap_libcxx() {
local mycmakeargs=(
-DLIBCXX_LIBDIR_SUFFIX=
-DLIBCXX_ENABLE_SHARED=OFF
@@ -115,15 +112,21 @@ build_libcxx() {
-DLIBCXX_INCLUDE_TESTS=OFF
)
- cmake_src_configure
- cmake_src_compile
+ local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/libcxxabi/lib -L${BUILD_DIR}/$(get_libdir)"
+ local CMAKE_USE_DIR=${WORKDIR}/libcxx
+ local BUILD_DIR=${BUILD_DIR}/libcxx
+
+ "${@}"
}
multilib_src_test() {
# build local copies of libc++ & libc++abi for testing to avoid
# circular deps
- build_libcxxabi
- build_libcxx
+ wrap_libcxx cmake_src_configure
+ wrap_libcxx cmake_build generate-cxx-headers
+ wrap_libcxxabi cmake_src_configure
+ wrap_libcxxabi cmake_src_compile
+ wrap_libcxx cmake_src_compile
mv "${BUILD_DIR}"/libcxx*/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die
local -x LIT_PRESERVES_TMP=1