diff options
Diffstat (limited to 'sys-libs')
50 files changed, 2955 insertions, 257 deletions
diff --git a/sys-libs/Manifest.gz b/sys-libs/Manifest.gz Binary files differindex 7a95633cfe78..eddbccc4210d 100644 --- a/sys-libs/Manifest.gz +++ b/sys-libs/Manifest.gz 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 |