diff options
Diffstat (limited to 'sys-libs')
45 files changed, 2487 insertions, 744 deletions
diff --git a/sys-libs/Manifest.gz b/sys-libs/Manifest.gz Binary files differindex fd188645a48d..7855bf03c0b5 100644 --- a/sys-libs/Manifest.gz +++ b/sys-libs/Manifest.gz diff --git a/sys-libs/binutils-libs/Manifest b/sys-libs/binutils-libs/Manifest index 00dbde4cbbbf..25a5627cd423 100644 --- a/sys-libs/binutils-libs/Manifest +++ b/sys-libs/binutils-libs/Manifest @@ -18,5 +18,5 @@ EBUILD binutils-libs-2.28.1.ebuild 2872 BLAKE2B f0ef199dfc0025b06dbdab74f76f0a17 EBUILD binutils-libs-2.29.1-r1.ebuild 2921 BLAKE2B f38060716462c9c51bc84b98348b82952b6bb47cd33136d7eaaca822ba6e40504fad2b0c778a4a02989ca9e20f812d928d718295376141dd02e519e541a605a3 SHA512 8fc849244e3cdb9b1a35e9bed1f2e57e8bba210e6ab9aa7408904b5a04cc532dfff52a9840e866df5985f6b1d05c96ce7549c7514389a8dae9a4d5d798d48c8e EBUILD binutils-libs-2.30-r4.ebuild 3594 BLAKE2B 60b602ed843164cceee4c490fba486e38b4fe8272ec94dafc652aa891a2a148f4e8f69d88c9fb6ca6fa154cd1365bf1473ea73ce2f9bab4d1a36d08259eb7f89 SHA512 fed6718f162b379e381900b1b4c7fcfa3bfe0710f8d489e3ba19ff1d3accb51dfde7d44df5c608d8c9cf6f5d5cc92e7e518b7719ccb832b89d285507507022ee EBUILD binutils-libs-2.31.1-r6.ebuild 3573 BLAKE2B ab5423831f517f01dfea0f4c9ecda3c4b44a6bbd780831ac93258d8f8a2074669ea334aba2c3d8dac787e922605f00c21543ffa9186997fdab73d51cbb05f593 SHA512 66bedc93c56f13390db3676061297e958eee5b480dbf5414c6c58d150684e799b4b522f39340296ebad4e746da140cb20d026e6bc252143a04f04aa96453c26b -EBUILD binutils-libs-2.32-r1.ebuild 3586 BLAKE2B b0d71f2911b2056ded612914e78e95d5c5032ef9f73752577e28379300834d89b90872d1fbe9fa0d5eaa606cbfb453628c50b9c0f2e4420432c7b51eb747bef0 SHA512 f29499305efb193024e0f5f2719fbc4a21735af1dec06159a6444af2bfb79a4f97da8453f52e652192a53b32e92fa0568202f94d94f34e2cf0f4115e83c3317e +EBUILD binutils-libs-2.32-r1.ebuild 3582 BLAKE2B 56d2e3d9050e7b48c8c9236d3aca5ce285fd33742db03e316b3208e0508f9c5de82bfd36c58a807404f56c745a645c682491eb5a706421cfa01d8df5ace8ec16 SHA512 fd14800afb4b656fff121c1b3246e2a5f226cf1ecfc61069e9456253a4dfcce3df51828e4cb18b9d55929e5bfe44ff0a994393c957ec52b61d9db0de4bc6c71a MISC metadata.xml 524 BLAKE2B 6f00793b2dc155b19d816b8acfd49e6bfc2ae35418ecc97fbbd3f9d0ed08b5f95a299b28fe6edad1a66f4d64abe99dc8a62a974fd70e28b535cd366239bf1cca SHA512 9db7c7a3082ee848ec4963831da06cced596d543e53660747fb56ac33998c219e1d7252892ffc32132d7db3c99ce9746fb6d9e85f866c3cba97552c31948342c diff --git a/sys-libs/binutils-libs/binutils-libs-2.32-r1.ebuild b/sys-libs/binutils-libs/binutils-libs-2.32-r1.ebuild index 52957f6cde6c..a87833e47d0f 100644 --- a/sys-libs/binutils-libs/binutils-libs-2.32-r1.ebuild +++ b/sys-libs/binutils-libs/binutils-libs-2.32-r1.ebuild @@ -21,7 +21,7 @@ SRC_URI="mirror://gnu/binutils/${MY_P}.tar.xz LICENSE="|| ( GPL-3 LGPL-3 )" SLOT="0/${PV}" IUSE="64-bit-bfd multitarget nls static-libs" -KEYWORDS="alpha amd64 ~arm ~arm64 ~hppa ia64 ~m68k ~mips ppc ppc64 ~riscv s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd" +KEYWORDS="alpha amd64 arm arm64 ~hppa ia64 m68k ~mips ppc ppc64 ~riscv s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd" COMMON_DEPEND="sys-libs/zlib[${MULTILIB_USEDEP}]" DEPEND="${COMMON_DEPEND} diff --git a/sys-libs/compiler-rt-sanitizers/Manifest b/sys-libs/compiler-rt-sanitizers/Manifest index 6669eb372bab..fa0643e0c798 100644 --- a/sys-libs/compiler-rt-sanitizers/Manifest +++ b/sys-libs/compiler-rt-sanitizers/Manifest @@ -5,15 +5,18 @@ DIST compiler-rt-5.0.2.src.tar.xz 1543256 BLAKE2B 09fa84b8f3e9b8627a14387bc6eaa3 DIST compiler-rt-6.0.1.src.tar.xz 1686820 BLAKE2B 59fa3f6e478bd4d6dfa056c85dcdc4349cbce7cea7fc56519feddc9d66c88c9ca48bad7967432ceb81d754213577f12707035afd827cf630a58627575b73b798 SHA512 69850c1ad92c66977fa217cbfb42a6a3f502fbe3d1a08daa7fc4cfeb617a7736d231f8ad8d93b10b1ae29bd753315d2a2d70f9ff1f4d18a9a7cc81758d91f963 DIST compiler-rt-7.1.0.src.tar.xz 1864248 BLAKE2B 42ab86416f7f85c5833cf85dbfb66b18a5d5cf53fa0560ad43b2ef39f5a2cd7ec1dbe4192cc8dac9b3f658b828c8306f26745c4d0e8f846d9f550ac22717eb33 SHA512 54d3ad80936f011dbf2ecebba3f1b7d4a156044b178228411ba855be5ec48eb646155b74dea1a96674adab6f93803456ae1435395e3240a4423a3f65f4566b55 DIST compiler-rt-8.0.0.src.tar.xz 1903020 BLAKE2B dc42c4772132fee5e225bb94805cd6917214c1d830b8ba4f1c774e6e1726ec7846432d1d6881085676b6d094ec04060ec2a95749eb7d93be79268ee7de1bd828 SHA512 fe9f69fe2269fa3d560ae97fdacd462f855fb0b7a5f647f5b8595206ff7febca6496725adc953de411a827c761e2b3ca11a2149f25707d6c62af0722b68ba913 +DIST compiler-rt-8.0.1.src.tar.xz 1954204 BLAKE2B cbba1d5fb37385116920da39dea26739d09e3f11c392503f8bc45293f1ef00c97f6a9fbd3ba67094d7f1e532410d0eca461943dadfdb10646110470a8e3b5f1f SHA512 12bf1bdabe25c0c3a84cc73a718fe154573dd729ec3ff5e099bd5f74c6bec9c80521b87ded646d3b20dfdb9aa51dea0234281418c7eb81805e1dd5d3107d3d8e DIST compiler-rt-sanitizers-6.0.1-patchset.tar.xz 8820 BLAKE2B d53ca357e060d058c7f20c51e74684f4c032fdf3ccec4c9f227dc7a5757206f331b9eda25a72c5c66faf4c44b2cc63eb439bd21bdd55d37a93918ab428fd7cd4 SHA512 782a34c56134bd061da30c1f598ddb9e90cb34a4e4ef058fa9634f6da372fd8693ff5e6cf98b59700942273240f83052b89ee2736b22f4e19bc8b519fbec8cad DIST llvm-5.0.2.src.tar.xz 23451868 BLAKE2B b7082be2e4ad557b29b9f6869811f262adcf5c73d552faf91b339bede75cf5eab58afefa12fa779a38be71fe2b8f4ea297c3213ee4e8370cc01972c59249d91c SHA512 3588be5ed969c3f7f6f16f56a12a6af2814d3d3c960d4a36ffebb0446cc75f19220bccee7fc605f9b01f5d5c188a905a046193cc12dec42dd5922048b5c27fe1 DIST llvm-6.0.1.src.tar.xz 25306628 BLAKE2B 60232d4d22f8096b565cc8d81fea0639f24f14e8fc4f66ade69fa15479181f07f655f26dff3fa24bf105762b495da316c5c9352db234bd0af6b9c3fff6d4d881 SHA512 cbbb00eb99cfeb4aff623ee1a5ba075e7b5a76fc00c5f9f539ff28c108598f5708a0369d5bd92683def5a20c2fe60cab7827b42d628dbfcc79b57e0e91b84dd9 DIST llvm-7.1.0.src.tar.xz 28313784 BLAKE2B b78d9a7fc5ef6e352e77d339e5c4eef5ccedf67c05e7abd949e72619aa8a5ed65e7e5e2008354be8e7916d75581719b99f34227838fcc86c5d0080913c2fb22c SHA512 a7dbd5693d1f2dae6b6e52893a100f9349cbfcfb25c5fdcad46364acbff0dbd3573f8fbc026c68eb9fd56335198aa94b866cc3dd7ea0cbd2cbfb5f8fe3444a7a DIST llvm-8.0.0.src.tar.xz 30503732 BLAKE2B d89bdeb0ec7d885e49cfe5ae025da84f00502d409710c0807a3cdd58dbd47c50cf6a635593569483150f7f2ecb0de0310bd6785cb7625219bf9f6224a0d68e1c SHA512 1602343b451b964f5d8c2d6b0654d89384c80d45883498c5f0e2f4196168dd4a1ed2a4dadb752076020243df42ffe46cb31d82ffc145d8e5874163cbb9686a1f +DIST llvm-8.0.1.src.tar.xz 30477608 BLAKE2B 4319c837b36111401e3b0f9659b8d875c89463bcc7816df1aefe1e3ff989860bbaa92504718f8e15416cfd9f3491c13777cd5cb661877b237b342b0e515b93f5 SHA512 82e120be5cabdfd5111aebbea68a663fe229c8861d73802d6ab09a3bf48f60de333e07e61f8fb61beaa14ac2bea24fcd74fa6f761acaf62469f536b79fcb1e16 +EBUILD compiler-rt-sanitizers-10.0.0.9999.ebuild 5048 BLAKE2B 89beb299d9c776943fba4887b946436ab04fee0537d133ec105ea680e8b3472760510622cb604ed2223496592516f22893ca3643d28cbe95848037da286bf605 SHA512 96189ad8c8ff12dd6b228ef21eaee35f08df6a326fc934b240927ba1c43b7937b7047ea35b0bfa0264532539130194eecaf1ca5e80538fc1ce0794ebcb0f9ed1 EBUILD compiler-rt-sanitizers-5.0.2.ebuild 5259 BLAKE2B d9fd342c98e1c7a9d124cd3149a4325625c8ab604cc9d3cbb01513b6ae2add2adbf246c616219f2fc0691d90aa26f5371e7cda8a18aec95243bd1d6ba7b25379 SHA512 8f82649dded359a5c6132b0b9cf211faefb3840850d71f43332cb8f1c250c830848aee7c5e7b1be2278f103420683b4e51bf493c563dead5a27781756a0c8015 EBUILD compiler-rt-sanitizers-6.0.1.ebuild 5453 BLAKE2B b643f95efc78b4aaa3ab4f05072397003d6e46793a763f91eb79f60c183d89e7265a53f6f96401dc87546bba5b8d21dd38dd0b8bceecdb652702685288465916 SHA512 c9b1dee74f1cbe7d6822589372389c2e3e6f3398211e26d83072dab290541797fa08c52c4c6ac581a59dac52fe5893a27812e5e46e175b9146f2c8348f170458 EBUILD compiler-rt-sanitizers-7.1.0.ebuild 5401 BLAKE2B 7e4069b74c630e33f5f7045764f8ad5f510fd4c03014e6274d8ba4430406d1e507ce9fc9198c64f923a3df15545f143cdeb696c9b2e74b5250c557d5a8be295b SHA512 1853c25f8b8fcd21f7f37044dfd96d6bed076324d067cbb6d14711e6e65ffe7aa7b76a3b6665acf04051ea688a08eca0bd66da47476c1cc3e969cc6ce346f0f5 EBUILD compiler-rt-sanitizers-8.0.0.ebuild 5137 BLAKE2B f155a3b8d1ea7c1ec3bd598784a0600c7c0050a7e25a17895d919a5d7d0b05b28548e42fce9ee66a7fbb9b328b5cc7f1a998cb110f1e20a1d0b55c564f33d91e SHA512 4ebfa01e7d110bee738b63c7b9129cfaff13aaa90e38f8e08bec256b7fa098eb79f8b92dacd21c0af3b717005207b0eb4c8c4ebec92da805b53c0052759f03e2 -EBUILD compiler-rt-sanitizers-8.0.9999.ebuild 5081 BLAKE2B be4564f17225c9d907a48b650af00ea76528508558ceb0272f490ccdfeca7ab7f7809499afa3b7a2640b02d6493402edc9af933b50722f87ed9532187e4215c1 SHA512 4e50aa28b004dcfc2ba5b848cb7bbe10dba5208d0db870a74c3f02fc442d6395e3937673b66252c35b92753890b2427ba2a870d299a64b283815bd9e568943f8 -EBUILD compiler-rt-sanitizers-9999.ebuild 5103 BLAKE2B ef0a05b6884bc7bbceff714aa88c61c3b0e02b38d40d129cfbe78ebf9074ef71dc169bedf8663d298b9eefee85f5c58c740da8ad46f600e188f587b7b74b50df SHA512 c593f39d336fb4f53ad9acc37dc4beda2b534afdc04559f06a9d4646c565c671d26dd6fbeee3bfe3922bd2aae04439bbc8422b92332db1ac71aadc6e135ea49c +EBUILD compiler-rt-sanitizers-8.0.1.ebuild 5203 BLAKE2B d663a6cb26677be372e91ec3664c5b2a615dc7234170af6d7946bf73c6cab81c5ca691fdafb0108c8d8112f01daae75878ea5d9fc391ae906d401343d4d800d5 SHA512 f1d68014cc59092eefab419c505711fa5207286b44fe1d99e4dbae4b6dcb68d3393ac6f0ce63bae9251ef9ec5dfc10f1d03fc0e9b6fc19ca22c20e820390cddd +EBUILD compiler-rt-sanitizers-9.0.0.9999.ebuild 5073 BLAKE2B e84b9d1655b1500bff0e6078e3263fd82e4fff49ee573622b63520b018bd5b0ec20b4be59de50a26a00f5b5d19f758510e46519504bf2fcd009208c59b094bed SHA512 3ea8a887b6299ce97c7dfde2bb59f67ffd4a20201f0e00651f0227f242f945e224b52e77058663946b8182b86dd15436ce2ca40a39b409b2f8f77084484f7e8e MISC metadata.xml 547 BLAKE2B 6f9d8b65c12797fd3d168e9b3948c604265db135bda5493d9f1d8b1d01fd73a79d07e5241afc3a7fa1672827fac23d3d9dc4d7ae42371a0de892a900c8c28269 SHA512 fb73a96b1ffbc7ff2fecfba35c9acd3e54ade0154016ae04423217f5c000eee2b0b821cc626908647551a0aa7b7f462d42d56cde3993ddd52248bc373b117c3e diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-9999.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-10.0.0.9999.ebuild index 395528b7e428..eccb71269ea0 100644 --- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-9999.ebuild +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-10.0.0.9999.ebuild @@ -1,7 +1,7 @@ # Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=7 : ${CMAKE_MAKEFILE_GENERATOR:=ninja} # (needed due to CMAKE_BUILD_TYPE != Gentoo) @@ -18,8 +18,7 @@ EGIT_REPO_URI="https://git.llvm.org/git/compiler-rt.git https://github.com/llvm-mirror/compiler-rt.git" LICENSE="|| ( UoI-NCSA MIT )" -# Note: this needs to be updated to match version of clang-9999 -SLOT="9.0.0" +SLOT="$(ver_cut 1-3)" KEYWORDS="" IUSE="+clang +libfuzzer +profile +sanitize test +xray elibc_glibc" # FIXME: libfuzzer does not enable all its necessary dependencies diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-8.0.1.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-8.0.1.ebuild new file mode 100644 index 000000000000..e293bbe65f60 --- /dev/null +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-8.0.1.ebuild @@ -0,0 +1,171 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +PYTHON_COMPAT=( python2_7 ) + +inherit check-reqs cmake-utils flag-o-matic llvm \ + multiprocessing python-any-r1 + +MY_P=compiler-rt-${PV/_/}.src +LLVM_P=llvm-${PV/_/}.src + +DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)" +HOMEPAGE="https://llvm.org/" +SRC_URI="https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/${MY_P}.tar.xz + test? ( https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/${LLVM_P}.tar.xz )" + +LICENSE="|| ( UoI-NCSA MIT )" +SLOT="${PV%_*}" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-fbsd ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" +IUSE="+clang +libfuzzer +profile +sanitize test +xray elibc_glibc" +# FIXME: libfuzzer does not enable all its necessary dependencies +REQUIRED_USE="libfuzzer? ( || ( sanitize xray ) )" +RESTRICT="!test? ( test ) !clang? ( test )" + +CLANG_SLOT=${SLOT%%.*} +# llvm-6 for new lit options +DEPEND=" + >=sys-devel/llvm-6 + 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}" + +S=${WORKDIR}/${MY_P} + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +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_unpack() { + einfo "Unpacking ${MY_P}.tar.xz ..." + tar -xf "${DISTDIR}/${MY_P}.tar.xz" || die + + if use test; then + einfo "Unpacking parts of ${LLVM_P}.tar.xz ..." + tar -xf "${DISTDIR}/${LLVM_P}.tar.xz" \ + "${LLVM_P}"/utils/unittest || die + mv "${LLVM_P}" llvm || die + fi +} + +src_prepare() { + cmake-utils_src_prepare + + if use test; then + # remove tests that are (still) broken by new glibc + # https://bugs.llvm.org/show_bug.cgi?id=36065 + if use elibc_glibc && has_version '>=sys-libs/glibc-2.25'; then + rm test/lsan/TestCases/Linux/fork_and_leak.cc || die + fi + fi +} + +src_configure() { + # pre-set since we need to pass it to cmake + BUILD_DIR=${WORKDIR}/${P}_build + + if use clang; then + local -x CC=${CHOST}-clang + local -x CXX=${CHOST}-clang++ + strip-unsupported-flags + fi + + 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) + # built-ins installed by sys-libs/compiler-rt + -DCOMPILER_RT_BUILD_BUILTINS=OFF + -DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer) + -DCOMPILER_RT_BUILD_PROFILE=$(usex profile) + -DCOMPILER_RT_BUILD_SANITIZERS=$(usex sanitize) + -DCOMPILER_RT_BUILD_XRAY=$(usex xray) + ) + if use test; then + mycmakeargs+=( + -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}" + + # 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+=( + # disable use of SDK for the system itself + -DDARWIN_macosx_CACHED_SYSROOT=/ + ) + fi + + cmake-utils_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-utils_src_make check-all +} diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-8.0.9999.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-9.0.0.9999.ebuild index b377ac40e78d..2a1e62b21c02 100644 --- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-8.0.9999.ebuild +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-9.0.0.9999.ebuild @@ -1,12 +1,12 @@ # Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=7 : ${CMAKE_MAKEFILE_GENERATOR:=ninja} # (needed due to CMAKE_BUILD_TYPE != Gentoo) CMAKE_MIN_VERSION=3.7.0-r1 -PYTHON_COMPAT=( python2_7 ) +PYTHON_COMPAT=( python{2_7,3_{5,6,7}} ) inherit check-reqs cmake-utils flag-o-matic git-r3 llvm \ multiprocessing python-any-r1 @@ -16,11 +16,10 @@ HOMEPAGE="https://llvm.org/" SRC_URI="" EGIT_REPO_URI="https://git.llvm.org/git/compiler-rt.git https://github.com/llvm-mirror/compiler-rt.git" -EGIT_BRANCH="release_80" +EGIT_BRANCH="release_90" LICENSE="|| ( UoI-NCSA MIT )" -# Note: this needs to be updated to match version of clang-9999 -SLOT="8.0.1" +SLOT="$(ver_cut 1-3)" KEYWORDS="" IUSE="+clang +libfuzzer +profile +sanitize test +xray elibc_glibc" # FIXME: libfuzzer does not enable all its necessary dependencies @@ -104,8 +103,9 @@ src_configure() { -DCOMPILER_RT_OUTPUT_DIR="${BUILD_DIR}/lib/clang/${SLOT}" -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) - # built-ins installed by sys-libs/compiler-rt + # 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_PROFILE=$(usex profile) -DCOMPILER_RT_BUILD_SANITIZERS=$(usex sanitize) diff --git a/sys-libs/compiler-rt/Manifest b/sys-libs/compiler-rt/Manifest index 51fcd84fc816..00b3251af207 100644 --- a/sys-libs/compiler-rt/Manifest +++ b/sys-libs/compiler-rt/Manifest @@ -2,10 +2,12 @@ DIST compiler-rt-5.0.2.src.tar.xz 1543256 BLAKE2B 09fa84b8f3e9b8627a14387bc6eaa3 DIST compiler-rt-6.0.1.src.tar.xz 1686820 BLAKE2B 59fa3f6e478bd4d6dfa056c85dcdc4349cbce7cea7fc56519feddc9d66c88c9ca48bad7967432ceb81d754213577f12707035afd827cf630a58627575b73b798 SHA512 69850c1ad92c66977fa217cbfb42a6a3f502fbe3d1a08daa7fc4cfeb617a7736d231f8ad8d93b10b1ae29bd753315d2a2d70f9ff1f4d18a9a7cc81758d91f963 DIST compiler-rt-7.1.0.src.tar.xz 1864248 BLAKE2B 42ab86416f7f85c5833cf85dbfb66b18a5d5cf53fa0560ad43b2ef39f5a2cd7ec1dbe4192cc8dac9b3f658b828c8306f26745c4d0e8f846d9f550ac22717eb33 SHA512 54d3ad80936f011dbf2ecebba3f1b7d4a156044b178228411ba855be5ec48eb646155b74dea1a96674adab6f93803456ae1435395e3240a4423a3f65f4566b55 DIST compiler-rt-8.0.0.src.tar.xz 1903020 BLAKE2B dc42c4772132fee5e225bb94805cd6917214c1d830b8ba4f1c774e6e1726ec7846432d1d6881085676b6d094ec04060ec2a95749eb7d93be79268ee7de1bd828 SHA512 fe9f69fe2269fa3d560ae97fdacd462f855fb0b7a5f647f5b8595206ff7febca6496725adc953de411a827c761e2b3ca11a2149f25707d6c62af0722b68ba913 +DIST compiler-rt-8.0.1.src.tar.xz 1954204 BLAKE2B cbba1d5fb37385116920da39dea26739d09e3f11c392503f8bc45293f1ef00c97f6a9fbd3ba67094d7f1e532410d0eca461943dadfdb10646110470a8e3b5f1f SHA512 12bf1bdabe25c0c3a84cc73a718fe154573dd729ec3ff5e099bd5f74c6bec9c80521b87ded646d3b20dfdb9aa51dea0234281418c7eb81805e1dd5d3107d3d8e +EBUILD compiler-rt-10.0.0.9999.ebuild 2878 BLAKE2B ba02096b94d43b7ea004f4233289835a06e2a0221cff63061392b2bfd942f60f83d3a4c1d5041147027b2ab0936addaa1b99dbb7eaa4565fa682a951571dc7d7 SHA512 34b8176d156ac361fd6a536821e610fec1302bdbb274ac85cdf84b86d6f603ac70ba1ebc039f6f2c4b4eab92211a5054083703cb9e698e3acee18463a5715e6e EBUILD compiler-rt-5.0.2.ebuild 2840 BLAKE2B 4c6e6ca121bad66f69f272a1ddc8a5153196c8f2608da08b5326e264842fe60ae8a4cb1aa98e2907b141068e5af997fe81ae13708dfd148f8676bebf18b894d2 SHA512 3fcea6a7045c1dc666ad6cd9c575b1ba931719bf31457f7493bb7b9c7950bca8e1c5eb8ce4342c1098250d0c126e85ba86b56724b17a3f6bb43c2846fb765a1f EBUILD compiler-rt-6.0.1.ebuild 2911 BLAKE2B 9ee423b460c62366af5525ab3b32cd2980aff78331a65b5658a50e0f808c9cb694d2e5d85bd753d291e1b5f96ab9e6cbc6a6d9f0cddcd9f7f8521ed5280f8291 SHA512 ecce0303d9db8ec0c74b3d0b248547402c32b7bceef52a5bb999f076c8fa82e209d5d113e6c14a1511e99dbf04bfd4d79077da1c010d9069a1bd284a168b26e0 EBUILD compiler-rt-7.1.0.ebuild 2913 BLAKE2B 86f05a0f2604f7df55ecec3906f380f6838f9deb66f76f952c9dfb89d8b3738aafd7468c1cfc2c6e19e1301fc4dacdb74a4f8436cdf7daf98bebb82ee1284590 SHA512 ddb15119c6dc09816ecf15ca61c548d786c16c8380284323e27a37229dd81808fae98b2451b5bfe98b2f1ce3b0bb620acf792ba1a66e5aa67acb40a33dd64744 EBUILD compiler-rt-8.0.0.ebuild 2916 BLAKE2B cb63ba2b0e7a3f913fe58f2e53fb5deaa827c0fa7b10a89891a7da7fcf658fb6d9ab0fd50e501d35a788c9f53b3c267c85a03dbbb9722f4a3294aec4a1c0e4b8 SHA512 d11deefc294f5d99e4b92384a154dfebcb9ab5a7549aaefefbe791bf5cc319c1ea547eb076bb416702d8812d967e4721f7d51f18ec9d741a0347cd79b8172ad1 -EBUILD compiler-rt-8.0.9999.ebuild 2946 BLAKE2B a77052a7f0365fcc3c9426147ee2af5a89b4f9d4de01f6ca2bd42b88b886cd85bdb89652edf68c5b201025a02154db57cdca922c60d8081be7adf9730fc85ee8 SHA512 36c8990d9fe14953c3cc94fcd41699191a6ce41f297806ab401670aba24e126310d36ce02fbc49a8ff39772636b72d4f3214a44bad7c4af84d6e57f17f9d622a -EBUILD compiler-rt-9999.ebuild 2933 BLAKE2B cbb1565d270a349f9b165fdc33d18e759720fe1994fd093fe9a5829bbe2c0abb43c5fe1f497b89dc047620ae408b5903f9fee4ad6dc80f0d0d67a8cdba719ba5 SHA512 dd2ab7d141de915074e7d833b778470deac4ab1e1b1677d7aeed71d8e6a4a73d9eaf623a01638a756eb0cd1434ca8dbf499e4b765c960bdaaad37040d5b55aa4 +EBUILD compiler-rt-8.0.1.ebuild 2955 BLAKE2B 702fd03689bf6442de07f5edccccc583cc151158998a0f2b9c627de68d16761dbe4463468f4e74a5ad10772878660a3a62d464a48c83e595f9e43e7bbf26cd02 SHA512 df56a69b5bc0ac31d53bbe9b44f4a7ec59d79d8b573ba0396593fc7e9ac9d8fed5ec599d41bde33adb6584f46c672e9d790bf0f933f7b67f796620d9ff06e7c1 +EBUILD compiler-rt-9.0.0.9999.ebuild 2903 BLAKE2B 119c03302c7c5443286611ce4d9612331e444b6c3836c05ec4923ac7769e5e1fb9ee71783d56203e46f55f0f426d8339913bfd2e2c08326db47fc8d4f00d240c SHA512 dd5b1f94bdd36e0b07d76f87ea74a04e83033ca31b8f7b4b1f05371e45ede630e9594b2024bc8db089d1d806facedd0711dce4deeb5fb991ec326473e552a0c1 MISC metadata.xml 333 BLAKE2B 24e417cb7b8ab7730b18a3e1e5e29d008042e4fd53cf1ba3cc9d18719160b0410854ddfae52315c690138e61fb0196015968fa09b98af6470cd8bdecc09205ef SHA512 97daa7452a696b7297c47f5f637a33425f82b51426060a75b3de6bc812f9ddcd3c70ae068bc3e88ce937ab1eb10d59b0ab48a2d2c0397a112b8b6a754e333bdc diff --git a/sys-libs/compiler-rt/compiler-rt-9999.ebuild b/sys-libs/compiler-rt/compiler-rt-10.0.0.9999.ebuild index 7d24d1c68fca..68a10b79beca 100644 --- a/sys-libs/compiler-rt/compiler-rt-9999.ebuild +++ b/sys-libs/compiler-rt/compiler-rt-10.0.0.9999.ebuild @@ -1,7 +1,7 @@ # Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=7 : ${CMAKE_MAKEFILE_GENERATOR:=ninja} # (needed due to CMAKE_BUILD_TYPE != Gentoo) @@ -18,8 +18,7 @@ EGIT_REPO_URI="https://git.llvm.org/git/compiler-rt.git https://github.com/llvm-mirror/compiler-rt.git" LICENSE="|| ( UoI-NCSA MIT )" -# Note: this needs to be updated to match version of clang-9999 -SLOT="9.0.0" +SLOT="$(ver_cut 1-3)" KEYWORDS="" IUSE="+clang test" RESTRICT="!test? ( test ) !clang? ( test )" diff --git a/sys-libs/compiler-rt/compiler-rt-8.0.1.ebuild b/sys-libs/compiler-rt/compiler-rt-8.0.1.ebuild new file mode 100644 index 000000000000..2df510757e47 --- /dev/null +++ b/sys-libs/compiler-rt/compiler-rt-8.0.1.ebuild @@ -0,0 +1,110 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +PYTHON_COMPAT=( python2_7 ) + +inherit cmake-utils flag-o-matic llvm multiprocessing \ + python-any-r1 toolchain-funcs + +MY_P=${P}.src +DESCRIPTION="Compiler runtime library for clang (built-in part)" +HOMEPAGE="https://llvm.org/" +SRC_URI="https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/${MY_P}.tar.xz" + +LICENSE="|| ( UoI-NCSA MIT )" +SLOT="${PV%_*}" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-fbsd ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" +IUSE="+clang test" +RESTRICT="!test? ( test ) !clang? ( test )" + +CLANG_SLOT=${SLOT%%.*} +# llvm-6 for new lit options +DEPEND=" + >=sys-devel/llvm-6 + clang? ( sys-devel/clang ) + test? ( + $(python_gen_any_dep "dev-python/lit[\${PYTHON_USEDEP}]") + =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} ) + ${PYTHON_DEPS}" + +S=${WORKDIR}/${MY_P} + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +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() { + llvm_pkg_setup + 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++ + # ensure we can use clang before installing compiler-rt + local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" + strip-unsupported-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_PROFILE=OFF + -DCOMPILER_RT_BUILD_SANITIZERS=OFF + -DCOMPILER_RT_BUILD_XRAY=OFF + ) + + if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then + mycmakeargs+=( + # disable use of SDK for the system itself + -DDARWIN_macosx_CACHED_SYSROOT=/ + ) + fi + + if use test; then + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}" + + -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-utils_src_configure +} + +src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + + cmake-utils_src_make check-builtins +} diff --git a/sys-libs/compiler-rt/compiler-rt-8.0.9999.ebuild b/sys-libs/compiler-rt/compiler-rt-9.0.0.9999.ebuild index 57144207baed..776326d88a4a 100644 --- a/sys-libs/compiler-rt/compiler-rt-8.0.9999.ebuild +++ b/sys-libs/compiler-rt/compiler-rt-9.0.0.9999.ebuild @@ -1,12 +1,12 @@ # Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=7 : ${CMAKE_MAKEFILE_GENERATOR:=ninja} # (needed due to CMAKE_BUILD_TYPE != Gentoo) CMAKE_MIN_VERSION=3.7.0-r1 -PYTHON_COMPAT=( python2_7 ) +PYTHON_COMPAT=( python{2_7,3_{5,6,7}} ) inherit cmake-utils flag-o-matic git-r3 llvm multiprocessing \ python-any-r1 toolchain-funcs @@ -16,11 +16,10 @@ HOMEPAGE="https://llvm.org/" SRC_URI="" EGIT_REPO_URI="https://git.llvm.org/git/compiler-rt.git https://github.com/llvm-mirror/compiler-rt.git" -EGIT_BRANCH="release_80" +EGIT_BRANCH="release_90" LICENSE="|| ( UoI-NCSA MIT )" -# Note: this needs to be updated to match version of clang-9999 -SLOT="8.0.1" +SLOT="$(ver_cut 1-3)" KEYWORDS="" IUSE="+clang test" RESTRICT="!test? ( test ) !clang? ( test )" diff --git a/sys-libs/e2fsprogs-libs/Manifest b/sys-libs/e2fsprogs-libs/Manifest index 8f30209de752..505de122a2d4 100644 --- a/sys-libs/e2fsprogs-libs/Manifest +++ b/sys-libs/e2fsprogs-libs/Manifest @@ -3,6 +3,6 @@ DIST e2fsprogs-1.44.5.tar.xz 5375996 BLAKE2B a6069e7c4889cdd3a30d94994d179c024ed DIST e2fsprogs-1.45.2.tar.xz 5560504 BLAKE2B c7764eb7fd67c422007cf2d884496babf78663ce6dab674fb023738b69e270c601dded89fc65fe4e7e1853cf8234772bfc2e28a1189b8dfd3f9e6fa34677f664 SHA512 50fdb7769c789fb143b2e4bd56e6b55eac8f84be5b7074008134fa56d980342c2307e62380f9ba6a8ab9bbc6bbf45b349aad540c8f239cf859706fd33e521e5e DIST e2fsprogs-1.45.3.tar.xz 5561452 BLAKE2B ee41f35c3294ccb8dad4274e44d9c07dc94f93d2e921472c34da7913cdb2d60f998fa154c98f6ba4f9e598de152006a0fdb63a9006bbf3bb1847166d9342a29f SHA512 9f898d353af48a1d357cb01f64187b6dfef671bb2e0450438530fe4fa9454fccc6b755c9469d81e702e6d85a4defd02ae0a493897a4b3284cb112e8444c9bf52 EBUILD e2fsprogs-libs-1.44.5.ebuild 2420 BLAKE2B 185bc676e63b1a9d4bbeeab3f93026d90c9f147b55b40161efb57596071e0bb9f6ef2b78a234de7d7006d9a2ac9de83d563a87f4469f8525401eb346bf1dc73e SHA512 1ac2a5bbd640ead26afbb89c5d30ea8e9c07af7754591a1bc5167e016ee0a3b16a3534cdf01a89608204bbec6e1cf556720c050d658cd1d011c5bc6eceeb44c6 -EBUILD e2fsprogs-libs-1.45.2.ebuild 2424 BLAKE2B 24d3b40b550c31595052cbda7f92bf5f0345340e9c3979dba3488ef5ed9bccfbc5b09bd7fdcbdce39faf69e3d9e550d90719ad37ba607b99a728b3823774bb56 SHA512 5db41ad714c6655679994df71fac8be73b88967817716e5b29927a3b121334e914c983dfb13e0c8b9d49e9d3bdd6723e0e33d2399cfdedbcd93b583a43fd87a7 +EBUILD e2fsprogs-libs-1.45.2.ebuild 2420 BLAKE2B 81ee3f5d9d59a5add241ca79bfa2a0f9a112c16c4bb0b9970a1ee196540d2d98106c6a0d43bdad610d640407b56b312d0f58a4a6062bd311dedc96b0ecd96fe2 SHA512 be072a3070da4d0017347a9b62e09a2020410b48e29c8c9e680effa4dcd31d5cecc61604402f63dfa55256ace35b9c179fb7b6773ba0eaf8249f0144c0015939 EBUILD e2fsprogs-libs-1.45.3.ebuild 2433 BLAKE2B 25dcfee95771ef368e6b97fa8376b44dfd17e0761366b89b9a0614e5f9b9297521728b8712f6ed29ce63620092b3320c77d0dc6bebcf0a3d274ae6d17b7c245a SHA512 b5b7b987d17aa61e331cf2b7168dfcb5b7ee995fa89064cebd8ca6b636057cad389d357a78b2bef67851e9a85022e33d5a20b6a7e4eeb20355679b08439ec517 MISC metadata.xml 329 BLAKE2B 03dc6edded63d4d10b064515402e963a4770ffc36e17de351d5617849ea138796e4bf20c7feb383cc8ca3a88fba1caaf68b5411241a2558db832f9b659193644 SHA512 39e1ddf508b648594e45cd4e72a41997ab4ae7b5cfdefa136a18a1e68ac5a2bfb1f6a12328f1faee5501fbeff0c61cd91417de717c4869f530a18a05ea5d4c71 diff --git a/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.45.2.ebuild b/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.45.2.ebuild index e830159132b6..4553bbd8c0c2 100644 --- a/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.45.2.ebuild +++ b/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.45.2.ebuild @@ -15,7 +15,7 @@ SRC_URI="mirror://sourceforge/e2fsprogs/${MY_P}.tar.xz LICENSE="GPL-2" SLOT="0" -KEYWORDS="alpha amd64 ~arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~riscv s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~m68k-mint ~x86-solaris" +KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 ~riscv s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~m68k-mint ~x86-solaris" IUSE="static-libs" RDEPEND="!sys-libs/com_err diff --git a/sys-libs/glibc/Manifest b/sys-libs/glibc/Manifest index a01891890d8a..fe39f3262feb 100644 --- a/sys-libs/glibc/Manifest +++ b/sys-libs/glibc/Manifest @@ -20,8 +20,9 @@ DIST glibc-2.27.tar.xz 15395316 BLAKE2B ea206d304c8c9aa86d69db981a14bea008602cea DIST glibc-2.28-patches-9.tar.xz 98588 BLAKE2B 4ab583be712994f949dee2512da6e12fd7f7ad73e96393f21678552b43da98f49321b53b5b009551300cdb09ca135e7f6adc636ff750c251a1d6d7f262dbc410 SHA512 e3f40ae6e9d06471c1a11bd2bce7b5161d07c3d0a81791505a72aec4817e7faf9ef09841e98c6dcf62a0a00754dff87dd194d97ac6b6354aeb2497cf60900b96 DIST glibc-2.28.tar.xz 16484344 BLAKE2B 9aa8cbd5a145c2a6fde3a60b3d0a14b12b46ed79333ad1ca3e73464adcfe700277a17a9e7fd0ca36e355a0c5b0b27decfa091da320ba802741ad75cc955bbcc8 SHA512 521f820953ff07c69ece4c2186f59fc061a7f9747932cd70ef2995c2b2deee76eeb6de700d85071cdca5949179aa8ccee75eda7feca1394121ec7b821ad0a3f3 DIST glibc-2.29-patches-3.tar.xz 35812 BLAKE2B 90b8bc57b7a63f03617795c368b92e525eccfec462d638dbc25c581e5b7a2a72ffd5191842f5ac443a868cbc950838d7e5120e866d343a14b80c55dcbfa48f30 SHA512 4c9b78d9d1a8aa629418f2d758ef800857780b8a1fd8d3582b88348a513ca26ca7f6ac9110a8c6bae16949b360ba36840d184f42293cd4324760273592d1b438 +DIST glibc-2.29-patches-4.tar.xz 63576 BLAKE2B 4a9005326e16f8c6b9e1a38e596d66c9f8063572324bfde69c01d2eda3cb026425bcb8dc16ebfc75779e0a66d595f672501cfdafbac18a8a613b84b1d8e670ba SHA512 64b2756169444a865afb20c6fec2b4534f6ae36082cf517c882c8e5e6f7335636a8f0da1b8faf476558664da460db20f5d50f526044a4c203bd7874ecd62d945 DIST glibc-2.29.tar.xz 16515488 BLAKE2B b754e6825176538a2b8ca03fce014f0d87d333dc4d038bf0cda5ee8a2f484cd3ce93ad78ec126737e093ab64b55ceedf04cd08aecb4f8041daaa329e99717afa SHA512 146bc0769fe853d9edbf93cea7f74c5b3d84d69cb7614c62588e7acdecd1ec789a9d8949f3e8b99f8f36f2ccac740a003bed94f32b07817baf780b06cfeb6ed0 -DIST glibc-9999-patches-12.tar.xz 17652 BLAKE2B 25a35eced3816dad02521b03f291292158e0c2f7c19aa416074d88ec719df9913b2d1e7e225a888a7b1f2455fc476c930f8e4b963d2439a2ba982ee038ce798b SHA512 4e985100441e761c50d76ee591924d4ed8284e55b186738c1a40001422c2382cdcfa46ac35f747897861a80045f2b92a0cd4639cd603372227d164c47460762a +DIST glibc-9999-patches-13.tar.xz 18316 BLAKE2B c55359dda094dabfec85f53e48fcd43985d41211f29c0c3ba0d07c4ce28994f96c334c9fcc2a6b78e64123363253c701ed6e9335f4e74274c984734ac8881731 SHA512 627799f65f79e60ed3a9ba1a499d21e771f1b109934967c9fbdf3300b0c1509ef5382834e63c8ead23ffbaee80becf541da5b25e4e2cfa8f6baa801c3838c69d EBUILD glibc-2.19-r2.ebuild 40503 BLAKE2B 86f512cbe4154292834e51109b7f233aea8e8fb2a90c643a6d875553f91e03c2e214c165fe3d08f4f0943cfe1627fc7b7e42f885a93ac50cffbe9d3f6b917e4e SHA512 8dce817f9e5fc8a252d61f89df010485e267f0612506cd8b128f151d9965d8e5a84033d07e1caefe23da9aaab95f058675c831bc410fc7cb613b2e329663f656 EBUILD glibc-2.23-r4.ebuild 4949 BLAKE2B 99db0ec4a452f04a2aef9b347a5ddec03cc88fbb1460c4f3f14b37efe5651b5db374e93a26b32b7918eb05f702d5355c5abcfcdf1228c24c4529218ecdd4017b SHA512 4384f936e1b88edc6639e4d7f31cc4641d287afda7e16f9cbd6a9fef68f04501213d9f2a84314cfb18d9da9b404a1452eba44fb49db8cf2cd1cd6012a659eb38 EBUILD glibc-2.24-r4.ebuild 4988 BLAKE2B 8e08345c96e176984b73a073efca21f771d41af1af75106ec88a22bd55d7f69f28d9c01989026a3e58f3df4fac2a59db68d5ac8a8bbb0f411c75da8792f3402a SHA512 dd1d996eaf35197f7b7b6c111957eb98ef776d0a76a949b95f9bb17075dca43b2a354f8d15be133b9f3ff6c40a5b1f4ec28bd8d41c5cfc51da006eda8b005a05 @@ -29,6 +30,7 @@ EBUILD glibc-2.25-r11.ebuild 4975 BLAKE2B cef32f5d160644845e7cf45a9dd4c8cef1dcff EBUILD glibc-2.26-r7.ebuild 25509 BLAKE2B 49166ae538135fe9663954a2f2ae6778b240ba32ab77e600091e56f44ef06df91f856c1389e78431420a33cb381743f4b44d5f02bbe6041a01134795fd2fad14 SHA512 82111610d0de42b52cdd6452d8a7f09464a2aaceea8fee1d8d6dcc6a9ee35396a093448361111e62b8acdec06d84795600dab65dbbe4e951663827106e81268f EBUILD glibc-2.27-r6.ebuild 41564 BLAKE2B 7a0d3bf89587630f59c8f4e271ec26db8695f1ccec95148d1d79c8bb14fb1382a37ada421c002ca0d66661b28ab1166acbfe884bcfeed8da413ff82d448ff141 SHA512 02d6d45d177bc43438a74918a8dcbd19507100b00ebd079102296ca197c05a957cdf9d58ffa11e1710d781016c4b6ab98c2aa492b2dd1483ad02de856fa2a54b EBUILD glibc-2.28-r6.ebuild 41334 BLAKE2B 4de861388f365a5b38aa09bac691d2a6e22f4ff54942eb1fa044d125b9214d5519f10549214cfa46d96e968a6ec80b6e022a9e7000db8d351e2a03cb02530aa8 SHA512 52174bb1cafbf8401851efa950398a31d84319bf3b403f6db9bbbc0e0044b18f1c08e64ae181d062a33139d139eaca5706dd0df1a3b9f555a73a35389dcc2a6a -EBUILD glibc-2.29-r2.ebuild 42192 BLAKE2B 8d8b87c2bdb930abb1c891ad3a7cb99edd2af002f06fe955665a8a2213ae5cc43e43f4f262f544e7438c2512208537a5e981228e92f360becdc151f264d9929b SHA512 9ce9edf2e6f70704cae70a8e9cb869cfc6130c039b5c840ca7310ec55ba7ae87fb6dc219f11d365e97d14dc33511a4e4ebd9685fbc99b0c860ac2cf5ed92f130 -EBUILD glibc-9999.ebuild 42597 BLAKE2B 101783c7b7509993c15e2309ca8f01e62ecc232fd97d775f36954d2fd8b5da09f0e770627b093ab13254174bca781e45baaa1b404d730ca0a70094b9bdca64f8 SHA512 0a2cfb665f51221163692e730b0a13f29eb192a003a096b9f103d479000df314d3e5a8eae5ddaa9e6899527bc314ebf0cfe60430c48814c5771df13356eaf9d6 +EBUILD glibc-2.29-r2.ebuild 42670 BLAKE2B bc32330106dc20ad803ac3fc8a59d9ec81bc6007f62550127eb7b20c1994d461db3460f18d5791c5ac40457ce8670fc917fe5c0a120381fdab3e90132ad96975 SHA512 2f9073351fa328a99d2c16df6633815930a865199a9412328c277ac80eb4f5d7795026e88b0ebb1982ab3c0170fe0d6cd15a63ffa6a8bfc33c0b08628d57feea +EBUILD glibc-2.29-r3.ebuild 42678 BLAKE2B 74a6df5c1ca28b4c2df383c8a00934ac47e037e0dc536056cddd0de7d852478ca31f63fd26c1593e3c16a3f40380cab5d8de09ab431409144c682432f0de5806 SHA512 3032c8dd318ade7a6908859d0acdcd351e9dc553de9985c05073aa6fd41047a14895d81e8a061db749aab9a4e2056ac9230cb88a72ea8ac62f285ea54c3613dc +EBUILD glibc-9999.ebuild 43078 BLAKE2B c9f6c2ad1d2cbb6a4404ce2bf2c32b6511e5a920823c27c967fa34527b5e6eb277a8539aae01333f531cb5730844c59e008d83ae4981a18e19e9ef5093122911 SHA512 1691ebacc6f2e7f4ad02f65388c66b0edc8ba6a862e0107a4573f76b8660a81679fd7e14d959c58e5ca99e4370ad114aa33236ee1aa9078c46d1755ff6c15d14 MISC metadata.xml 1323 BLAKE2B 6a19ccbf9f068c6c3d3b945d3011dce3d7712dd74a2daeaa8244eef73fd86723b275ce018ec5557862278c23883fabfb27e91e0b88ff62c34fffdadd4b024411 SHA512 848adbf531103d69b8b0e7017c25de730daecccae220e337e475ba8dbcaa95c6d5e440330be56367974607050dfa1964026ed90bc699ab5f12fef35c88d67505 diff --git a/sys-libs/glibc/glibc-2.29-r2.ebuild b/sys-libs/glibc/glibc-2.29-r2.ebuild index ad6fed1c1662..a9ed33739e85 100644 --- a/sys-libs/glibc/glibc-2.29-r2.ebuild +++ b/sys-libs/glibc/glibc-2.29-r2.ebuild @@ -20,7 +20,7 @@ if [[ ${PV} == 9999* ]]; then EGIT_REPO_URI="https://sourceware.org/git/glibc.git" inherit git-r3 else - KEYWORDS="alpha amd64 arm arm64 ~hppa ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sh ~sparc x86" + KEYWORDS="alpha amd64 arm arm64 ~hppa ia64 m68k ~mips ppc ppc64 ~riscv s390 sh ~sparc x86" SRC_URI="mirror://gnu/glibc/${P}.tar.xz" fi @@ -125,6 +125,18 @@ 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. @@ -134,7 +146,7 @@ alt_headers() { alt_build_headers() { if [[ -z ${ALT_BUILD_HEADERS} ]] ; then - ALT_BUILD_HEADERS="${EPREFIX}$(alt_headers)" + 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 @@ -578,7 +590,7 @@ eend_KV() { get_kheader_version() { printf '#include <linux/version.h>\nLINUX_VERSION_CODE\n' | \ - $(tc-getCPP ${CTARGET}) -I "${EPREFIX}/$(alt_build_headers)" - | \ + $(tc-getCPP ${CTARGET}) -I "$(build_eprefix)$(alt_build_headers)" - | \ tail -n 1 } @@ -602,7 +614,7 @@ sanity_prechecks() { 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." - die "Aborting to save your system." + [[ ${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 @@ -892,9 +904,9 @@ glibc_do_configure() { $(use_enable profile) $(use_with gd) --with-headers=$(alt_build_headers) - --prefix="${EPREFIX}/usr" - --sysconfdir="${EPREFIX}/etc" - --localstatedir="${EPREFIX}/var" + --prefix="$(host_eprefix)/usr" + --sysconfdir="$(host_eprefix)/etc" + --localstatedir="$(host_eprefix)/var" --libdir='$(prefix)'/$(get_libdir) --mandir='$(prefix)'/share/man --infodir='$(prefix)'/share/info @@ -916,8 +928,8 @@ glibc_do_configure() { # 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="${EPREFIX}/sbin" - export libc_cv_slibdir="${EPREFIX}/$(get_libdir)" + 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 @@ -1046,7 +1058,7 @@ glibc_headers_configure() { --build=${CBUILD_OPT:-${CBUILD}} --host=${CTARGET_OPT:-${CTARGET}} --with-headers=$(alt_build_headers) - --prefix="${EPREFIX}/usr" + --prefix="$(host_eprefix)/usr" ${EXTRA_ECONF} ) @@ -1136,7 +1148,7 @@ glibc_do_src_install() { local builddir=$(builddir nptl) cd "${builddir}" - emake install_root="${D}$(alt_prefix)" install || die + emake install_root="${D}$(build_eprefix)$(alt_prefix)" install || die # 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 @@ -1320,7 +1332,7 @@ glibc_do_src_install() { glibc_headers_install() { local builddir=$(builddir "headers") cd "${builddir}" - emake install_root="${D}$(alt_prefix)" install-headers + emake install_root="${D}$(build_eprefix)$(alt_prefix)" install-headers insinto $(alt_headers)/gnu doins "${S}"/include/gnu/stubs.h diff --git a/sys-libs/glibc/glibc-2.29-r3.ebuild b/sys-libs/glibc/glibc-2.29-r3.ebuild new file mode 100644 index 000000000000..f94b65fed35f --- /dev/null +++ b/sys-libs/glibc/glibc-2.29-r3.ebuild @@ -0,0 +1,1460 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PYTHON_COMPAT=( python3_{5,6,7} ) + +inherit python-any-r1 prefix eutils eapi7-ver toolchain-funcs flag-o-matic gnuconfig usr-ldscript \ + multilib systemd multiprocessing + +DESCRIPTION="GNU libc C library" +HOMEPAGE="https://www.gnu.org/software/libc/" +LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" +RESTRICT="strip" # Strip ourself #46186 +SLOT="2.2" + +EMULTILIB_PKG="true" + +if [[ ${PV} == 9999* ]]; then + EGIT_REPO_URI="https://sourceware.org/git/glibc.git" + inherit git-r3 +else + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86" + SRC_URI="mirror://gnu/glibc/${P}.tar.xz" +fi + +RELEASE_VER=${PV} + +GCC_BOOTSTRAP_VER=20180511 + +# Gentoo patchset +PATCH_VER=4 + +SRC_URI+=" https://dev.gentoo.org/~slyfox/distfiles/${P}-patches-${PATCH_VER}.tar.xz" +SRC_URI+=" multilib? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" + +IUSE="audit caps cet compile-locales doc gd headers-only +multiarch multilib nscd profile selinux +ssp suid 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 + +# 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. +COMMON_DEPEND=" + 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} + ${PYTHON_DEPS} + >=app-misc/pax-utils-0.1.10 + sys-devel/bison + !<sys-apps/sandbox-1.6 + !<sys-apps/portage-2.1.2 + !<sys-devel/bison-2.7 + !<sys-devel/make-4 + doc? ( sys-apps/texinfo ) + test? ( >=net-dns/libidn2-2.0.5 ) +" +RDEPEND="${COMMON_DEPEND} + sys-apps/gentoo-functions + !sys-kernel/ps3-sources + !sys-libs/nss-db +" + +if [[ ${CATEGORY} == cross-* ]] ; then + DEPEND+=" !headers-only? ( + >=${CATEGORY}/binutils-2.24 + >=${CATEGORY}/gcc-6 + )" + [[ ${CATEGORY} == *-linux* ]] && DEPEND+=" ${CATEGORY}/linux-headers" +else + DEPEND+=" + >=sys-devel/binutils-2.24 + >=sys-devel/gcc-6 + virtual/os-headers + " + RDEPEND+=" + >=net-dns/libidn2-2.0.5 + vanilla? ( !sys-libs/timezone-data ) + " + PDEPEND+=" !vanilla? ( sys-libs/timezone-data )" +fi + +# +# 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 + + nonfatal emake -s glibc-test + 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' 2>/dev/null ; 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 + # Note: This test only matters when the x86 ABI is enabled, so we could + # optimize a bit and elide it. + # TODO: See cross-compile issues listed above for 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' 2>/dev/null ; 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" + fi + ;; + mips) + # The mips abi cannot support the GNU style hashes. #233233 + filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both + ;; + sparc) + # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. + filter-flags "-fcall-used-g7" + append-flags "-fcall-used-g6" + + # If the CHOST is the basic one (e.g. not sparcv9-xxx already), + # try to pick a better one so glibc can use cpu-specific .S files. + # We key off the CFLAGS to get a good value. Also need to handle + # version skew. + # We can't force users to set their CHOST to their exact machine + # as many of these are not recognized by config.sub/gcc and such :(. + # Note: If the mcpu values don't scale, we might try probing CPP defines. + # Note: Should we factor in -Wa,-AvXXX flags too ? Or -mvis/etc... ? + + local cpu + case ${CTARGET} in + sparc64-*) + case $(get-flag mcpu) in + niagara[234]) + if ver_test -ge 2.8 ; then + cpu="sparc64v2" + elif ver_test -ge 2.4 ; then + cpu="sparc64v" + elif ver_test -ge 2.2.3 ; then + cpu="sparc64b" + fi + ;; + niagara) + if ver_test -ge 2.4 ; then + cpu="sparc64v" + elif ver_test -ge 2.2.3 ; then + cpu="sparc64b" + fi + ;; + ultrasparc3) + cpu="sparc64b" + ;; + *) + # 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 + [[ -z ${cpu} ]] && append-flags "-Wa,-xarch=v9a" + ;; + esac + ;; + sparc-*) + case $(get-flag mcpu) in + niagara[234]) + if ver_test -ge 2.8 ; then + cpu="sparcv9v2" + elif ver_test -ge 2.4 ; then + cpu="sparcv9v" + elif ver_test -ge 2.2.3 ; then + cpu="sparcv9b" + else + cpu="sparcv9" + fi + ;; + niagara) + if ver_test -ge 2.4 ; then + cpu="sparcv9v" + elif ver_test -ge 2.2.3 ; then + cpu="sparcv9b" + else + cpu="sparcv9" + fi + ;; + ultrasparc3) + cpu="sparcv9b" + ;; + v9|ultrasparc) + cpu="sparcv9" + ;; + v8|supersparc|hypersparc|leon|leon3) + cpu="sparcv8" + ;; + 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} + + # 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 + strip-unsupported-flags + filter-flags -m32 -m64 '-mabi=*' + + # glibc aborts if rpath is set by LDFLAGS + filter-ldflags '-Wl,-rpath=*' + + # #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 + + # Lock glibc at -O2; we want to be conservative here. + # -fno-strict-aliasing is to work around #155906. + filter-flags '-O?' + append-flags -O2 -fno-strict-aliasing + + 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_OPT:-${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}" +} + +check_devpts() { + # Make sure devpts is mounted correctly for use w/out setuid pt_chown. + + # If merely building the binary package, then there's nothing to verify. + [[ ${MERGE_TYPE} == "buildonly" ]] && return + + # Only sanity check when installing the native glibc. + [[ ${ROOT} != "/" ]] && return + + # If they're opting in to the old suid code, then no need to check. + use suid && return + + if awk '$3 == "devpts" && $4 ~ /[, ]gid=5[, ]/ { exit 1 }' /proc/mounts ; then + eerror "In order to use glibc with USE=-suid, you must make sure that" + eerror "you have devpts mounted at /dev/pts with the gid=5 option." + eerror "Openrc should do this for you, so you should check /etc/fstab" + eerror "and make sure you do not have any invalid settings there." + die "mount & fix your /dev/pts settings" + fi +} + +# 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() { + # Make sure devpts is mounted correctly for use w/out setuid pt_chown + check_devpts + + # Prevent native builds from downgrading + if [[ ${MERGE_TYPE} != "buildonly" ]] && \ + [[ ${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 + + # Check for sanity of /etc/nsswitch.conf + if [[ -e ${EROOT}/etc/nsswitch.conf ]] ; then + local entry + for entry in passwd group shadow; do + if ! egrep -q "^[ \t]*${entry}:.*files" "${EROOT}"/etc/nsswitch.conf; then + eerror "Your ${EROOT}/etc/nsswitch.conf is out of date." + eerror "Please make sure you have 'files' entries for" + eerror "'passwd:', 'group:' and 'shadow:' databases." + eerror "For more details see:" + eerror " https://wiki.gentoo.org/wiki/Project:Toolchain/nsswitch.conf_in_glibc-2.26" + die "nsswitch.conf has no 'files' provider in '${entry}'." + fi + done + 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 ; 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 && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz + + setup_env + + if [[ -n ${EGIT_REPO_URI} ]] ; then + git-r3_src_unpack + else + unpack ${P}.tar.xz + fi + + cd "${WORKDIR}" || die + unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz +} + +src_prepare() { + if ! use vanilla ; then + elog "Applying Gentoo Glibc Patchset ${RELEASE_VER}-${PATCH_VER}" + eapply "${WORKDIR}"/patches + einfo "Done." + fi + + default + + gnuconfig_update + + cd "${WORKDIR}" + find . -name configure -exec touch {} + + + 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 ; 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}" + + echo + + local myconf=() + + case ${CTARGET} in + m68k*) + # setjmp() is not compatible with stack protection: + # https://sourceware.org/PR24202 + myconf+=( --enable-stack-protector=no ) + ;; + powerpc-*) + # Currently gcc on powerpc32 generates invalid code for + # __builtin_return_address(0) calls. Normally programs + # don't do that but malloc hooks in glibc do: + # https://gcc.gnu.org/PR81996 + # https://bugs.gentoo.org/629054 + myconf+=( --enable-stack-protector=no ) + ;; + *) + myconf+=( --enable-stack-protector=$(usex ssp all 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=$(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_multiarch || echo --disable-multi-arch) + $(use_enable systemtap) + $(use_enable nscd) + ${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 ; 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=$(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)" || die "make nptl for ${ABI} failed" +} + +src_compile() { + if just_headers ; then + return + fi + + foreach_abi do_src_compile +} + +glibc_src_test() { + cd "$(builddir nptl)" + emake 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 locale_list="${root}/etc/locale.gen" + if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then + ewarn "Generating all locales; edit /etc/locale.gen to save time/space" + locale_list="${root}/usr/share/i18n/SUPPORTED" + fi + + locale-gen --jobs $(makeopts_jobs) --config "${locale_list}" \ + --destdir "${root}" +} + +glibc_do_src_install() { + local builddir=$(builddir nptl) + cd "${builddir}" + + emake install_root="${D}$(build_eprefix)$(alt_prefix)" install || die + + # 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) + + 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 + ppc64 /lib64/ld64.so.1 + # riscv + 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 + ) + ;; + big) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64_be.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 + + # 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 + + # Make sure all the ABI's can find the locales and so we only + # have to generate one set + local a + keepdir /usr/$(get_libdir)/locale + for a in $(get_install_abis) ; do + if [[ ! -e ${ED}/usr/$(get_abi_LIBDIR ${a})/locale ]] ; then + dosym ../$(get_libdir)/locale /usr/$(get_abi_LIBDIR ${a})/locale + fi + done + + # HACK: If we're building for riscv, we need to additionally make sure that + # we can find the locale archive afterwards + case ${CTARGET} in + riscv*) + if [[ ! -e ${ED}/usr/lib/locale ]] ; then + dosym ../$(get_libdir)/locale /usr/lib/locale + fi + ;; + *) ;; + esac + + cd "${S}" + + # Install misc network config files + insinto /etc + doins nscd/nscd.conf posix/gai.conf nss/nsswitch.conf + doins "${WORKDIR}"/extra/etc/*.conf + + if use nscd ; then + doinitd "$(prefixify_ro "${WORKDIR}"/extra/etc/nscd)" + + local nscd_args=( + -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" + ) + + sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd + + systemd_dounit nscd/nscd.service + systemd_newtmpfilesd nscd/nscd.tmpfiles nscd.conf + else + # Do this since extra/etc/*.conf above might have nscd.conf. + rm -f "${ED}"/etc/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 "${ED}" + 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_strip() { + # gdb is lame and requires some debugging information to remain in + # libpthread, so we need to strip it by hand. libthread_db makes no + # sense stripped as it is only used when debugging. + local pthread=$(has splitdebug ${FEATURES} && echo "libthread_db" || echo "lib{pthread,thread_db}") + env \ + -uRESTRICT \ + CHOST=${CTARGET} \ + STRIP_MASK="/*/{,tls/}${pthread}*" \ + prepallstrip + # if user has stripping enabled and does not have split debug turned on, + # then leave the debugging sections in libpthread. + if ! has nostrip ${FEATURES} && ! has splitdebug ${FEATURES} ; then + ${STRIP:-${CTARGET}-strip} --strip-debug "${ED}"$(alt_prefix)/*/libpthread-*.so + fi +} + +src_install() { + if just_headers ; then + export ABI=default + glibc_headers_install + return + fi + + foreach_abi glibc_do_src_install + src_strip +} + +# 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 + + 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 \ + ./ld-*.so --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 + + [[ ${ROOT} != "/" ]] && return 0 + [[ -d ${ED}/$(get_libdir) ]] || return 0 + [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check +} + +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 && [[ ${ROOT} == "/" ]] ; then + # Reload init ... if in a chroot or a diff init package, ignore + # errors from this step #253697 + /sbin/telinit U 2>/dev/null + + 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 +} diff --git a/sys-libs/glibc/glibc-9999.ebuild b/sys-libs/glibc/glibc-9999.ebuild index 39209741d278..0b6964c6a3b4 100644 --- a/sys-libs/glibc/glibc-9999.ebuild +++ b/sys-libs/glibc/glibc-9999.ebuild @@ -30,7 +30,7 @@ RELEASE_VER=${PV} GCC_BOOTSTRAP_VER=20180511 # Gentoo patchset -PATCH_VER=12 +PATCH_VER=13 SRC_URI+=" https://dev.gentoo.org/~slyfox/distfiles/${P}-patches-${PATCH_VER}.tar.xz" SRC_URI+=" multilib? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" @@ -126,6 +126,18 @@ 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. @@ -135,7 +147,7 @@ alt_headers() { alt_build_headers() { if [[ -z ${ALT_BUILD_HEADERS} ]] ; then - ALT_BUILD_HEADERS="${EPREFIX}$(alt_headers)" + 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 @@ -585,7 +597,7 @@ eend_KV() { get_kheader_version() { printf '#include <linux/version.h>\nLINUX_VERSION_CODE\n' | \ - $(tc-getCPP ${CTARGET}) -I "${EPREFIX}/$(alt_build_headers)" - | \ + $(tc-getCPP ${CTARGET}) -I "$(build_eprefix)$(alt_build_headers)" - | \ tail -n 1 } @@ -609,7 +621,7 @@ sanity_prechecks() { 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." - die "Aborting to save your system." + [[ ${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 @@ -899,9 +911,9 @@ glibc_do_configure() { $(use_enable profile) $(use_with gd) --with-headers=$(alt_build_headers) - --prefix="${EPREFIX}/usr" - --sysconfdir="${EPREFIX}/etc" - --localstatedir="${EPREFIX}/var" + --prefix="$(host_eprefix)/usr" + --sysconfdir="$(host_eprefix)/etc" + --localstatedir="$(host_eprefix)/var" --libdir='$(prefix)'/$(get_libdir) --mandir='$(prefix)'/share/man --infodir='$(prefix)'/share/info @@ -923,8 +935,8 @@ glibc_do_configure() { # 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="${EPREFIX}/sbin" - export libc_cv_slibdir="${EPREFIX}/$(get_libdir)" + 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 @@ -1053,7 +1065,7 @@ glibc_headers_configure() { --build=${CBUILD_OPT:-${CBUILD}} --host=${CTARGET_OPT:-${CTARGET}} --with-headers=$(alt_build_headers) - --prefix="${EPREFIX}/usr" + --prefix="$(host_eprefix)/usr" ${EXTRA_ECONF} ) @@ -1143,7 +1155,7 @@ glibc_do_src_install() { local builddir=$(builddir nptl) cd "${builddir}" - emake install_root="${D}$(alt_prefix)" install || die + emake install_root="${D}$(build_eprefix)$(alt_prefix)" install || die # 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 @@ -1327,7 +1339,7 @@ glibc_do_src_install() { glibc_headers_install() { local builddir=$(builddir "headers") cd "${builddir}" - emake install_root="${D}$(alt_prefix)" install-headers + emake install_root="${D}$(build_eprefix)$(alt_prefix)" install-headers insinto $(alt_headers)/gnu doins "${S}"/include/gnu/stubs.h diff --git a/sys-libs/kpmcore/Manifest b/sys-libs/kpmcore/Manifest index c217e37c2bf7..922ce1ac8f72 100644 --- a/sys-libs/kpmcore/Manifest +++ b/sys-libs/kpmcore/Manifest @@ -1,5 +1,5 @@ DIST kpmcore-3.3.0.tar.xz 412648 BLAKE2B c8e5bf8d20108b8c3164466bf4b08ec9e58808a20134e27b188f0b85809bf1dffabe293f7b1f53d96a6291d4a5d9c1945a496763aa5f72eaccde83f4fcc62c8b SHA512 62a0a341fbbec426291e2c9dd183a20466fce48ffaa360dd816c58402ee03c1f61c4ef7887d0a66c4693d77c2183a5da3477b828ba4ac2ed405f684ffb27125e DIST kpmcore-4.0.0.tar.xz 417784 BLAKE2B deffb82b3ec5029ce845a398728b31b4da1b1b69377684a982b0d8067cfddc9ccb2ab2f4369faeb289b4aa54841940aae5a69051a30e4895b840c51393b0c487 SHA512 16f0a8ecae35c214272f28c49b5fff3d2d5e0959b9dceba392b9b6186d44e10d11fcf16ef0ad1da42f49f0c631ccb858d726a92d7c2f22125dae07fd4d2c5500 EBUILD kpmcore-3.3.0.ebuild 710 BLAKE2B a5e3d77dbaac4c73f90ac2d4d57e68f05709be098aab1606a6673d7206ec14d0211867707b48ec1e05f83ffc98b0d087e207c38bafb987955630c9bbb1de7b9e SHA512 386f479d2227e74448f5db42bb9f3ec18155a0a37cdd8b91a96d812316a476544745335c1145dcab835b6b51442db7401982d302278809d2d34afd280962005d -EBUILD kpmcore-4.0.0.ebuild 841 BLAKE2B 439c8e303ab90c914eb7d954551ec472afb8622c98275b3171d6407042d1bdb0b6cba044206391b736474501448a40b1a318722ffa5bdb77851cb766670074ee SHA512 2a1a6a7ae06dea0ed97ca3606faeaaa5b42533ab521e4e9b3b6b7ee0a2183ec260930099f00e5db610b56fe60ffbff94700c89bbc39329da0e9b94aabe3d03c1 +EBUILD kpmcore-4.0.0.ebuild 845 BLAKE2B 582681de9e002e3585b65bbd3b5b37b11e2aafa93ce4eb09facab6431412810bed9970deaa088c8dde804a75b26161a45aa306277fe05f0f02046a513c99681d SHA512 5b02b87ab60439bf593c9893dcbd482bcfb37ab04c8b97615706c84cac11c653da99ebfcdafffe57d3b9ba4e153ece785b34c7e3a5211b553618964b6fdefd68 MISC metadata.xml 249 BLAKE2B ad415db89e5dee1627aa77f44ded9d4e1e5b8217d06c7ca25bbaa3fe92ce67c2b1090957c45a821b407d7927e5af798498aa6a5b903895ee1af8ee20a446c7f7 SHA512 76a5a340b13f0053ca3c5e94ed24380ea8d29b45ac8655419e22eaadb1e4a827c04d2e7e36b65145c4964e6526f656618fc6ac144e277ef53cb7373e6239e3c3 diff --git a/sys-libs/kpmcore/kpmcore-4.0.0.ebuild b/sys-libs/kpmcore/kpmcore-4.0.0.ebuild index e053d1ab5ead..cc868268da02 100644 --- a/sys-libs/kpmcore/kpmcore-4.0.0.ebuild +++ b/sys-libs/kpmcore/kpmcore-4.0.0.ebuild @@ -8,11 +8,11 @@ inherit kde5 if [[ ${KDE_BUILD_TYPE} = release ]]; then SRC_URI="mirror://kde/stable/${PN}/${PV}/src/${P}.tar.xz" - KEYWORDS="~amd64 ~arm ~arm64 ~x86" + KEYWORDS="amd64 ~arm ~arm64 ~x86" fi DESCRIPTION="Library for managing partitions" -HOMEPAGE="https://kde.org/applications/system/kdepartitionmanager" +HOMEPAGE="https://kde.org/applications/system/org.kde.partitionmanager" LICENSE="GPL-3" SLOT="5/8" IUSE="" diff --git a/sys-libs/libblockdev/Manifest b/sys-libs/libblockdev/Manifest index e70c6c84c45a..a85d52113389 100644 --- a/sys-libs/libblockdev/Manifest +++ b/sys-libs/libblockdev/Manifest @@ -3,6 +3,6 @@ DIST libblockdev-2.21-1.tar.gz 342121 BLAKE2B a0a1958303d38760a49eb2aca11ee84dfc DIST libblockdev-2.22.tar.gz 854888 BLAKE2B beb1ff0ac122eb12b2066d97c81a8c62a33369aa22a6ae5d141076d52fbd82d17504a97f1a0091773d9a65b25b976edecebe3a76ba91ee8e6032fd034298fa4a SHA512 69bbd5afbd8abb0e22ef72d80375e32db653f21cf3063cf69fff71ad069ee0e6119adf6918a63e7ba9ec4ca02ffe3337be3edeeafdd3e73e4e53d85e90bf2f45 EBUILD libblockdev-2.20-r2.ebuild 1993 BLAKE2B 379104c3a7fa7e3d01cb7906ee0928db4cd6c3d03a062c25c25a1c869f18bbd8ba77be3c2ae084a9018b2b42a2a96151bd697453c5d1c6aecebeb56a36b796f2 SHA512 fba4a4dfd56f6708bc08c9f6276353a48e07284ccfe762a15e54ee7984beb74e52561062cd5b7686578d5bfd8bdeefadda35643a33c58aaf155f1a677bb61084 EBUILD libblockdev-2.21.ebuild 2029 BLAKE2B 52b4450eee896acef06c19b4ce5565739139ded79438b9a3ebbbe4c9e4d6cc37d02410b0d1c39533ff81427479efbdddb97855550a13e5aa8a5437163be3ad8b SHA512 d2b6dd2c454a83be8b2733ee215a24b4d21f200ef4c65aeb7bca293d47b92eb0ca4a69b520b623c1165b18287fefd5d9afdc37bebf75e0b994d91903285df4d8 -EBUILD libblockdev-2.22.ebuild 2330 BLAKE2B 1014f10ca9efd8b52c4be54e4b2c5b8c1d35d46dc12ca86fd240f627691e51f872c5e081c9cf4fb876b312ca2f75c451ed5a6b4fb2a643c2d1b407b2560c6cf4 SHA512 2872c9eef0989a1898fa0ddf3da2122f8f5c1298db947449897b728b0ac342f985c75549f3573fa1e7b2e02a4f90f6505d7ba651f9dedeb753bebf9a3a588883 +EBUILD libblockdev-2.22.ebuild 2498 BLAKE2B 249e31af2e2e8f0d19dc37d3dfd069a32e8bc6ec2d4cc8edae1d232a64c5c844fb5cf97b4e1d648f5b45405e2e0292b2c84ca7dd7fb9542deb0391f3d4a4a982 SHA512 0b54fd3f202027e4c7d95b381ab4503a32cb294a8e3419896621e0c3770b6ed32f7ac87d2aff9c751e3888b9c1ba7885c9275482525ac729345f7eab76f580c2 EBUILD libblockdev-9999.ebuild 2393 BLAKE2B 168e982cd69a773f96a51b5273c7529a885431b06f3c632d27e1e4858ac8c07ef14860aeff54b7c3d5ed071d3ed1b921c87cdc477383aaa066c0c8397ad14d43 SHA512 0f4cbb4d0fbb2cf2dfd300685fd3ef75ef9fe21981f4cd53a5f9b2b659520c7cb8784bc904cd5fd68d10f7f9fee13506441cd085e11b14c4e6151fc9716b1e4d MISC metadata.xml 1079 BLAKE2B 927991dfdfefd599210651f76fa8bffbd5a54700791b57847a9ecf85cd1aa04a449eea84c4e1ee3e9eb50e541eab3d97a6218c814a018439aa6f520970a8acca SHA512 492cabe5b464c0bae48e8def1e771a27f28bcd03a47276be26a4351367bcd53e198358f8c0cbf25cd0c6c8e841ee67435b22fbe669bde1a6aa74668e70fa8fc9 diff --git a/sys-libs/libblockdev/libblockdev-2.22.ebuild b/sys-libs/libblockdev/libblockdev-2.22.ebuild index fe1a9b0b4e7a..043dd58c3e88 100644 --- a/sys-libs/libblockdev/libblockdev-2.22.ebuild +++ b/sys-libs/libblockdev/libblockdev-2.22.ebuild @@ -112,4 +112,9 @@ src_configure() { 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 } diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest index 7a400bc20591..226d6d3aae7c 100644 --- a/sys-libs/libcxx/Manifest +++ b/sys-libs/libcxx/Manifest @@ -2,9 +2,11 @@ AUX libcxx-3.9-cmake-link-flags.patch 1014 BLAKE2B 8e86059e00a5ebcd7a15288828766 DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9fafc01a594d7b11f63d10b6f88eca67a3cdf90b8055e410ede358d9be1f63fbe427f308e1337833447c0260d96e1c8 SHA512 c04f628b0924d76f035f615b59d19ce42dfc19c9a8eea4fe2b22a95cfe5a037ebdb30943fd741443939df5b4cf692bc1e51c840fefefbd134e3afbe2a75fe875 DIST libcxx-7.1.0.src.tar.xz 1638448 BLAKE2B eca192e03f839f4323e3c37beba2e6daaf935d4e784e0bc835a4d2c3ce0790f5539bdca0466feafd668d7c6675b11b7fe14d9adb680c46fd7b28b42a3b423219 SHA512 925ce5093445f84dc17d5b1610e4297ef3606b254b7350c50f88ba042fcca62125ffd97d21cb612707d5e9511267634ca1779619199f95ce819e5f5c0c2b55d5 DIST libcxx-8.0.0.src.tar.xz 1752308 BLAKE2B 1e8cd8c7100f5f8b943ba8f38b0b59a0fd5e5bea834953483a67502f67de3eb51eba4ed4be17cdb54406da4ad7ebc6fef33934c59db982afa55856ce9f1f46ff SHA512 2e0fcd3e78f7e15ea894e52c51351daef8e3a2aaf53b3df7497b11403d28f5269ff49a4674bacea1d565a5faa2b24502caaaeff9cd48518f0d141563d8f9cc03 +DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389ac014aa65b3391c870aa96ffd347784e6b70b953bd1ee8eba56554e0f78a723ab77b9dba5f85e6219e2b95ca50c160 SHA512 75749d08b2b343c6f5f9aefb04be63e42f6d12efc51101d3647ed6f70c7a6d050afb3ab2f3636eae78cb523f5844de67b960a7a3145ed89ab0c7015deb14921e +EBUILD libcxx-10.0.0.9999.ebuild 7061 BLAKE2B 5499f08cc6c6d5c5cef5d7f688211d8f7fbe763d0e95dfb041c73d2fe4d91f05bca6f82d5ac260b4f7e141630e37f14ba0b07104f58accac5bcc7d62b6e666a5 SHA512 8804e7c0fc2fe93d5d9a2d16388a0d136653838ce9ac19f575b439f8c22a1d0537542dc4ffb552723308709a555001409de35cd59f422752da75b02ddf346337 EBUILD libcxx-6.0.1.ebuild 6746 BLAKE2B 616128b9d49049ac6de90b84f89a48c7033f5927edc5e15674df5e3a2225630f59a99c8047c71d9128304d726241ceaa1cefabf8d44e4b2d6a491611f63bee88 SHA512 3df9e7e79b62893441212fe7baa51190ac69f0bf64332718ae53596a043dc3583b8125bbcf7339cca7cf9937aa870ea0d8b12670700962c1cb22892f706e3129 EBUILD libcxx-7.1.0.ebuild 6747 BLAKE2B 437a08ee7854b3d398c55e20ff790deca0d7c69e1050fc2ed0d0dc00f467c9c3ca3fcd9e4752898adc68c28c485091a016f6d22af202bedf2b2008e62f1b9a28 SHA512 e22930bc78ff7063b75982164effc559c2adcf25b2b126f31c15e51095cba0d14de839cf1265c6c154a7c89bc8d92de62f962946359731f7ecd5ac6f8cb6aa7b EBUILD libcxx-8.0.0.ebuild 6750 BLAKE2B 6e03588334d2af0c0ce2e02ff2e7a8f9f9817a494fc6445a4fecfb1381884eb4a92921d7b06d5c12f36795acac5f2ee90a3794665419e9bc6ed2bde99a4f7259 SHA512 4bc27a7e3974d83a661887ca32f414b1697f0470ba8d9505f1ea795537d252cd336feb8a8db71f456821b2d9f38613458af888f530663df78a371f7e1391d897 -EBUILD libcxx-8.0.9999.ebuild 7044 BLAKE2B 12185d3065a0cdecf4b6eb2c7eca5f70a2a1732214c77c4e695418ffe5bb39273342088fa4cba2504a411db8ecc8543d219a932d5f022383197df7d4b84b1e1e SHA512 57f565cb1652c53e08ba21776dcf1707061697937533c5e447bcff37cdf274f54525ff59112a1bf54a25d39477e20f0dc7dbdf4ad71846266c06a0002d1c0980 -EBUILD libcxx-9999.ebuild 7028 BLAKE2B f8b7774790355f19f191c2c93ccb8343350e891f9d9705c27ab1625d47003b02357962f15e3d1186a02af8188e1d2d2d44b1e2f1bd1977c69aa3b5794c0e6b52 SHA512 7d4d904848cc9ff16135db6d77714261860295630ac3197a321ae122221d2ba0828db37856d01e850b273b4b9ffbfd926f320b0391482574db462516199ac0d5 +EBUILD libcxx-8.0.1.ebuild 6789 BLAKE2B de37835ae850bbebef3cb114f51db6af7e04fa76c3209b7a96e8c1ffc1928566e9ee5f11a150d26f16fe2d66440b872dde850771e1b1ed88f0f5095677baf037 SHA512 cc20b84c1d1061dc43713ca71e80c45c9ce3ea8a9212009c98524c467be60e85c96509896c835ed92a6b146e14061c5d018620f5ee6ca0e195d65c5e62ac85da +EBUILD libcxx-9.0.0.9999.ebuild 7086 BLAKE2B bd797a16b37cd355c43d1d0a7de31c5bddf8d7be09559f05dfa4afbdcd3b7aec3be7e7ddc4a77590bf6c34feb7e4541a0bf46f96b4515cda357ce7a94ed073f4 SHA512 819d74ba3023d99186f0e0d9906d581a9187c8ccc1bf8ad9211f77eafe5c6a38a5468fee4a8f5174cb66c2a4041d4be4925caa0ee772af9ac2c8a96fd459c20e MISC metadata.xml 854 BLAKE2B f731ffbb07722face32cfe5ef0576c572fc45d93e8d78ec4adb46c43b95999dc4eb48f20311517fe08a397f2e5dec56c530bb6787a058358cfd1af8d79ffad90 SHA512 8ef3feab266e09442a42baced2d72667fa8b1290624c2c84bab7b173ead72669568847f6e995388fc1d7bc722381f60805d87b2a0cc2d04ae0c49e36bec3802a diff --git a/sys-libs/libcxx/libcxx-8.0.9999.ebuild b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild index 523cba0073ef..7f4a5523bd2d 100644 --- a/sys-libs/libcxx/libcxx-8.0.9999.ebuild +++ b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild @@ -1,7 +1,7 @@ # Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=7 # Ninja provides better scalability and cleaner verbose output, and is used # throughout all LLVM projects. @@ -10,8 +10,7 @@ EAPI=6 CMAKE_MIN_VERSION=3.7.0-r1 EGIT_REPO_URI="https://git.llvm.org/git/libcxx.git https://github.com/llvm-mirror/libcxx.git" -EGIT_BRANCH="release_80" -PYTHON_COMPAT=( python2_7 ) +PYTHON_COMPAT=( python{2_7,3_{5,6,7}} ) [[ ${PV} == *9999 ]] && SCM="git-r3" || SCM="" @@ -167,6 +166,7 @@ multilib_src_configure() { } multilib_src_test() { + local -x LIT_PRESERVES_TMP=1 cmake-utils_src_make check-libcxx } diff --git a/sys-libs/libcxx/libcxx-8.0.1.ebuild b/sys-libs/libcxx/libcxx-8.0.1.ebuild new file mode 100644 index 000000000000..cf4bd1b3b354 --- /dev/null +++ b/sys-libs/libcxx/libcxx-8.0.1.ebuild @@ -0,0 +1,216 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +# Ninja provides better scalability and cleaner verbose output, and is used +# throughout all LLVM projects. +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +PYTHON_COMPAT=( python2_7 ) + +inherit cmake-multilib llvm multiprocessing python-any-r1 \ + toolchain-funcs + +MY_P=${P}.src +DESCRIPTION="New implementation of the C++ standard library, targeting C++11" +HOMEPAGE="https://libcxx.llvm.org/" +SRC_URI="https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/${MY_P}.tar.xz" + +LICENSE="|| ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-fbsd" +IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test" +REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) ) + ?? ( libcxxabi libcxxrt )" +RESTRICT="!test? ( test )" + +RDEPEND=" + libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] ) + libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] ) + !libcxxabi? ( !libcxxrt? ( >=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} + test? ( >=sys-devel/clang-3.9.0 + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') ) + app-arch/xz-utils + >=sys-devel/llvm-6" + +S=${WORKDIR}/${MY_P} + +DOCS=( CREDITS.TXT ) + +PATCHES=( + # Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a + # out-of-tree build. + "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch" +) + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + llvm_pkg_setup + use test && python-any-r1_pkg_setup + + if ! use libcxxabi && ! use libcxxrt && ! 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 + if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then + eerror "${PN} needs to be built with gcc-4.7 or later (or other" + eerror "conformant compilers). Please use gcc-config to switch to" + eerror "gcc-4.7 or later version." + 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" + elif use libcxxrt; then + cxxabi=libcxxrt + cxxabi_incs="${EPREFIX}/usr/include/libcxxrt" + 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 + 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 + extra_libs+=( "${compiler_rt}" ) + fi + fi + 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) + -DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}" + ) + + if use test; then + local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) + local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")} + + [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" + + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}" + ) + fi + cmake-utils_src_configure +} + +multilib_src_test() { + cmake-utils_src_make check-libcxx +} + +# 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" "$(usex libcxxrt "libcxxrt.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" "$(usex libcxxrt "libcxxrt.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-utils_src_install + gen_shared_ldscript + use static-libs && gen_static_ldscript +} + +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-9999.ebuild b/sys-libs/libcxx/libcxx-9.0.0.9999.ebuild index 06a570bb8c0f..7e08263cf4bc 100644 --- a/sys-libs/libcxx/libcxx-9999.ebuild +++ b/sys-libs/libcxx/libcxx-9.0.0.9999.ebuild @@ -1,7 +1,7 @@ # Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=7 # Ninja provides better scalability and cleaner verbose output, and is used # throughout all LLVM projects. @@ -10,16 +10,17 @@ EAPI=6 CMAKE_MIN_VERSION=3.7.0-r1 EGIT_REPO_URI="https://git.llvm.org/git/libcxx.git https://github.com/llvm-mirror/libcxx.git" +EGIT_BRANCH="release_90" PYTHON_COMPAT=( python{2_7,3_{5,6,7}} ) -[[ ${PV} == 9999 ]] && SCM="git-r3" || SCM="" +[[ ${PV} == *9999 ]] && SCM="git-r3" || SCM="" inherit ${SCM} cmake-multilib llvm multiprocessing python-any-r1 \ toolchain-funcs DESCRIPTION="New implementation of the C++ standard library, targeting C++11" HOMEPAGE="https://libcxx.llvm.org/" -if [[ ${PV} != 9999 ]] ; then +if [[ ${PV} != *9999 ]] ; then SRC_URI="https://llvm.org/releases/${PV}/${P}.src.tar.xz" S="${WORKDIR}/${P}.src" else @@ -28,7 +29,7 @@ fi LICENSE="|| ( UoI-NCSA MIT )" SLOT="0" -if [[ ${PV} != 9999 ]] ; then +if [[ ${PV} != *9999 ]] ; then KEYWORDS="~amd64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux" else KEYWORDS="" @@ -166,6 +167,7 @@ multilib_src_configure() { } multilib_src_test() { + local -x LIT_PRESERVES_TMP=1 cmake-utils_src_make check-libcxx } diff --git a/sys-libs/libcxxabi/Manifest b/sys-libs/libcxxabi/Manifest index 5bc4307da37c..11a73614b2ea 100644 --- a/sys-libs/libcxxabi/Manifest +++ b/sys-libs/libcxxabi/Manifest @@ -1,12 +1,15 @@ DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9fafc01a594d7b11f63d10b6f88eca67a3cdf90b8055e410ede358d9be1f63fbe427f308e1337833447c0260d96e1c8 SHA512 c04f628b0924d76f035f615b59d19ce42dfc19c9a8eea4fe2b22a95cfe5a037ebdb30943fd741443939df5b4cf692bc1e51c840fefefbd134e3afbe2a75fe875 DIST libcxx-7.1.0.src.tar.xz 1638448 BLAKE2B eca192e03f839f4323e3c37beba2e6daaf935d4e784e0bc835a4d2c3ce0790f5539bdca0466feafd668d7c6675b11b7fe14d9adb680c46fd7b28b42a3b423219 SHA512 925ce5093445f84dc17d5b1610e4297ef3606b254b7350c50f88ba042fcca62125ffd97d21cb612707d5e9511267634ca1779619199f95ce819e5f5c0c2b55d5 DIST libcxx-8.0.0.src.tar.xz 1752308 BLAKE2B 1e8cd8c7100f5f8b943ba8f38b0b59a0fd5e5bea834953483a67502f67de3eb51eba4ed4be17cdb54406da4ad7ebc6fef33934c59db982afa55856ce9f1f46ff SHA512 2e0fcd3e78f7e15ea894e52c51351daef8e3a2aaf53b3df7497b11403d28f5269ff49a4674bacea1d565a5faa2b24502caaaeff9cd48518f0d141563d8f9cc03 +DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389ac014aa65b3391c870aa96ffd347784e6b70b953bd1ee8eba56554e0f78a723ab77b9dba5f85e6219e2b95ca50c160 SHA512 75749d08b2b343c6f5f9aefb04be63e42f6d12efc51101d3647ed6f70c7a6d050afb3ab2f3636eae78cb523f5844de67b960a7a3145ed89ab0c7015deb14921e DIST libcxxabi-6.0.1.src.tar.xz 528356 BLAKE2B b301b750b2928864d3fc51e66cf91aab6837636ec2bce706b9a97296ec96af4bd2e80b1bf80c9b4afe449335ee12bbdd1905433c27e1770e16bc306baf206927 SHA512 bbb4c7b412e295cb735f637df48a83093eef45ed5444f7766790b4b047f75fd5fd634d8f3a8ac33a5c1407bd16fd450ba113f60a9bcc1d0a911fe0c54e9c81f2 DIST libcxxabi-7.1.0.src.tar.xz 535180 BLAKE2B aa5952e3ca80f7ce2a0a79f3eaf3852234e23a8445a2539374bedb188aba7d973763a6c0d7cc7700070d942555250f87c3c9efb504bb731985be033d47b79b44 SHA512 629ef641ab5aba28ea7171efbad806f1f0464eee2d04f8903014a4f82c03f2c6513defbbe5489b2c6fd624270fe8efbad97a40e56958f8f38a4f5516a16dd102 DIST libcxxabi-8.0.0.src.tar.xz 539040 BLAKE2B 847d848e4ed66212789c50137e9556abed601ab4f30765b8b4453f0bc2609e2d1ef516b2f504ee2331a53706940b814545423da05392aed24bf290e6757b52f6 SHA512 9ee2e6d5899529be45b2e5edc395606fa9040d25789b3da1ae0182113626e7624cbb071eae525c478293a7b371876e41614348ee5808f90f3f9c7b08837e1055 +DIST libcxxabi-8.0.1.src.tar.xz 538356 BLAKE2B 52328c5890c9b9271877b953be30cc39be4758101e6b91ee45f06c81e960089523e80b83eb5c354336e4e0a140f7554640acf7b2d4fa619113f705108a314418 SHA512 577cfcb04ebb29ee84d35ed31aa8fecb28fc74b07ef7ff298f0fe2d440f823def73e092359c41d8d8600e6df18f55224ed89674d403c5ae56a7d7973487b8734 +EBUILD libcxxabi-10.0.0.9999.ebuild 3302 BLAKE2B 87a6867a94f067a1172737969d6ab747c8b614a553a60e648003b9a8bb455d707adc93faae0a31f42e29615822204b6f84cfd1d6cfbd7ce9b191900b3e281649 SHA512 f82c3ee394d31b76cd342b7e0443da0b0124ce927a927f537cbeab9e37831cdc8bc6da6bac9281523b4e1b4718050bb3e96c5b0943c6c93aa41c8670321cc1b9 EBUILD libcxxabi-6.0.1.ebuild 3172 BLAKE2B 0078aa6ca753285439a17dea5af0c66a991a1844b7bd487c0f51b95d9c8007a4d077515d3282cea8a044692a3d14f869f2b651bed3a7ba5e6acd20629bfd2e5b SHA512 b1168935e250e2a83356061456bef94635a1bb797abeb725f201298de3f6c90e285714799de4d79f30bd33f2a9ad9cfbdad2f4339100023485aee4554c36c133 EBUILD libcxxabi-7.1.0.ebuild 3173 BLAKE2B 48dda73d243e18c4591910d0f8900b0fc75eacf229f1eb11b9c402897f46a03e89bae5330daffe80a994d526fc612db237d104d9a3c69cef2c910bfb705069cc SHA512 a028cb4cd4381fea4cd487fa44a33bdbd604badfbe8c7e8452c4b19255ef672d11a415ddc4cf087ce19235cea0eac4e479bfb3d3e5d764aa431677d31683a37d EBUILD libcxxabi-8.0.0.ebuild 3176 BLAKE2B 709c55c2aedd2490ef6a982f41fa0b3977c1109ef480aba56cbfd248c40027349daa0dd477adefd5c37b8dbac8485cb8ab3c470e440b4be050ff52c0815bd59c SHA512 76237682c5e3d09cd259a03184fc35def96a90ac2bf42efe869be7d2f2ebdde05dca1e9f2efb5a08a41e7b461d4bbcb5dacd2d1ff8d3128ae65a1dfb2683f92f -EBUILD libcxxabi-8.0.9999.ebuild 3285 BLAKE2B 3b5ee2037761fcb1a9c90ca11f7e4d371622ec95e468b0fba6545df8c6eb6482f5ca2c5a8d46671ee7219fd99c2a729e0667939170f26ee5f4735cdf59010b66 SHA512 c45db120d7713fe9763da17cdaf2401da3c7d639bb2041fe9b5802667ae240e444c971b9914712be5eff740729b47d65b8d8f7079e4d12ec98eb8a0203220a05 -EBUILD libcxxabi-9999.ebuild 3272 BLAKE2B 885650bd3fbe87762916e5c0ad14c3f7cf28c3ef75b77e601f5e589c89176ac4610c3905085b8cf68349dd4f22ca48ed828f48b2d73f553cf76cbc90f80341f9 SHA512 8808d7a48f8a231ad438eac44cb3599ae7f6f294c12100891442b7cc46c37257c5d2b6407440236fd9620c40f25439b085f7cc5ed1622f2b7d9fefadda66c44f +EBUILD libcxxabi-8.0.1.ebuild 3242 BLAKE2B ed19bb64b100dc6a1878a3ace19ee8a44c29402d08c41b37bd7639efb83190ba2dea56b39a50d9bf3be7d8eeb4c80b8ba71404d35593b731c157a50f06259a4c SHA512 2795ce4983faea958c8ce7c439b0d093fb267ed9884697a1a416bf2b918a31b593ab7e5a295bb3fbec8a6259168c40054c352cc2be327e9c900ae44426816f9e +EBUILD libcxxabi-9.0.0.9999.ebuild 3327 BLAKE2B 2fcf53bd1c3ad67ffe31e315dc88bba12bd78d4837160672afabaa0f228792bf60699a3a9b83f4992ccd28b8f91018908ea5b339a32b08d056260f818e6335ea SHA512 37fc99829d0c0f2f65b72727fc1eecb50af2ce96532dad2e80b65017f2ced9a913d897f5019ddd8944c901fb5b54122ea7c2f63a9d9d2f1c711148047a2accb8 MISC metadata.xml 350 BLAKE2B 67b70b8d7292327882a845b76667ce24fee728cd84f27ed7e329bc7963631cba4c28bafce5e6a5fefb4ba1df5c7fd572b3b0d7a2b31ef649496f2f991b691bff SHA512 317dd7b59a711dd0461b5369f7e31ea196882b018e047e1dbae8077274d06cb68542c8762efb852cce0b8021bedea69c19aa0c124b9414a36cf1a9c00e0b9703 diff --git a/sys-libs/libcxxabi/libcxxabi-9999.ebuild b/sys-libs/libcxxabi/libcxxabi-10.0.0.9999.ebuild index 9f28d04485ed..8d9edb349346 100644 --- a/sys-libs/libcxxabi/libcxxabi-9999.ebuild +++ b/sys-libs/libcxxabi/libcxxabi-10.0.0.9999.ebuild @@ -1,7 +1,7 @@ # Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=7 : ${CMAKE_MAKEFILE_GENERATOR:=ninja} # (needed due to CMAKE_BUILD_TYPE != Gentoo) @@ -112,6 +112,7 @@ multilib_src_test() { build_libcxx mv "${BUILD_DIR}"/libcxx/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die + local -x LIT_PRESERVES_TMP=1 cmake-utils_src_make check-libcxxabi } diff --git a/sys-libs/libcxxabi/libcxxabi-8.0.1.ebuild b/sys-libs/libcxxabi/libcxxabi-8.0.1.ebuild new file mode 100644 index 000000000000..9a5bef364e69 --- /dev/null +++ b/sys-libs/libcxxabi/libcxxabi-8.0.1.ebuild @@ -0,0 +1,119 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +PYTHON_COMPAT=( python2_7 ) + +inherit cmake-multilib llvm multiprocessing python-any-r1 + +MY_P=${P/_/}.src +LIBCXX_P=libcxx-${PV/_/}.src + +DESCRIPTION="Low level support for a standard C++ library" +HOMEPAGE="https://libcxxabi.llvm.org/" +SRC_URI="https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/${MY_P}.tar.xz + https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/${LIBCXX_P}.tar.xz" + +LICENSE="|| ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-fbsd" +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 + test? ( >=sys-devel/clang-3.9.0 + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )" + +S=${WORKDIR}/${MY_P} + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + llvm_pkg_setup + use test && python-any-r1_pkg_setup +} + +src_unpack() { + default + mv "${LIBCXX_P}" libcxx || die +} + +multilib_src_configure() { + 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_LIBCXX_INCLUDES="${WORKDIR}"/libcxx/include + # 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) + local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")} + + [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" + + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}" + ) + fi + cmake-utils_src_configure +} + +build_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=ON + -DLIBCXX_ENABLE_STATIC=OFF + -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 + ) + + cmake-utils_src_configure + cmake-utils_src_compile +} + +multilib_src_test() { + # build a local copy of libc++ for testing to avoid circular dep + build_libcxx + mv "${BUILD_DIR}"/libcxx/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die + + cmake-utils_src_make check-libcxxabi +} + +multilib_src_install_all() { + insinto /usr/include/libcxxabi + doins -r include/. +} diff --git a/sys-libs/libcxxabi/libcxxabi-8.0.9999.ebuild b/sys-libs/libcxxabi/libcxxabi-9.0.0.9999.ebuild index d97e01f1e829..707e39ff257e 100644 --- a/sys-libs/libcxxabi/libcxxabi-8.0.9999.ebuild +++ b/sys-libs/libcxxabi/libcxxabi-9.0.0.9999.ebuild @@ -1,12 +1,12 @@ # Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=7 : ${CMAKE_MAKEFILE_GENERATOR:=ninja} # (needed due to CMAKE_BUILD_TYPE != Gentoo) CMAKE_MIN_VERSION=3.7.0-r1 -PYTHON_COMPAT=( python2_7 ) +PYTHON_COMPAT=( python{2_7,3_{5,6,7}} ) inherit cmake-multilib git-r3 llvm multiprocessing python-any-r1 @@ -15,7 +15,7 @@ HOMEPAGE="https://libcxxabi.llvm.org/" SRC_URI="" EGIT_REPO_URI="https://git.llvm.org/git/libcxxabi.git https://github.com/llvm-mirror/libcxxabi.git" -EGIT_BRANCH="release_80" +EGIT_BRANCH="release_90" LICENSE="|| ( UoI-NCSA MIT )" SLOT="0" @@ -93,8 +93,8 @@ build_libcxx() { local BUILD_DIR=${BUILD_DIR}/libcxx local mycmakeargs=( -DLIBCXX_LIBDIR_SUFFIX= - -DLIBCXX_ENABLE_SHARED=ON - -DLIBCXX_ENABLE_STATIC=OFF + -DLIBCXX_ENABLE_SHARED=OFF + -DLIBCXX_ENABLE_STATIC=ON -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF -DLIBCXX_CXX_ABI=libcxxabi -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${S}"/include @@ -113,6 +113,7 @@ multilib_src_test() { build_libcxx mv "${BUILD_DIR}"/libcxx/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die + local -x LIT_PRESERVES_TMP=1 cmake-utils_src_make check-libcxxabi } diff --git a/sys-libs/libomp/Manifest b/sys-libs/libomp/Manifest index 6ddc79b3369c..80e719be1fd1 100644 --- a/sys-libs/libomp/Manifest +++ b/sys-libs/libomp/Manifest @@ -1,9 +1,11 @@ DIST openmp-6.0.1.src.tar.xz 2048320 BLAKE2B 08b3a7051c985903f78331f55a1c6e928399b87c862c43c991e9bf78b66b6e412fc96f202b82c051176dbbe02422f8ceb7414f44ea8f3522f418e515c0f70c62 SHA512 abb956583e5d11d0c6f6d97183c081d658616a74933be884a591eaa3d8c4bb04f08f02016d2c86d7384c7ff1aa44fb949b0d967fc0ff50e3132aaba412e9add8 DIST openmp-7.1.0.src.tar.xz 909320 BLAKE2B 7a5fd4374992b7c440ff27917c0af6a2ec64aaeb2fda645f75b5affd4981e3ceef7f15cba61c37934c5b35be543af315cc4bff2937545fbf5eaa6593f1aa8b83 SHA512 57f18beede401c1c39766e13a03b52083a0f7b437758069f66b73d6d1388dc51e48c34b0a7ecd3552244fd35e2db57388642588febef413c161f5c5411ab1e5d DIST openmp-8.0.0.src.tar.xz 934384 BLAKE2B f473fad9e8bcab1ad0c6ffab7cee471065d615947964177194f829847d41e726fb435562f1637f2a65d3ae84e01a8077662de047443f33d089948e2efb58906c SHA512 0fff071c9dbf118bc1908e433d6ce571f47a4f2dbc5bf2d843151889e3414473bb5a9c97dc0b6dc6d1bd9ab0c6e365cae625f97d1b11d5d6ae059fa5a0496cb3 +DIST openmp-8.0.1.src.tar.xz 933320 BLAKE2B 02a7bf70cd3a217845ef1c5a35e0d7dbfbb39069a9029d462c797b5ddf2240fd627dee55856146ca4bb81622a41f31ecd11e0ed66baf3b7d99447087271991b0 SHA512 9ded785c8129e7b3a70b54f07c4dde529456edcc94904ad77fc578cf7f096cfa3ff2279959d7f7f1db51571e11c53375f33b597c7f36ce6dc6b512c44ced8026 +EBUILD libomp-10.0.0.9999.ebuild 3218 BLAKE2B 5fe6b1be53f17c8b1b2dbf241dfa13f4e588be21e18189138bdb6e8ae210c2ca3f29a1bcaff031778ec0d10386ce31749f8571a62e2720096d5288170114422c SHA512 8d7e9091ce73351d6cc53d4f73de1fe0e698983b091e66cbf623f0260d77416e1a525ec3ed17d86138bad489fa4409edc2ea8ec72b22d7bf2c3190cc53f8bcc8 EBUILD libomp-6.0.1-r1.ebuild 3261 BLAKE2B dc43e11cbd716285018a3857b33378715338350269cbfee3292c44ebb0d10584ea1f505962c34fc9c5a58771d6abb52f444467e79834e9a04d594c914af46a2f SHA512 eb901f8810fa552cad6d6510f54f30824a1d7f7931ccc1cf6bb02a2ed22a9e9af3d924bfbc09921510d2972ac4ca36fb1df4d6b7d52342a346fb8b5cfa0ac436 EBUILD libomp-7.1.0.ebuild 3263 BLAKE2B c1ac92a7713abe0f53eb0cd60703bba001e99bd9d371af06b5ac595be438b6dbb9a2bd638026aab9c231c3cce032be487e25ba8d778afbc8220857341c910abc SHA512 554b946498e2699bbdcd99f313b03b23b78494adc1dd06ea4540b68304a58c8f25b2c619313ea5fc76be089f63fd7bd7e8e9bd2d95297342cc8b95a69aaa794f EBUILD libomp-8.0.0.ebuild 3266 BLAKE2B 8cd6a5dfac53b82e0a92d647ae9b453a664f5b5fa8156c8185ccecf394f313ae826e29634b14126a53ce36498c485b658b36141ddd5895635437b59beabea001 SHA512 6fb36d649ce586f638f0846e26d7346ae9faeae571b1e61b2509b810a04e899b63293653d6b3af51924cbd2c1477f359b8e004f57cedf20385698eb8657caef5 -EBUILD libomp-8.0.9999.ebuild 3231 BLAKE2B a859927c6a87bcba74998bbaf785965b2cbd269fa27a7cca32bb6abb0114151a02643321ce4bea7480020e115c94344c1e2552eb2d3ec50756b2b2e8c225ae08 SHA512 ce6d9b9552894b4e639f2f065dc22741d13faf0f4426fca1d7fe74a13702a677adf8795f4e3da059b8bb703bd1d8114f6b60245a20928d83f4332102c144f8c9 -EBUILD libomp-9999.ebuild 3209 BLAKE2B 6543c8c95b56a73aef5196ec81cc9662caa1d0ba0cafa72f4f99905522427c829d3c7d2c9b329e927543a48c01dab160444409324f9d4d689548e10346b2c52e SHA512 96f0583a74d08e58dac970c5b4f836208be2e92b42685b967bd7c4ebb65368f9406585d69d295db1a1b1952fdd3acdcb0a7a595fe25795e9cfee01055c72e705 +EBUILD libomp-8.0.1.ebuild 3297 BLAKE2B 558f0d747ad1cfb8e5f2e3436a20e8151eb53c72df550fac88675c6ff664127f009f55ab10b8b1d646e0a19454795df603d2c47b7c7c05b7b34de5a6c929785c SHA512 b4ef0557edd709b18fcfea3ee08fb19e48089e985daab2488936e1f8f63ea42b8de993c8a23b5c51a9c54385f0b87a56ccefd47b43eaa9c53d2ca5d6f0df034c +EBUILD libomp-9.0.0.9999.ebuild 3243 BLAKE2B 13b8cde7fb599695f1df84715156b2e4110defe0d91cdda068b6b9bbf266ba4a27fb805c0fe7852cdaefd5f9c379ae77c1b658a00acf41fd09bc96073b69f46b SHA512 e992391862c56ae6c21da31ee2e439913000562caa4422047c8f5546f72fce0d568d067afd15a3e583e274608b6e33c596a5cf950c7c70c648782ad76e896bd0 MISC metadata.xml 825 BLAKE2B 07802144018f2f74b0927b53a346f99cbc7e36dbf501bb8dfc786f8d549c10eb688afafb1759f13d4d56d10f1bcae67dfa86cc2047cc39a9655a09a22e9a4260 SHA512 de43d5be94a5ea1cdfd3ae747d55b50d5d6ee577743f55d006d585d2d5acd5b3100845486ac415685f07361cd9985bae9347fff9c65417d198c49a61b4f6ba5e diff --git a/sys-libs/libomp/libomp-8.0.9999.ebuild b/sys-libs/libomp/libomp-10.0.0.9999.ebuild index 6b3a7bf36aaf..9a293c825b66 100644 --- a/sys-libs/libomp/libomp-8.0.9999.ebuild +++ b/sys-libs/libomp/libomp-10.0.0.9999.ebuild @@ -1,12 +1,12 @@ # Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=7 : ${CMAKE_MAKEFILE_GENERATOR:=ninja} # (needed due to CMAKE_BUILD_TYPE != Gentoo) CMAKE_MIN_VERSION=3.7.0-r1 -PYTHON_COMPAT=( python2_7 ) +PYTHON_COMPAT=( python{2_7,3_{5,6,7}} ) inherit cmake-multilib git-r3 linux-info multiprocessing python-any-r1 @@ -15,7 +15,6 @@ HOMEPAGE="https://openmp.llvm.org" SRC_URI="" EGIT_REPO_URI="https://git.llvm.org/git/openmp.git https://github.com/llvm-mirror/openmp.git" -EGIT_BRANCH="release_80" # Additional licenses: # - MIT-licensed Intel code, diff --git a/sys-libs/libomp/libomp-8.0.1.ebuild b/sys-libs/libomp/libomp-8.0.1.ebuild new file mode 100644 index 000000000000..9272c4a89352 --- /dev/null +++ b/sys-libs/libomp/libomp-8.0.1.ebuild @@ -0,0 +1,116 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +PYTHON_COMPAT=( python2_7 ) + +inherit cmake-multilib linux-info multiprocessing python-any-r1 + +MY_P=openmp-${PV}.src +DESCRIPTION="OpenMP runtime library for LLVM/clang compiler" +HOMEPAGE="https://openmp.llvm.org" +SRC_URI="https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/${MY_P}.tar.xz" + +# Additional licenses: +# - MIT-licensed Intel code, +# - LLVM Software Grant from Intel. + +LICENSE="|| ( UoI-NCSA MIT ) MIT LLVM-Grant" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-fbsd ~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 ) )" +RESTRICT="!test? ( test )" + +RDEPEND=" + hwloc? ( sys-apps/hwloc:0=[${MULTILIB_USEDEP}] ) + offload? ( + virtual/libelf:=[${MULTILIB_USEDEP}] + virtual/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} + dev-lang/perl + offload? ( virtual/pkgconfig[${MULTILIB_USEDEP}] ) + test? ( + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') + >=sys-devel/clang-6 + )" + +S=${WORKDIR}/${MY_P} + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +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="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}" + + -DOPENMP_TEST_C_COMPILER="$(type -P "${CHOST}-clang")" + -DOPENMP_TEST_CXX_COMPILER="$(type -P "${CHOST}-clang++")" + ) + cmake-utils_src_configure +} + +multilib_src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + + cmake-utils_src_make check-libomp +} diff --git a/sys-libs/libomp/libomp-9999.ebuild b/sys-libs/libomp/libomp-9.0.0.9999.ebuild index 4e3869d17d86..c74e74f9ae90 100644 --- a/sys-libs/libomp/libomp-9999.ebuild +++ b/sys-libs/libomp/libomp-9.0.0.9999.ebuild @@ -1,12 +1,12 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=7 : ${CMAKE_MAKEFILE_GENERATOR:=ninja} # (needed due to CMAKE_BUILD_TYPE != Gentoo) CMAKE_MIN_VERSION=3.7.0-r1 -PYTHON_COMPAT=( python2_7 ) +PYTHON_COMPAT=( python{2_7,3_{5,6,7}} ) inherit cmake-multilib git-r3 linux-info multiprocessing python-any-r1 @@ -15,6 +15,7 @@ HOMEPAGE="https://openmp.llvm.org" SRC_URI="" EGIT_REPO_URI="https://git.llvm.org/git/openmp.git https://github.com/llvm-mirror/openmp.git" +EGIT_BRANCH="release_90" # Additional licenses: # - MIT-licensed Intel code, diff --git a/sys-libs/llvm-libunwind/Manifest b/sys-libs/llvm-libunwind/Manifest index fd3f3255b5f4..a07830801116 100644 --- a/sys-libs/llvm-libunwind/Manifest +++ b/sys-libs/llvm-libunwind/Manifest @@ -1,15 +1,19 @@ DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9fafc01a594d7b11f63d10b6f88eca67a3cdf90b8055e410ede358d9be1f63fbe427f308e1337833447c0260d96e1c8 SHA512 c04f628b0924d76f035f615b59d19ce42dfc19c9a8eea4fe2b22a95cfe5a037ebdb30943fd741443939df5b4cf692bc1e51c840fefefbd134e3afbe2a75fe875 DIST libcxx-7.1.0.src.tar.xz 1638448 BLAKE2B eca192e03f839f4323e3c37beba2e6daaf935d4e784e0bc835a4d2c3ce0790f5539bdca0466feafd668d7c6675b11b7fe14d9adb680c46fd7b28b42a3b423219 SHA512 925ce5093445f84dc17d5b1610e4297ef3606b254b7350c50f88ba042fcca62125ffd97d21cb612707d5e9511267634ca1779619199f95ce819e5f5c0c2b55d5 DIST libcxx-8.0.0.src.tar.xz 1752308 BLAKE2B 1e8cd8c7100f5f8b943ba8f38b0b59a0fd5e5bea834953483a67502f67de3eb51eba4ed4be17cdb54406da4ad7ebc6fef33934c59db982afa55856ce9f1f46ff SHA512 2e0fcd3e78f7e15ea894e52c51351daef8e3a2aaf53b3df7497b11403d28f5269ff49a4674bacea1d565a5faa2b24502caaaeff9cd48518f0d141563d8f9cc03 +DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389ac014aa65b3391c870aa96ffd347784e6b70b953bd1ee8eba56554e0f78a723ab77b9dba5f85e6219e2b95ca50c160 SHA512 75749d08b2b343c6f5f9aefb04be63e42f6d12efc51101d3647ed6f70c7a6d050afb3ab2f3636eae78cb523f5844de67b960a7a3145ed89ab0c7015deb14921e DIST libcxxabi-6.0.1.src.tar.xz 528356 BLAKE2B b301b750b2928864d3fc51e66cf91aab6837636ec2bce706b9a97296ec96af4bd2e80b1bf80c9b4afe449335ee12bbdd1905433c27e1770e16bc306baf206927 SHA512 bbb4c7b412e295cb735f637df48a83093eef45ed5444f7766790b4b047f75fd5fd634d8f3a8ac33a5c1407bd16fd450ba113f60a9bcc1d0a911fe0c54e9c81f2 DIST libcxxabi-7.1.0.src.tar.xz 535180 BLAKE2B aa5952e3ca80f7ce2a0a79f3eaf3852234e23a8445a2539374bedb188aba7d973763a6c0d7cc7700070d942555250f87c3c9efb504bb731985be033d47b79b44 SHA512 629ef641ab5aba28ea7171efbad806f1f0464eee2d04f8903014a4f82c03f2c6513defbbe5489b2c6fd624270fe8efbad97a40e56958f8f38a4f5516a16dd102 DIST libcxxabi-8.0.0.src.tar.xz 539040 BLAKE2B 847d848e4ed66212789c50137e9556abed601ab4f30765b8b4453f0bc2609e2d1ef516b2f504ee2331a53706940b814545423da05392aed24bf290e6757b52f6 SHA512 9ee2e6d5899529be45b2e5edc395606fa9040d25789b3da1ae0182113626e7624cbb071eae525c478293a7b371876e41614348ee5808f90f3f9c7b08837e1055 +DIST libcxxabi-8.0.1.src.tar.xz 538356 BLAKE2B 52328c5890c9b9271877b953be30cc39be4758101e6b91ee45f06c81e960089523e80b83eb5c354336e4e0a140f7554640acf7b2d4fa619113f705108a314418 SHA512 577cfcb04ebb29ee84d35ed31aa8fecb28fc74b07ef7ff298f0fe2d440f823def73e092359c41d8d8600e6df18f55224ed89674d403c5ae56a7d7973487b8734 DIST libunwind-6.0.1.src.tar.xz 77036 BLAKE2B b6c293285896c8ff1f64bb56eee5a88b102b7ed9902d46436ee3cb79f204f230fd08a07d39c7fa9aeeddd093036f2bb9af38dd54268099ea9e51e12a71ff4adb SHA512 78568c28720abdd1f8471c462421df9965e05e1db048689d16ac85378716c4080ec1723af78e9f61d133b0ff82ac8c1f0dde7fd42d194485f62c1a17c02db37f DIST libunwind-7.1.0.src.tar.xz 79780 BLAKE2B 8f15dcf4a9c8cb45f17c72bf058eed13a6cd52842ee8630781c3104be77d9a868e241eafd34a31b23aeff18dc49743dd5a566ce4cb866a170f1d09899584e2dd SHA512 8ebfeb821013167e866986a2f9cc6459e43d82f73560a15ee7e0d604a974e1c656f824c9f7ccb47da4b4830ad9a99c663961bdf7642cd105e666b8a8fdf7d03c DIST libunwind-8.0.0.src.tar.xz 86484 BLAKE2B 74f52fbda056b98cb8a2af652270dc4404177be4fd24a3d030f43e908ef912b875f6471819d364d2ee00c6edbec78d25647f023830c6ddc1c032added1059582 SHA512 8c10e986b4123b6db9f010f053d9c67786fd739d0990146c481f7eaf69ae44fdbcb99dfad9b240b369c3f93be05dfeaf0bd977685360be94e2872ddb04019380 +DIST libunwind-8.0.1.src.tar.xz 87188 BLAKE2B 26f4d8ffbc8eb316e4e623280d6fe493e4c5c29489b90633c8215fe91349de7f7f0cfbfe8991ace11656d3782e13c7208b4a4adc04691746b4140187fba40043 SHA512 c115582ca879e215b97d24e4aa80696796383e79856cf26e40b4ddd6b255d598f9fa9867b30f0fd1691be770779835ac1d4b9a5e4a71424b18499b79ea37d060 +EBUILD llvm-libunwind-10.0.0.9999.ebuild 3886 BLAKE2B dc6e422515aa999cf428230e721025570eb6ba243ae88876bb45b91cfda14b0220d880fb548906d2b0b5d51d77c991b635be59b09ab555357585643b3c6ac428 SHA512 e1ad4acabe781ed3c38e0127688ef1b90954d8edde66400d33bba6655081be1150a9340e2f85e2d6677cd1c8a500820c1c1c346ada2504a0f9cf5611bcbc6f19 EBUILD llvm-libunwind-6.0.1.ebuild 3738 BLAKE2B 5c58eb49bac3d30643ea2d82f5e59add83fff5154ab335180778b3c7c9e7cf87b2423ee76401dd25a2fc89f5a492440236ad47328dcf05af87d4961c2c2f1761 SHA512 712fc6d98152c397f7436ffbccf62646ee53e14a5b9fc2c491b3c0d8dcfa40e81b16a4d9b7d5b1d81769282ead75d93994606fe6cf3ee08d80eaa5707f182d8e EBUILD llvm-libunwind-7.1.0.ebuild 3739 BLAKE2B 160c33fd885e26e19ad02304ee792cb26868e92bcce527246e726e5415c63c071cc72858d35bf4d03111d0e85756b744e00f4f0ec89523232e088d3342f61adb SHA512 260d39e26ae10d62261c2cd348ec487cdc8950997c04b73b3773482fb8f54cc5518dfff58943727892fb7ba57752e1bfe785b2b621c4f00f3bdcdd909ab266c8 EBUILD llvm-libunwind-8.0.0.ebuild 3742 BLAKE2B 2284e1919e3a6dfacafc424dd0c7cf43f1eb5810ca061096801867397b40989989c4ededb3aa60261046313df3064cece909a2f9343d2225e9e7e273c7a693e9 SHA512 69d4b2bcc157f2851a1b88ac0db3a18391b1e1bc8867f7725804133fd8b91cd128299c182c7d718c98cfb062d456d14181f9fd2885cb2c32e32bb3b96843728d -EBUILD llvm-libunwind-8.0.9999.ebuild 3878 BLAKE2B 1bb015cb550d1f63792424ff5e95d7d1ebd56063fa33bf959b6be28ccacc6cd04e3a18c503abd907c155c025c6456feffc946c64287df0b7f8003114e7cad788 SHA512 016df29600c1e700add6affa95c803e1dc2dbd2ba4cb086b3ae84251be82e3611251fc8d917c666ab43618b40a3a8424aea319a452481af6965745d3b37b3b86 -EBUILD llvm-libunwind-9999.ebuild 3856 BLAKE2B 68108179f0b27d90240c709b84f1769058749bbe10833bf7e9509c8919ddfc6d83b13f2a95001e58e18b73da2ca37b3cd598261986134f7932b6086894d7e271 SHA512 723f0e5d75bbfc74453129b85d2e5cb077b728a4e6f02dec8f3de09796f3cbb097d38cb114405ab8771b0ee932a3ab5c4215cce8d01478a300d3600d9f9bbdf0 +EBUILD llvm-libunwind-8.0.1.ebuild 3841 BLAKE2B d4d2346264a5bfc924ad9cef8bf55f5021074597a81278f175c40410fe3edefb5738e56eebeb82053aa325a7d0b2af545f057517af71420e8bceca2988b8921a SHA512 fe53dd13dd8db83812ff9b4ac91c8b486edde12b59449ca2259b3ca52997d31cac137bf57f05641d2e771f5566f83f6d809a88711e475320a7894f629c2abfdc +EBUILD llvm-libunwind-9.0.0.9999.ebuild 3911 BLAKE2B ffd6ed8ae0d3f3f125a250e2584387593fd950602857aae427fecd48dda01de318f724d9355d2d66a2f7ba7d67a9fe3e55339ca59438ce120b936ab7dcb8ad8b SHA512 1f57903cf4d18cb72ba41a1d65990fa4bea80a7ff0fec37b632ec68517d6f486a276de591bce7c7ee15ca325e705ec37d1189b579e84021ee1b6efc4542e10ae MISC metadata.xml 302 BLAKE2B 1cdee7813ed9a3766b2eddccd14f9e0576ba5cc7f812d7af4f35c8c2e5991790f3800c6473c37da90d72804832fd9af969a2e3bf7aa625f0d3a32da1dbcefacf SHA512 3afaef82e6a495a81e221524ae7604dc170ef5c103333728674faf0417c45ba7996118c10466eaa24f8feef9ed8f0fc60d535a5195462317d61c61a531c8a285 diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-9999.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-10.0.0.9999.ebuild index a5c5c542e433..e3d8317fde30 100644 --- a/sys-libs/llvm-libunwind/llvm-libunwind-9999.ebuild +++ b/sys-libs/llvm-libunwind/llvm-libunwind-10.0.0.9999.ebuild @@ -1,7 +1,7 @@ # Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=7 : ${CMAKE_MAKEFILE_GENERATOR:=ninja} # (needed due to CMAKE_BUILD_TYPE != Gentoo) @@ -134,6 +134,7 @@ multilib_src_test() { build_libcxx mv "${BUILD_DIR}"/libcxx*/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die + local -x LIT_PRESERVES_TMP=1 cmake-utils_src_make check-unwind } diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-8.0.1.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-8.0.1.ebuild new file mode 100644 index 000000000000..48723607244a --- /dev/null +++ b/sys-libs/llvm-libunwind/llvm-libunwind-8.0.1.ebuild @@ -0,0 +1,143 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +PYTHON_COMPAT=( python{2_7,3_5,3_6} ) +inherit cmake-multilib llvm multiprocessing python-any-r1 + +MY_P=libunwind-${PV/_/}.src +LIBCXX_P=libcxx-${PV/_/}.src +LIBCXXABI_P=libcxxabi-${PV/_/}.src + +DESCRIPTION="C++ runtime stack unwinder from LLVM" +HOMEPAGE="https://github.com/llvm-mirror/libunwind" +SRC_URI="https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/${MY_P}.tar.xz + test? ( + https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/${LIBCXX_P}.tar.xz + https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/${LIBCXXABI_P}.tar.xz )" + +LICENSE="|| ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-fbsd" +IUSE="debug +static-libs test" +RESTRICT="!test? ( test )" + +RDEPEND="!sys-libs/libunwind" +# llvm-6 for new lit options +DEPEND=" + >=sys-devel/llvm-6 + test? ( >=sys-devel/clang-3.9.0 + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )" + +S=${WORKDIR}/${MY_P} + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +src_unpack() { + default + + if use test; then + mv "${LIBCXX_P}" libcxx || die + mv "${LIBCXXABI_P}" libcxxabi || die + fi +} + +multilib_src_configure() { + local libdir=$(get_libdir) + + 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 + ) + if use test; then + local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) + local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")} + + [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" + + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}" + -DLIBUNWIND_LIBCXX_PATH="${WORKDIR}"/libcxx + ) + fi + + cmake-utils_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 + local mycmakeargs=( + -DLIBCXXABI_LIBDIR_SUFFIX= + -DLIBCXXABI_ENABLE_SHARED=ON + -DLIBCXXABI_ENABLE_STATIC=OFF + -DLIBCXXABI_USE_LLVM_UNWINDER=ON + -DLIBCXXABI_INCLUDE_TESTS=OFF + + -DLIBCXXABI_LIBCXX_INCLUDES="${WORKDIR}"/libcxx/include + -DLIBCXXABI_LIBUNWIND_INCLUDES="${S}"/include + ) + + cmake-utils_src_configure + cmake-utils_src_compile +} + +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 + local mycmakeargs=( + -DLIBCXX_LIBDIR_SUFFIX= + -DLIBCXX_ENABLE_SHARED=ON + -DLIBCXX_ENABLE_STATIC=OFF + -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 + ) + + cmake-utils_src_configure + cmake-utils_src_compile +} + +multilib_src_test() { + # build local copies of libc++ & libc++abi for testing to avoid + # circular deps + build_libcxxabi + build_libcxx + mv "${BUILD_DIR}"/libcxx*/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die + + cmake-utils_src_make check-unwind +} + +multilib_src_install() { + cmake-utils_src_install + + # install headers like sys-libs/libunwind + doheader "${S}"/include/*.h +} diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-8.0.9999.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-9.0.0.9999.ebuild index 2b6d844f64be..9534257bcc71 100644 --- a/sys-libs/llvm-libunwind/llvm-libunwind-8.0.9999.ebuild +++ b/sys-libs/llvm-libunwind/llvm-libunwind-9.0.0.9999.ebuild @@ -1,12 +1,12 @@ # Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=7 : ${CMAKE_MAKEFILE_GENERATOR:=ninja} # (needed due to CMAKE_BUILD_TYPE != Gentoo) CMAKE_MIN_VERSION=3.7.0-r1 -PYTHON_COMPAT=( python{2_7,3_5,3_6} ) +PYTHON_COMPAT=( python{2_7,3_{5,6,7}} ) inherit cmake-multilib git-r3 llvm multiprocessing python-any-r1 DESCRIPTION="C++ runtime stack unwinder from LLVM" @@ -14,7 +14,7 @@ HOMEPAGE="https://github.com/llvm-mirror/libunwind" SRC_URI="" EGIT_REPO_URI="https://git.llvm.org/git/libunwind.git https://github.com/llvm-mirror/libunwind.git" -EGIT_BRANCH="release_80" +EGIT_BRANCH="release_90" LICENSE="|| ( UoI-NCSA MIT )" SLOT="0" @@ -93,8 +93,8 @@ build_libcxxabi() { local BUILD_DIR=${BUILD_DIR}/libcxxabi local mycmakeargs=( -DLIBCXXABI_LIBDIR_SUFFIX= - -DLIBCXXABI_ENABLE_SHARED=ON - -DLIBCXXABI_ENABLE_STATIC=OFF + -DLIBCXXABI_ENABLE_SHARED=OFF + -DLIBCXXABI_ENABLE_STATIC=ONF -DLIBCXXABI_USE_LLVM_UNWINDER=ON -DLIBCXXABI_INCLUDE_TESTS=OFF @@ -112,8 +112,8 @@ build_libcxx() { local BUILD_DIR=${BUILD_DIR}/libcxx local mycmakeargs=( -DLIBCXX_LIBDIR_SUFFIX= - -DLIBCXX_ENABLE_SHARED=ON - -DLIBCXX_ENABLE_STATIC=OFF + -DLIBCXX_ENABLE_SHARED=OFF + -DLIBCXX_ENABLE_STATIC=ON -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF -DLIBCXXABI_USE_LLVM_UNWINDER=ON -DLIBCXX_CXX_ABI=libcxxabi @@ -135,6 +135,7 @@ multilib_src_test() { build_libcxx mv "${BUILD_DIR}"/libcxx*/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die + local -x LIT_PRESERVES_TMP=1 cmake-utils_src_make check-unwind } diff --git a/sys-libs/ncurses/Manifest b/sys-libs/ncurses/Manifest index 4288237ff6fb..b60a067747e9 100644 --- a/sys-libs/ncurses/Manifest +++ b/sys-libs/ncurses/Manifest @@ -6,18 +6,14 @@ AUX ncurses-5.9-no-I-usr-include.patch 1431 BLAKE2B 1dcc533936ba22fcb07a3ad42523 AUX ncurses-5.9-pkg-config.patch 1022 BLAKE2B dcaa045919e22eb174cb7c155ef05fa7c2c29d64eb586947f2afb243a13dfdc503460452be0f8075bc91b166d5b7f12ea34b39234d0832ef6bd432496932719f SHA512 a5578a4a6c2a334a77084da21d61d4a9edd7b82f027d7f54ed7be194ace5076fe86dc51ada916388feeb970255bf3bfbb09cd33072b1ef21de0dbaa5ee45fdf6 AUX ncurses-5.9-rxvt-unicode-9.15.patch 3804 BLAKE2B b88b028246c4177cac148837063b8dd76fa8dc215cb47ace2dd58b38eb8547273ac29930e2fe1c209bc8047462fe1319ac253955af445674410e21e8fe1c39b9 SHA512 82c0a9600f6ca8f36bbdce6f11a96906983fc9efd6b5f1e17134e12283e29b16d04f5e66c10edbcb7087cc4cb8fc23ddd065f9b6c8b0bf72ca684b68383e5131 AUX ncurses-6.0-cppflags-cross.patch 1240 BLAKE2B 56fbe4810c28e089a8ceb8fa8c983df744d40573b4fc2488d3f26f40ed77aba2d15da2a006e56217216740e26a295c9ab9c4be78df201514040376a986cf1b30 SHA512 db333b400ad23110bff80d86eca39e5656870caa06083b6d7098503fe34a46e387d207b135bf9aa9a0a1f2eca2a9b094f1d189ea8f8a17caaec4fc14b819fcc4 -AUX ncurses-6.0-gfbsd.patch 687 BLAKE2B 74ba99be6040287480e09e07c459651375ff1ce9473121e68f70f2cc42e6355f7aca1adf58e02e9d05c41af4f92985f03f2be985cc04d90b7dffc54287a6df93 SHA512 706425317e02448a31cdf1d66695292cb17b4cb174008218b0fe9e86ff4367fca5a80ad5eb017e06ad57f9bd75524e38c543618b5eeb6161c5baef15cb8d55ec AUX ncurses-6.0-pkg-config.patch 386 BLAKE2B 27a61878d45aa781291e18a2e18b8e861dd88f523083a54032511ceea2784b5020c500d0d277fe448381a969989d896ca32c46af35ad29f35dace97511dda9eb SHA512 8065f50a1d0b2ccd8c8d9b5b6bcf10b07351e2f5e51c17a825057235a63459839771ea249aac7fa50e09c7bacde5179a92f3efe587cf3cf6697ec663faf6caf3 AUX ncurses-6.0-rxvt-unicode-9.15.patch 3759 BLAKE2B 88e1b6145c5d1afa9d319fdf1bb70967705cc0460fb87cb3897d0e86678b065bc365573859d1cb96ac4209e61a4c43a84cd0cc3b86680e965e3bf404271354ef SHA512 5601446d34421453fb8ed0e7172b4a5230ab4f10a6ded27e6dc52f82f121cb0af510dfc8f60d9ba0d3b9a1d90a8a832c38e24256e394d8ffccbbf12a109e2da4 AUX ncurses-6.0-ticlib.patch 492 BLAKE2B df9e747a773b532aab42def40fa048a08ae4d02b83c78bfb5fd89b70b9b753534769c5c52a0d1adde7447cd25a286fc8b5d9f52f395c6287d7cd568f184242d7 SHA512 291ed033118673aed1bc5d3b54730d099dffccad7bbe9cb47275bb216125ef9016225eaccae620fa3b06533b7633061a8029e19c8cb9f73c3e30499f587353d6 -AUX ncurses-6.1-st07_terminfo_typo.patch 563 BLAKE2B e28c682c752e8e075691045217d14f88e5a1c5805c014e9b6ccc1d19179cc60dd04dea418a6d9d6302140a89c1977e47b6d9385c7192fdac6a26c9d2e2a33f69 SHA512 a81faa2c9450179324ba56c8cbf3bc5104fbfb2bb9108dfcd93a63fb3ce88c25cb5ab130a2e015816a1a2efa42c2fb3fb3b4b381517d45804efad997a36c8508 DIST ncurses-5.9.tar.gz 2826473 BLAKE2B 91101b049a5eb6a2674fb86b5eba56515207f490dc7a6348f3194bbc50649717a26aff7a0df64f67ca318b5f244455cd57e760c65b9e551f6ec65b8c035a6ae1 SHA512 d7c5e54b6d4d8b9211f0006ca8786f7609d180cc1aaebf4f25e7e35e12959779cf66447359a602daed625621ca32b0d910d67aef3eb8b6fdc3c373819a88faa1 DIST ncurses-6.1-20181020-patch.sh.bz2 361598 BLAKE2B e74f6b4e81c822ae500724ebe707031d3157190e96256656940241e4485fa3d96669e069e764cecc829d9fccccc11caaab8c68ae489b083ade4f286647ac74af SHA512 e54bf83cae5bae3ddb909b9bbe91f549b366a5c60b6274f6b27a3f28b5f9f1afe7263487db842f8cbc22a93e0ef17f0fd518a0585523116e192174f44423ae4a DIST ncurses-6.1-20190609-patch.sh.bz2 602174 BLAKE2B 38b1cb1f376b8fdfddc7cf9ed8e10190dd50fc2315f11eaf3a14c0299167c0e6bbd82a3684fa83d6e8fa6d2f02ea14e88ea065f8bb886905d85788bde13731c0 SHA512 efd009f5087a7b16413b94ce37ad19da0df8974be579b742d57bc64e034792ccf03b9967593a0ac5c90522ccfde4b6d23ef763d6fbeb91a5f327f8d7a0970872 DIST ncurses-6.1.tar.gz 3365395 BLAKE2B 1248a5088bc982d0880cb9550b1192457f6f624937c4b66807668c22a608002ba6c38d876986f2c2b9ee46f91d087c88bc0b19920733e4c7ca0ed8e92d9d47de SHA512 e308af43f8b7e01e98a55f4f6c4ee4d1c39ce09d95399fa555b3f0cdf5fd0db0f4c4d820b4af78a63f6cf6d8627587114a40af48cfc066134b600520808a77ee EBUILD ncurses-5.9-r101.ebuild 5287 BLAKE2B 7429e04203c35510eec381f3ac1fe28292b191c1b0d3f37d467e97b90c3d53d03a564745a1cafbb6a6032a895af7cc4e172afd9d91ac9315463786f545117e47 SHA512 98daead57237d72df9450e95d75f25949cb0056973e29801f06bb6352e66b3e9d94212c555a72e6fbef66fa778a74acc2c2a5a9027bfda719593acb062356df6 -EBUILD ncurses-6.1-r2.ebuild 8797 BLAKE2B dae0dfb2c40e322ed2f5ff572684b5b6f6df115b1f17e3798a7bcf102cf4fb99742829fd3ff6c6778a42a531a1ec4a819cd0118b3f6ee4a33738e43fd273d3c7 SHA512 a9cec9d350f7b46a10919b4854b9b9725ff1a7ecbd368bab31d207cb2ef52a674fe12a1417b0b56b8343bfbbbdc4c502cd6747eb8b2e12b7393c560c26690199 -EBUILD ncurses-6.1-r3.ebuild 9214 BLAKE2B 1767897a38e92115abd681c5ee97002b37cbe6e2a1fe758db31bb6f35d7de73046179d350c4133e964db3fecf348f6e8677eef3f7f18771ec6e3aa45ec69472f SHA512 6556c3ccaebedb6b6fd04a5b6a8156babe241f12410730861e0513f7e71b50db14dab26bda48f9fe6f5f1ae6108da7c80cd06b45fd33176b65bd3027b9dc678c -EBUILD ncurses-6.1_p20181020.ebuild 9293 BLAKE2B 925c0e2101e2fc45735f0f11c41868f725d62234e5da27d8d7c319681f41047a48cae79811b55bea3ce60663756f9612c8a7508365be5b4582eb652240adea47 SHA512 d6a0dffb8c3db21900f1e889680c6f24e7b7d9376678aa2a371ae60022296ff5fe4f02e4829bae6b6a4acfdb775b3372869564a6c48f0b34522e265411ecc807 +EBUILD ncurses-6.1_p20181020.ebuild 9288 BLAKE2B 5e37b4794b93a896942a7cd2510e1696128bf4b3d9f84be6016a1aaacc6a9a1c9fef134c4ec2812541720863dab20fa303582eb3ad3a41dd55b4da7cb261c9d4 SHA512 07fccd57e13ef6732a69c0bc1865b8f6d446097f919fde7d830469867cc15f791e4692f2b051a9b37cc39fd1d9f2d5234855404242ecd284b5f5a8f75573a612 EBUILD ncurses-6.1_p20190609.ebuild 9497 BLAKE2B 7e273a1ebb12f343e92e822cc72d944aeeb10deb356de599d2e3141454ec443445ac21812e185e2e67bbd659baf037ef0f2c17063eff5643d661416039a6e066 SHA512 63e9874446bf271fa3341f707c76a5eb06f4c7388e788a24666e2605ea1f7a0f42dd58a4f6ca735c107fb43558d279dde58009dd049277f9e2c377ead2df9254 MISC metadata.xml 619 BLAKE2B a5b29f22ce491bf7a308673944651ea9d916a6d487a45a2a7ee4a7e8d33f7b3bd398e3edeb830f0b443cb4524c0b73af4d6e1511e8128289a76666acd931d611 SHA512 3f28fd8aee675226f641d72d7437edf4c5840cdac3dca64b6a4c61902d4f4127d86f65acfefb270cba2fcfb0ba9d6ff9d3ca24930825b89c82f0eedc8160f9ef diff --git a/sys-libs/ncurses/files/ncurses-6.0-gfbsd.patch b/sys-libs/ncurses/files/ncurses-6.0-gfbsd.patch deleted file mode 100644 index 1403a29c933c..000000000000 --- a/sys-libs/ncurses/files/ncurses-6.0-gfbsd.patch +++ /dev/null @@ -1,24 +0,0 @@ -we'll hijack the freebsd* case that comes later - ---- ncurses-6.0/aclocal.m4 -+++ ncurses-6.0/aclocal.m4 -@@ -5711,7 +5711,7 @@ - fi - cf_cv_rm_so_locs=yes - ;; -- (linux*|gnu*|k*bsd*-gnu) -+ (linux*|gnu*|k*bsd*-gnu|freebsd*|dragonfly*) - if test "$DFT_LWR_MODEL" = "shared" ; then - LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)" - LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" ---- ncurses-6.0/configure -+++ ncurses-6.0/configure -@@ -6188,7 +6188,7 @@ - fi - cf_cv_rm_so_locs=yes - ;; -- (linux*|gnu*|k*bsd*-gnu) -+ (linux*|gnu*|k*bsd*-gnu|freebsd*|dragonfly*) - if test "$DFT_LWR_MODEL" = "shared" ; then - LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)" - LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" diff --git a/sys-libs/ncurses/files/ncurses-6.1-st07_terminfo_typo.patch b/sys-libs/ncurses/files/ncurses-6.1-st07_terminfo_typo.patch deleted file mode 100644 index 4532d648a64e..000000000000 --- a/sys-libs/ncurses/files/ncurses-6.1-st07_terminfo_typo.patch +++ /dev/null @@ -1,14 +0,0 @@ -https://github.com/tmux/tmux/issues/1264 -https://bugs.gentoo.org/651494 - ---- ncurses-6.1/misc/terminfo.src -+++ ncurses-6.1/misc/terminfo.src -@@ -6260,7 +6260,7 @@ - %=%t3%e%p1%d%;m, - sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%| - %t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m, -- Ss=\E]52;%p1%s;%p2%s\007, kDN3=\E[1;3B, kDN5=\E[1;5B, -+ Ms=\E]52;%p1%s;%p2%s\007, kDN3=\E[1;3B, kDN5=\E[1;5B, - kLFT3=\E[1;3D, kLFT5=\E[1;5D, kNXT3=\E[6;3~, - kNXT5=\E[6;5~, kPRV3=\E[5;3~, kPRV5=\E[5;5~, - kRIT3=\E[1;3C, kRIT5=\E[1;5C, kUP3=\E[1;3A, kUP5=\E[1;5A, diff --git a/sys-libs/ncurses/ncurses-6.1-r2.ebuild b/sys-libs/ncurses/ncurses-6.1-r2.ebuild deleted file mode 100644 index 85d9d9203ceb..000000000000 --- a/sys-libs/ncurses/ncurses-6.1-r2.ebuild +++ /dev/null @@ -1,295 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit flag-o-matic toolchain-funcs multilib-minimal preserve-libs usr-ldscript - -MY_PV=${PV:0:3} -PV_SNAP=${PV:4} -MY_P=${PN}-${MY_PV} -DESCRIPTION="console display library" -HOMEPAGE="https://www.gnu.org/software/ncurses/ https://invisible-island.net/ncurses/" -SRC_URI="mirror://gnu/ncurses/${MY_P}.tar.gz" - -LICENSE="MIT" -# The subslot reflects the SONAME. -SLOT="0/6" -KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 ~riscv s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd" -IUSE="ada +cxx debug doc gpm minimal profile static-libs test threads tinfo trace unicode" - -DEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )" -# berkdb? ( sys-libs/db )" -# Block the older ncurses that installed all files w/SLOT=5. #557472 -RDEPEND="${DEPEND} - !<=sys-libs/ncurses-5.9-r4:5 - !<sys-libs/slang-2.3.2_pre23 - !<x11-terms/rxvt-unicode-9.06-r3 - !<x11-terms/st-0.6-r1" - -S=${WORKDIR}/${MY_P} - -PATCHES=( - "${FILESDIR}/${PN}-6.0-gfbsd.patch" - "${FILESDIR}/${PN}-5.7-nongnu.patch" - "${FILESDIR}/${PN}-6.0-rxvt-unicode-9.15.patch" #192083 #383871 - "${FILESDIR}/${PN}-6.0-pkg-config.patch" - "${FILESDIR}/${PN}-5.9-gcc-5.patch" #545114 - "${FILESDIR}/${PN}-6.0-ticlib.patch" #557360 - "${FILESDIR}/${PN}-6.0-cppflags-cross.patch" #601426 - "${FILESDIR}/${PN}-6.1-st07_terminfo_typo.patch" #651494 -) - -src_prepare() { - [[ -n ${PV_SNAP} ]] && eapply "${WORKDIR}"/${MY_P}-${PV_SNAP}-patch.sh - default -} - -src_configure() { - unset TERMINFO #115036 - tc-export_build_env BUILD_{CC,CPP} - BUILD_CPPFLAGS+=" -D_GNU_SOURCE" #214642 - - # Build the various variants of ncurses -- narrow, wide, and threaded. #510440 - # Order matters here -- we want unicode/thread versions to come last so that the - # binaries in /usr/bin support both wide and narrow. - # The naming is also important as we use these directly with filenames and when - # checking configure flags. - NCURSES_TARGETS=( - ncurses - $(usex unicode 'ncursesw' '') - $(usex threads 'ncursest' '') - $(use unicode && usex threads 'ncursestw' '') - ) - - # When installing ncurses, we have to use a compatible version of tic. - # This comes up when cross-compiling, doing multilib builds, upgrading, - # or installing for the first time. Build a local copy of tic whenever - # the host version isn't available. #249363 #557598 - if ! ROOT=/ has_version "~sys-libs/${P}:0" ; then - local lbuildflags="-static" - - # some toolchains don't quite support static linking - local dbuildflags="-Wl,-rpath,${WORKDIR}/lib" - case ${CHOST} in - *-darwin*) dbuildflags= ;; - *-aix*) dbuildflags= ;; - esac - echo "int main() {}" | \ - $(tc-getCC) -o x -x c - ${lbuildflags} -pipe >& /dev/null \ - || lbuildflags="${dbuildflags}" - - # We can't re-use the multilib BUILD_DIR because we run outside of it. - BUILD_DIR="${WORKDIR}" \ - CHOST=${CBUILD} \ - CFLAGS=${BUILD_CFLAGS} \ - CXXFLAGS=${BUILD_CXXFLAGS} \ - CPPFLAGS=${BUILD_CPPFLAGS} \ - LDFLAGS="${BUILD_LDFLAGS} ${lbuildflags}" \ - do_configure cross --without-shared --with-normal - fi - multilib-minimal_src_configure -} - -multilib_src_configure() { - local t - for t in "${NCURSES_TARGETS[@]}" ; do - do_configure "${t}" - done -} - -do_configure() { - local target=$1 - shift - - mkdir "${BUILD_DIR}/${target}" || die - cd "${BUILD_DIR}/${target}" || die - - local conf=( - # We need the basic terminfo files in /etc, bug #37026. We will - # add '--with-terminfo-dirs' and then populate /etc/terminfo in - # src_install() ... - --with-terminfo-dirs="${EPREFIX}/etc/terminfo:${EPREFIX}/usr/share/terminfo" - - # Disabled until #245417 is sorted out. - #$(use_with berkdb hashed-db) - - # Enable installation of .pc files. - --enable-pc-files - # This path is used to control where the .pc files are installed. - --with-pkg-config-libdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig" - - # Now the rest of the various standard flags. - --with-shared - --without-hashed-db - $(use_with ada) - $(use_with cxx) - $(use_with cxx cxx-binding) - --with-cxx-shared - $(use_with debug) - $(use_with profile) - # The configure script uses ldd to parse the linked output which - # is flaky for cross-compiling/multilib/ldd versions/etc... - $(use_with gpm gpm libgpm.so.1) - # Required for building on mingw-w64, and possibly other windows - # platforms, bug #639670 - $(use_enable kernel_Winnt term-driver) - --disable-termcap - --enable-symlinks - --with-rcs-ids - --with-manpage-format=normal - --enable-const - --enable-colorfgbg - --enable-hard-tabs - --enable-echo - $(use_enable !ada warnings) - $(use_with debug assertions) - $(use_enable !debug leaks) - $(use_with debug expanded) - $(use_with !debug macros) - $(multilib_native_with progs) - $(use_with test tests) - $(use_with trace) - $(use_with tinfo termlib) - --disable-stripping - ) - - if [[ ${target} == ncurses*w ]] ; then - conf+=( --enable-widec ) - else - conf+=( --disable-widec ) - fi - if [[ ${target} == ncursest* ]] ; then - conf+=( --with-{pthread,reentrant} ) - else - conf+=( --without-{pthread,reentrant} ) - fi - # Make sure each variant goes in a unique location. - if [[ ${target} == "ncurses" ]] ; then - # "ncurses" variant goes into "${EPREFIX}"/usr/include - # It is needed on Prefix because the configure script appends - # "ncurses" to "${prefix}/include" if "${prefix}" is not /usr. - conf+=( --enable-overwrite ) - else - conf+=( --includedir="${EPREFIX}"/usr/include/${target} ) - fi - # See comments in src_configure. - if [[ ${target} != "cross" ]] ; then - local cross_path="${WORKDIR}/cross" - [[ -d ${cross_path} ]] && export TIC_PATH="${cross_path}/progs/tic" - fi - - # Force bash until upstream rebuilds the configure script with a newer - # version of autotools. #545532 - CONFIG_SHELL=${EPREFIX}/bin/bash \ - ECONF_SOURCE="${S}" \ - econf "${conf[@]}" "$@" -} - -src_compile() { - # See comments in src_configure. - if ! ROOT=/ has_version "~sys-libs/${P}:0" ; then - BUILD_DIR="${WORKDIR}" \ - do_compile cross -C progs tic - fi - - multilib-minimal_src_compile -} - -multilib_src_compile() { - local t - for t in "${NCURSES_TARGETS[@]}" ; do - do_compile "${t}" - done -} - -do_compile() { - local target=$1 - shift - - cd "${BUILD_DIR}/${target}" || die - - # A little hack to fix parallel builds ... they break when - # generating sources so if we generate the sources first (in - # non-parallel), we can then build the rest of the package - # in parallel. This is not really a perf hit since the source - # generation is quite small. - emake -j1 sources - # For some reason, sources depends on pc-files which depends on - # compiled libraries which depends on sources which ... - # Manually delete the pc-files file so the install step will - # create the .pc files we want. - rm -f misc/pc-files || die - emake "$@" -} - -multilib_src_install() { - local target - for target in "${NCURSES_TARGETS[@]}" ; do - emake -C "${BUILD_DIR}/${target}" DESTDIR="${D}" install - done - - # Move main libraries into /. - if multilib_is_native_abi ; then - gen_usr_ldscript -a \ - "${NCURSES_TARGETS[@]}" \ - $(use tinfo && usex unicode 'tinfow' '') \ - $(usev tinfo) - fi - if ! tc-is-static-only ; then - # Provide a link for -lcurses. - ln -sf libncurses$(get_libname) "${ED}"/usr/$(get_libdir)/libcurses$(get_libname) || die - fi - # don't delete '*.dll.a', needed for linking #631468 - if ! use static-libs; then - find "${ED}"/usr/ -name '*.a' ! -name '*.dll.a' -delete || die - fi - - # Build fails to create this ... - dosym ../share/terminfo /usr/$(get_libdir)/terminfo -} - -multilib_src_install_all() { -# if ! use berkdb ; then - # We need the basic terminfo files in /etc, bug #37026 - einfo "Installing basic terminfo files in /etc..." - local x - for x in ansi console dumb linux rxvt rxvt-unicode screen{,-256color} vt{52,100,102,200,220} \ - xterm xterm-{,256}color - do - local termfile=$(find "${ED}"/usr/share/terminfo/ -name "${x}" 2>/dev/null) - local basedir=$(basename $(dirname "${termfile}")) - - if [[ -n ${termfile} ]] ; then - dodir /etc/terminfo/${basedir} - mv ${termfile} "${ED}"/etc/terminfo/${basedir}/ - dosym ../../../../etc/terminfo/${basedir}/${x} \ - /usr/share/terminfo/${basedir}/${x} - fi - done -# fi - - echo "CONFIG_PROTECT_MASK=\"/etc/terminfo\"" > "${T}"/50ncurses - doenvd "${T}"/50ncurses - - use minimal && rm -r "${ED}"/usr/share/terminfo* - # Because ncurses5-config --terminfo returns the directory we keep it - keepdir /usr/share/terminfo #245374 - - cd "${S}" || die - dodoc ANNOUNCE MANIFEST NEWS README* TO-DO doc/*.doc - if use doc ; then - docinto html - dodoc -r doc/html/ - fi -} - -pkg_preinst() { - preserve_old_lib /$(get_libdir)/libncurses.so.5 - use unicode && preserve_old_lib /$(get_libdir)/libncursesw.so.5 -} - -pkg_postinst() { - preserve_old_lib_notify /$(get_libdir)/libncurses.so.5 - use unicode && preserve_old_lib_notify /$(get_libdir)/libncursesw.so.5 -} diff --git a/sys-libs/ncurses/ncurses-6.1-r3.ebuild b/sys-libs/ncurses/ncurses-6.1-r3.ebuild deleted file mode 100644 index 4fd2cc589a83..000000000000 --- a/sys-libs/ncurses/ncurses-6.1-r3.ebuild +++ /dev/null @@ -1,305 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="6" - -inherit flag-o-matic toolchain-funcs multilib-minimal preserve-libs usr-ldscript - -MY_PV=${PV:0:3} -PV_SNAP=${PV:4} -MY_P=${PN}-${MY_PV} -DESCRIPTION="console display library" -HOMEPAGE="https://www.gnu.org/software/ncurses/ https://invisible-island.net/ncurses/" -SRC_URI="mirror://gnu/ncurses/${MY_P}.tar.gz" - -LICENSE="MIT" -# The subslot reflects the SONAME. -SLOT="0/6" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd" -IUSE="ada +cxx debug doc gpm minimal profile static-libs test threads tinfo trace unicode" - -DEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )" -# berkdb? ( sys-libs/db )" -# Block the older ncurses that installed all files w/SLOT=5. #557472 -RDEPEND="${DEPEND} - !<=sys-libs/ncurses-5.9-r4:5 - !<sys-libs/slang-2.3.2_pre23 - !<x11-terms/rxvt-unicode-9.06-r3 - !<x11-terms/st-0.6-r1" - -S=${WORKDIR}/${MY_P} - -PATCHES=( - "${FILESDIR}/${PN}-6.0-gfbsd.patch" - "${FILESDIR}/${PN}-5.7-nongnu.patch" - "${FILESDIR}/${PN}-6.0-rxvt-unicode-9.15.patch" #192083 #383871 - "${FILESDIR}/${PN}-6.0-pkg-config.patch" - "${FILESDIR}/${PN}-5.9-gcc-5.patch" #545114 - "${FILESDIR}/${PN}-6.0-ticlib.patch" #557360 - "${FILESDIR}/${PN}-6.0-cppflags-cross.patch" #601426 - "${FILESDIR}/${PN}-6.1-st07_terminfo_typo.patch" #651494 -) - -src_prepare() { - [[ -n ${PV_SNAP} ]] && eapply "${WORKDIR}"/${MY_P}-${PV_SNAP}-patch.sh - default -} - -src_configure() { - unset TERMINFO #115036 - tc-export_build_env BUILD_{CC,CPP} - BUILD_CPPFLAGS+=" -D_GNU_SOURCE" #214642 - - # Build the various variants of ncurses -- narrow, wide, and threaded. #510440 - # Order matters here -- we want unicode/thread versions to come last so that the - # binaries in /usr/bin support both wide and narrow. - # The naming is also important as we use these directly with filenames and when - # checking configure flags. - NCURSES_TARGETS=( - ncurses - $(usex unicode 'ncursesw' '') - $(usex threads 'ncursest' '') - $(use unicode && usex threads 'ncursestw' '') - ) - - # When installing ncurses, we have to use a compatible version of tic. - # This comes up when cross-compiling, doing multilib builds, upgrading, - # or installing for the first time. Build a local copy of tic whenever - # the host version isn't available. #249363 #557598 - if ! ROOT=/ has_version "~sys-libs/${P}:0" ; then - local lbuildflags="-static" - - # some toolchains don't quite support static linking - local dbuildflags="-Wl,-rpath,${WORKDIR}/lib" - case ${CHOST} in - *-darwin*) dbuildflags= ;; - *-aix*) dbuildflags= ;; - esac - echo "int main() {}" | \ - $(tc-getCC) -o x -x c - ${lbuildflags} -pipe >& /dev/null \ - || lbuildflags="${dbuildflags}" - - # We can't re-use the multilib BUILD_DIR because we run outside of it. - BUILD_DIR="${WORKDIR}" \ - CHOST=${CBUILD} \ - CFLAGS=${BUILD_CFLAGS} \ - CXXFLAGS=${BUILD_CXXFLAGS} \ - CPPFLAGS=${BUILD_CPPFLAGS} \ - LDFLAGS="${BUILD_LDFLAGS} ${lbuildflags}" \ - do_configure cross --without-shared --with-normal - fi - multilib-minimal_src_configure -} - -multilib_src_configure() { - local t - for t in "${NCURSES_TARGETS[@]}" ; do - do_configure "${t}" - done -} - -do_configure() { - local target=$1 - shift - - mkdir "${BUILD_DIR}/${target}" || die - cd "${BUILD_DIR}/${target}" || die - - local conf=( - # We need the basic terminfo files in /etc, bug #37026. We will - # add '--with-terminfo-dirs' and then populate /etc/terminfo in - # src_install() ... - --with-terminfo-dirs="${EPREFIX}/etc/terminfo:${EPREFIX}/usr/share/terminfo" - - # Disabled until #245417 is sorted out. - #$(use_with berkdb hashed-db) - - # Enable installation of .pc files. - --enable-pc-files - # This path is used to control where the .pc files are installed. - --with-pkg-config-libdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig" - - # Now the rest of the various standard flags. - --with-shared - --without-hashed-db - $(use_with ada) - $(use_with cxx) - $(use_with cxx cxx-binding) - --with-cxx-shared - $(use_with debug) - $(use_with profile) - # The configure script uses ldd to parse the linked output which - # is flaky for cross-compiling/multilib/ldd versions/etc... - $(use_with gpm gpm libgpm.so.1) - # Required for building on mingw-w64, and possibly other windows - # platforms, bug #639670 - $(use_enable kernel_Winnt term-driver) - --disable-termcap - --enable-symlinks - --with-rcs-ids - --with-manpage-format=normal - --enable-const - --enable-colorfgbg - --enable-hard-tabs - --enable-echo - $(use_enable !ada warnings) - $(use_with debug assertions) - $(use_enable !debug leaks) - $(use_with debug expanded) - $(use_with !debug macros) - $(multilib_native_with progs) - $(use_with test tests) - $(use_with trace) - $(use_with tinfo termlib) - --disable-stripping - ) - - if [[ ${target} == ncurses*w ]] ; then - conf+=( --enable-widec ) - else - conf+=( --disable-widec ) - fi - if [[ ${target} == ncursest* ]] ; then - conf+=( --with-{pthread,reentrant} ) - else - conf+=( --without-{pthread,reentrant} ) - fi - # Make sure each variant goes in a unique location. - if [[ ${target} == "ncurses" ]] ; then - # "ncurses" variant goes into "${EPREFIX}"/usr/include - # It is needed on Prefix because the configure script appends - # "ncurses" to "${prefix}/include" if "${prefix}" is not /usr. - conf+=( --enable-overwrite ) - else - conf+=( --includedir="${EPREFIX}"/usr/include/${target} ) - fi - # See comments in src_configure. - if [[ ${target} != "cross" ]] ; then - local cross_path="${WORKDIR}/cross" - [[ -d ${cross_path} ]] && export TIC_PATH="${cross_path}/progs/tic" - fi - - # Force bash until upstream rebuilds the configure script with a newer - # version of autotools. #545532 - CONFIG_SHELL=${EPREFIX}/bin/bash \ - ECONF_SOURCE="${S}" \ - econf "${conf[@]}" "$@" -} - -src_compile() { - # See comments in src_configure. - if ! ROOT=/ has_version "~sys-libs/${P}:0" ; then - BUILD_DIR="${WORKDIR}" \ - do_compile cross -C progs tic - fi - - multilib-minimal_src_compile -} - -multilib_src_compile() { - local t - for t in "${NCURSES_TARGETS[@]}" ; do - do_compile "${t}" - done -} - -do_compile() { - local target=$1 - shift - - cd "${BUILD_DIR}/${target}" || die - - # A little hack to fix parallel builds ... they break when - # generating sources so if we generate the sources first (in - # non-parallel), we can then build the rest of the package - # in parallel. This is not really a perf hit since the source - # generation is quite small. - emake -j1 sources - # For some reason, sources depends on pc-files which depends on - # compiled libraries which depends on sources which ... - # Manually delete the pc-files file so the install step will - # create the .pc files we want. - rm -f misc/pc-files || die - emake "$@" -} - -multilib_src_install() { - local target - for target in "${NCURSES_TARGETS[@]}" ; do - emake -C "${BUILD_DIR}/${target}" DESTDIR="${D}" install - done - - # Move main libraries into /. - if multilib_is_native_abi ; then - gen_usr_ldscript -a \ - "${NCURSES_TARGETS[@]}" \ - $(use tinfo && usex unicode 'tinfow' '') \ - $(usev tinfo) - fi - if ! tc-is-static-only ; then - # Provide a link for -lcurses. - ln -sf libncurses$(get_libname) "${ED}"/usr/$(get_libdir)/libcurses$(get_libname) || die - fi - # don't delete '*.dll.a', needed for linking #631468 - if ! use static-libs; then - find "${ED}"/usr/ -name '*.a' ! -name '*.dll.a' -delete || die - fi - - # Build fails to create this ... - dosym ../share/terminfo /usr/$(get_libdir)/terminfo -} - -multilib_src_install_all() { -# if ! use berkdb ; then - # We need the basic terminfo files in /etc for embedded/recovery. #37026 - einfo "Installing basic terminfo files in /etc..." - local terms=( - # Dumb/simple values that show up when using the in-kernel VT. - ansi console dumb linux - vt{52,100,102,200,220} - # [u]rxvt users used to be pretty common. Probably should drop this - # since upstream is dead and people are moving away from it. - rxvt{,-unicode}{,-256color} - # xterm users are common, as is terminals re-using/spoofing it. - xterm xterm-{,256}color - # screen is common (and reused by tmux). - screen{,-256color} - screen.xterm-256color - ) - local x - for x in "${terms[@]}"; do - local termfile=$(find "${ED}"/usr/share/terminfo/ -name "${x}" 2>/dev/null) - local basedir=$(basename "$(dirname "${termfile}")") - - if [[ -n ${termfile} ]] ; then - dodir "/etc/terminfo/${basedir}" - mv "${termfile}" "${ED}/etc/terminfo/${basedir}/" || die - dosym "../../../../etc/terminfo/${basedir}/${x}" \ - "/usr/share/terminfo/${basedir}/${x}" - fi - done -# fi - - echo "CONFIG_PROTECT_MASK=\"/etc/terminfo\"" | newenvd - 50ncurses - - use minimal && rm -r "${ED}"/usr/share/terminfo* - # Because ncurses5-config --terminfo returns the directory we keep it - keepdir /usr/share/terminfo #245374 - - cd "${S}" || die - dodoc ANNOUNCE MANIFEST NEWS README* TO-DO doc/*.doc - if use doc ; then - docinto html - dodoc -r doc/html/ - fi -} - -pkg_preinst() { - preserve_old_lib /$(get_libdir)/libncurses.so.5 - use unicode && preserve_old_lib /$(get_libdir)/libncursesw.so.5 -} - -pkg_postinst() { - preserve_old_lib_notify /$(get_libdir)/libncurses.so.5 - use unicode && preserve_old_lib_notify /$(get_libdir)/libncursesw.so.5 -} diff --git a/sys-libs/ncurses/ncurses-6.1_p20181020.ebuild b/sys-libs/ncurses/ncurses-6.1_p20181020.ebuild index e34de17f3547..a9a949c75088 100644 --- a/sys-libs/ncurses/ncurses-6.1_p20181020.ebuild +++ b/sys-libs/ncurses/ncurses-6.1_p20181020.ebuild @@ -19,7 +19,7 @@ fi LICENSE="MIT" # The subslot reflects the SONAME. SLOT="0/6" -KEYWORDS="alpha amd64 ~arm ~arm64 ~hppa ia64 ~m68k ~mips ppc ppc64 ~riscv s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd" +KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 ~riscv s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd" IUSE="ada +cxx debug doc gpm minimal profile static-libs test threads tinfo trace unicode" DEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )" diff --git a/sys-libs/timezone-data/Manifest b/sys-libs/timezone-data/Manifest index 01b7e8d3bb70..63cacb4e7916 100644 --- a/sys-libs/timezone-data/Manifest +++ b/sys-libs/timezone-data/Manifest @@ -6,5 +6,5 @@ DIST tzdata2019a.tar.gz 378961 BLAKE2B f8ab67f1fac34ab81fa9995cd70399728e6755303 DIST tzdata2019b.tar.gz 384667 BLAKE2B c045d137cbb09e1109916dfdb1265ceb560d589ded9b05aa0cfe75f5fcb19057ded4d4f12f47c895020ed02bc4138de995eadac497eb3663579b094164d7e3ad SHA512 c0104078d994e501d80a41bea31364b1390a75c2fbf42968a8343a090e2ac2eddbc58770ca470b192ea19dec89fcc634141a1de703ea2ffa0325176a64afe1fc EBUILD timezone-data-2018i.ebuild 5143 BLAKE2B 80f02bc5a5f5dc1c9bb7d2cb715ac12c485c9d921767f77b49eddb08ce99e94134b9a0fc9eb5117622674bcac50c8ba97a3e9bb146acc368cb9c537e101fb7eb SHA512 29975f74113f5f1bac6773627d86d40b0ce1b2446f7eede184dff32d6c36f730e92d8fc8fbe97c94ce4b11e7760477c1ea340c7eb233522ccbb57f421678d12f EBUILD timezone-data-2019a.ebuild 5153 BLAKE2B a2ea08d19dbccfd1ae9b46d0c10fc6a41c2007a6a30c6a1d4eecb04f0ca79944be7fa6419fb23ab7fdaafd3ecd78209f8dd366bd7a6d987cdbadb734ee8ef468 SHA512 3337a58a66295785d1708c0121c60785d856f13d05da120e1963fa7fd08dec0e0815b998e9693810cb600f594db55cfd27955403e6123d5c8bfb9bee6b914b0d -EBUILD timezone-data-2019b.ebuild 5163 BLAKE2B 295175c3958d1a8ab609a13fa6027306e8e460394e730e7c85c29f940dad98ff893eb797a0c7f97c1e90dffb2e4f55c748f0e2b7638748c1dcedaaa10b6f4e90 SHA512 9801cf158e53be5737025a8384d7f8c001f815df7296080aa00123f276477d030f20407e949a2253c54b8b6226d7640d6ef589724622158b869cbd658a78c444 +EBUILD timezone-data-2019b-r1.ebuild 5173 BLAKE2B ba837151c0ca678a826f03f21a63a32c50201022199031babfa563e364960e93259c807c1c48b246d8a932e5fb99276b8c8efa72f342da503ba79ece05a407e1 SHA512 75e0bb2299d4e0d44c7280e57ee3a6750f25d6732c2f890dcb901d9a55e3fb9f24852d5c89595db64e42d8525aaa38d35a12bcdd63a2fcbaf4e2fbc04df43d1e MISC metadata.xml 658 BLAKE2B 75ee5deafa4e9c1336119b2b2b87de6f8520a29f8fa7901c4995bddbb0cb185de9a019ff7703d0a8aa7b2f685a9ec2ca518641ea0c0a1b6123aa05faa04274a1 SHA512 94b68a5195b17cd1a7283a90a42ba9e1dfb0e7dde7c16f48202233cc2fc20ea718a1588b57b2af372e3c35ed403276cdd59456165a225f149a813abff2144c73 diff --git a/sys-libs/timezone-data/timezone-data-2019b.ebuild b/sys-libs/timezone-data/timezone-data-2019b-r1.ebuild index 07d15cc49599..a52e4d3a7263 100644 --- a/sys-libs/timezone-data/timezone-data-2019b.ebuild +++ b/sys-libs/timezone-data/timezone-data-2019b-r1.ebuild @@ -103,7 +103,7 @@ src_install() { } get_TIMEZONE() { - local tz src="${EROOT}etc/timezone" + local tz src="${EROOT}/etc/timezone" if [[ -e ${src} ]] ; then tz=$(sed -e 's:#.*::' -e 's:[[:space:]]*::g' -e '/^$/d' "${src}") else @@ -135,11 +135,11 @@ pkg_preinst() { configure_tz_data() { # make sure the /etc/localtime file does not get stale #127899 - local tz src="${EROOT}etc/timezone" etc_lt="${EROOT}etc/localtime" + local tz src="${EROOT}/etc/timezone" etc_lt="${EROOT}/etc/localtime" # If it's a symlink, assume the user knows what they're doing and # they're managing it themselves. #511474 - if [[ -L ${etc_lt} ]] ; then + if [[ -L "${etc_lt}" ]] ; then einfo "Assuming your ${etc_lt} symlink is what you want; skipping update." return 0 fi @@ -148,10 +148,10 @@ configure_tz_data() { einfo "Assuming your empty ${etc_lt} file is what you want; skipping update." return 0 fi - if [[ ${tz} == "FOOKABLOIE" ]] ; then + if [[ "${tz}" == "FOOKABLOIE" ]] ; then elog "You do not have TIMEZONE set in ${src}." - if [[ ! -e ${etc_lt} ]] ; then + if [[ ! -e "${etc_lt}" ]] ; then cp -f "${EROOT}"/usr/share/zoneinfo/Factory "${etc_lt}" elog "Setting ${etc_lt} to Factory." else @@ -160,13 +160,13 @@ configure_tz_data() { return 0 fi - if [[ ! -e ${EROOT}/usr/share/zoneinfo/${tz} ]] ; then + if [[ ! -e "${EROOT}/usr/share/zoneinfo/${tz}" ]] ; then elog "You have an invalid TIMEZONE setting in ${src}" elog "Your ${etc_lt} has been reset to Factory; enjoy!" tz="Factory" fi - einfo "Updating ${etc_lt} with ${EROOT}usr/share/zoneinfo/${tz}" - cp -f "${EROOT}"/usr/share/zoneinfo/"${tz}" "${etc_lt}" + einfo "Updating ${etc_lt} with ${EROOT}/usr/share/zoneinfo/${tz}" + cp -f "${EROOT}/usr/share/zoneinfo/${tz}" "${etc_lt}" } pkg_config() { |