From c8d60dada2ec8eb48b2d2b290cd6683ccec40e39 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 13 Feb 2021 21:41:11 +0000 Subject: gentoo (valentine's day) resync : 14.02.2021 --- sys-libs/Manifest.gz | Bin 14243 -> 14093 bytes sys-libs/binutils-libs/Manifest | 16 +- .../binutils-libs/binutils-libs-2.33.1-r1.ebuild | 120 -- .../binutils-libs/binutils-libs-2.35.1-r1.ebuild | 7 +- sys-libs/binutils-libs/binutils-libs-2.35.2.ebuild | 134 ++ sys-libs/binutils-libs/binutils-libs-2.36.1.ebuild | 134 ++ sys-libs/binutils-libs/binutils-libs-2.36.ebuild | 129 -- sys-libs/binutils-libs/metadata.xml | 23 +- sys-libs/blocksruntime/Manifest | 2 +- .../blocksruntime-0_pre20171027-r1.ebuild | 2 +- sys-libs/compiler-rt-sanitizers/Manifest | 2 + .../compiler-rt-sanitizers-11.1.0_rc3.ebuild | 201 +++ sys-libs/compiler-rt/Manifest | 2 + sys-libs/compiler-rt/compiler-rt-11.1.0_rc3.ebuild | 126 ++ sys-libs/db/Manifest | 2 +- sys-libs/db/db-5.3.28-r4.ebuild | 2 +- sys-libs/e2fsprogs-libs/Manifest | 2 + .../e2fsprogs-libs/e2fsprogs-libs-1.46.1.ebuild | 93 ++ sys-libs/glibc/Manifest | 10 +- sys-libs/glibc/glibc-2.30-r8.ebuild | 1465 ------------------- sys-libs/glibc/glibc-2.31-r6.ebuild | 1495 ------------------- sys-libs/glibc/glibc-2.32-r6.ebuild | 2 +- sys-libs/glibc/glibc-2.33.ebuild | 1502 ++++++++++++++++++++ sys-libs/glibc/glibc-9999.ebuild | 10 +- sys-libs/kpmcore/Manifest | 7 +- sys-libs/kpmcore/files/kpmcore-4.2.0-kf-5.77.patch | 50 + sys-libs/kpmcore/kpmcore-20.12.1.ebuild | 34 - sys-libs/kpmcore/kpmcore-20.12.2.ebuild | 34 + sys-libs/kpmcore/kpmcore-4.2.0.ebuild | 8 +- sys-libs/libcap/Manifest | 5 +- .../files/libcap-2.48-build-system-fixes.patch | 199 +++ sys-libs/libcap/libcap-2.46.ebuild | 89 -- sys-libs/libcap/libcap-2.48.ebuild | 89 ++ sys-libs/libcxx/Manifest | 20 +- sys-libs/libcxx/libcxx-10.0.1.ebuild | 4 +- sys-libs/libcxx/libcxx-11.0.0.ebuild | 2 +- sys-libs/libcxx/libcxx-11.0.1.ebuild | 2 +- sys-libs/libcxx/libcxx-11.1.0_rc1.ebuild | 2 +- sys-libs/libcxx/libcxx-11.1.0_rc2.ebuild | 2 +- sys-libs/libcxx/libcxx-11.1.0_rc3.ebuild | 218 +++ sys-libs/libcxx/libcxx-12.0.0.9999.ebuild | 2 +- sys-libs/libcxx/libcxx-12.0.0_rc1.ebuild | 2 +- sys-libs/libcxx/libcxx-13.0.0.9999.ebuild | 2 +- sys-libs/libcxx/libcxx-9.0.1.ebuild | 4 +- sys-libs/libcxxabi/Manifest | 20 +- sys-libs/libcxxabi/libcxxabi-10.0.1.ebuild | 4 +- sys-libs/libcxxabi/libcxxabi-11.0.0.ebuild | 2 +- sys-libs/libcxxabi/libcxxabi-11.0.1.ebuild | 2 +- sys-libs/libcxxabi/libcxxabi-11.1.0_rc1.ebuild | 2 +- sys-libs/libcxxabi/libcxxabi-11.1.0_rc2.ebuild | 2 +- sys-libs/libcxxabi/libcxxabi-11.1.0_rc3.ebuild | 123 ++ sys-libs/libcxxabi/libcxxabi-12.0.0.9999.ebuild | 2 +- sys-libs/libcxxabi/libcxxabi-12.0.0_rc1.ebuild | 2 +- sys-libs/libcxxabi/libcxxabi-13.0.0.9999.ebuild | 2 +- sys-libs/libcxxabi/libcxxabi-9.0.1.ebuild | 4 +- sys-libs/libnih/Manifest | 9 - .../libnih/files/libnih-1.0.3-expat-2.2.5.patch | 15 - .../libnih/files/libnih-1.0.3-fno-common.patch | 11 - .../libnih/files/libnih-1.0.3-glibc-2.24.patch | 57 - .../libnih/files/libnih-1.0.3-optional-dbus.patch | 40 - .../libnih/files/libnih-1.0.3-pkg-config.patch | 24 - .../libnih/files/libnih-1.0.3-signal-race.patch | 44 - sys-libs/libnih/libnih-1.0.3-r4.ebuild | 55 - sys-libs/libnih/metadata.xml | 8 - sys-libs/libomp/Manifest | 2 + sys-libs/libomp/libomp-11.1.0_rc3.ebuild | 105 ++ sys-libs/libunwind/Manifest | 4 +- sys-libs/libunwind/libunwind-1.5.0-r1.ebuild | 2 +- sys-libs/libunwind/metadata.xml | 3 + sys-libs/libxcrypt/Manifest | 2 +- sys-libs/libxcrypt/libxcrypt-4.4.17.ebuild | 4 +- sys-libs/llvm-libunwind/Manifest | 20 +- .../llvm-libunwind/llvm-libunwind-10.0.1.ebuild | 4 +- .../llvm-libunwind/llvm-libunwind-11.0.0.ebuild | 4 +- .../llvm-libunwind/llvm-libunwind-11.0.1.ebuild | 2 +- .../llvm-libunwind-11.1.0_rc1.ebuild | 2 +- .../llvm-libunwind-11.1.0_rc2.ebuild | 2 +- .../llvm-libunwind-11.1.0_rc3.ebuild | 124 ++ .../llvm-libunwind-12.0.0.9999.ebuild | 2 +- .../llvm-libunwind-12.0.0_rc1.ebuild | 2 +- .../llvm-libunwind-13.0.0.9999.ebuild | 2 +- .../llvm-libunwind/llvm-libunwind-9.0.1.ebuild | 4 +- sys-libs/ncurses/Manifest | 4 + .../ncurses-6.2_p20210123-cppflags-cross.patch | 35 + ...ses-6.2_p20210123-no_user_ldflags_in_libs.patch | 40 + sys-libs/ncurses/ncurses-6.2_p20210123.ebuild | 327 +++++ sys-libs/timezone-data/Manifest | 7 +- sys-libs/timezone-data/timezone-data-2020d.ebuild | 183 --- sys-libs/timezone-data/timezone-data-2020e.ebuild | 2 +- sys-libs/timezone-data/timezone-data-2020f.ebuild | 2 +- 90 files changed, 3681 insertions(+), 3893 deletions(-) delete mode 100644 sys-libs/binutils-libs/binutils-libs-2.33.1-r1.ebuild create mode 100644 sys-libs/binutils-libs/binutils-libs-2.35.2.ebuild create mode 100644 sys-libs/binutils-libs/binutils-libs-2.36.1.ebuild delete mode 100644 sys-libs/binutils-libs/binutils-libs-2.36.ebuild create mode 100644 sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-11.1.0_rc3.ebuild create mode 100644 sys-libs/compiler-rt/compiler-rt-11.1.0_rc3.ebuild create mode 100644 sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.46.1.ebuild delete mode 100644 sys-libs/glibc/glibc-2.30-r8.ebuild delete mode 100644 sys-libs/glibc/glibc-2.31-r6.ebuild create mode 100644 sys-libs/glibc/glibc-2.33.ebuild create mode 100644 sys-libs/kpmcore/files/kpmcore-4.2.0-kf-5.77.patch delete mode 100644 sys-libs/kpmcore/kpmcore-20.12.1.ebuild create mode 100644 sys-libs/kpmcore/kpmcore-20.12.2.ebuild create mode 100644 sys-libs/libcap/files/libcap-2.48-build-system-fixes.patch delete mode 100644 sys-libs/libcap/libcap-2.46.ebuild create mode 100644 sys-libs/libcap/libcap-2.48.ebuild create mode 100644 sys-libs/libcxx/libcxx-11.1.0_rc3.ebuild create mode 100644 sys-libs/libcxxabi/libcxxabi-11.1.0_rc3.ebuild delete mode 100644 sys-libs/libnih/Manifest delete mode 100644 sys-libs/libnih/files/libnih-1.0.3-expat-2.2.5.patch delete mode 100644 sys-libs/libnih/files/libnih-1.0.3-fno-common.patch delete mode 100644 sys-libs/libnih/files/libnih-1.0.3-glibc-2.24.patch delete mode 100644 sys-libs/libnih/files/libnih-1.0.3-optional-dbus.patch delete mode 100644 sys-libs/libnih/files/libnih-1.0.3-pkg-config.patch delete mode 100644 sys-libs/libnih/files/libnih-1.0.3-signal-race.patch delete mode 100644 sys-libs/libnih/libnih-1.0.3-r4.ebuild delete mode 100644 sys-libs/libnih/metadata.xml create mode 100644 sys-libs/libomp/libomp-11.1.0_rc3.ebuild create mode 100644 sys-libs/llvm-libunwind/llvm-libunwind-11.1.0_rc3.ebuild create mode 100644 sys-libs/ncurses/files/ncurses-6.2_p20210123-cppflags-cross.patch create mode 100644 sys-libs/ncurses/files/ncurses-6.2_p20210123-no_user_ldflags_in_libs.patch create mode 100644 sys-libs/ncurses/ncurses-6.2_p20210123.ebuild delete mode 100644 sys-libs/timezone-data/timezone-data-2020d.ebuild (limited to 'sys-libs') diff --git a/sys-libs/Manifest.gz b/sys-libs/Manifest.gz index 6a75d89616cb..c6a594db0266 100644 Binary files a/sys-libs/Manifest.gz and b/sys-libs/Manifest.gz differ diff --git a/sys-libs/binutils-libs/Manifest b/sys-libs/binutils-libs/Manifest index c2c0becf268c..ec2983178ebc 100644 --- a/sys-libs/binutils-libs/Manifest +++ b/sys-libs/binutils-libs/Manifest @@ -1,13 +1,13 @@ -DIST binutils-2.33.1-patches-2.tar.xz 18636 BLAKE2B 0e0757329b6a83aeff4f4c450c95e73fd48fcc89f83e63f294568632bee0972552cf2f57494352c5d9a7c16a51cdbc4108b38fa6028d4388c8e76046b3da9212 SHA512 d982f68d1f5fdb384309a2a1b7426bf840a90e7a85b37229b4223b62c36cab9dd9ec0c08382c85c68adf996dec21133df3180a2fc649363adae8645f8282f71d -DIST binutils-2.33.1.tar.xz 21490848 BLAKE2B c336a8412938dc8c224f40a763a8bea9937cca0462a8fb80e62f14aabe590107fc061a3f4b9327e1f4652cb026384d36a91b4766d4d469d2d0680932874b638c SHA512 b7a6767c6c7ca6b5cafa7080e6820b7bb3a53b7148348c438d99905defbdf0d30c9744a484ee01c9441a8153901808513366b15ba9533e20c9673c262ade36ac DIST binutils-2.34-patches-6.tar.xz 103028 BLAKE2B d0e866d0941d2b550c7d7f23530c6ee393fa13b4f2f27832f07790989476f11d1beddb5ad5a9be5c65c1d4dff9d4598d21adcb00c1d0490f69a99127f4527447 SHA512 e05ed8886acb5cb95a3e97c5bc0564215f7d44b604610f5c4545997fd9625d6de909c37063127e819926cd1548a48d3529dd3e82e98ee6a5dbaced028c57355d DIST binutils-2.34.tar.xz 21637796 BLAKE2B 07dd23916a7d27f71c3f160c8c16abe2bd4fce294c738c665a012a3be6a87dbe8160d0c38740524f9025e01d438e99b2a94bcf9f9f79ee214f5dd033de8aad3d SHA512 2c7976939dcf5e8c5b7374cccd39bfe803b1bec73c6abfa0eb17c24e1942574c6bdb874c66a092a82adc443182eacd8a5a8001c19a76101f0c7ba40c27de0bbd DIST binutils-2.35.1-patches-2.tar.xz 72236 BLAKE2B 584cb3edbda28c69171ed64e941535f992150d86f25201cadd07b63daaa36bf76b07dc0aa8a4837da17d1672feb47a7b15f83efdeec5409e695965a10142147a SHA512 b704ebe82c4402f058f9c96991a89256a6b369d28f844bf020ed2c77766894d9a2ca0596cd609de7b389fa8cd52bfab674b6deb10ea2096e50aa57921be2083e DIST binutils-2.35.1.tar.xz 22031720 BLAKE2B d3468da90b75e9b5fa7fbd64d3fdb0a4bc445e4cb7da5ae058f73a1e9d948b3e9438bc9f1b5b351db369b76a25960c9c1f58f828fd2c7646f555de45fa3c052b SHA512 94ff72708403413b70b247f3af4099ebaa882b6659249869f1ed9941a0f1912e313f08357d470f9fd2359e7f5e5b0eb86285e5eaf883fa8187789d6b1bd304eb -DIST binutils-2.36-patches-1.tar.xz 13200 BLAKE2B 82e8ef3c51984d4418466d7b838fa5c0a5a72c3bbe3e631b8aeb28503fd8b81e2b187908a2a4e1b286eba8af0db25eafadc5ffe42dd07677e6bd659cf5483b07 SHA512 88c5ac42d25d131c1507d94992fdd11a15700a0304da10cedd3b0db9bc689d3387189d6d97f847d77e8a5d053619b174695a0a6b3c6c1bb66ea8f122f0b38d63 -DIST binutils-2.36.tar.xz 22760136 BLAKE2B 6666841e26c89a07b7e6c1144d893bab112278906d7917f3ca6273aa78094951686f0d5893857cae1edde1e1ecd7c6798bc14eac88d03c5a1e6e3e480a788f9c SHA512 0b89b70d4ad5cfe5bd0011dc7e342ae9de96efdbfc3442a0d6b5f7660e38bbcad36f2c72ba8f074323f02bde022ff1cd723ae99f0ea55cf94ee2dbbc0e4efdb2 -EBUILD binutils-libs-2.33.1-r1.ebuild 3549 BLAKE2B 931ae3c38edbeed8cca61909b5e0897bc37f3855820ac49ed97955c611a2c8a58c50df2e87d4f13674ea7de511638205f49932663f25afd9f2b96970803dd91c SHA512 9e17954c198e39f725603fd9b6d1c3c24e39c99ee823a3e15b3d5c4838ae507787cb23aaf36e5dbfb9052656955b114a95b2cb3f8b0fc96ecfb0b5ed970053d0 +DIST binutils-2.35.2-patches-1.tar.xz 11836 BLAKE2B 0141349c9618992d1ab1e0309f7ed8fbc43b60a58be1dfed05eae8a8fee857241d9e112ae673da6fc9778767675f536ece818cb85567367bb1c8f87a0693623f SHA512 35de5f227c745c5fb800784fe657b2a6216faf43e2498e8481e7b0dc79b0d2f86b3b6a10b896e060319a77a51c61d2e1b7a951ae962b3a6ef8c1a2a261d9bb6c +DIST binutils-2.35.2.tar.xz 22056908 BLAKE2B 9c392e0db2b482442f9476f30bd80cf2796321cbf7be79cf21af7bef167b6074c4ae009dcf9b438d2f2f4a23381c935176b2cfa85de1a526ab46e0fd844a7ca5 SHA512 9974ede5978d32e0d68fef23da48fa00bd06b0bff7ec45b00ca075c126d6bbe0cf2defc03ecc3f17bc6cc85b64271a13009c4049d7ba17de26e84e3a6e2c0348 +DIST binutils-2.36.1-patches-1.tar.xz 11392 BLAKE2B 8112dda3f000d29952cbf58101f842ca519054bf9de6e22908881fe4d46cc1ea9a26db74ab00c64aedd3746eb058c19a978b8dc025ad8de07b6365c70a1803b2 SHA512 c6f5645b09d0c149f2eef8e992ff7181716dfb961f1155207a1349168f2d2fb76857cc224c27b4d764cfbc4ddec0630ef8c0a91d7bac489896f28de64651b367 +DIST binutils-2.36.1.tar.xz 22772248 BLAKE2B 03fbfbedd6dba2beaa836b1ed254eddd7a54a163d3061fd93edd2b9591cae24ba049b26658c524b5ccecc2f22d431dfa168218d2531aa356945c994fbbe896fa SHA512 cc24590bcead10b90763386b6f96bb027d7594c659c2d95174a6352e8b98465a50ec3e4088d0da038428abe059bbc4ae5f37b269f31a40fc048072c8a234f4e9 EBUILD binutils-libs-2.34-r2.ebuild 3686 BLAKE2B f6a8b9c39aa5946ca55e6e5dc0ea3cc0f4a7eeea780482364243e209193fc824e95cb9d2000473107c9f80b73dcbad9f01d33403d7cde6ec85400c6db08e0e9a SHA512 3f6e136ca78fc6ed1730480facf415eb916e1310a973cf5bc7bb234e3740247bf06b81f6939603a13b0f93c606d3819e8f93606f01113e5bb0880dd39253e67a -EBUILD binutils-libs-2.35.1-r1.ebuild 3875 BLAKE2B a24c36ee1c7d1a14623f0efb8d14109f94d7e7be3e5e492b7e2d9a38a39dd0f0ec233a45777ffd41f1ee92c5e01dca363aed9f89ba477d05d862ff7435b78085 SHA512 7facf3d5e63e70e819dc52b0d192183906b726daf476ccd43f2ab863af9d4032dbb8d06b58369a635739c2316da95679cda94d91a060ab76acaa7e532369d822 -EBUILD binutils-libs-2.36.ebuild 3880 BLAKE2B 2870e14746410fe4c32fedefba0b8dcd305ddd5878391f24b9d30b38fbfdc92aeb07a4f1a10f57bf38af1f0c364ace47be917b53e41103bcbd33d54ee1131bb9 SHA512 2304ec110390a7e88dd27aba20aa25c195416585814167c5c5bab2d0c9a4231123c27808dad75247f79e5bb8492bb7ba1575a8af5fbfbb41a75f3eebad6b5246 -MISC metadata.xml 524 BLAKE2B 6f00793b2dc155b19d816b8acfd49e6bfc2ae35418ecc97fbbd3f9d0ed08b5f95a299b28fe6edad1a66f4d64abe99dc8a62a974fd70e28b535cd366239bf1cca SHA512 9db7c7a3082ee848ec4963831da06cced596d543e53660747fb56ac33998c219e1d7252892ffc32132d7db3c99ce9746fb6d9e85f866c3cba97552c31948342c +EBUILD binutils-libs-2.35.1-r1.ebuild 4065 BLAKE2B 687f6e7221c767fd76f4c2ab4f4c2ca03dc6fb6d467074f7663a7062ac1750e7d14d59bacda85cdffb97890ae56a2dba97fe7ffe039e48a36e151653371bd975 SHA512 a0c2e5f6c01b1dc3a856b9447b0eb5106b78bf5e52b96b235512ad4136e12bc5f32ad96e292e1f6d4c1c638ba1c86bdcae5ab89d24dd5084c6745ccda632c823 +EBUILD binutils-libs-2.35.2.ebuild 4069 BLAKE2B 91a902a341b188328dba613c9bb5e466d917355ee2528871869e036668f321454f9f6d9c83688e769999c4c63c370f9c58d70e187b7a4e8631fc6f426f3d5eae SHA512 5497c74bdd031170f37a8618e8df8e6cf753eb50ffee4d01fe40224f305f3f01de022d439839cb68980344bc452fd1fe24e518055dc38d916f38a6735c503357 +EBUILD binutils-libs-2.36.1.ebuild 4070 BLAKE2B abfa6b76dee2e37a33ccd3e0748c6e2dd801dc781ea9c663f7ab980db7a9fd69f2c50f5209f30de7190eb55d3946b07f044a8ee6c89565d3df1da8cab4d669af SHA512 ce39f0fa2e0706e29e506eaaf7a86243231368bba4d4dc5ff2b443ef872c8675048dd4fc05bf0fa4b9233431a974546a323c205aeeb09c6367cd1f4a4069daac +MISC metadata.xml 611 BLAKE2B 6093d3768ff4bc40fa0f8d1ebb3d9a5454f5e492030892d4791e7aafeef0ab4bd2902b818602725bf54e9045be762c1f495eeaf3742ec3ec4c4beda127e2c8d6 SHA512 21b771eb04b2e6f642e3ac48f13c2db19b728c8ed13821c39bfae696b8726f6f68ee65bb89ec0e90adfcee0e7f07a3109ab35e0699fd555ce0b84ad23ef81d1b diff --git a/sys-libs/binutils-libs/binutils-libs-2.33.1-r1.ebuild b/sys-libs/binutils-libs/binutils-libs-2.33.1-r1.ebuild deleted file mode 100644 index 7629a98e5fbd..000000000000 --- a/sys-libs/binutils-libs/binutils-libs-2.33.1-r1.ebuild +++ /dev/null @@ -1,120 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PATCH_VER=2 -PATCH_DEV=slyfox - -inherit eutils libtool toolchain-funcs multilib-minimal - -MY_PN="binutils" -MY_P="${MY_PN}-${PV}" -PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}} -PATCH_DEV=${PATCH_DEV:-slyfox} - -DESCRIPTION="Core binutils libraries (libbfd, libopcodes, libiberty) for external packages" -HOMEPAGE="https://sourceware.org/binutils/" -SRC_URI="mirror://gnu/binutils/${MY_P}.tar.xz - https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${MY_PN}-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.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 sparc x86" - -COMMON_DEPEND="sys-libs/zlib[${MULTILIB_USEDEP}]" -DEPEND="${COMMON_DEPEND} - nls? ( sys-devel/gettext )" -# Need a newer binutils-config that'll reset include/lib symlinks for us. -RDEPEND="${COMMON_DEPEND} - >=sys-devel/binutils-config-5 - nls? ( !=2.24) make this an explicit option. #497268 - --enable-install-libiberty - --disable-werror - --with-bugurl="https://bugs.gentoo.org/" - --with-pkgversion="$(pkgversion)" - $(use_enable static-libs static) - # The binutils eclass enables this flag for all bi-arch builds, - # but other tools often don't care about that support. Put it - # beyond a flag if people really want it, but otherwise leave - # it disabled as it can slow things down on 32bit arches. #438522 - $(use_enable 64-bit-bfd) - # This only disables building in the zlib subdir. - # For binutils itself, it'll use the system version. #591516 - --without-zlib - --with-system-zlib - # We only care about the libs, so disable programs. #528088 - --disable-{binutils,etc,ld,gas,gold,gprof} - # Disable modules that are in a combined binutils/gdb tree. #490566 - --disable-{gdb,libdecnumber,readline,sim} - # Strip out broken static link flags. - # https://gcc.gnu.org/PR56750 - --without-stage1-ldflags - # We pull in all USE-flags that change ABI in an incompatible - # way. #666100 - # USE=multitarget change size of global arrays - # USE=64-bit-bfd changes data structures of exported API - --with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)-$(usex 64-bit-bfd 64 def) - ) - - # mips can't do hash-style=gnu ... - if [[ $(tc-arch) != mips ]] ; then - myconf+=( --enable-default-hash-style=gnu ) - fi - - use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd ) - - use nls \ - && myconf+=( --without-included-gettext ) \ - || myconf+=( --disable-nls ) - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" - - # Prevent makeinfo from running as we don't build docs here. - # bug #622652 - sed -i \ - -e '/^MAKEINFO/s:=.*:= true:' \ - Makefile || die -} - -multilib_src_install() { - default - # Provide libiberty.h directly. - dosym libiberty/libiberty.h /usr/include/libiberty.h -} - -multilib_src_install_all() { - use static-libs || find "${ED}"/usr -name '*.la' -delete -} diff --git a/sys-libs/binutils-libs/binutils-libs-2.35.1-r1.ebuild b/sys-libs/binutils-libs/binutils-libs-2.35.1-r1.ebuild index 688ea58abcd1..340f2a556d5d 100644 --- a/sys-libs/binutils-libs/binutils-libs-2.35.1-r1.ebuild +++ b/sys-libs/binutils-libs/binutils-libs-2.35.1-r1.ebuild @@ -20,7 +20,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" +IUSE="64-bit-bfd cet multitarget nls static-libs" KEYWORDS="~alpha amd64 ~arm ~arm64 hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 sparc x86 ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" BDEPEND="nls? ( sys-devel/gettext )" @@ -89,6 +89,11 @@ multilib_src_configure() { # avoid automagic dependency on (currently prefix) systems # systems with debuginfod library, bug #754753 --without-debuginfod + + # Allow user to opt into CET for host libraries. + # Ideally we would like automagic-or-disabled here. + # But the check does not quite work on i686: bug #760926. + $(use_enable cet) ) # mips can't do hash-style=gnu ... diff --git a/sys-libs/binutils-libs/binutils-libs-2.35.2.ebuild b/sys-libs/binutils-libs/binutils-libs-2.35.2.ebuild new file mode 100644 index 000000000000..9eabcacc31ef --- /dev/null +++ b/sys-libs/binutils-libs/binutils-libs-2.35.2.ebuild @@ -0,0 +1,134 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PATCH_VER=1 +PATCH_DEV=dilfridge + +inherit eutils libtool toolchain-funcs multilib-minimal + +MY_PN="binutils" +MY_P="${MY_PN}-${PV}" +PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}} +PATCH_DEV=${PATCH_DEV:-slyfox} + +DESCRIPTION="Core binutils libraries (libbfd, libopcodes, libiberty) for external packages" +HOMEPAGE="https://sourceware.org/binutils/" +SRC_URI="mirror://gnu/binutils/${MY_P}.tar.xz + https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${MY_PN}-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz" + +LICENSE="|| ( GPL-3 LGPL-3 )" +SLOT="0/${PV}" +IUSE="64-bit-bfd cet multitarget nls static-libs" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" + +BDEPEND="nls? ( sys-devel/gettext )" +DEPEND="sys-libs/zlib[${MULTILIB_USEDEP}]" +# Need a newer binutils-config that'll reset include/lib symlinks for us. +RDEPEND="${DEPEND} + >=sys-devel/binutils-config-5 +" + +S="${WORKDIR}/${MY_P}" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/bfd.h +) + +src_prepare() { + if [[ ! -z ${PATCH_VER} ]] ; then + einfo "Applying binutils-${PATCH_BINUTILS_VER} patchset ${PATCH_VER}" + eapply "${WORKDIR}/patch"/*.patch + fi + + # Fix cross-compile relinking issue, bug #626402 + elibtoolize + + default +} + +pkgversion() { + printf "Gentoo ${PVR}" + [[ -n ${PATCHVER} ]] && printf " p${PATCHVER}" +} + +multilib_src_configure() { + local myconf=( + --enable-obsolete + --enable-shared + --enable-threads + # Newer versions (>=2.24) make this an explicit option. #497268 + --enable-install-libiberty + --disable-werror + --with-bugurl="https://bugs.gentoo.org/" + --with-pkgversion="$(pkgversion)" + $(use_enable static-libs static) + # The binutils eclass enables this flag for all bi-arch builds, + # but other tools often don't care about that support. Put it + # beyond a flag if people really want it, but otherwise leave + # it disabled as it can slow things down on 32bit arches. #438522 + $(use_enable 64-bit-bfd) + # This only disables building in the zlib subdir. + # For binutils itself, it'll use the system version. #591516 + --without-zlib + --with-system-zlib + # We only care about the libs, so disable programs. #528088 + --disable-{binutils,etc,ld,gas,gold,gprof} + # Disable modules that are in a combined binutils/gdb tree. #490566 + --disable-{gdb,libdecnumber,readline,sim} + # Strip out broken static link flags. + # https://gcc.gnu.org/PR56750 + --without-stage1-ldflags + # We pull in all USE-flags that change ABI in an incompatible + # way. #666100 + # USE=multitarget change size of global arrays + # USE=64-bit-bfd changes data structures of exported API + --with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)-$(usex 64-bit-bfd 64 def) + + # avoid automagic dependency on (currently prefix) systems + # systems with debuginfod library, bug #754753 + --without-debuginfod + + # Allow user to opt into CET for host libraries. + # Ideally we would like automagic-or-disabled here. + # But the check does not quite work on i686: bug #760926. + $(use_enable cet) + ) + + # mips can't do hash-style=gnu ... + if [[ $(tc-arch) != mips ]] ; then + myconf+=( --enable-default-hash-style=gnu ) + fi + + use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd ) + + use nls \ + && myconf+=( --without-included-gettext ) \ + || myconf+=( --disable-nls ) + + if [[ ${CHOST} == *-darwin* ]] && use nls ; then + # fix underlinking in opcodes + sed -i -e 's/@SHARED_LDFLAGS@/@SHARED_LDFLAGS@ -lintl/' \ + "${S}"/opcodes/Makefile.in || die + fi + + ECONF_SOURCE=${S} \ + econf "${myconf[@]}" + + # Prevent makeinfo from running as we don't build docs here. + # bug #622652 + sed -i \ + -e '/^MAKEINFO/s:=.*:= true:' \ + Makefile || die +} + +multilib_src_install() { + default + # Provide libiberty.h directly. + dosym libiberty/libiberty.h /usr/include/libiberty.h +} + +multilib_src_install_all() { + use static-libs || find "${ED}"/usr -name '*.la' -delete +} diff --git a/sys-libs/binutils-libs/binutils-libs-2.36.1.ebuild b/sys-libs/binutils-libs/binutils-libs-2.36.1.ebuild new file mode 100644 index 000000000000..c4c2a9d4ffa5 --- /dev/null +++ b/sys-libs/binutils-libs/binutils-libs-2.36.1.ebuild @@ -0,0 +1,134 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PATCH_VER=1 +PATCH_DEV=dilfridge + +inherit eutils libtool toolchain-funcs multilib-minimal + +MY_PN="binutils" +MY_P="${MY_PN}-${PV}" +PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}} +PATCH_DEV=${PATCH_DEV:-slyfox} + +DESCRIPTION="Core binutils libraries (libbfd, libopcodes, libiberty) for external packages" +HOMEPAGE="https://sourceware.org/binutils/" +SRC_URI="mirror://gnu/binutils/${MY_P}.tar.xz + https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${MY_PN}-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz" + +LICENSE="|| ( GPL-3 LGPL-3 )" +SLOT="0/${PV}" +IUSE="64-bit-bfd cet multitarget nls static-libs" +#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" + +BDEPEND="nls? ( sys-devel/gettext )" +DEPEND="sys-libs/zlib[${MULTILIB_USEDEP}]" +# Need a newer binutils-config that'll reset include/lib symlinks for us. +RDEPEND="${DEPEND} + >=sys-devel/binutils-config-5 +" + +S="${WORKDIR}/${MY_P}" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/bfd.h +) + +src_prepare() { + if [[ ! -z ${PATCH_VER} ]] ; then + einfo "Applying binutils-${PATCH_BINUTILS_VER} patchset ${PATCH_VER}" + eapply "${WORKDIR}/patch"/*.patch + fi + + # Fix cross-compile relinking issue, bug #626402 + elibtoolize + + default +} + +pkgversion() { + printf "Gentoo ${PVR}" + [[ -n ${PATCHVER} ]] && printf " p${PATCHVER}" +} + +multilib_src_configure() { + local myconf=( + --enable-obsolete + --enable-shared + --enable-threads + # Newer versions (>=2.24) make this an explicit option. #497268 + --enable-install-libiberty + --disable-werror + --with-bugurl="https://bugs.gentoo.org/" + --with-pkgversion="$(pkgversion)" + $(use_enable static-libs static) + # The binutils eclass enables this flag for all bi-arch builds, + # but other tools often don't care about that support. Put it + # beyond a flag if people really want it, but otherwise leave + # it disabled as it can slow things down on 32bit arches. #438522 + $(use_enable 64-bit-bfd) + # This only disables building in the zlib subdir. + # For binutils itself, it'll use the system version. #591516 + --without-zlib + --with-system-zlib + # We only care about the libs, so disable programs. #528088 + --disable-{binutils,etc,ld,gas,gold,gprof} + # Disable modules that are in a combined binutils/gdb tree. #490566 + --disable-{gdb,libdecnumber,readline,sim} + # Strip out broken static link flags. + # https://gcc.gnu.org/PR56750 + --without-stage1-ldflags + # We pull in all USE-flags that change ABI in an incompatible + # way. #666100 + # USE=multitarget change size of global arrays + # USE=64-bit-bfd changes data structures of exported API + --with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)-$(usex 64-bit-bfd 64 def) + + # avoid automagic dependency on (currently prefix) systems + # systems with debuginfod library, bug #754753 + --without-debuginfod + + # Allow user to opt into CET for host libraries. + # Ideally we would like automagic-or-disabled here. + # But the check does not quite work on i686: bug #760926. + $(use_enable cet) + ) + + # mips can't do hash-style=gnu ... + if [[ $(tc-arch) != mips ]] ; then + myconf+=( --enable-default-hash-style=gnu ) + fi + + use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd ) + + use nls \ + && myconf+=( --without-included-gettext ) \ + || myconf+=( --disable-nls ) + + if [[ ${CHOST} == *-darwin* ]] && use nls ; then + # fix underlinking in opcodes + sed -i -e 's/@SHARED_LDFLAGS@/@SHARED_LDFLAGS@ -lintl/' \ + "${S}"/opcodes/Makefile.in || die + fi + + ECONF_SOURCE=${S} \ + econf "${myconf[@]}" + + # Prevent makeinfo from running as we don't build docs here. + # bug #622652 + sed -i \ + -e '/^MAKEINFO/s:=.*:= true:' \ + Makefile || die +} + +multilib_src_install() { + default + # Provide libiberty.h directly. + dosym libiberty/libiberty.h /usr/include/libiberty.h +} + +multilib_src_install_all() { + use static-libs || find "${ED}"/usr -name '*.la' -delete +} diff --git a/sys-libs/binutils-libs/binutils-libs-2.36.ebuild b/sys-libs/binutils-libs/binutils-libs-2.36.ebuild deleted file mode 100644 index c30d96e6bb49..000000000000 --- a/sys-libs/binutils-libs/binutils-libs-2.36.ebuild +++ /dev/null @@ -1,129 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PATCH_VER=1 -PATCH_DEV=dilfridge - -inherit eutils libtool toolchain-funcs multilib-minimal - -MY_PN="binutils" -MY_P="${MY_PN}-${PV}" -PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}} -PATCH_DEV=${PATCH_DEV:-slyfox} - -DESCRIPTION="Core binutils libraries (libbfd, libopcodes, libiberty) for external packages" -HOMEPAGE="https://sourceware.org/binutils/" -SRC_URI="mirror://gnu/binutils/${MY_P}.tar.xz - https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${MY_PN}-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.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 ~sparc ~x86 ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" - -BDEPEND="nls? ( sys-devel/gettext )" -DEPEND="sys-libs/zlib[${MULTILIB_USEDEP}]" -# Need a newer binutils-config that'll reset include/lib symlinks for us. -RDEPEND="${DEPEND} - >=sys-devel/binutils-config-5 -" - -S="${WORKDIR}/${MY_P}" - -MULTILIB_WRAPPED_HEADERS=( - /usr/include/bfd.h -) - -src_prepare() { - if [[ ! -z ${PATCH_VER} ]] ; then - einfo "Applying binutils-${PATCH_BINUTILS_VER} patchset ${PATCH_VER}" - eapply "${WORKDIR}/patch"/*.patch - fi - - # Fix cross-compile relinking issue, bug #626402 - elibtoolize - - default -} - -pkgversion() { - printf "Gentoo ${PVR}" - [[ -n ${PATCHVER} ]] && printf " p${PATCHVER}" -} - -multilib_src_configure() { - local myconf=( - --enable-obsolete - --enable-shared - --enable-threads - # Newer versions (>=2.24) make this an explicit option. #497268 - --enable-install-libiberty - --disable-werror - --with-bugurl="https://bugs.gentoo.org/" - --with-pkgversion="$(pkgversion)" - $(use_enable static-libs static) - # The binutils eclass enables this flag for all bi-arch builds, - # but other tools often don't care about that support. Put it - # beyond a flag if people really want it, but otherwise leave - # it disabled as it can slow things down on 32bit arches. #438522 - $(use_enable 64-bit-bfd) - # This only disables building in the zlib subdir. - # For binutils itself, it'll use the system version. #591516 - --without-zlib - --with-system-zlib - # We only care about the libs, so disable programs. #528088 - --disable-{binutils,etc,ld,gas,gold,gprof} - # Disable modules that are in a combined binutils/gdb tree. #490566 - --disable-{gdb,libdecnumber,readline,sim} - # Strip out broken static link flags. - # https://gcc.gnu.org/PR56750 - --without-stage1-ldflags - # We pull in all USE-flags that change ABI in an incompatible - # way. #666100 - # USE=multitarget change size of global arrays - # USE=64-bit-bfd changes data structures of exported API - --with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)-$(usex 64-bit-bfd 64 def) - - # avoid automagic dependency on (currently prefix) systems - # systems with debuginfod library, bug #754753 - --without-debuginfod - ) - - # mips can't do hash-style=gnu ... - if [[ $(tc-arch) != mips ]] ; then - myconf+=( --enable-default-hash-style=gnu ) - fi - - use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd ) - - use nls \ - && myconf+=( --without-included-gettext ) \ - || myconf+=( --disable-nls ) - - if [[ ${CHOST} == *-darwin* ]] && use nls ; then - # fix underlinking in opcodes - sed -i -e 's/@SHARED_LDFLAGS@/@SHARED_LDFLAGS@ -lintl/' \ - "${S}"/opcodes/Makefile.in || die - fi - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" - - # Prevent makeinfo from running as we don't build docs here. - # bug #622652 - sed -i \ - -e '/^MAKEINFO/s:=.*:= true:' \ - Makefile || die -} - -multilib_src_install() { - default - # Provide libiberty.h directly. - dosym libiberty/libiberty.h /usr/include/libiberty.h -} - -multilib_src_install_all() { - use static-libs || find "${ED}"/usr -name '*.la' -delete -} diff --git a/sys-libs/binutils-libs/metadata.xml b/sys-libs/binutils-libs/metadata.xml index 80f41eae3f2b..f1528f82ed90 100644 --- a/sys-libs/binutils-libs/metadata.xml +++ b/sys-libs/binutils-libs/metadata.xml @@ -1,15 +1,16 @@ - - toolchain@gentoo.org - Gentoo Toolchain Project - - - Support 64-bit targets even on 32-bit hosts (is ignored on 64-bit hosts) - Enable all possible targets in libbfd - - - cpe:/a:gnu:binutils - + + toolchain@gentoo.org + Gentoo Toolchain Project + + + Enable Intel Control-flow Enforcement Technology. + Support 64-bit targets even on 32-bit hosts (is ignored on 64-bit hosts) + Enable all possible targets in libbfd + + + cpe:/a:gnu:binutils + diff --git a/sys-libs/blocksruntime/Manifest b/sys-libs/blocksruntime/Manifest index 242e120734a3..5f134a14f845 100644 --- a/sys-libs/blocksruntime/Manifest +++ b/sys-libs/blocksruntime/Manifest @@ -1,4 +1,4 @@ AUX blocksruntime-0_pre20171027-ldflags-soname.patch 933 BLAKE2B 335a135b321bc57cfd63afa0c40ae91316dc5f446c4c412270ab78f3a2b9ee435900ebcdd8bb57dbd60d6a3d0bc412825a7f344141f3ef8ef6a042f29af34cc8 SHA512 7887727d2005dc70dee37b3dadbe49deeb9de7013e2d49f80248f71211a45f70e9a986991eb9bfc93668d635698f40504072fefdfca88511f8fc39121ba6f8f6 DIST blocksruntime-0_pre20171027.tar.gz 40571 BLAKE2B 5cb5cee10d482a3028b6ed496f7ed4fba25504c5e188dd21be37f0a65b72750e0ce31f7243e9cd848d10323e43e7d058fd2f7eb5ffed9a64e543d418ac96cfac SHA512 4008730f7ee4173f22c40220c4b87cd3f5cfadd12d5ddbaec244e3c4164111f036d0b859cf4bb5f2425313148f5c6445de30af2d4ccc83e1b97a66895ccc6dc5 -EBUILD blocksruntime-0_pre20171027-r1.ebuild 973 BLAKE2B b25a30a20790d5396057696e713b170b47a1439876a01c8795c096d614e23185666b477eb5cbf985044e3a7f67e4c50e3e695cb13787d04892e45c43787310d8 SHA512 44014bdb99b32cbb2092b4609715af6978c1c8dc9999bc712e8cbb2b4cd8a6d0bbb79733fb685cf5af0f67064200c96f441050b160629a7cc5bea09d30796146 +EBUILD blocksruntime-0_pre20171027-r1.ebuild 980 BLAKE2B 51116077a0f71392e579265c407179a361976cd63c5d2d83136c5dbdd58d9965f7b1f6e8ca7f6700a6dcad439d4a5632d9cc17105f25679da8e7499c29b9e5eb SHA512 5ca0ab3e205cd86f37149b50c6c93ae66e5c5d0c31e287e31969bf7c59ec355c86f745f61a8682db2fe30311e504be38fd2f95752975114f466009669944e115 MISC metadata.xml 337 BLAKE2B e2e4dc3f4bf390d4cd54194e85e6e2104e962d0ddd7b7381ddb7e1974c778bfe7d86162087b267faff5c306a6583b9ac092a79305e750ab6b1dbab758c6e780e SHA512 3dcbdca3013c551d20488c1b2d53525c5bc4e234403a2051c0dd8e7ad9db15f9cc946778764e1bf4aa19816a66a3922ed879614c01e46265195535fa91ebc481 diff --git a/sys-libs/blocksruntime/blocksruntime-0_pre20171027-r1.ebuild b/sys-libs/blocksruntime/blocksruntime-0_pre20171027-r1.ebuild index ccb8ae621206..bcafbfff5a34 100644 --- a/sys-libs/blocksruntime/blocksruntime-0_pre20171027-r1.ebuild +++ b/sys-libs/blocksruntime/blocksruntime-0_pre20171027-r1.ebuild @@ -13,7 +13,7 @@ SRC_URI="https://github.com/mackyle/blocksruntime/archive/${COMMIT}.tar.gz -> ${ LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" -KEYWORDS="amd64 ~arm ~arm64 ~ppc x86" +KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 x86" IUSE="static-libs" RDEPEND="" diff --git a/sys-libs/compiler-rt-sanitizers/Manifest b/sys-libs/compiler-rt-sanitizers/Manifest index 0d126adc9b30..4c4c2afbd818 100644 --- a/sys-libs/compiler-rt-sanitizers/Manifest +++ b/sys-libs/compiler-rt-sanitizers/Manifest @@ -6,6 +6,7 @@ DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc DIST llvmorg-11.0.1.tar.gz 122790338 BLAKE2B 0130996b4a8c4d9f757136fd7fb318068c9bfdc565060dec0d4336480c4ab66c4ae3185a7fdb05f13cf9ee8fd4123b09df938881b75d6e5d3689595114b7e32a SHA512 f5e6ef0b3111aae08a89cd01adb2ff4abfa9ef779c68b9190421d0447efd25c2cc00e5aae9f4764805f5fa31434866043d1510ae7389817e28ae53a5442e2fdf DIST llvmorg-11.1.0-rc1.tar.gz 122793491 BLAKE2B f4777455f5903cffea284eaffd872be6c287c6c1ebbd0c4b5b5473f146d7f5476f3551998a58d3e976ab90cde7b0d05db2b3be97f4e8e2c3474755ff38739268 SHA512 44e281486c44fa1611042ab658b9833a75f9613b7f896863613cfb99de66d13607fb1e9064f42ea3d89ca7951113465a90fd96ca4544262f165f78bd5261f5a8 DIST llvmorg-11.1.0-rc2.tar.gz 122794772 BLAKE2B ab533f078d9d6c37e27c578866a07896344a0b4cf4ebf6402f4fa490213e017310d1c882bf63e552e99a5b4f6d1d8c01413420713b200bfa6732eff64f3c47a9 SHA512 88d8f1d938f0ba7ec39478d03a35c09a30bea51735276205494265b1061621b3ebcda8ee4211e896783b1b99a377c9fa68046118b0d6cb7fcb7bea1e960f95b7 +DIST llvmorg-11.1.0-rc3.tar.gz 122785838 BLAKE2B d0998219471476be1a1249b3a2444750585a352047d4dc14de6fec87eb3407d0f4b848757340200d3423cb4090554ae033fb4ec3797446e46556fbb566bb77a3 SHA512 b67874cb127f3f929a3796558cdfbf509b384c4247f4936ba08cecf88ca880a167cf67c23d78104b5bab4a98efd9435d1b923deb7ae7367875414e6c896957d1 DIST llvmorg-12.0.0-rc1.tar.gz 134164708 BLAKE2B d4261ff7d9586b47f4cfda3d2cda4b76534f9e17fbd5cdb8861895b8eb466021962f4608bfcdeb52f8fce78850a994fd5eda0560f7211e5c8d1ac9330a738a36 SHA512 3d07d013d0705bb99f56898cc55d054d0d95aeb53b3c756cfab80b4c9097cc4935bcea89b9efde2e503a899b9fccf0dacc0073c9991c8ea352755c5ec68a757a DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59 EBUILD compiler-rt-sanitizers-10.0.1.ebuild 4490 BLAKE2B 5bbce4ab70e2b1434698eae6a37c529c7ffa58ae90236c0ddef3023a00cf1bb6d3ed8b3ae767b81f0abb9759e33fb5e1d9e8f755505db72ceb9cc46f6cb1a179 SHA512 fda208adbbb4fa7e14d3a27956bce3a809c202ecf5eceb0fac956a0ec0879579f8f94f69172cd934481a98d84cdc36ea2fdc46b8ad906dbb48795673d2d7c4eb @@ -13,6 +14,7 @@ EBUILD compiler-rt-sanitizers-11.0.0.ebuild 5092 BLAKE2B 243f8ddf60558abf5d1ad9e EBUILD compiler-rt-sanitizers-11.0.1.ebuild 5999 BLAKE2B 197cc312533b0bfa139951b18537b0389bcaf22ceeeb612f7322991f9c943b8048bdad26f0af8a431d930f22182cc3443d96998616d0f7e7c1d230fba692cbce SHA512 d9c3e47605083dba763dcf39d0695595be5ad040dfa906e176b55eff5e46e65977a6410639bad0accf3ae68a5c181b92dd95afb471546f512f364860e0428438 EBUILD compiler-rt-sanitizers-11.1.0_rc1.ebuild 5927 BLAKE2B de51230775d0ad64fffe4f0c7d6c3ae42cef8816fb1175ff139b22488d2bcf47dc8a1f5b68020a6d8df15064f6da3d4931b9b3af9dc4d1ef55071c3254088bbf SHA512 6fbd9393988c86f9f9f2ce6a6bf9a6661591e92aac943b04622b3889b405d6a25de5f734753aa0f8078fede534d9cd6e2daa8ebbbe5d4b6e96ef2121d44493bc EBUILD compiler-rt-sanitizers-11.1.0_rc2.ebuild 5927 BLAKE2B de51230775d0ad64fffe4f0c7d6c3ae42cef8816fb1175ff139b22488d2bcf47dc8a1f5b68020a6d8df15064f6da3d4931b9b3af9dc4d1ef55071c3254088bbf SHA512 6fbd9393988c86f9f9f2ce6a6bf9a6661591e92aac943b04622b3889b405d6a25de5f734753aa0f8078fede534d9cd6e2daa8ebbbe5d4b6e96ef2121d44493bc +EBUILD compiler-rt-sanitizers-11.1.0_rc3.ebuild 5927 BLAKE2B de51230775d0ad64fffe4f0c7d6c3ae42cef8816fb1175ff139b22488d2bcf47dc8a1f5b68020a6d8df15064f6da3d4931b9b3af9dc4d1ef55071c3254088bbf SHA512 6fbd9393988c86f9f9f2ce6a6bf9a6661591e92aac943b04622b3889b405d6a25de5f734753aa0f8078fede534d9cd6e2daa8ebbbe5d4b6e96ef2121d44493bc EBUILD compiler-rt-sanitizers-12.0.0.9999.ebuild 5843 BLAKE2B 8d0cefba3aab132af0df86fbfc47369e5029929fd5ec0cd3b4bde3387f5fd8380b5273ee28b8217ff05691c868038decd172c94f5685b7c6c1b2e4962e1cab19 SHA512 0ea473d719537bf29f899674a6cb41b988799a5e4c96adeb87ed5a7efe4ce63dbb488f5157fe91194963fb761597b0109640e9577c10d92bed92e81babbe2045 EBUILD compiler-rt-sanitizers-12.0.0_rc1.ebuild 5843 BLAKE2B 8d0cefba3aab132af0df86fbfc47369e5029929fd5ec0cd3b4bde3387f5fd8380b5273ee28b8217ff05691c868038decd172c94f5685b7c6c1b2e4962e1cab19 SHA512 0ea473d719537bf29f899674a6cb41b988799a5e4c96adeb87ed5a7efe4ce63dbb488f5157fe91194963fb761597b0109640e9577c10d92bed92e81babbe2045 EBUILD compiler-rt-sanitizers-13.0.0.9999.ebuild 5843 BLAKE2B 8d0cefba3aab132af0df86fbfc47369e5029929fd5ec0cd3b4bde3387f5fd8380b5273ee28b8217ff05691c868038decd172c94f5685b7c6c1b2e4962e1cab19 SHA512 0ea473d719537bf29f899674a6cb41b988799a5e4c96adeb87ed5a7efe4ce63dbb488f5157fe91194963fb761597b0109640e9577c10d92bed92e81babbe2045 diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-11.1.0_rc3.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-11.1.0_rc3.ebuild new file mode 100644 index 000000000000..8521018ff283 --- /dev/null +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-11.1.0_rc3.ebuild @@ -0,0 +1,201 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{7..9} ) +inherit check-reqs cmake flag-o-matic llvm llvm.org python-any-r1 + +DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)" +HOMEPAGE="https://llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="$(ver_cut 1-3)" +KEYWORDS="" +IUSE="+clang test elibc_glibc" +# base targets +IUSE+=" +libfuzzer +profile +xray" +# sanitizer targets, keep in sync with config-ix.cmake +# NB: ubsan, scudo deliberately match two entries +SANITIZER_FLAGS=( + asan dfsan lsan msan hwasan tsan ubsan safestack cfi scudo + shadowcallstack gwp-asan +) +IUSE+=" ${SANITIZER_FLAGS[@]/#/+}" +REQUIRED_USE=" + || ( ${SANITIZER_FLAGS[*]} libfuzzer profile xray ) + gwp-asan? ( scudo ) + ubsan? ( cfi )" +RESTRICT="!test? ( test ) !clang? ( test )" + +CLANG_SLOT=${SLOT%%.*} +# llvm-6 for new lit options +DEPEND=" + >=sys-devel/llvm-6" +BDEPEND=" + >=dev-util/cmake-3.16 + clang? ( sys-devel/clang ) + elibc_glibc? ( net-libs/libtirpc ) + test? ( + !=dev-python/lit-5[\${PYTHON_USEDEP}]") + =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} + sys-libs/compiler-rt:${SLOT} + ) + ${PYTHON_DEPS}" + +LLVM_COMPONENTS=( compiler-rt ) +LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support llvm/utils/unittest ) +llvm.org_set_globals + +PATCHES=( + "${FILESDIR}/11.1.0/compiler-rt-prefix-paths.patch" +) + +python_check_deps() { + use test || return 0 + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +check_space() { + if use test; then + local CHECKREQS_DISK_BUILD=11G + check-reqs_pkg_pretend + fi +} + +pkg_pretend() { + check_space +} + +pkg_setup() { + check_space + llvm_pkg_setup + python-any-r1_pkg_setup +} + +src_prepare() { + sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die + + local flag + for flag in "${SANITIZER_FLAGS[@]}"; do + if ! use "${flag}"; then + local cmake_flag=${flag/-/_} + sed -i -e "/COMPILER_RT_HAS_${cmake_flag^^}/s:TRUE:FALSE:" \ + cmake/config-ix.cmake || die + fi + done + + if use asan && ! use profile; then + # TODO: fix these tests to be skipped upstream + rm test/asan/TestCases/asan_and_llvm_coverage_test.cpp || die + fi + + # broken with new glibc + sed -i -e '/EXPECT_EQ.*ThreadDescriptorSize/d' \ + lib/sanitizer_common/tests/sanitizer_linux_test.cpp || die + + llvm.org_src_prepare +} + +src_configure() { + # pre-set since we need to pass it to cmake + BUILD_DIR=${WORKDIR}/compiler-rt_build + + if use clang; then + local -x CC=${CHOST}-clang + local -x CXX=${CHOST}-clang++ + strip-unsupported-flags + fi + + local flag want_sanitizer=OFF + for flag in "${SANITIZER_FLAGS[@]}"; do + if use "${flag}"; then + want_sanitizer=ON + break + fi + done + + local mycmakeargs=( + -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" + # use a build dir structure consistent with install + # this makes it possible to easily deploy test-friendly clang + -DCOMPILER_RT_OUTPUT_DIR="${BUILD_DIR}/lib/clang/${SLOT}" + + -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) + # builtins & crt installed by sys-libs/compiler-rt + -DCOMPILER_RT_BUILD_BUILTINS=OFF + -DCOMPILER_RT_BUILD_CRT=OFF + -DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer) + -DCOMPILER_RT_BUILD_PROFILE=$(usex profile) + -DCOMPILER_RT_BUILD_SANITIZERS="${want_sanitizer}" + -DCOMPILER_RT_BUILD_XRAY=$(usex xray) + + -DPython3_EXECUTABLE="${PYTHON}" + ) + if use test; then + mycmakeargs+=( + -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags)" + + # they are created during src_test() + -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang" + -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang++" + ) + + # same flags are passed for build & tests, so we need to strip + # them down to a subset supported by clang + CC=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang \ + CXX=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++ \ + strip-unsupported-flags + fi + + if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then + mycmakeargs+=( + # setting -isysroot is disabled with compiler-rt-prefix-paths.patch + # this allows adding arm64 support using SDK in EPREFIX + -DDARWIN_macosx_CACHED_SYSROOT="${EPREFIX}/MacOSX.sdk" + # Set version based on the SDK in EPREFIX + # This disables i386 for SDK >= 10.15 + # Will error if has_use tsan and SDK < 10.12 + -DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath ${EPREFIX}/MacOSX.sdk | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')" + # Use our libtool instead of looking it up with xcrun + -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool" + ) + fi + + cmake_src_configure + + if use test; then + local sys_dir=( "${EPREFIX}"/usr/lib/clang/${SLOT}/lib/* ) + [[ -e ${sys_dir} ]] || die "Unable to find ${sys_dir}" + [[ ${#sys_dir[@]} -eq 1 ]] || die "Non-deterministic compiler-rt install: ${sys_dir[*]}" + + # copy clang over since resource_dir is located relatively to binary + # therefore, we can put our new libraries in it + mkdir -p "${BUILD_DIR}"/lib/{llvm/${CLANG_SLOT}/{bin,$(get_libdir)},clang/${SLOT}/include} || die + cp "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/bin/clang{,++} \ + "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/bin/ || die + cp "${EPREFIX}"/usr/lib/clang/${SLOT}/include/*.h \ + "${BUILD_DIR}"/lib/clang/${SLOT}/include/ || die + cp "${sys_dir}"/*builtins*.a \ + "${BUILD_DIR}/lib/clang/${SLOT}/lib/${sys_dir##*/}/" || die + # we also need LLVMgold.so for gold-based tests + if [[ -f ${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so ]]; then + ln -s "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so \ + "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/$(get_libdir)/ || die + fi + fi +} + +src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + # disable sandbox to have it stop clobbering LD_PRELOAD + local -x SANDBOX_ON=0 + # wipe LD_PRELOAD to make ASAN happy + local -x LD_PRELOAD= + + cmake_build check-all +} diff --git a/sys-libs/compiler-rt/Manifest b/sys-libs/compiler-rt/Manifest index b9e32a2f4b21..9524a4b8ea8e 100644 --- a/sys-libs/compiler-rt/Manifest +++ b/sys-libs/compiler-rt/Manifest @@ -5,6 +5,7 @@ DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc DIST llvmorg-11.0.1.tar.gz 122790338 BLAKE2B 0130996b4a8c4d9f757136fd7fb318068c9bfdc565060dec0d4336480c4ab66c4ae3185a7fdb05f13cf9ee8fd4123b09df938881b75d6e5d3689595114b7e32a SHA512 f5e6ef0b3111aae08a89cd01adb2ff4abfa9ef779c68b9190421d0447efd25c2cc00e5aae9f4764805f5fa31434866043d1510ae7389817e28ae53a5442e2fdf DIST llvmorg-11.1.0-rc1.tar.gz 122793491 BLAKE2B f4777455f5903cffea284eaffd872be6c287c6c1ebbd0c4b5b5473f146d7f5476f3551998a58d3e976ab90cde7b0d05db2b3be97f4e8e2c3474755ff38739268 SHA512 44e281486c44fa1611042ab658b9833a75f9613b7f896863613cfb99de66d13607fb1e9064f42ea3d89ca7951113465a90fd96ca4544262f165f78bd5261f5a8 DIST llvmorg-11.1.0-rc2.tar.gz 122794772 BLAKE2B ab533f078d9d6c37e27c578866a07896344a0b4cf4ebf6402f4fa490213e017310d1c882bf63e552e99a5b4f6d1d8c01413420713b200bfa6732eff64f3c47a9 SHA512 88d8f1d938f0ba7ec39478d03a35c09a30bea51735276205494265b1061621b3ebcda8ee4211e896783b1b99a377c9fa68046118b0d6cb7fcb7bea1e960f95b7 +DIST llvmorg-11.1.0-rc3.tar.gz 122785838 BLAKE2B d0998219471476be1a1249b3a2444750585a352047d4dc14de6fec87eb3407d0f4b848757340200d3423cb4090554ae033fb4ec3797446e46556fbb566bb77a3 SHA512 b67874cb127f3f929a3796558cdfbf509b384c4247f4936ba08cecf88ca880a167cf67c23d78104b5bab4a98efd9435d1b923deb7ae7367875414e6c896957d1 DIST llvmorg-12.0.0-rc1.tar.gz 134164708 BLAKE2B d4261ff7d9586b47f4cfda3d2cda4b76534f9e17fbd5cdb8861895b8eb466021962f4608bfcdeb52f8fce78850a994fd5eda0560f7211e5c8d1ac9330a738a36 SHA512 3d07d013d0705bb99f56898cc55d054d0d95aeb53b3c756cfab80b4c9097cc4935bcea89b9efde2e503a899b9fccf0dacc0073c9991c8ea352755c5ec68a757a DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59 EBUILD compiler-rt-10.0.1.ebuild 2759 BLAKE2B ef75dd0b6d96bf2dfb562ac59bc6bbb8aebc69684dd3acf302b4700fad90fd80e62088b0c141aa23958ec7f06dafd01f6d5f451b4c995fb01541eb1a39dcb127 SHA512 51a5c6fcb385651f5d91d5985396f176fc7405fc4a95321a8ff896f8c22b922bfc987aaa5462a6be3df3ee2ac179633226e97955b4ffd486ec414a4e82e9470c @@ -12,6 +13,7 @@ EBUILD compiler-rt-11.0.0.ebuild 3541 BLAKE2B d9847d05f37311727267169e5798e2cf3a EBUILD compiler-rt-11.0.1.ebuild 3548 BLAKE2B c1f96cde71af8b605056e827c750c5dfe07382ecf494dca1f5d689fc3a8caff18d8ac595f6d47b7b9f9fec8e7cbba3ddcbb07176958ffacd541b314a3baad587 SHA512 bafd2287d7d07ef083e0aed54f76d8c82d7fa317a5432cb9e1ad8c05bbf78c6577178d42e278dafd92bb0f0803031c25038c0870a51008ca7b22a396ebbfde8a EBUILD compiler-rt-11.1.0_rc1.ebuild 3476 BLAKE2B 8b77c7494d3b360ca64b15b2909ab23a6884a2769d8985f446541fc513f16c0ede5671f01c0ae7c39b1f2ee964d0139df0c83d9de0c28080fa170b0695856295 SHA512 05871f00567f79ff5f17f19c7ddd21042b4c230819a1c7dec09e0c6072b45c7c773afa20d06da1880fa20ecd43b1b97b9d1c8a69842d31ca62558c480198d20f EBUILD compiler-rt-11.1.0_rc2.ebuild 3476 BLAKE2B 8b77c7494d3b360ca64b15b2909ab23a6884a2769d8985f446541fc513f16c0ede5671f01c0ae7c39b1f2ee964d0139df0c83d9de0c28080fa170b0695856295 SHA512 05871f00567f79ff5f17f19c7ddd21042b4c230819a1c7dec09e0c6072b45c7c773afa20d06da1880fa20ecd43b1b97b9d1c8a69842d31ca62558c480198d20f +EBUILD compiler-rt-11.1.0_rc3.ebuild 3476 BLAKE2B 8b77c7494d3b360ca64b15b2909ab23a6884a2769d8985f446541fc513f16c0ede5671f01c0ae7c39b1f2ee964d0139df0c83d9de0c28080fa170b0695856295 SHA512 05871f00567f79ff5f17f19c7ddd21042b4c230819a1c7dec09e0c6072b45c7c773afa20d06da1880fa20ecd43b1b97b9d1c8a69842d31ca62558c480198d20f EBUILD compiler-rt-12.0.0.9999.ebuild 3508 BLAKE2B 6ab25dee0e7088ac9c5cb422e40d82b2ae03df25c32201c309c509a58f6381de4319ec715539f5752828310045a1e3ac2d237e7a8616584565eb17b6b9741e00 SHA512 c67bf80040a90a161e364c01057c37fc4e9858f1bfbb9b00ea9601e1844d74e0c1e5c0b629a061efe7b8c620cfe37eeeb32284da00b252283491f6538bdc5d7c EBUILD compiler-rt-12.0.0_rc1.ebuild 3508 BLAKE2B 6ab25dee0e7088ac9c5cb422e40d82b2ae03df25c32201c309c509a58f6381de4319ec715539f5752828310045a1e3ac2d237e7a8616584565eb17b6b9741e00 SHA512 c67bf80040a90a161e364c01057c37fc4e9858f1bfbb9b00ea9601e1844d74e0c1e5c0b629a061efe7b8c620cfe37eeeb32284da00b252283491f6538bdc5d7c EBUILD compiler-rt-13.0.0.9999.ebuild 3508 BLAKE2B 6ab25dee0e7088ac9c5cb422e40d82b2ae03df25c32201c309c509a58f6381de4319ec715539f5752828310045a1e3ac2d237e7a8616584565eb17b6b9741e00 SHA512 c67bf80040a90a161e364c01057c37fc4e9858f1bfbb9b00ea9601e1844d74e0c1e5c0b629a061efe7b8c620cfe37eeeb32284da00b252283491f6538bdc5d7c diff --git a/sys-libs/compiler-rt/compiler-rt-11.1.0_rc3.ebuild b/sys-libs/compiler-rt/compiler-rt-11.1.0_rc3.ebuild new file mode 100644 index 000000000000..041d0c955709 --- /dev/null +++ b/sys-libs/compiler-rt/compiler-rt-11.1.0_rc3.ebuild @@ -0,0 +1,126 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{7..9} ) +inherit cmake flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs + +DESCRIPTION="Compiler runtime library for clang (built-in part)" +HOMEPAGE="https://llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="$(ver_cut 1-3)" +KEYWORDS="" +IUSE="+clang test" +RESTRICT="!test? ( test ) !clang? ( test )" + +CLANG_SLOT=${SLOT%%.*} +# llvm-6 for new lit options +DEPEND=" + >=sys-devel/llvm-6" +BDEPEND=" + >=dev-util/cmake-3.16 + clang? ( sys-devel/clang ) + test? ( + $(python_gen_any_dep ">=dev-python/lit-9.0.1[\${PYTHON_USEDEP}]") + =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} + ) + ${PYTHON_DEPS}" + +LLVM_COMPONENTS=( compiler-rt ) +llvm.org_set_globals + +PATCHES=( + "${FILESDIR}/11.1.0/${PN}-prefix-paths.patch" +) + +python_check_deps() { + use test || return 0 + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_pretend() { + if ! use clang && ! tc-is-clang; then + ewarn "Building using a compiler other than clang may result in broken atomics" + ewarn "library. Enable USE=clang unless you have a very good reason not to." + fi +} + +pkg_setup() { + # Darwin Prefix builds do not have llvm installed yet, so rely on + # bootstrap-prefix to set the appropriate path vars to LLVM instead + # of using llvm_pkg_setup. + if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then + llvm_pkg_setup + fi + python-any-r1_pkg_setup +} + +test_compiler() { + $(tc-getCC) ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \ + <<<'int main() { return 0; }' &>/dev/null +} + +src_configure() { + # pre-set since we need to pass it to cmake + BUILD_DIR=${WORKDIR}/${P}_build + + local nolib_flags=( -nodefaultlibs -lc ) + if use clang; then + local -x CC=${CHOST}-clang + local -x CXX=${CHOST}-clang++ + strip-unsupported-flags + # ensure we can use clang before installing compiler-rt + local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" + elif ! test_compiler; then + if test_compiler "${nolib_flags[@]}"; then + local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" + ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}" + fi + fi + + local mycmakeargs=( + -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" + + -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) + -DCOMPILER_RT_BUILD_LIBFUZZER=OFF + -DCOMPILER_RT_BUILD_PROFILE=OFF + -DCOMPILER_RT_BUILD_SANITIZERS=OFF + -DCOMPILER_RT_BUILD_XRAY=OFF + + -DPython3_EXECUTABLE="${PYTHON}" + ) + + if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then + mycmakeargs+=( + # setting -isysroot is disabled with compiler-rt-prefix-paths.patch + # this allows adding arm64 support using SDK in EPREFIX + -DDARWIN_macosx_CACHED_SYSROOT="${EPREFIX}/MacOSX.sdk" + # Set version based on the SDK in EPREFIX. + # This disables i386 for SDK >= 10.15 + -DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath ${EPREFIX}/MacOSX.sdk | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')" + # Use our libtool instead of looking it up with xcrun + -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool" + ) + fi + + if use test; then + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags)" + + -DCOMPILER_RT_TEST_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang" + -DCOMPILER_RT_TEST_CXX_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++" + ) + fi + + cmake_src_configure +} + +src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + + cmake_build check-builtins +} diff --git a/sys-libs/db/Manifest b/sys-libs/db/Manifest index df5946fe70c2..0325776f9c98 100644 --- a/sys-libs/db/Manifest +++ b/sys-libs/db/Manifest @@ -80,7 +80,7 @@ EBUILD db-4.8.30-r3.ebuild 5181 BLAKE2B 2e5ae14b1410600ffe98cf46582289109ce834f1 EBUILD db-4.8.30-r4.ebuild 5275 BLAKE2B e636f2f29ad613afbb8b020f43d6be3327bbb404bd47f00d3650855bff8e2c3d25867f6992449b800a6c6a2b18bf916733860078e902c818dac52520d9ceaedf SHA512 57bdfcb2e5da6497aeba9089cb0fba08d86702b3e6323e9095adb8388cdb2bab77157f849e4de63b55fe053a31163ebf52e29e9ae72e15a64ece76e87f6fe833 EBUILD db-5.1.29-r2.ebuild 5828 BLAKE2B 4a856ff3ebb4ca33a8349f0ea753766c034fd88e97340cad4ec7c4ef32606a744c18c0177d06c20646c5159f871732f2a3395e0597000367efad2803b7d43e22 SHA512 d027f886b27db0691c0a3f99abc6edc47d31bcdc2a7a1c2dae10023c88b06bbdfd1d44a48a62ffc5b71ace72f71005a8e476465386db2b884b9e979d3a47fee5 EBUILD db-5.3.28-r2.ebuild 7139 BLAKE2B 6439c56d2c18b479c62dda318cd46ca2f9ec3be5b96b42cb5871b9b5d9c5778e18c5da7ead3316db4d2996f006fcb2e684e16a6da715e98877ae41f0a5432ca3 SHA512 ce1a4ee5d048f35fb0710aa9fc348eb9fe80072f12970a2a36cb317257c62b5b6318b1817389a4090b3548e232a512da4b45c097b2f668cc28882d031c20174e -EBUILD db-5.3.28-r4.ebuild 7108 BLAKE2B 2efbc2566ce164a6b38163dbb561c020ac25e58489cd2f77b46674f1a509bff787530105d5b0111476f6150346dc6f259d4067b3d00003beb9fd733852cd48dd SHA512 b243defee9d5ed5c0892182533dea7ae91b91c659bc74f124d162c6a8742b3170a012450fb1d48b02f66973214dc5cb54a33428cca89f4361804414abae23092 +EBUILD db-5.3.28-r4.ebuild 7107 BLAKE2B 26435e7b7d970310d2efbd80729c9e3774300595c3ec9675472c5e10c06f52155748b90456c6f28d82c90dedcdbec75b1388641a9763aa3132a234bec320dd3a SHA512 bc8fee95b27a3db77796329de3e9507e0f0d9073ce7b81e1449ffbc20a3aac79da41910b2f685ea9b110a632261ca3701db1c534d6108276fad9c8d1bdbe099b EBUILD db-5.3.28-r5.ebuild 7199 BLAKE2B eb1a269cc68b6ba53e6829cc92fbd45a2c825e63d409c4dd98504f6632aede6d0938659b7cfd6eb7cc8d61231f92d6f7abac9aedde5da0a93784184738d79777 SHA512 c37de3183d6c3a1f2abe07b46e6f841cee535f00f9bc18af312b79946faad1014de974e4c75eeb35e28a07bd3950bb6d92b3760e00a044b6f517112aadb3001e EBUILD db-6.0.35-r2.ebuild 7109 BLAKE2B 852eb1f3a8ada53e5c5d876caad77f979e113f8d768c3f95373b4cfa0c386f6cbbba43cb6ec7bcdda7dc3bf90c0d1530c01b9e06f69a2fb4078abf7c04c27c96 SHA512 9120421a13a76cbc1b0e76640b761593b8e0ec3dd035aa1a04f8fbed596afd25c6cb98b9bf05718ea2e3de11dc7179c058a7a8c0b039fa21b6349cfbdf2cffd3 EBUILD db-6.0.35-r3.ebuild 7194 BLAKE2B 09fb3e9e47182ca1a4582613345abdcf19f408aba107369c3e5bc6f15f0a54c1bf74d9a6361cda4ef148b67f342c9a590f8a79bcfd5d7d1f62dc9d3577338553 SHA512 6879cdaca7f58cec87ab4afde513e02b046d57f8247763c836af26ffc470d1e776358ddd3b3dc795ef9912106dac07f686b3eb9a6277b54b48c1eecc37ae5d65 diff --git a/sys-libs/db/db-5.3.28-r4.ebuild b/sys-libs/db/db-5.3.28-r4.ebuild index 25079725abbe..99876d1e9ebe 100644 --- a/sys-libs/db/db-5.3.28-r4.ebuild +++ b/sys-libs/db/db-5.3.28-r4.ebuild @@ -29,7 +29,7 @@ done LICENSE="Sleepycat" SLOT="$(ver_cut 1-2)" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ppc ~ppc64 ~riscv ~s390 sparc x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ppc ~ppc64 ~riscv s390 sparc x86" IUSE="doc java cxx tcl test" REQUIRED_USE="test? ( tcl )" diff --git a/sys-libs/e2fsprogs-libs/Manifest b/sys-libs/e2fsprogs-libs/Manifest index 24db2fdff126..6456deb45124 100644 --- a/sys-libs/e2fsprogs-libs/Manifest +++ b/sys-libs/e2fsprogs-libs/Manifest @@ -2,7 +2,9 @@ AUX e2fsprogs-libs-1.42.13-fix-build-cflags.patch 300 BLAKE2B a6cfc44d27991cb98b DIST e2fsprogs-1.45.6.tar.xz 5572144 BLAKE2B 24a44d27a02a1fa178083d5ee6034b20fedcac9faf7cf7f5cfcd4e4cee6d38775bc78949b9b00823cbbdacfab783e8e1e739579b9a7236c5425f51b27600743b SHA512 f3abfb6fe7ef632bb81152e2127d601cadd3fa93162178576a1d5ed82c2286627184b207b85a5b2a1793db0addf0885dfc3b9523bb340443224caf9c6d613b84 DIST e2fsprogs-1.45.7.tar.xz 5570052 BLAKE2B 237ef068c3899641b5eb908cc302c8c6b454e337bce2de95fc96b9a078a003db0c44bd34391063cc2f30a95dcce57950fe900f59ae7d273786c657b7c190b341 SHA512 fcbd66af7b87f2bdec562ddd59c8c5fbd60f32fdd582a5c9d21cb6cfea642d2cdca57b6c29124309798528b2d9ceadf770928a6698f75dc88a47701286128763 DIST e2fsprogs-1.46.0.tar.xz 7007144 BLAKE2B d902028a0e538a62428e18e3c2a0a917a73351afc7d8eec804ddac459a1b8c2e11d104201235fb64170acc78942d2c9d5a45039f770cf5ce537cdba18cd559e6 SHA512 c865360e532da42264200934229aa9cfc88c3342fc4e206e82d1fe2a908b0fd3b58f2e9a4796f2ecdeafe1ace9f9ee444ea5b2e3efd488cb934f9a22af6a8f7e +DIST e2fsprogs-1.46.1.tar.xz 7019700 BLAKE2B 2356fcd206de14377a4625a8be2ff94cfd3fb2b911836a3da46499964fc5d7f2a6d03bf5818543d2ead34ac7cab36ef0e18885343d6814a0124b50ab7ea4bb69 SHA512 fe6aa55b62f183633872209cd69cf6be0753d5a430542a7c73dbbd428e5fa93b5df7efa7507bb60f9f90a1c61cb8f5cf10665675eea8bd72aad3d04dd2dae15c EBUILD e2fsprogs-libs-1.45.6.ebuild 2161 BLAKE2B 6f7bcb58e36d06f3c0fcbe9ad5d0ed63be6b815fb7ad20ed1084f17b9c328ec7ec2672ece06812a97291d0018405f7070aa032d67892133a894e790d3eedb77d SHA512 c1cdcd01d6857317ede20b982d8db869b1c0348f7e0825ad32e498d92fcdaf2187d6482c0278c2d025b91eb1c5234d00e157fa589f2d3f9877970a7b091e87ec EBUILD e2fsprogs-libs-1.45.7.ebuild 2169 BLAKE2B 314050d578df28da88a24adc53d8c4809316f3d63a31a35198c0f79a0d6d78895a0a498acce05538a4d227a7c650234acca683372132dfbcfc7fc4fcff423b9c SHA512 e2497549c127a030cfcba925022f90fd67ca5fe3e1ae92b705d9a43ac67f3c4a07c6d8f0a6f1248552db570ca53c1a48dd4c19a1cc4e822c6fca24088f6bc120 EBUILD e2fsprogs-libs-1.46.0.ebuild 2169 BLAKE2B 314050d578df28da88a24adc53d8c4809316f3d63a31a35198c0f79a0d6d78895a0a498acce05538a4d227a7c650234acca683372132dfbcfc7fc4fcff423b9c SHA512 e2497549c127a030cfcba925022f90fd67ca5fe3e1ae92b705d9a43ac67f3c4a07c6d8f0a6f1248552db570ca53c1a48dd4c19a1cc4e822c6fca24088f6bc120 +EBUILD e2fsprogs-libs-1.46.1.ebuild 2169 BLAKE2B 314050d578df28da88a24adc53d8c4809316f3d63a31a35198c0f79a0d6d78895a0a498acce05538a4d227a7c650234acca683372132dfbcfc7fc4fcff423b9c SHA512 e2497549c127a030cfcba925022f90fd67ca5fe3e1ae92b705d9a43ac67f3c4a07c6d8f0a6f1248552db570ca53c1a48dd4c19a1cc4e822c6fca24088f6bc120 MISC metadata.xml 399 BLAKE2B 7f75ab727887efba1f1991c5944cd262c95b53dbc48a391afdd67cb5c1f99d9c06753b06c7d28c5472075835ff5da4718eb0c3ca5b9e68a4d83173f223162c31 SHA512 45e90f3d9b83bffd42173290d47dce2247a2eff4d6293b7bcbcf422115e11b8c958a7a13f60b7742a96350bd5a2b37d8e76a807776f943c88833b77782d4f180 diff --git a/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.46.1.ebuild b/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.46.1.ebuild new file mode 100644 index 000000000000..41da9ca3221d --- /dev/null +++ b/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.46.1.ebuild @@ -0,0 +1,93 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit toolchain-funcs multilib-minimal usr-ldscript + +MY_PN=${PN%-libs} +MY_P="${MY_PN}-${PV}" + +DESCRIPTION="e2fsprogs libraries (common error and subsystem)" +HOMEPAGE="http://e2fsprogs.sourceforge.net/" +SRC_URI="https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v${PV}/${MY_P}.tar.xz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x86-solaris" +IUSE="static-libs" + +RDEPEND="!sys-libs/com_err + !sys-libs/ss + !' | $(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 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'; then - local t=${CTARGET_OPT:-${CTARGET}} - t=${t%%-*} - filter-flags '-march=*' - export CFLAGS="-march=${t} ${CFLAGS}" - einfo "Auto adding -march=${t} to CFLAGS #185404" - fi - ;; - amd64) - # -march needed for #185404 #199334 - # TODO: See cross-compile issues listed above for x86. - [[ ${ABI} == x86 ]] && - if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then - local t=${CTARGET_OPT:-${CTARGET}} - t=${t%%-*} - # Normally the target is x86_64-xxx, so turn that into the -march that - # gcc actually accepts. #528708 - [[ ${t} == "x86_64" ]] && t="x86-64" - filter-flags '-march=*' - # ugly, ugly, ugly. ugly. - CFLAGS_x86=$(CFLAGS=${CFLAGS_x86} filter-flags '-march=*'; echo "${CFLAGS}") - export CFLAGS_x86="${CFLAGS_x86} -march=${t}" - einfo "Auto adding -march=${t} to CFLAGS_x86 #185404 (ABI=${ABI})" - fi - ;; - ia64) - # Workaround GPREL22 overflow by slightly pessimizing global - # references to go via 64-bit relocations instead of 22-bit ones. - # This allows building glibc on ia64 without an overflow: #723268 - append-flags -fcommon - ;; - 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" - - local cpu - case ${CTARGET} in - sparc64-*) - cpu="sparc64" - case $(get-flag mcpu) in - v9) - # We need to force at least v9a because the base build doesn't - # work with just v9. - # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 - append-flags "-Wa,-xarch=v9a" - ;; - esac - ;; - sparc-*) - case $(get-flag mcpu) in - v8|supersparc|hypersparc|leon|leon3) - cpu="sparcv8" - ;; - *) - cpu="sparcv9" - ;; - esac - ;; - esac - [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" - ;; - esac -} - -setup_flags() { - # Make sure host make.conf doesn't pollute us - if is_crosscompile || tc-is-cross-compiler ; then - CHOST=${CTARGET} strip-unsupported-flags - fi - - # Store our CFLAGS because it's changed depending on which CTARGET - # we are building when pulling glibc on a multilib profile - CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} - CFLAGS=${CFLAGS_BASE} - CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} - CXXFLAGS=${CXXFLAGS_BASE} - ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} - ASFLAGS=${ASFLAGS_BASE} - - # Allow users to explicitly avoid flag sanitization via - # USE=custom-cflags. - if ! use custom-cflags; then - # Over-zealous CFLAGS can often cause problems. What may work for one - # person may not work for another. To avoid a large influx of bugs - # relating to failed builds, we strip most CFLAGS out to ensure as few - # problems as possible. - strip-flags - # Lock glibc at -O2; we want to be conservative here. - filter-flags '-O?' - append-flags -O2 - fi - strip-unsupported-flags - filter-flags -m32 -m64 '-mabi=*' - - # glibc aborts if rpath is set by LDFLAGS - filter-ldflags '-Wl,-rpath=*' - - # #492892 - filter-flags -frecord-gcc-switches - - unset CBUILD_OPT CTARGET_OPT - if use multilib ; then - CTARGET_OPT=$(get_abi_CTARGET) - [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST) - fi - - setup_target_flags - - if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then - CBUILD_OPT=${CTARGET_OPT} - fi - - # glibc's headers disallow -O0 and fail at build time: - # include/libc-symbols.h:75:3: #error "glibc cannot be compiled without optimization" - replace-flags -O0 -O1 - - filter-flags '-fstack-protector*' -} - -want_tls() { - # Archs that can use TLS (Thread Local Storage) - case $(tc-arch) in - x86) - # requires i486 or better #106556 - [[ ${CTARGET} == i[4567]86* ]] && return 0 - return 1 - ;; - esac - return 0 -} - -want__thread() { - want_tls || return 1 - - # For some reason --with-tls --with__thread is causing segfaults on sparc32. - [[ ${PROFILE_ARCH} == "sparc" ]] && return 1 - - [[ -n ${WANT__THREAD} ]] && return ${WANT__THREAD} - - # only test gcc -- can't test linking yet - tc-has-tls -c ${CTARGET} - WANT__THREAD=$? - - return ${WANT__THREAD} -} - -use_multiarch() { - # Allow user to disable runtime arch detection in multilib. - use multiarch || return 1 - # Make sure binutils is new enough to support indirect functions, - # #336792. This funky sed supports gold and bfd linkers. - local bver nver - bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}') - case $(tc-arch ${CTARGET}) in - amd64|x86) nver="2.20" ;; - arm) nver="2.22" ;; - hppa) nver="2.23" ;; - ppc|ppc64) nver="2.20" ;; - # ifunc support was added in 2.23, but glibc also needs - # machinemode which is in 2.24. - s390) nver="2.24" ;; - sparc) nver="2.21" ;; - *) return 1 ;; - esac - ver_test ${bver} -ge ${nver} -} - -# Setup toolchain variables that had historically been defined in the -# profiles for these archs. -setup_env() { - # silly users - unset LD_RUN_PATH - unset LD_ASSUME_KERNEL - - if is_crosscompile || tc-is-cross-compiler ; then - multilib_env ${CTARGET_OPT:-${CTARGET}} - - if ! use multilib ; then - MULTILIB_ABIS=${DEFAULT_ABI} - else - MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} - fi - - # If the user has CFLAGS_ in their make.conf, use that, - # and fall back on CFLAGS. - local VAR=CFLAGS_${CTARGET//[-.]/_} - CFLAGS=${!VAR-${CFLAGS}} - einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}" - fi - - setup_flags - - export ABI=${ABI:-${DEFAULT_ABI:-default}} - - if just_headers ; then - # Avoid mixing host's CC and target's CFLAGS_${ABI}: - # At this bootstrap stage we have only binutils for - # target but not compiler yet. - einfo "Skip CC ABI injection. We can't use (cross-)compiler yet." - return 0 - fi - local VAR=CFLAGS_${ABI} - # We need to export CFLAGS with abi information in them because glibc's - # configure script checks CFLAGS for some targets (like mips). Keep - # around the original clean value to avoid appending multiple ABIs on - # top of each other. - : ${__GLIBC_CC:=$(tc-getCC ${CTARGET})} - export __GLIBC_CC CC="${__GLIBC_CC} ${!VAR}" - einfo " $(printf '%15s' 'Manual CC:') ${CC}" -} - -foreach_abi() { - setup_env - - local ret=0 - local abilist="" - if use multilib ; then - abilist=$(get_install_abis) - else - abilist=${DEFAULT_ABI} - fi - local -x ABI - for ABI in ${abilist:-default} ; do - setup_env - einfo "Running $1 for ABI ${ABI}" - $1 - : $(( ret |= $? )) - done - return ${ret} -} - -glibc_banner() { - local b="Gentoo ${PVR}" - [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" p${PATCH_VER}" - echo "${b}" -} - -# The following Kernel version handling functions are mostly copied from portage -# source. It's better not to use linux-info.eclass here since a) it adds too -# much magic, see bug 326693 for some of the arguments, and b) some of the -# functions are just not provided. - -g_get_running_KV() { - uname -r - return $? -} - -g_KV_major() { - [[ -z $1 ]] && return 1 - local KV=$@ - echo "${KV%%.*}" -} - -g_KV_minor() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.} - echo "${KV%%.*}" -} - -g_KV_micro() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.*.} - echo "${KV%%[^[:digit:]]*}" -} - -g_KV_to_int() { - [[ -z $1 ]] && return 1 - local KV_MAJOR=$(g_KV_major "$1") - local KV_MINOR=$(g_KV_minor "$1") - local KV_MICRO=$(g_KV_micro "$1") - local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )) - - # We make version 2.2.0 the minimum version we will handle as - # a sanity check ... if its less, we fail ... - if [[ ${KV_int} -ge 131584 ]] ; then - echo "${KV_int}" - return 0 - fi - return 1 -} - -g_int_to_KV() { - local version=$1 major minor micro - major=$((version / 65536)) - minor=$(((version % 65536) / 256)) - micro=$((version % 256)) - echo ${major}.${minor}.${micro} -} - -eend_KV() { - [[ $(g_KV_to_int $1) -ge $(g_KV_to_int $2) ]] - eend $? -} - -get_kheader_version() { - printf '#include \nLINUX_VERSION_CODE\n' | \ - $(tc-getCPP ${CTARGET}) -I "$(build_eprefix)$(alt_build_headers)" - | \ - tail -n 1 -} - -# We collect all sanity checks here. Consistency is not guranteed between -# pkg_ and src_ phases, so we call this function both in pkg_pretend and in -# src_unpack. -sanity_prechecks() { - # Prevent native builds from downgrading - if [[ ${MERGE_TYPE} != "buildonly" ]] && \ - [[ -z ${ROOT} ]] && \ - [[ ${CBUILD} == ${CHOST} ]] && \ - [[ ${CHOST} == ${CTARGET} ]] ; then - - # The high rev # is to allow people to downgrade between -r# - # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2 - # should be fine. Hopefully we never actually use a r# this - # high. - if has_version ">${CATEGORY}/${P}-r10000" ; then - eerror "Sanity check to keep you from breaking your system:" - eerror " Downgrading glibc is not supported and a sure way to destruction." - [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system." - fi - - if ! do_run_test '#include \n#include \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() 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 ) - ;; - *) - # Use '=strong' instead of '=all' to protect only functions - # worth protecting from stack smashes. - # '=all' is also known to have a problem in IFUNC resolution - # tests: https://sourceware.org/PR25680, bug #712356. - myconf+=( --enable-stack-protector=$(usex ssp strong no) ) - ;; - esac - myconf+=( --enable-stackguard-randomization ) - - # Keep a whitelist of targets supporing IFUNC. glibc's ./configure - # is not robust enough to detect proper support: - # https://bugs.gentoo.org/641216 - # https://sourceware.org/PR22634#c0 - case $(tc-arch ${CTARGET}) in - # Keep whitelist of targets where autodetection mostly works. - amd64|x86|sparc|ppc|ppc64|arm|arm64|s390) ;; - # Blacklist everywhere else - *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; - esac - - # Enable Intel Control-flow Enforcement Technology on amd64 if requested - case ${CTARGET} in - x86_64-*) myconf+=( $(use_enable cet) ) ;; - *) ;; - esac - - [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) - - myconf+=( --enable-kernel=${MIN_KERN_VER} ) - - # Since SELinux support is only required for nscd, only enable it if: - # 1. USE selinux - # 2. only for the primary ABI on multilib systems - # 3. Not a crosscompile - if ! is_crosscompile && use selinux ; then - if use multilib ; then - if is_final_abi ; then - myconf+=( --with-selinux ) - else - myconf+=( --without-selinux ) - fi - else - myconf+=( --with-selinux ) - fi - else - myconf+=( --without-selinux ) - fi - - # Force a few tests where we always know the answer but - # configure is incapable of finding it. - if is_crosscompile ; then - export \ - libc_cv_c_cleanup=yes \ - libc_cv_forced_unwind=yes - fi - - myconf+=( - --without-cvs - --disable-werror - --enable-bind-now - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - $(use_enable profile) - $(use_with gd) - --with-headers=$(build_eprefix)$(alt_build_headers) - --prefix="$(host_eprefix)/usr" - --sysconfdir="$(host_eprefix)/etc" - --localstatedir="$(host_eprefix)/var" - --libdir='$(prefix)'/$(get_libdir) - --mandir='$(prefix)'/share/man - --infodir='$(prefix)'/share/info - --libexecdir='$(libdir)'/misc/glibc - --with-bugurl=https://bugs.gentoo.org/ - --with-pkgversion="$(glibc_banner)" - $(use_enable crypt) - $(use_multiarch || echo --disable-multi-arch) - $(use_enable 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=$(build_eprefix)$(alt_build_headers) - --prefix="$(host_eprefix)/usr" - ${EXTRA_ECONF} - ) - - # Nothing is compiled here which would affect the headers for the target. - # So forcing CC/CFLAGS is sane. - local headers_only_CC=$(tc-getBUILD_CC) - local headers_only_CFLAGS="-O1 -pipe" - local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}" - local headers_only_LDFLAGS="" - set -- "${S}"/configure "${myconf[@]}" - echo \ - "CC=${headers_only_CC}" \ - "CFLAGS=${headers_only_CFLAGS}" \ - "CPPFLAGS=${headers_only_CPPFLAGS}" \ - "LDFLAGS=${headers_only_LDFLAGS}" \ - "$@" - CC=${headers_only_CC} \ - CFLAGS=${headers_only_CFLAGS} \ - CPPFLAGS=${headers_only_CPPFLAGS} \ - LDFLAGS="" \ - "$@" || die "failed to configure glibc" -} - -do_src_configure() { - if just_headers ; then - glibc_headers_configure - else - glibc_do_configure nptl - fi -} - -src_configure() { - foreach_abi do_src_configure -} - -do_src_compile() { - emake -C "$(builddir nptl)" -} - -src_compile() { - if just_headers ; then - return - fi - - foreach_abi do_src_compile -} - -glibc_src_test() { - cd "$(builddir nptl)" - - local myxfailparams="" - if [[ "${GENTOO_GLIBC_XFAIL_TESTS}" == "yes" ]] ; then - for myt in ${XFAIL_TEST_LIST[@]} ; do - myxfailparams+="test-xfail-${myt}=yes " - done - fi - - emake ${myxfailparams} check -} - -do_src_test() { - local ret=0 - - glibc_src_test - : $(( ret |= $? )) - - return ${ret} -} - -src_test() { - if just_headers ; then - return - fi - - # Give tests more time to complete. - export TIMEOUTFACTOR=5 - - foreach_abi do_src_test || die "tests failed" -} - -run_locale_gen() { - # if the host locales.gen contains no entries, we'll install everything - local root="$1" - local inplace="" - - if [[ "${root}" == "--inplace-glibc" ]] ; then - inplace="--inplace-glibc" - root="$2" - fi - - local locale_list="${root}/etc/locale.gen" - - pushd "${ED}"/$(get_libdir) >/dev/null - - if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then - [[ -z ${inplace} ]] && ewarn "Generating all locales; edit /etc/locale.gen to save time/space" - locale_list="${root}/usr/share/i18n/SUPPORTED" - fi - - locale-gen ${inplace} --jobs $(makeopts_jobs) --config "${locale_list}" \ - --destdir "${root}" - - popd >/dev/null -} - -glibc_do_src_install() { - local builddir=$(builddir nptl) - cd "${builddir}" - - emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install - - # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support - # which come without headers etc. Only needed for binary packages since the - # external net-libs/libnsl has increased soversion. Keep only versioned libraries. - find "${D}" -name "libnsl.a" -delete - find "${D}" -name "libnsl.so" -delete - - # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need - # to infer upstream version: - # '#define VERSION "2.26.90"' -> '2.26.90' - local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h) - - # Avoid stripping binaries not targeted by ${CHOST}. Or else - # ${CHOST}-strip would break binaries build for ${CTARGET}. - is_crosscompile && dostrip -x / - # gdb thread introspection relies on local libpthreas symbols. stripping breaks it - # See Note [Disable automatic stripping] - dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so - - if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then - # Move versioned .a file out of libdir to evade portage QA checks - # instead of using gen_usr_ldscript(). We fix ldscript as: - # "GROUP ( /usr/lib64/libm-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.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 --inplace-glibc "${ED}/" - sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die - fi -} - -glibc_headers_install() { - local builddir=$(builddir "headers") - cd "${builddir}" - emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers - - insinto $(alt_headers)/gnu - doins "${S}"/include/gnu/stubs.h - - # Make sure we install the sys-include symlink so that when - # we build a 2nd stage cross-compiler, gcc finds the target - # system headers correctly. See gcc/doc/gccinstall.info - dosym usr/include $(alt_prefix)/sys-include -} - -src_install() { - if just_headers ; then - export ABI=default - glibc_headers_install - return - fi - - foreach_abi glibc_do_src_install - - if ! use static-libs ; then - elog "Not installing static glibc libraries" - find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete - fi -} - -# Simple test to make sure our new glibc isn't completely broken. -# Make sure we don't test with statically built binaries since -# they will fail. Also, skip if this glibc is a cross compiler. -# -# If coreutils is built with USE=multicall, some of these files -# will just be wrapper scripts, not actual ELFs we can test. -glibc_sanity_check() { - cd / #228809 - - # We enter ${ED} so to avoid trouble if the path contains - # special characters; for instance if the path contains the - # colon character (:), then the linker will try to split it - # and look for the libraries in an unexpected place. This can - # lead to unsafe code execution if the generated prefix is - # within a world-writable directory. - # (e.g. /var/tmp/portage:${HOSTNAME}) - pushd "${ED}"/$(get_libdir) >/dev/null - - 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 - - [[ -n ${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 && [[ -z ${ROOT} ]] ; then - use compile-locales || run_locale_gen "${EROOT}/" - fi - - # Check for sanity of /etc/nsswitch.conf, take 2 - if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then - local entry - for entry in passwd group shadow; do - if egrep -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then - ewarn "" - ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" - ewarn "removed from glibc and is now provided by the package" - ewarn " sys-auth/libnss-nis" - ewarn "Install it now to keep your NIS setup working." - ewarn "" - fi - done - fi -} diff --git a/sys-libs/glibc/glibc-2.31-r6.ebuild b/sys-libs/glibc/glibc-2.31-r6.ebuild deleted file mode 100644 index 156e25f568ac..000000000000 --- a/sys-libs/glibc/glibc-2.31-r6.ebuild +++ /dev/null @@ -1,1495 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{7,8} ) - -inherit python-any-r1 prefix eutils toolchain-funcs flag-o-matic gnuconfig \ - 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" -SLOT="2.2" - -EMULTILIB_PKG="true" - -# Gentoo patchset (ignored for live ebuilds) -PATCH_VER=8 -PATCH_DEV=dilfridge - -if [[ ${PV} == 9999* ]]; then - inherit git-r3 -else - KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" - SRC_URI="mirror://gnu/glibc/${P}.tar.xz" - SRC_URI+=" https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz" -fi - -RELEASE_VER=${PV} - -GCC_BOOTSTRAP_VER=20180511 - -LOCALE_GEN_VER=2.00 - -SRC_URI+=" https://gitweb.gentoo.org/proj/locale-gen.git/snapshot/locale-gen-${LOCALE_GEN_VER}.tar.gz" -SRC_URI+=" multilib? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" - -IUSE="audit caps cet compile-locales +crypt custom-cflags doc gd headers-only +multiarch multilib nscd profile selinux +ssp +static-libs static-pie 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 - -# Note [Disable automatic stripping] -# Disabling automatic stripping for a few reasons: -# - portage's attempt to strip breaks non-native binaries at least on -# arm: bug #697428 -# - portage's attempt to strip libpthread.so.0 breaks gdb thread -# enumeration: bug #697910. This is quite subtle: -# * gdb uses glibc's libthread_db-1.0.so to enumerate threads. -# * libthread_db-1.0.so needs access to libpthread.so.0 local symbols -# via 'ps_pglobal_lookup' symbol defined in gdb. -# * 'ps_pglobal_lookup' uses '.symtab' section table to resolve all -# known symbols in 'libpthread.so.0'. Specifically 'nptl_version' -# (unexported) is used to sanity check compatibility before enabling -# debugging. -# Also see https://sourceware.org/gdb/wiki/FAQ#GDB_does_not_see_any_threads_besides_the_one_in_which_crash_occurred.3B_or_SIGTRAP_kills_my_program_when_I_set_a_breakpoint -# * normal 'strip' command trims '.symtab' -# Thus our main goal here is to prevent 'libpthread.so.0' from -# losing it's '.symtab' entries. -# As Gentoo's strip does not allow us to pass less aggressive stripping -# options and does not check the machine target we strip selectively. - -# We need a new-enough binutils/gcc to match upstream baseline. -# Also we need to make sure our binutils/gcc supports TLS, -# and that gcc already contains the hardened patches. -# Lastly, let's avoid some openssh nastiness, bug 708224, as -# convenience to our users. -BDEPEND=" - ${PYTHON_DEPS} - >=app-misc/pax-utils-0.1.10 - sys-devel/bison - doc? ( sys-apps/texinfo ) -" -COMMON_DEPEND=" - gd? ( media-libs/gd:2= ) - nscd? ( selinux? ( - audit? ( sys-process/audit ) - caps? ( sys-libs/libcap ) - ) ) - suid? ( caps? ( sys-libs/libcap ) ) - selinux? ( sys-libs/libselinux ) - systemtap? ( dev-util/systemtap ) - !' | $(tc-getCPP ${CTARGET}) ${CFLAGS} 2>&1 | grep -o '[^"]*linux/version.h') - ALT_BUILD_HEADERS=${header_path%/linux/version.h} - fi - fi - fi - echo "${ALT_BUILD_HEADERS}" -} - -alt_libdir() { - echo $(alt_prefix)/$(get_libdir) -} -alt_usrlibdir() { - echo $(alt_prefix)/usr/$(get_libdir) -} - -builddir() { - echo "${WORKDIR}/build-${ABI}-${CTARGET}-$1" -} - -do_compile_test() { - local ret save_cflags=${CFLAGS} - CFLAGS+=" $1" - shift - - pushd "${T}" >/dev/null - - rm -f glibc-test* - printf '%b' "$*" > glibc-test.c - - # Most of the time CC is already set, but not in early sanity checks. - nonfatal emake glibc-test CC="${CC-$(tc-getCC ${CTARGET})}" - ret=$? - - popd >/dev/null - - CFLAGS=${save_cflags} - return ${ret} -} - -do_run_test() { - local ret - - if [[ ${MERGE_TYPE} == "binary" ]] ; then - # ignore build failures when installing a binary package #324685 - do_compile_test "" "$@" 2>/dev/null || return 0 - else - if ! do_compile_test "" "$@" ; then - ewarn "Simple build failed ... assuming this is desired #324685" - return 0 - fi - fi - - pushd "${T}" >/dev/null - - ./glibc-test - ret=$? - rm -f glibc-test* - - popd >/dev/null - - return ${ret} -} - -setup_target_flags() { - # This largely mucks with compiler flags. None of which should matter - # when building up just the headers. - just_headers && return 0 - - case $(tc-arch) in - x86) - # -march needed for #185404 #199334 - # TODO: When creating the first glibc cross-compile, this test will - # always fail as it does a full link which in turn requires glibc. - # Probably also applies when changing multilib profile settings (e.g. - # enabling x86 when the profile was amd64-only previously). - # We could change main to _start and pass -nostdlib here so that we - # only test the gcc code compilation. Or we could do a compile and - # then look for the symbol via scanelf. - if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then - local t=${CTARGET_OPT:-${CTARGET}} - t=${t%%-*} - filter-flags '-march=*' - export CFLAGS="-march=${t} ${CFLAGS}" - einfo "Auto adding -march=${t} to CFLAGS #185404" - fi - ;; - amd64) - # -march needed for #185404 #199334 - # TODO: See cross-compile issues listed above for x86. - [[ ${ABI} == x86 ]] && - if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then - local t=${CTARGET_OPT:-${CTARGET}} - t=${t%%-*} - # Normally the target is x86_64-xxx, so turn that into the -march that - # gcc actually accepts. #528708 - [[ ${t} == "x86_64" ]] && t="x86-64" - filter-flags '-march=*' - # ugly, ugly, ugly. ugly. - CFLAGS_x86=$(CFLAGS=${CFLAGS_x86} filter-flags '-march=*'; echo "${CFLAGS}") - export CFLAGS_x86="${CFLAGS_x86} -march=${t}" - einfo "Auto adding -march=${t} to CFLAGS_x86 #185404 (ABI=${ABI})" - fi - ;; - mips) - # The mips abi cannot support the GNU style hashes. #233233 - filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both - ;; - ppc|ppc64) - # Many arch-specific implementations do not work on ppc with - # cache-block not equal to 128 bytes. This breaks memset: - # https://sourceware.org/PR26522 - # https://bugs.gentoo.org/737996 - # Use default -mcpu=. For ppc it means non-multiarch setup. - filter-flags '-mcpu=*' - ;; - sparc) - # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. - filter-flags "-fcall-used-g7" - append-flags "-fcall-used-g6" - - local cpu - case ${CTARGET} in - sparc64-*) - cpu="sparc64" - case $(get-flag mcpu) in - v9) - # We need to force at least v9a because the base build doesn't - # work with just v9. - # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 - append-flags "-Wa,-xarch=v9a" - ;; - esac - ;; - sparc-*) - case $(get-flag mcpu) in - v8|supersparc|hypersparc|leon|leon3) - cpu="sparcv8" - ;; - *) - cpu="sparcv9" - ;; - esac - ;; - esac - [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" - ;; - esac -} - -setup_flags() { - # Make sure host make.conf doesn't pollute us - if is_crosscompile || tc-is-cross-compiler ; then - CHOST=${CTARGET} strip-unsupported-flags - fi - - # Store our CFLAGS because it's changed depending on which CTARGET - # we are building when pulling glibc on a multilib profile - CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} - CFLAGS=${CFLAGS_BASE} - CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} - CXXFLAGS=${CXXFLAGS_BASE} - ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} - ASFLAGS=${ASFLAGS_BASE} - - # Allow users to explicitly avoid flag sanitization via - # USE=custom-cflags. - if ! use custom-cflags; then - # Over-zealous CFLAGS can often cause problems. What may work for one - # person may not work for another. To avoid a large influx of bugs - # relating to failed builds, we strip most CFLAGS out to ensure as few - # problems as possible. - strip-flags - # Lock glibc at -O2; we want to be conservative here. - filter-flags '-O?' - append-flags -O2 - fi - strip-unsupported-flags - filter-flags -m32 -m64 '-mabi=*' - - # glibc aborts if rpath is set by LDFLAGS - filter-ldflags '-Wl,-rpath=*' - - # #492892 - filter-flags -frecord-gcc-switches - - unset CBUILD_OPT CTARGET_OPT - if use multilib ; then - CTARGET_OPT=$(get_abi_CTARGET) - [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST) - fi - - setup_target_flags - - if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then - CBUILD_OPT=${CTARGET_OPT} - fi - - # glibc's headers disallow -O0 and fail at build time: - # include/libc-symbols.h:75:3: #error "glibc cannot be compiled without optimization" - replace-flags -O0 -O1 - - filter-flags '-fstack-protector*' -} - -want_tls() { - # Archs that can use TLS (Thread Local Storage) - case $(tc-arch) in - x86) - # requires i486 or better #106556 - [[ ${CTARGET} == i[4567]86* ]] && return 0 - return 1 - ;; - esac - return 0 -} - -want__thread() { - want_tls || return 1 - - # For some reason --with-tls --with__thread is causing segfaults on sparc32. - [[ ${PROFILE_ARCH} == "sparc" ]] && return 1 - - [[ -n ${WANT__THREAD} ]] && return ${WANT__THREAD} - - # only test gcc -- can't test linking yet - tc-has-tls -c ${CTARGET} - WANT__THREAD=$? - - return ${WANT__THREAD} -} - -use_multiarch() { - # Allow user to disable runtime arch detection in multilib. - use multiarch || return 1 - # Make sure binutils is new enough to support indirect functions, - # #336792. This funky sed supports gold and bfd linkers. - local bver nver - bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}') - case $(tc-arch ${CTARGET}) in - amd64|x86) nver="2.20" ;; - arm) nver="2.22" ;; - hppa) nver="2.23" ;; - ppc|ppc64) nver="2.20" ;; - # ifunc support was added in 2.23, but glibc also needs - # machinemode which is in 2.24. - s390) nver="2.24" ;; - sparc) nver="2.21" ;; - *) return 1 ;; - esac - ver_test ${bver} -ge ${nver} -} - -# Setup toolchain variables that had historically been defined in the -# profiles for these archs. -setup_env() { - # silly users - unset LD_RUN_PATH - unset LD_ASSUME_KERNEL - - if is_crosscompile || tc-is-cross-compiler ; then - multilib_env ${CTARGET_OPT:-${CTARGET}} - - if ! use multilib ; then - MULTILIB_ABIS=${DEFAULT_ABI} - else - MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} - fi - - # If the user has CFLAGS_ in their make.conf, use that, - # and fall back on CFLAGS. - local VAR=CFLAGS_${CTARGET//[-.]/_} - CFLAGS=${!VAR-${CFLAGS}} - einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}" - fi - - setup_flags - - export ABI=${ABI:-${DEFAULT_ABI:-default}} - - if just_headers ; then - # Avoid mixing host's CC and target's CFLAGS_${ABI}: - # At this bootstrap stage we have only binutils for - # target but not compiler yet. - einfo "Skip CC ABI injection. We can't use (cross-)compiler yet." - return 0 - fi - local VAR=CFLAGS_${ABI} - # We need to export CFLAGS with abi information in them because glibc's - # configure script checks CFLAGS for some targets (like mips). Keep - # around the original clean value to avoid appending multiple ABIs on - # top of each other. - : ${__GLIBC_CC:=$(tc-getCC ${CTARGET})} - export __GLIBC_CC CC="${__GLIBC_CC} ${!VAR}" - einfo " $(printf '%15s' 'Manual CC:') ${CC}" -} - -foreach_abi() { - setup_env - - local ret=0 - local abilist="" - if use multilib ; then - abilist=$(get_install_abis) - else - abilist=${DEFAULT_ABI} - fi - local -x ABI - for ABI in ${abilist:-default} ; do - setup_env - einfo "Running $1 for ABI ${ABI}" - $1 - : $(( ret |= $? )) - done - return ${ret} -} - -glibc_banner() { - local b="Gentoo ${PVR}" - [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" p${PATCH_VER}" - echo "${b}" -} - -# The following Kernel version handling functions are mostly copied from portage -# source. It's better not to use linux-info.eclass here since a) it adds too -# much magic, see bug 326693 for some of the arguments, and b) some of the -# functions are just not provided. - -g_get_running_KV() { - uname -r - return $? -} - -g_KV_major() { - [[ -z $1 ]] && return 1 - local KV=$@ - echo "${KV%%.*}" -} - -g_KV_minor() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.} - echo "${KV%%.*}" -} - -g_KV_micro() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.*.} - echo "${KV%%[^[:digit:]]*}" -} - -g_KV_to_int() { - [[ -z $1 ]] && return 1 - local KV_MAJOR=$(g_KV_major "$1") - local KV_MINOR=$(g_KV_minor "$1") - local KV_MICRO=$(g_KV_micro "$1") - local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )) - - # We make version 2.2.0 the minimum version we will handle as - # a sanity check ... if its less, we fail ... - if [[ ${KV_int} -ge 131584 ]] ; then - echo "${KV_int}" - return 0 - fi - return 1 -} - -g_int_to_KV() { - local version=$1 major minor micro - major=$((version / 65536)) - minor=$(((version % 65536) / 256)) - micro=$((version % 256)) - echo ${major}.${minor}.${micro} -} - -eend_KV() { - [[ $(g_KV_to_int $1) -ge $(g_KV_to_int $2) ]] - eend $? -} - -get_kheader_version() { - printf '#include \nLINUX_VERSION_CODE\n' | \ - $(tc-getCPP ${CTARGET}) -I "$(build_eprefix)$(alt_build_headers)" - | \ - tail -n 1 -} - -# We collect all sanity checks here. Consistency is not guranteed between -# pkg_ and src_ phases, so we call this function both in pkg_pretend and in -# src_unpack. -sanity_prechecks() { - # Prevent native builds from downgrading - if [[ ${MERGE_TYPE} != "buildonly" ]] && \ - [[ -z ${ROOT} ]] && \ - [[ ${CBUILD} == ${CHOST} ]] && \ - [[ ${CHOST} == ${CTARGET} ]] ; then - - # The high rev # is to allow people to downgrade between -r# - # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2 - # should be fine. Hopefully we never actually use a r# this - # high. - if has_version ">${CATEGORY}/${P}-r10000" ; then - eerror "Sanity check to keep you from breaking your system:" - eerror " Downgrading glibc is not supported and a sure way to destruction." - [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system." - fi - - if ! do_run_test '#include \n#include \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() 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 [[ ${PV} == 9999* ]] ; then - EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/glibc-patches.git" - EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git - git-r3_src_unpack - mv patches-git/9999 patches || die - - EGIT_REPO_URI="https://sourceware.org/git/glibc.git" - EGIT_CHECKOUT_DIR=${S} - git-r3_src_unpack - else - unpack ${P}.tar.xz - - cd "${WORKDIR}" || die - unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz - fi - - cd "${WORKDIR}" || die - unpack locale-gen-${LOCALE_GEN_VER}.tar.gz -} - -src_prepare() { - local patchsetname - if ! use vanilla ; then - if [[ ${PV} == 9999* ]] ; then - patchsetname="from git master" - else - patchsetname="${RELEASE_VER}-${PATCH_VER}" - fi - elog "Applying Gentoo Glibc Patchset ${patchsetname}" - eapply "${WORKDIR}"/patches - einfo "Done." - fi - - default - - gnuconfig_update - - cd "${WORKDIR}" - find . -name configure -exec touch {} + - - # move the external locale-gen to its old place - mkdir extra || die - mv locale-gen-${LOCALE_GEN_VER} extra/locale || die - - eprefixify extra/locale/locale-gen - - # Fix permissions on some of the scripts. - chmod u+x "${S}"/scripts/*.sh - - cd "${S}" -} - -glibc_do_configure() { - # Glibc does not work with gold (for various reasons) #269274. - tc-ld-disable-gold - - # CXX isnt handled by the multilib system, so if we dont unset here - # we accumulate crap across abis - unset CXX - - einfo "Configuring glibc for nptl" - - if use doc ; then - export MAKEINFO=makeinfo - else - export MAKEINFO=/dev/null - fi - - local v - for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO NM READELF; do - einfo " $(printf '%15s' ${v}:) ${!v}" - done - - # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760 - # To build .S (assembly) files with the same ABI-specific flags - # upstream currently recommends adding CFLAGS to CC/CXX: - # https://sourceware.org/PR23273 - # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS - # and breaks multiarch support. See 659030#c3 for an example. - # The glibc configure script doesn't properly use LDFLAGS all the time. - export CC="$(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS}" - einfo " $(printf '%15s' 'Manual CC:') ${CC}" - - # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 - export CXX="$(tc-getCXX ${CTARGET}) $(get_abi_CFLAGS) ${CFLAGS}" - - if is_crosscompile; then - # Assume worst-case bootstrap: glibc is buil first time - # when ${CTARGET}-g++ is not available yet. We avoid - # building auxiliary programs that require C++: bug #683074 - # It should not affect final result. - export libc_cv_cxx_link_ok=no - # The line above has the same effect. We set CXX explicitly - # to make build logs less confusing. - export CXX= - fi - einfo " $(printf '%15s' 'Manual CXX:') ${CXX}" - - # Always use tuple-prefixed toolchain. For non-native ABI glibc's configure - # can't detect them automatically due to ${CHOST} mismatch and fallbacks - # to unprefixed tools. Similar to multilib.eclass:multilib_toolchain_setup(). - export NM="$(tc-getNM ${CTARGET})" - export READELF="$(tc-getREADELF ${CTARGET})" - einfo " $(printf '%15s' 'Manual NM:') ${NM}" - einfo " $(printf '%15s' 'Manual READELF:') ${READELF}" - - echo - - local myconf=() - - case ${CTARGET} in - m68k*) - # setjmp() is not compatible with stack protection: - # https://sourceware.org/PR24202 - myconf+=( --enable-stack-protector=no ) - ;; - 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 ) - ;; - *) - # Use '=strong' instead of '=all' to protect only functions - # worth protecting from stack smashes. - # '=all' is also known to have a problem in IFUNC resolution - # tests: https://sourceware.org/PR25680, bug #712356. - myconf+=( --enable-stack-protector=$(usex ssp strong no) ) - ;; - esac - myconf+=( --enable-stackguard-randomization ) - - # Keep a whitelist of targets supporing IFUNC. glibc's ./configure - # is not robust enough to detect proper support: - # https://bugs.gentoo.org/641216 - # https://sourceware.org/PR22634#c0 - case $(tc-arch ${CTARGET}) in - # Keep whitelist of targets where autodetection mostly works. - amd64|x86|sparc|ppc|ppc64|arm|arm64|s390) ;; - # Blacklist everywhere else - *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; - esac - - # Enable Intel Control-flow Enforcement Technology on amd64 if requested - case ${CTARGET} in - x86_64-*) myconf+=( $(use_enable cet) ) ;; - *) ;; - esac - - [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) - - myconf+=( --enable-kernel=${MIN_KERN_VER} ) - - # Since SELinux support is only required for nscd, only enable it if: - # 1. USE selinux - # 2. only for the primary ABI on multilib systems - # 3. Not a crosscompile - if ! is_crosscompile && use selinux ; then - if use multilib ; then - if is_final_abi ; then - myconf+=( --with-selinux ) - else - myconf+=( --without-selinux ) - fi - else - myconf+=( --with-selinux ) - fi - else - myconf+=( --without-selinux ) - fi - - # Force a few tests where we always know the answer but - # configure is incapable of finding it. - if is_crosscompile ; then - export \ - libc_cv_c_cleanup=yes \ - libc_cv_forced_unwind=yes - fi - - myconf+=( - --without-cvs - --disable-werror - --enable-bind-now - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - $(use_enable profile) - $(use_with gd) - --with-headers=$(build_eprefix)$(alt_build_headers) - --prefix="$(host_eprefix)/usr" - --sysconfdir="$(host_eprefix)/etc" - --localstatedir="$(host_eprefix)/var" - --libdir='$(prefix)'/$(get_libdir) - --mandir='$(prefix)'/share/man - --infodir='$(prefix)'/share/info - --libexecdir='$(libdir)'/misc/glibc - --with-bugurl=https://bugs.gentoo.org/ - --with-pkgversion="$(glibc_banner)" - $(use_enable crypt) - $(use_multiarch || echo --disable-multi-arch) - $(use_enable static-pie) - $(use_enable systemtap) - $(use_enable nscd) - ${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=$(build_eprefix)$(alt_build_headers) - --prefix="$(host_eprefix)/usr" - ${EXTRA_ECONF} - ) - - # Nothing is compiled here which would affect the headers for the target. - # So forcing CC/CFLAGS is sane. - local headers_only_CC=$(tc-getBUILD_CC) - local headers_only_CFLAGS="-O1 -pipe" - local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}" - local headers_only_LDFLAGS="" - set -- "${S}"/configure "${myconf[@]}" - echo \ - "CC=${headers_only_CC}" \ - "CFLAGS=${headers_only_CFLAGS}" \ - "CPPFLAGS=${headers_only_CPPFLAGS}" \ - "LDFLAGS=${headers_only_LDFLAGS}" \ - "$@" - CC=${headers_only_CC} \ - CFLAGS=${headers_only_CFLAGS} \ - CPPFLAGS=${headers_only_CPPFLAGS} \ - LDFLAGS="" \ - "$@" || die "failed to configure glibc" -} - -do_src_configure() { - if just_headers ; then - glibc_headers_configure - else - glibc_do_configure nptl - fi -} - -src_configure() { - foreach_abi do_src_configure -} - -do_src_compile() { - emake -C "$(builddir nptl)" -} - -src_compile() { - if just_headers ; then - return - fi - - foreach_abi do_src_compile -} - -glibc_src_test() { - cd "$(builddir nptl)" - - local myxfailparams="" - if [[ "${GENTOO_GLIBC_XFAIL_TESTS}" == "yes" ]] ; then - for myt in ${XFAIL_TEST_LIST[@]} ; do - myxfailparams+="test-xfail-${myt}=yes " - done - fi - - # sandbox does not understand unshare() and prevents - # writes to /proc/, which makes many tests fail - - SANDBOX_ON=0 LD_PRELOAD= emake ${myxfailparams} check -} - -do_src_test() { - local ret=0 - - glibc_src_test - : $(( ret |= $? )) - - return ${ret} -} - -src_test() { - if just_headers ; then - return - fi - - # Give tests more time to complete. - export TIMEOUTFACTOR=5 - - foreach_abi do_src_test || die "tests failed" -} - -run_locale_gen() { - # if the host locales.gen contains no entries, we'll install everything - local root="$1" - local inplace="" - - if [[ "${root}" == "--inplace-glibc" ]] ; then - inplace="--inplace-glibc" - root="$2" - fi - - local locale_list="${root}/etc/locale.gen" - - pushd "${ED}"/$(get_libdir) >/dev/null - - if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then - [[ -z ${inplace} ]] && ewarn "Generating all locales; edit /etc/locale.gen to save time/space" - locale_list="${root}/usr/share/i18n/SUPPORTED" - fi - - set -- locale-gen ${inplace} --jobs $(makeopts_jobs) --config "${locale_list}" \ - --destdir "${root}" - echo "$@" - "$@" - - popd >/dev/null -} - -glibc_do_src_install() { - local builddir=$(builddir nptl) - cd "${builddir}" - - emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install - - # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support - # which come without headers etc. Only needed for binary packages since the - # external net-libs/libnsl has increased soversion. Keep only versioned libraries. - find "${D}" -name "libnsl.a" -delete - find "${D}" -name "libnsl.so" -delete - - # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need - # to infer upstream version: - # '#define VERSION "2.26.90"' -> '2.26.90' - local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h) - - # Avoid stripping binaries not targeted by ${CHOST}. Or else - # ${CHOST}-strip would break binaries build for ${CTARGET}. - is_crosscompile && dostrip -x / - # gdb thread introspection relies on local libpthreas symbols. stripping breaks it - # See Note [Disable automatic stripping] - dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so - - if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then - # Move versioned .a file out of libdir to evade portage QA checks - # instead of using gen_usr_ldscript(). We fix ldscript as: - # "GROUP ( /usr/lib64/libm-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.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 posix/gai.conf nss/nsswitch.conf - - # Gentoo-specific - newins "${FILESDIR}"/host.conf-1 host.conf - - if use nscd ; then - doins nscd/nscd.conf - - newinitd "$(prefixify_ro "${FILESDIR}"/nscd-1)" nscd - - local nscd_args=( - -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" - ) - - sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd - - systemd_dounit nscd/nscd.service - systemd_newtmpfilesd nscd/nscd.tmpfiles nscd.conf - fi - - echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc - doenvd "${T}"/00glibc - - for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do - [[ -s ${d} ]] && dodoc ${d} - done - dodoc -r ChangeLog.old - - # Prevent overwriting of the /etc/localtime symlink. We'll handle the - # creation of the "factory" symlink in pkg_postinst(). - rm -f "${ED}"/etc/localtime - - # Generate all locales if this is a native build as locale generation - if use compile-locales && ! is_crosscompile ; then - run_locale_gen --inplace-glibc "${ED}/" - sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die - fi -} - -glibc_headers_install() { - local builddir=$(builddir "headers") - cd "${builddir}" - emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers - - insinto $(alt_headers)/gnu - doins "${S}"/include/gnu/stubs.h - - # Make sure we install the sys-include symlink so that when - # we build a 2nd stage cross-compiler, gcc finds the target - # system headers correctly. See gcc/doc/gccinstall.info - dosym usr/include $(alt_prefix)/sys-include -} - -src_install() { - if just_headers ; then - export ABI=default - glibc_headers_install - return - fi - - foreach_abi glibc_do_src_install - - if ! use static-libs ; then - elog "Not installing static glibc libraries" - find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete - fi -} - -# Simple test to make sure our new glibc isn't completely broken. -# Make sure we don't test with statically built binaries since -# they will fail. Also, skip if this glibc is a cross compiler. -# -# If coreutils is built with USE=multicall, some of these files -# will just be wrapper scripts, not actual ELFs we can test. -glibc_sanity_check() { - cd / #228809 - - # We enter ${ED} so to avoid trouble if the path contains - # special characters; for instance if the path contains the - # colon character (:), then the linker will try to split it - # and look for the libraries in an unexpected place. This can - # lead to unsafe code execution if the generated prefix is - # within a world-writable directory. - # (e.g. /var/tmp/portage:${HOSTNAME}) - pushd "${ED}"/$(get_libdir) >/dev/null - - 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 - - [[ -n ${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 && [[ -z ${ROOT} ]] ; then - use compile-locales || run_locale_gen "${EROOT}/" - fi - - # Check for sanity of /etc/nsswitch.conf, take 2 - if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then - local entry - for entry in passwd group shadow; do - if egrep -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then - ewarn "" - ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" - ewarn "removed from glibc and is now provided by the package" - ewarn " sys-auth/libnss-nis" - ewarn "Install it now to keep your NIS setup working." - ewarn "" - fi - done - fi -} diff --git a/sys-libs/glibc/glibc-2.32-r6.ebuild b/sys-libs/glibc/glibc-2.32-r6.ebuild index 263f4ca321f6..e852f9243d2e 100644 --- a/sys-libs/glibc/glibc-2.32-r6.ebuild +++ b/sys-libs/glibc/glibc-2.32-r6.ebuild @@ -22,7 +22,7 @@ PATCH_DEV=slyfox if [[ ${PV} == 9999* ]]; then inherit git-r3 else - KEYWORDS="~alpha ~amd64 ~arm ~arm64 hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 sparc x86" + KEYWORDS="~alpha amd64 ~arm ~arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86" SRC_URI="mirror://gnu/glibc/${P}.tar.xz" SRC_URI+=" https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz" SRC_URI+=" riscv? ( https://dev.gentoo.org/~dilfridge/distfiles/backport-rv32.txz )" diff --git a/sys-libs/glibc/glibc-2.33.ebuild b/sys-libs/glibc/glibc-2.33.ebuild new file mode 100644 index 000000000000..9f63bdf17145 --- /dev/null +++ b/sys-libs/glibc/glibc-2.33.ebuild @@ -0,0 +1,1502 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{7,8,9} ) + +inherit python-any-r1 prefix eutils toolchain-funcs flag-o-matic gnuconfig \ + 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" +SLOT="2.2" + +EMULTILIB_PKG="true" + +# Gentoo patchset (ignored for live ebuilds) +PATCH_VER=1 +PATCH_DEV=dilfridge + +if [[ ${PV} == 9999* ]]; then + inherit git-r3 +else + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + KEYWORDS="" + SRC_URI="mirror://gnu/glibc/${P}.tar.xz" + SRC_URI+=" https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz" +fi + +RELEASE_VER=${PV} + +GCC_BOOTSTRAP_VER=20201208 + +LOCALE_GEN_VER=2.10 + +SRC_URI+=" https://gitweb.gentoo.org/proj/locale-gen.git/snapshot/locale-gen-${LOCALE_GEN_VER}.tar.gz" +SRC_URI+=" multilib-bootstrap? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" + +IUSE="audit caps cet compile-locales +crypt custom-cflags doc gd headers-only +multiarch multilib multilib-bootstrap nscd profile selinux +ssp +static-libs static-pie suid systemtap test vanilla" + +# Minimum kernel version that glibc requires +MIN_KERN_VER="3.2.0" + +# Here's how the cross-compile logic breaks down ... +# CTARGET - machine that will target the binaries +# CHOST - machine that will host the binaries +# CBUILD - machine that will build the binaries +# If CTARGET != CHOST, it means you want a libc for cross-compiling. +# If CHOST != CBUILD, it means you want to cross-compile the libc. +# CBUILD = CHOST = CTARGET - native build/install +# CBUILD != (CHOST = CTARGET) - cross-compile a native build +# (CBUILD = CHOST) != CTARGET - libc for cross-compiler +# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler +# For install paths: +# CHOST = CTARGET - install into / +# CHOST != CTARGET - install into /usr/CTARGET/ +# +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi + +# Note [Disable automatic stripping] +# Disabling automatic stripping for a few reasons: +# - portage's attempt to strip breaks non-native binaries at least on +# arm: bug #697428 +# - portage's attempt to strip libpthread.so.0 breaks gdb thread +# enumeration: bug #697910. This is quite subtle: +# * gdb uses glibc's libthread_db-1.0.so to enumerate threads. +# * libthread_db-1.0.so needs access to libpthread.so.0 local symbols +# via 'ps_pglobal_lookup' symbol defined in gdb. +# * 'ps_pglobal_lookup' uses '.symtab' section table to resolve all +# known symbols in 'libpthread.so.0'. Specifically 'nptl_version' +# (unexported) is used to sanity check compatibility before enabling +# debugging. +# Also see https://sourceware.org/gdb/wiki/FAQ#GDB_does_not_see_any_threads_besides_the_one_in_which_crash_occurred.3B_or_SIGTRAP_kills_my_program_when_I_set_a_breakpoint +# * normal 'strip' command trims '.symtab' +# Thus our main goal here is to prevent 'libpthread.so.0' from +# losing it's '.symtab' entries. +# As Gentoo's strip does not allow us to pass less aggressive stripping +# options and does not check the machine target we strip selectively. + +# We need a new-enough binutils/gcc to match upstream baseline. +# Also we need to make sure our binutils/gcc supports TLS, +# and that gcc already contains the hardened patches. +# Lastly, let's avoid some openssh nastiness, bug 708224, as +# convenience to our users. + +# gzip, grep, awk are needed by locale-gen, bug 740750 + +BDEPEND=" + ${PYTHON_DEPS} + >=app-misc/pax-utils-0.1.10 + sys-devel/bison + doc? ( sys-apps/texinfo ) + !compile-locales? ( + app-arch/gzip + sys-apps/grep + virtual/awk + ) +" +COMMON_DEPEND=" + gd? ( media-libs/gd:2= ) + nscd? ( selinux? ( + audit? ( sys-process/audit ) + caps? ( sys-libs/libcap ) + ) ) + suid? ( caps? ( sys-libs/libcap ) ) + selinux? ( sys-libs/libselinux ) + systemtap? ( dev-util/systemtap ) + !' | $(tc-getCPP ${CTARGET}) ${CFLAGS} 2>&1 | grep -o '[^"]*linux/version.h') + ALT_BUILD_HEADERS=${header_path%/linux/version.h} + fi + fi + fi + echo "${ALT_BUILD_HEADERS}" +} + +alt_libdir() { + echo $(alt_prefix)/$(get_libdir) +} +alt_usrlibdir() { + echo $(alt_prefix)/usr/$(get_libdir) +} + +builddir() { + echo "${WORKDIR}/build-${ABI}-${CTARGET}-$1" +} + +do_compile_test() { + local ret save_cflags=${CFLAGS} + CFLAGS+=" $1" + shift + + pushd "${T}" >/dev/null + + rm -f glibc-test* + printf '%b' "$*" > glibc-test.c + + # Most of the time CC is already set, but not in early sanity checks. + nonfatal emake glibc-test CC="${CC-$(tc-getCC ${CTARGET})}" + ret=$? + + popd >/dev/null + + CFLAGS=${save_cflags} + return ${ret} +} + +do_run_test() { + local ret + + if [[ ${MERGE_TYPE} == "binary" ]] ; then + # ignore build failures when installing a binary package #324685 + do_compile_test "" "$@" 2>/dev/null || return 0 + else + if ! do_compile_test "" "$@" ; then + ewarn "Simple build failed ... assuming this is desired #324685" + return 0 + fi + fi + + pushd "${T}" >/dev/null + + ./glibc-test + ret=$? + rm -f glibc-test* + + popd >/dev/null + + return ${ret} +} + +setup_target_flags() { + # This largely mucks with compiler flags. None of which should matter + # when building up just the headers. + just_headers && return 0 + + case $(tc-arch) in + x86) + # -march needed for #185404 #199334 + # TODO: When creating the first glibc cross-compile, this test will + # always fail as it does a full link which in turn requires glibc. + # Probably also applies when changing multilib profile settings (e.g. + # enabling x86 when the profile was amd64-only previously). + # We could change main to _start and pass -nostdlib here so that we + # only test the gcc code compilation. Or we could do a compile and + # then look for the symbol via scanelf. + if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then + local t=${CTARGET_OPT:-${CTARGET}} + t=${t%%-*} + filter-flags '-march=*' + export CFLAGS="-march=${t} ${CFLAGS}" + einfo "Auto adding -march=${t} to CFLAGS #185404" + fi + ;; + amd64) + # -march needed for #185404 #199334 + # TODO: See cross-compile issues listed above for x86. + [[ ${ABI} == x86 ]] && + if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then + local t=${CTARGET_OPT:-${CTARGET}} + t=${t%%-*} + # Normally the target is x86_64-xxx, so turn that into the -march that + # gcc actually accepts. #528708 + [[ ${t} == "x86_64" ]] && t="x86-64" + filter-flags '-march=*' + # ugly, ugly, ugly. ugly. + CFLAGS_x86=$(CFLAGS=${CFLAGS_x86} filter-flags '-march=*'; echo "${CFLAGS}") + export CFLAGS_x86="${CFLAGS_x86} -march=${t}" + einfo "Auto adding -march=${t} to CFLAGS_x86 #185404 (ABI=${ABI})" + fi + ;; + mips) + # The mips abi cannot support the GNU style hashes. #233233 + filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both + ;; + ppc|ppc64) + # Many arch-specific implementations do not work on ppc with + # cache-block not equal to 128 bytes. This breaks memset: + # https://sourceware.org/PR26522 + # https://bugs.gentoo.org/737996 + # Use default -mcpu=. For ppc it means non-multiarch setup. + filter-flags '-mcpu=*' + ;; + sparc) + # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. + filter-flags "-fcall-used-g7" + append-flags "-fcall-used-g6" + + local cpu + case ${CTARGET} in + sparc64-*) + cpu="sparc64" + case $(get-flag mcpu) in + v9) + # We need to force at least v9a because the base build doesn't + # work with just v9. + # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 + append-flags "-Wa,-xarch=v9a" + ;; + esac + ;; + sparc-*) + case $(get-flag mcpu) in + v8|supersparc|hypersparc|leon|leon3) + cpu="sparcv8" + ;; + *) + cpu="sparcv9" + ;; + esac + ;; + esac + [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" + ;; + esac +} + +setup_flags() { + # Make sure host make.conf doesn't pollute us + if is_crosscompile || tc-is-cross-compiler ; then + CHOST=${CTARGET} strip-unsupported-flags + fi + + # Store our CFLAGS because it's changed depending on which CTARGET + # we are building when pulling glibc on a multilib profile + CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} + CFLAGS=${CFLAGS_BASE} + CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} + CXXFLAGS=${CXXFLAGS_BASE} + ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} + ASFLAGS=${ASFLAGS_BASE} + + # Allow users to explicitly avoid flag sanitization via + # USE=custom-cflags. + if ! use custom-cflags; then + # Over-zealous CFLAGS can often cause problems. What may work for one + # person may not work for another. To avoid a large influx of bugs + # relating to failed builds, we strip most CFLAGS out to ensure as few + # problems as possible. + strip-flags + # Lock glibc at -O2; we want to be conservative here. + filter-flags '-O?' + append-flags -O2 + fi + strip-unsupported-flags + filter-flags -m32 -m64 '-mabi=*' + + # glibc aborts if rpath is set by LDFLAGS + filter-ldflags '-Wl,-rpath=*' + + # #492892 + filter-flags -frecord-gcc-switches + + unset CBUILD_OPT CTARGET_OPT + if use multilib ; then + CTARGET_OPT=$(get_abi_CTARGET) + [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST) + fi + + setup_target_flags + + if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then + CBUILD_OPT=${CTARGET_OPT} + fi + + # glibc's headers disallow -O0 and fail at build time: + # include/libc-symbols.h:75:3: #error "glibc cannot be compiled without optimization" + replace-flags -O0 -O1 + + filter-flags '-fstack-protector*' +} + +want_tls() { + # Archs that can use TLS (Thread Local Storage) + case $(tc-arch) in + x86) + # requires i486 or better #106556 + [[ ${CTARGET} == i[4567]86* ]] && return 0 + return 1 + ;; + esac + return 0 +} + +want__thread() { + want_tls || return 1 + + # For some reason --with-tls --with__thread is causing segfaults on sparc32. + [[ ${PROFILE_ARCH} == "sparc" ]] && return 1 + + [[ -n ${WANT__THREAD} ]] && return ${WANT__THREAD} + + # only test gcc -- can't test linking yet + tc-has-tls -c ${CTARGET} + WANT__THREAD=$? + + return ${WANT__THREAD} +} + +use_multiarch() { + # Allow user to disable runtime arch detection in multilib. + use multiarch || return 1 + # Make sure binutils is new enough to support indirect functions, + # #336792. This funky sed supports gold and bfd linkers. + local bver nver + bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}') + case $(tc-arch ${CTARGET}) in + amd64|x86) nver="2.20" ;; + arm) nver="2.22" ;; + hppa) nver="2.23" ;; + ppc|ppc64) nver="2.20" ;; + # ifunc support was added in 2.23, but glibc also needs + # machinemode which is in 2.24. + s390) nver="2.24" ;; + sparc) nver="2.21" ;; + *) return 1 ;; + esac + ver_test ${bver} -ge ${nver} +} + +# Setup toolchain variables that had historically been defined in the +# profiles for these archs. +setup_env() { + # silly users + unset LD_RUN_PATH + unset LD_ASSUME_KERNEL + + if is_crosscompile || tc-is-cross-compiler ; then + multilib_env ${CTARGET_OPT:-${CTARGET}} + + if ! use multilib ; then + MULTILIB_ABIS=${DEFAULT_ABI} + else + MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} + fi + + # If the user has CFLAGS_ in their make.conf, use that, + # and fall back on CFLAGS. + local VAR=CFLAGS_${CTARGET//[-.]/_} + CFLAGS=${!VAR-${CFLAGS}} + einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}" + fi + + setup_flags + + export ABI=${ABI:-${DEFAULT_ABI:-default}} + + if just_headers ; then + # Avoid mixing host's CC and target's CFLAGS_${ABI}: + # At this bootstrap stage we have only binutils for + # target but not compiler yet. + einfo "Skip CC ABI injection. We can't use (cross-)compiler yet." + return 0 + fi + local VAR=CFLAGS_${ABI} + # We need to export CFLAGS with abi information in them because glibc's + # configure script checks CFLAGS for some targets (like mips). Keep + # around the original clean value to avoid appending multiple ABIs on + # top of each other. + : ${__GLIBC_CC:=$(tc-getCC ${CTARGET})} + export __GLIBC_CC CC="${__GLIBC_CC} ${!VAR}" + einfo " $(printf '%15s' 'Manual CC:') ${CC}" +} + +foreach_abi() { + setup_env + + local ret=0 + local abilist="" + if use multilib ; then + abilist=$(get_install_abis) + else + abilist=${DEFAULT_ABI} + fi + local -x ABI + for ABI in ${abilist:-default} ; do + setup_env + einfo "Running $1 for ABI ${ABI}" + $1 + : $(( ret |= $? )) + done + return ${ret} +} + +glibc_banner() { + local b="Gentoo ${PVR}" + [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" p${PATCH_VER}" + echo "${b}" +} + +# The following Kernel version handling functions are mostly copied from portage +# source. It's better not to use linux-info.eclass here since a) it adds too +# much magic, see bug 326693 for some of the arguments, and b) some of the +# functions are just not provided. + +g_get_running_KV() { + uname -r + return $? +} + +g_KV_major() { + [[ -z $1 ]] && return 1 + local KV=$@ + echo "${KV%%.*}" +} + +g_KV_minor() { + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.} + echo "${KV%%.*}" +} + +g_KV_micro() { + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.*.} + echo "${KV%%[^[:digit:]]*}" +} + +g_KV_to_int() { + [[ -z $1 ]] && return 1 + local KV_MAJOR=$(g_KV_major "$1") + local KV_MINOR=$(g_KV_minor "$1") + local KV_MICRO=$(g_KV_micro "$1") + local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )) + + # We make version 2.2.0 the minimum version we will handle as + # a sanity check ... if its less, we fail ... + if [[ ${KV_int} -ge 131584 ]] ; then + echo "${KV_int}" + return 0 + fi + return 1 +} + +g_int_to_KV() { + local version=$1 major minor micro + major=$((version / 65536)) + minor=$(((version % 65536) / 256)) + micro=$((version % 256)) + echo ${major}.${minor}.${micro} +} + +eend_KV() { + [[ $(g_KV_to_int $1) -ge $(g_KV_to_int $2) ]] + eend $? +} + +get_kheader_version() { + printf '#include \nLINUX_VERSION_CODE\n' | \ + $(tc-getCPP ${CTARGET}) -I "$(build_eprefix)$(alt_build_headers)" - | \ + tail -n 1 +} + +# We collect all sanity checks here. Consistency is not guranteed between +# pkg_ and src_ phases, so we call this function both in pkg_pretend and in +# src_unpack. +sanity_prechecks() { + # Prevent native builds from downgrading + if [[ ${MERGE_TYPE} != "buildonly" ]] && \ + [[ -z ${ROOT} ]] && \ + [[ ${CBUILD} == ${CHOST} ]] && \ + [[ ${CHOST} == ${CTARGET} ]] ; then + + # The high rev # is to allow people to downgrade between -r# + # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2 + # should be fine. Hopefully we never actually use a r# this + # high. + if has_version ">${CATEGORY}/${P}-r10000" ; then + eerror "Sanity check to keep you from breaking your system:" + eerror " Downgrading glibc is not supported and a sure way to destruction." + [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system." + fi + + if ! do_run_test '#include \n#include \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() 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-bootstrap && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz + + setup_env + + if [[ ${PV} == 9999* ]] ; then + EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/glibc-patches.git" + EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git + git-r3_src_unpack + mv patches-git/9999 patches || die + + EGIT_REPO_URI="https://sourceware.org/git/glibc.git" + EGIT_CHECKOUT_DIR=${S} + git-r3_src_unpack + else + unpack ${P}.tar.xz + + cd "${WORKDIR}" || die + unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz + fi + + cd "${WORKDIR}" || die + unpack locale-gen-${LOCALE_GEN_VER}.tar.gz +} + +src_prepare() { + local patchsetname + if ! use vanilla ; then + if [[ ${PV} == 9999* ]] ; then + patchsetname="from git master" + else + patchsetname="${RELEASE_VER}-${PATCH_VER}" + fi + einfo "Applying Gentoo Glibc Patchset ${patchsetname}" + eapply "${WORKDIR}"/patches + einfo "Done." + fi + + default + + gnuconfig_update + + cd "${WORKDIR}" + find . -name configure -exec touch {} + + + # move the external locale-gen to its old place + mkdir extra || die + mv locale-gen-${LOCALE_GEN_VER} extra/locale || die + + eprefixify extra/locale/locale-gen + + # Fix permissions on some of the scripts. + chmod u+x "${S}"/scripts/*.sh + + cd "${S}" +} + +glibc_do_configure() { + # Glibc does not work with gold (for various reasons) #269274. + tc-ld-disable-gold + + # CXX isnt handled by the multilib system, so if we dont unset here + # we accumulate crap across abis + unset CXX + + einfo "Configuring glibc for nptl" + + if use doc ; then + export MAKEINFO=makeinfo + else + export MAKEINFO=/dev/null + fi + + local v + for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO NM READELF; do + einfo " $(printf '%15s' ${v}:) ${!v}" + done + + # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760 + # To build .S (assembly) files with the same ABI-specific flags + # upstream currently recommends adding CFLAGS to CC/CXX: + # https://sourceware.org/PR23273 + # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS + # and breaks multiarch support. See 659030#c3 for an example. + # The glibc configure script doesn't properly use LDFLAGS all the time. + export CC="$(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS}" + einfo " $(printf '%15s' 'Manual CC:') ${CC}" + + # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 + export CXX="$(tc-getCXX ${CTARGET}) $(get_abi_CFLAGS) ${CFLAGS}" + + if is_crosscompile; then + # Assume worst-case bootstrap: glibc is buil first time + # when ${CTARGET}-g++ is not available yet. We avoid + # building auxiliary programs that require C++: bug #683074 + # It should not affect final result. + export libc_cv_cxx_link_ok=no + # The line above has the same effect. We set CXX explicitly + # to make build logs less confusing. + export CXX= + fi + einfo " $(printf '%15s' 'Manual CXX:') ${CXX}" + + # Always use tuple-prefixed toolchain. For non-native ABI glibc's configure + # can't detect them automatically due to ${CHOST} mismatch and fallbacks + # to unprefixed tools. Similar to multilib.eclass:multilib_toolchain_setup(). + export NM="$(tc-getNM ${CTARGET})" + export READELF="$(tc-getREADELF ${CTARGET})" + einfo " $(printf '%15s' 'Manual NM:') ${NM}" + einfo " $(printf '%15s' 'Manual READELF:') ${READELF}" + + echo + + local myconf=() + + case ${CTARGET} in + m68k*) + # setjmp() is not compatible with stack protection: + # https://sourceware.org/PR24202 + myconf+=( --enable-stack-protector=no ) + ;; + *) + # Use '=strong' instead of '=all' to protect only functions + # worth protecting from stack smashes. + # '=all' is also known to have a problem in IFUNC resolution + # tests: https://sourceware.org/PR25680, bug #712356. + myconf+=( --enable-stack-protector=$(usex ssp strong no) ) + ;; + esac + myconf+=( --enable-stackguard-randomization ) + + # Keep a whitelist of targets supporing IFUNC. glibc's ./configure + # is not robust enough to detect proper support: + # https://bugs.gentoo.org/641216 + # https://sourceware.org/PR22634#c0 + case $(tc-arch ${CTARGET}) in + # Keep whitelist of targets where autodetection mostly works. + amd64|x86|sparc|ppc|ppc64|arm|arm64|s390) ;; + # Blacklist everywhere else + *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; + esac + + # Enable Intel Control-flow Enforcement Technology on amd64 if requested + case ${CTARGET} in + x86_64-*) myconf+=( $(use_enable cet) ) ;; + *) ;; + esac + + [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) + + myconf+=( --enable-kernel=${MIN_KERN_VER} ) + + # Since SELinux support is only required for nscd, only enable it if: + # 1. USE selinux + # 2. only for the primary ABI on multilib systems + # 3. Not a crosscompile + if ! is_crosscompile && use selinux ; then + if use multilib ; then + if is_final_abi ; then + myconf+=( --with-selinux ) + else + myconf+=( --without-selinux ) + fi + else + myconf+=( --with-selinux ) + fi + else + myconf+=( --without-selinux ) + fi + + # Force a few tests where we always know the answer but + # configure is incapable of finding it. + if is_crosscompile ; then + export \ + libc_cv_c_cleanup=yes \ + libc_cv_forced_unwind=yes + fi + + myconf+=( + --without-cvs + --disable-werror + --enable-bind-now + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + $(use_enable profile) + $(use_with gd) + --with-headers=$(build_eprefix)$(alt_build_headers) + --prefix="$(host_eprefix)/usr" + --sysconfdir="$(host_eprefix)/etc" + --localstatedir="$(host_eprefix)/var" + --libdir='$(prefix)'/$(get_libdir) + --mandir='$(prefix)'/share/man + --infodir='$(prefix)'/share/info + --libexecdir='$(libdir)'/misc/glibc + --with-bugurl=https://bugs.gentoo.org/ + --with-pkgversion="$(glibc_banner)" + $(use_enable crypt) + $(use_multiarch || echo --disable-multi-arch) + $(use_enable static-pie) + $(use_enable systemtap) + $(use_enable nscd) + + # locale data is arch-independent + # https://bugs.gentoo.org/753740 + libc_cv_complocaledir='${exec_prefix}/lib/locale' + + # -march= option tricks build system to infer too + # high ISA level: https://sourceware.org/PR27318 + libc_cv_include_x86_isa_level=no + + ${EXTRA_ECONF} + ) + + # We rely on sys-libs/timezone-data for timezone tools normally. + myconf+=( $(use_enable vanilla timezone-tools) ) + + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) + ac_cv_lib_cap_cap_init=$(usex caps || echo no) + + # There is no configure option for this and we need to export it + # since the glibc build will re-run configure on itself + export libc_cv_rootsbindir="$(host_eprefix)/sbin" + export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)" + + # We take care of patching our binutils to use both hash styles, + # and many people like to force gnu hash style only, so disable + # this overriding check. #347761 + export libc_cv_hashstyle=no + + local builddir=$(builddir nptl) + mkdir -p "${builddir}" + cd "${builddir}" + set -- "${S}"/configure "${myconf[@]}" + echo "$@" + "$@" || die "failed to configure glibc" + + # ia64 static cross-compilers are a pita in so much that they + # can't produce static ELFs (as the libgcc.a is broken). so + # disable building of the programs for those targets if it + # doesn't work. + # XXX: We could turn this into a compiler test, but ia64 is + # the only one that matters, so this should be fine for now. + if is_crosscompile && [[ ${CTARGET} == ia64* ]] ; then + sed -i '1i+link-static = touch $@' config.make + fi + + # If we're trying to migrate between ABI sets, we need + # to lie and use a local copy of gcc. Like if the system + # is built with MULTILIB_ABIS="amd64 x86" but we want to + # add x32 to it, gcc/glibc don't yet support x32. + # + if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib-bootstrap ; then + echo 'main(){}' > "${T}"/test.c + if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then + sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die + fi + fi +} + +glibc_headers_configure() { + export ABI=default + + local builddir=$(builddir "headers") + mkdir -p "${builddir}" + cd "${builddir}" + + # if we don't have a compiler yet, we can't really test it now ... + # hopefully they don't affect header generation, so let's hope for + # the best here ... + local v vars=( + ac_cv_header_cpuid_h=yes + libc_cv_{386,390,alpha,arm,hppa,ia64,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes + libc_cv_asm_cfi_directives=yes + libc_cv_broken_visibility_attribute=no + libc_cv_c_cleanup=yes + libc_cv_compiler_powerpc64le_binary128_ok=yes + libc_cv_forced_unwind=yes + libc_cv_gcc___thread=yes + libc_cv_mlong_double_128=yes + libc_cv_mlong_double_128ibm=yes + libc_cv_ppc_machine=yes + libc_cv_ppc_rel16=yes + libc_cv_predef_fortify_source=no + libc_cv_target_power8_ok=yes + libc_cv_visibility_attribute=yes + libc_cv_z_combreloc=yes + libc_cv_z_execstack=yes + libc_cv_z_initfirst=yes + libc_cv_z_nodelete=yes + libc_cv_z_nodlopen=yes + libc_cv_z_relro=yes + libc_mips_abi=${ABI} + libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=no + ac_cv_lib_cap_cap_init=no + ) + + einfo "Forcing cached settings:" + for v in "${vars[@]}" ; do + einfo " ${v}" + export ${v} + done + + local headers_only_arch_CPPFLAGS=() + + # Blow away some random CC settings that screw things up. #550192 + if [[ -d ${S}/sysdeps/mips ]]; then + pushd "${S}"/sysdeps/mips >/dev/null + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die + + # Force the mips ABI to the default. This is OK because the set of + # installed headers in this phase is the same between the 3 ABIs. + # If this ever changes, this hack will break, but that's unlikely + # as glibc discourages that behavior. + # https://crbug.com/647033 + sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die + + popd >/dev/null + fi + + case ${CTARGET} in + riscv*) + # RISC-V interrogates the compiler to determine which target to + # build. If building the headers then we don't strictly need a + # RISC-V compiler, so the built-in definitions that are provided + # along with all RISC-V compiler might not exist. This causes + # glibc's RISC-V preconfigure script to blow up. Since we're just + # building the headers any value will actually work here, so just + # pick the standard one (rv64g/lp64d) to make the build scripts + # happy for now -- the headers are all the same anyway so it + # doesn't matter. + headers_only_arch_CPPFLAGS+=( + -D__riscv_xlen=64 + -D__riscv_flen=64 + -D__riscv_float_abi_double=1 + -D__riscv_atomic=1 + ) ;; + esac + + local myconf=() + myconf+=( + --disable-sanity-checks + --enable-hacker-mode + --without-cvs + --disable-werror + --enable-bind-now + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + --with-headers=$(build_eprefix)$(alt_build_headers) + --prefix="$(host_eprefix)/usr" + ${EXTRA_ECONF} + ) + + # Nothing is compiled here which would affect the headers for the target. + # So forcing CC/CFLAGS is sane. + local headers_only_CC=$(tc-getBUILD_CC) + local headers_only_CFLAGS="-O1 -pipe" + local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}" + local headers_only_LDFLAGS="" + set -- "${S}"/configure "${myconf[@]}" + echo \ + "CC=${headers_only_CC}" \ + "CFLAGS=${headers_only_CFLAGS}" \ + "CPPFLAGS=${headers_only_CPPFLAGS}" \ + "LDFLAGS=${headers_only_LDFLAGS}" \ + "$@" + CC=${headers_only_CC} \ + CFLAGS=${headers_only_CFLAGS} \ + CPPFLAGS=${headers_only_CPPFLAGS} \ + LDFLAGS="" \ + "$@" || die "failed to configure glibc" +} + +do_src_configure() { + if just_headers ; then + glibc_headers_configure + else + glibc_do_configure nptl + fi +} + +src_configure() { + foreach_abi do_src_configure +} + +do_src_compile() { + emake -C "$(builddir nptl)" +} + +src_compile() { + if just_headers ; then + return + fi + + foreach_abi do_src_compile +} + +glibc_src_test() { + cd "$(builddir nptl)" + + local myxfailparams="" + if [[ "${GENTOO_GLIBC_XFAIL_TESTS}" == "yes" ]] ; then + for myt in ${XFAIL_TEST_LIST[@]} ; do + myxfailparams+="test-xfail-${myt}=yes " + done + fi + + # sandbox does not understand unshare() and prevents + # writes to /proc/, which makes many tests fail + + SANDBOX_ON=0 LD_PRELOAD= emake ${myxfailparams} check +} + +do_src_test() { + local ret=0 + + glibc_src_test + : $(( ret |= $? )) + + return ${ret} +} + +src_test() { + if just_headers ; then + return + fi + + # Give tests more time to complete. + export TIMEOUTFACTOR=5 + + foreach_abi do_src_test || die "tests failed" +} + +run_locale_gen() { + # if the host locales.gen contains no entries, we'll install everything + local root="$1" + local inplace="" + + if [[ "${root}" == "--inplace-glibc" ]] ; then + inplace="--inplace-glibc" + root="$2" + fi + + local locale_list="${root}/etc/locale.gen" + + pushd "${ED}"/$(get_libdir) >/dev/null + + if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then + [[ -z ${inplace} ]] && ewarn "Generating all locales; edit /etc/locale.gen to save time/space" + locale_list="${root}/usr/share/i18n/SUPPORTED" + fi + + set -- locale-gen ${inplace} --jobs $(makeopts_jobs) --config "${locale_list}" \ + --destdir "${root}" + echo "$@" + "$@" + + popd >/dev/null +} + +glibc_do_src_install() { + local builddir=$(builddir nptl) + cd "${builddir}" + + emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install + + # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support + # which come without headers etc. Only needed for binary packages since the + # external net-libs/libnsl has increased soversion. Keep only versioned libraries. + find "${D}" -name "libnsl.a" -delete + find "${D}" -name "libnsl.so" -delete + + # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need + # to infer upstream version: + # '#define VERSION "2.26.90"' -> '2.26.90' + local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h) + + # Avoid stripping binaries not targeted by ${CHOST}. Or else + # ${CHOST}-strip would break binaries build for ${CTARGET}. + is_crosscompile && dostrip -x / + # gdb thread introspection relies on local libpthreas symbols. stripping breaks it + # See Note [Disable automatic stripping] + dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so + + if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then + # Move versioned .a file out of libdir to evade portage QA checks + # instead of using gen_usr_ldscript(). We fix ldscript as: + # "GROUP ( /usr/lib64/libm-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.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 + ilp32d /lib/ld-linux-riscv32-ilp32d.so.1 + ilp32 /lib/ld-linux-riscv32-ilp32.so.1 + lp64d /lib/ld-linux-riscv64-lp64d.so.1 + lp64 /lib/ld-linux-riscv64-lp64.so.1 + # s390 + s390 /lib/ld.so.1 + s390x /lib/ld64.so.1 + # sparc + sparc32 /lib/ld-linux.so.2 + sparc64 /lib64/ld-linux.so.2 + ) + case $(tc-endian) in + little) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64.so.1 + ) + ;; + 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 + + keepdir /usr/lib/locale + + cd "${S}" + + # Install misc network config files + insinto /etc + doins posix/gai.conf nss/nsswitch.conf + + # Gentoo-specific + newins "${FILESDIR}"/host.conf-1 host.conf + + if use nscd ; then + doins nscd/nscd.conf + + newinitd "$(prefixify_ro "${FILESDIR}"/nscd-1)" nscd + + local nscd_args=( + -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" + ) + + sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd + + systemd_dounit nscd/nscd.service + systemd_newtmpfilesd nscd/nscd.tmpfiles nscd.conf + fi + + echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc + doenvd "${T}"/00glibc + + for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do + [[ -s ${d} ]] && dodoc ${d} + done + dodoc -r ChangeLog.old + + # Prevent overwriting of the /etc/localtime symlink. We'll handle the + # creation of the "factory" symlink in pkg_postinst(). + rm -f "${ED}"/etc/localtime + + # Generate all locales if this is a native build as locale generation + if use compile-locales && ! is_crosscompile ; then + run_locale_gen --inplace-glibc "${ED}/" + sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die + fi +} + +glibc_headers_install() { + local builddir=$(builddir "headers") + cd "${builddir}" + emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers + + insinto $(alt_headers)/gnu + doins "${S}"/include/gnu/stubs.h + + # Make sure we install the sys-include symlink so that when + # we build a 2nd stage cross-compiler, gcc finds the target + # system headers correctly. See gcc/doc/gccinstall.info + dosym usr/include $(alt_prefix)/sys-include +} + +src_install() { + if just_headers ; then + export ABI=default + glibc_headers_install + return + fi + + foreach_abi glibc_do_src_install + + if ! use static-libs ; then + einfo "Not installing static glibc libraries" + find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete + fi +} + +# Simple test to make sure our new glibc isn't completely broken. +# Make sure we don't test with statically built binaries since +# they will fail. Also, skip if this glibc is a cross compiler. +# +# If coreutils is built with USE=multicall, some of these files +# will just be wrapper scripts, not actual ELFs we can test. +glibc_sanity_check() { + cd / #228809 + + # We enter ${ED} so to avoid trouble if the path contains + # special characters; for instance if the path contains the + # colon character (:), then the linker will try to split it + # and look for the libraries in an unexpected place. This can + # lead to unsafe code execution if the generated prefix is + # within a world-writable directory. + # (e.g. /var/tmp/portage:${HOSTNAME}) + pushd "${ED}"/$(get_libdir) >/dev/null + + 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 + + [[ -n ${ROOT} ]] && return 0 + [[ -d ${ED}/$(get_libdir) ]] || return 0 + [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check + + if [[ -L ${EROOT}/usr/lib/locale ]]; then + # Help portage migrate this to a directory + # https://bugs.gentoo.org/753740 + rm "${EROOT}"/usr/lib/locale || die + fi +} + +pkg_postinst() { + # nothing to do if just installing headers + just_headers && return + + if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then + # Generate fastloading iconv module configuration file. + "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}/" + fi + + if ! is_crosscompile && [[ -z ${ROOT} ]] ; then + use compile-locales || run_locale_gen "${EROOT}/" + fi + + # Check for sanity of /etc/nsswitch.conf, take 2 + if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then + local entry + for entry in passwd group shadow; do + if egrep -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then + ewarn "" + ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" + ewarn "removed from glibc and is now provided by the package" + ewarn " sys-auth/libnss-nis" + ewarn "Install it now to keep your NIS setup working." + ewarn "" + fi + done + fi +} diff --git a/sys-libs/glibc/glibc-9999.ebuild b/sys-libs/glibc/glibc-9999.ebuild index 0104a0d72385..8442cf8fb912 100644 --- a/sys-libs/glibc/glibc-9999.ebuild +++ b/sys-libs/glibc/glibc-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -775,7 +775,7 @@ src_prepare() { else patchsetname="${RELEASE_VER}-${PATCH_VER}" fi - elog "Applying Gentoo Glibc Patchset ${patchsetname}" + einfo "Applying Gentoo Glibc Patchset ${patchsetname}" eapply "${WORKDIR}"/patches einfo "Done." fi @@ -948,6 +948,10 @@ glibc_do_configure() { # https://bugs.gentoo.org/753740 libc_cv_complocaledir='${exec_prefix}/lib/locale' + # -march= option tricks build system to infer too + # high ISA level: https://sourceware.org/PR27318 + libc_cv_include_x86_isa_level=no + ${EXTRA_ECONF} ) @@ -1402,7 +1406,7 @@ src_install() { foreach_abi glibc_do_src_install if ! use static-libs ; then - elog "Not installing static glibc libraries" + einfo "Not installing static glibc libraries" find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete fi } diff --git a/sys-libs/kpmcore/Manifest b/sys-libs/kpmcore/Manifest index ad934fd36e49..ac9b32ae8a87 100644 --- a/sys-libs/kpmcore/Manifest +++ b/sys-libs/kpmcore/Manifest @@ -1,5 +1,6 @@ -DIST kpmcore-20.12.1.tar.xz 584128 BLAKE2B e3a4032f3dac60342799c6c2e91728e36b37af90a00d81e3eb5f12a3b0e3734742714d1a037c8f8ff893dcfdd8cb27348014920d985d5e93c3c387c914a48a2f SHA512 b59e97faee594eeb79c649638dde10d081752ee561af8e40d1503bba599a91f81af7730beec5302cb0991c10161188c064caf0efc12144a15dd37ce19b79d576 +AUX kpmcore-4.2.0-kf-5.77.patch 1468 BLAKE2B 1dc930e1fb6cc01891ab3e9def4f843cd0e0d1c92e8f5ecd0105bd338a9f0f60c370039ee8aa2950385f846b18aab0169f89c3925198475e9908319f2e4cc96e SHA512 1e0ece24224bbfbe4d2a33c19834b55f84b0c2c08eb840b8ea63aeb45e9e8813f4ea069f5c2752e74b99144616b766a41a7fe77ae69c3b78bb474003cfa064e5 +DIST kpmcore-20.12.2.tar.xz 584284 BLAKE2B 8b3aeba1e0b55fe4daa221076298965ffe94b3ad31c0e5824ffce2756e6aebc4f2728deb9e075d94c9dc13d58c3abd40c5143ffeaf1251970349d12086a6acce SHA512 6e3327ef47cb481211887e285ac93646001690f9c468f7c8bfaf6037d262bc2e90582a83d8006d4a3f1c32d2354cc6f6d77ef248773d8cdb5d904a2164615063 DIST kpmcore-4.2.0.tar.xz 441320 BLAKE2B 5eeae806e47a1d068b2052b7706fbe16acfd609e3d0bcb396758f2055154e43b5b1fc7b7a65795ba0804ebc34c7d0cda18995ce3975e16e74d015ac9d8203e1e SHA512 71c5411f3ec24149695bbc1ec0c2bb7423b1cfd24ea9c2f33492c6310b1e911ea14a0a46a53024d7a1afebf0cbc5b56fb7cf5be22b832fb49239a270b63404f0 -EBUILD kpmcore-20.12.1.ebuild 754 BLAKE2B 9fb97f1a9ace20c87581112d998dbdd6ab2beb47989d20363080b86d686c5ec7218f95405a771023e8516cc1df875236419a85b6d0d16fc27f68f7c8da9f6167 SHA512 dd9f748201826d965fc0e96fd994cdc20972e2a5747a77f291af8189086b073a52f5efdd80b9f6a36ae3f242771738130c1e21e23be52b1e519bc6f65d348dbc -EBUILD kpmcore-4.2.0.ebuild 870 BLAKE2B 587696037266fe5d19933168d8796db92cd9ca33811708da39455b59fd87bfb54d9ec565fb08cde74a98665a167837bbd3f398c3bfd8052699d33a524c4781ae SHA512 1a6f4c16e2e92270aaf74dd9d85d78fae705dbeb92568eb27b9fa12c81d4e6bbd655a5ba91503e9a2464663e4352874099bc21ce351512a24230272bdca11f90 +EBUILD kpmcore-20.12.2.ebuild 754 BLAKE2B a55d684d8b771c6a41bdf7474e2c8f99354be512f46b6cc0a45d6e2e75f395a3c9bac9b946b209864e1209a3fafc83d84898f6bb9ea4f7eec6835e4f28ac3d6b SHA512 8337a443e6a4fcd65dd841e11c1d85848783893a9aae99b7f282e2110e5cc505a504908bd9af99207d879d1d9537f0c7ab3fafeb2894240962d702b9f28ed034 +EBUILD kpmcore-4.2.0.ebuild 929 BLAKE2B 249aa44c720455172855b55169eb4d48cf78f0d7e32d5f958815f7115c149b415a0ec46c1d668d0438424d399178e9b4d0e867a16b25eb026762ab2504b49aaf SHA512 14534457c2155ab9529663fafbb85c14b85bb1d114ac2902cf50b3acd1ce7494507d0afd173d709fec4c1a3f8b8d38de483019fde694112020424c11b172cd42 MISC metadata.xml 249 BLAKE2B ad415db89e5dee1627aa77f44ded9d4e1e5b8217d06c7ca25bbaa3fe92ce67c2b1090957c45a821b407d7927e5af798498aa6a5b903895ee1af8ee20a446c7f7 SHA512 76a5a340b13f0053ca3c5e94ed24380ea8d29b45ac8655419e22eaadb1e4a827c04d2e7e36b65145c4964e6526f656618fc6ac144e277ef53cb7373e6239e3c3 diff --git a/sys-libs/kpmcore/files/kpmcore-4.2.0-kf-5.77.patch b/sys-libs/kpmcore/files/kpmcore-4.2.0-kf-5.77.patch new file mode 100644 index 000000000000..f45ad5a682ba --- /dev/null +++ b/sys-libs/kpmcore/files/kpmcore-4.2.0-kf-5.77.patch @@ -0,0 +1,50 @@ +From 07e5a3ac2858e6d38cc698e0f740e7a693e9f302 Mon Sep 17 00:00:00 2001 +From: "Friedrich W. H. Kossebau" +Date: Mon, 16 Nov 2020 17:14:52 +0100 +Subject: [PATCH] Make plugins compatible to latest KPluginFactory code + +That one uses std::is_constructible +which will fail for our current plugin constructors due to being private +and with only friend class KPluginFactory. +--- + src/plugins/dummy/dummybackend.h | 4 +--- + src/plugins/sfdisk/sfdiskbackend.h | 4 +--- + 2 files changed, 2 insertions(+), 6 deletions(-) + +diff --git a/src/plugins/dummy/dummybackend.h b/src/plugins/dummy/dummybackend.h +index 815b020..8d67158 100644 +--- a/src/plugins/dummy/dummybackend.h ++++ b/src/plugins/dummy/dummybackend.h +@@ -24,11 +24,9 @@ class QString; + */ + class DummyBackend : public CoreBackend + { +- friend class KPluginFactory; +- + Q_DISABLE_COPY(DummyBackend) + +-private: ++public: + DummyBackend(QObject* parent, const QList& args); + + public: +diff --git a/src/plugins/sfdisk/sfdiskbackend.h b/src/plugins/sfdisk/sfdiskbackend.h +index e709f61..0571add 100644 +--- a/src/plugins/sfdisk/sfdiskbackend.h ++++ b/src/plugins/sfdisk/sfdiskbackend.h +@@ -27,11 +27,9 @@ class QString; + */ + class SfdiskBackend : public CoreBackend + { +- friend class KPluginFactory; +- + Q_DISABLE_COPY(SfdiskBackend) + +-private: ++public: + SfdiskBackend(QObject* parent, const QList& args); + + public: +-- +GitLab + diff --git a/sys-libs/kpmcore/kpmcore-20.12.1.ebuild b/sys-libs/kpmcore/kpmcore-20.12.1.ebuild deleted file mode 100644 index 432efffb1bc7..000000000000 --- a/sys-libs/kpmcore/kpmcore-20.12.1.ebuild +++ /dev/null @@ -1,34 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -ECM_NONGUI="true" -KDE_RELEASE_SERVICE="true" -KFMIN=5.74.0 -QTMIN=5.15.1 -inherit ecm kde.org - -DESCRIPTION="Library for managing partitions" -HOMEPAGE="https://apps.kde.org/en/partitionmanager" - -LICENSE="GPL-3" -SLOT="5/10" -KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" -IUSE="" - -BDEPEND="virtual/pkgconfig" -DEPEND=" - >=dev-qt/qtdbus-${QTMIN}:5 - >=dev-qt/qtgui-${QTMIN}:5 - >=dev-qt/qtwidgets-${QTMIN}:5 - >=kde-frameworks/kcoreaddons-${KFMIN}:5 - >=kde-frameworks/ki18n-${KFMIN}:5 - >=kde-frameworks/kwidgetsaddons-${KFMIN}:5 - >=sys-apps/util-linux-2.33.2 - sys-auth/polkit-qt -" -RDEPEND="${DEPEND}" - -# bug 689468, tests need polkit etc. -RESTRICT+=" test" diff --git a/sys-libs/kpmcore/kpmcore-20.12.2.ebuild b/sys-libs/kpmcore/kpmcore-20.12.2.ebuild new file mode 100644 index 000000000000..b8217a3ea9e6 --- /dev/null +++ b/sys-libs/kpmcore/kpmcore-20.12.2.ebuild @@ -0,0 +1,34 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +ECM_NONGUI="true" +KDE_RELEASE_SERVICE="true" +KFMIN=5.74.0 +QTMIN=5.15.2 +inherit ecm kde.org + +DESCRIPTION="Library for managing partitions" +HOMEPAGE="https://apps.kde.org/en/partitionmanager" + +LICENSE="GPL-3" +SLOT="5/10" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" +IUSE="" + +BDEPEND="virtual/pkgconfig" +DEPEND=" + >=dev-qt/qtdbus-${QTMIN}:5 + >=dev-qt/qtgui-${QTMIN}:5 + >=dev-qt/qtwidgets-${QTMIN}:5 + >=kde-frameworks/kcoreaddons-${KFMIN}:5 + >=kde-frameworks/ki18n-${KFMIN}:5 + >=kde-frameworks/kwidgetsaddons-${KFMIN}:5 + >=sys-apps/util-linux-2.33.2 + sys-auth/polkit-qt +" +RDEPEND="${DEPEND}" + +# bug 689468, tests need polkit etc. +RESTRICT+=" test" diff --git a/sys-libs/kpmcore/kpmcore-4.2.0.ebuild b/sys-libs/kpmcore/kpmcore-4.2.0.ebuild index 2103dab3c119..6530cb3632d6 100644 --- a/sys-libs/kpmcore/kpmcore-4.2.0.ebuild +++ b/sys-libs/kpmcore/kpmcore-4.2.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -20,6 +20,9 @@ LICENSE="GPL-3" SLOT="5/10" IUSE="" +# bug 689468, tests need polkit etc. +RESTRICT+=" test" + BDEPEND=" >=kde-frameworks/kauth-${KFMIN}:5 virtual/pkgconfig @@ -36,5 +39,4 @@ DEPEND=" " RDEPEND="${DEPEND}" -# bug 689468, tests need polkit etc. -RESTRICT+=" test" +PATCHES=( "${FILESDIR}/${P}-kf-5.77.patch" ) # bug 768249 diff --git a/sys-libs/libcap/Manifest b/sys-libs/libcap/Manifest index 003372edc275..9a112340d1cd 100644 --- a/sys-libs/libcap/Manifest +++ b/sys-libs/libcap/Manifest @@ -3,10 +3,11 @@ AUX libcap-2.25-ignore-RAISE_SETFCAP-install-failures.patch 988 BLAKE2B 63417032 AUX libcap-2.38-no_perl.patch 3049 BLAKE2B 77fdcda75b273fd69695161d48f37fda40375f5f36acdb31e9f9e5b7585e6933733586c6ad96673efb79a6657dbbffd4431612ed723905e9f4d595a9dd8c49c4 SHA512 f3938a8a78407639bfdda4d9c4b4096025f956430f9efbce438689aabbea74915c55c6afbd45a7af4ecc0c437ee72e9aa8335da52d3237c928702e62824e537a AUX libcap-2.42-build-system-fixes.patch 6518 BLAKE2B 138347d98901a0a41c36a3f3e1ff7c539836ba00e0cb1c80005d1e261c35f822bee51a4ca86be324f84b29fc6362e9b891ef105b2142f22be4e8896731b3ee16 SHA512 fbe8fe06ab3650b3247811b04b4afa1d56fc641de0b90c448b99904816b7d4e02d30c5dc54cd038d57c16f828a671c73f3c176e1e5826e6b9c69e2d3085015ff AUX libcap-2.45-build-system-fixes.patch 6618 BLAKE2B 0f18fbf2ba66b0b6131b4f1b9df1005ddeccda31ace7085104531cf57c09d7d2f7ed1aea489f9ef6f2d9701c80acae94265a08aa25951fc6fa95820d0441f789 SHA512 738090eaba52eed82bb8cbf1f3a9a440a1b2e409e875965f8499e78047faad21476e9be42e3707f968e3b5d633b0581b27e09f101b0e4de26abeaf58c7b45e33 +AUX libcap-2.48-build-system-fixes.patch 6274 BLAKE2B 4c81eb50b0a682ca9df03145a53e884589e0961e1b754b522f40d48fca60fe983ae93349d256e62977bf28c99c8c25763d05aa8483aebfc436664756a220d70a SHA512 5b88a5c5ea14d2270ed4018249ceb32b0c91db03ed18a6989cc44250da91887385dc3f37087f716771ddbaa90c7e3d733a64063507465eb354252d9f64b85f80 DIST libcap-2.43.tar.xz 125284 BLAKE2B bde36f8397f4adb74760eb403daa06bee1b8f45ddc253cc3c3ef1f6e95d0e4c76d0f2e6fa3335a8bc451f18ac7128c96230f6aba9ae0320fa4f9d669e7b4f715 SHA512 817add571fb2c54ad2a39974e6545b8fc8d855ecdcf2e00b2cc10e583802c49dfea2d8bca484c89ecd574fdacfc46565b51e3064a4407cf1985defb913240d45 -DIST libcap-2.46.tar.xz 129296 BLAKE2B 22df1dcf37a920e831c47edad62df2b3e35b5360605ed24bdb9199ac8ba1fd30cd20492f8a9eae25232cc042cbef9a89a3649e0d06412b84c58f12e7795844bc SHA512 6dcb249aac78efde959a986e7f06a364b2e6e57dd40b14e791d5a56012df485b2395dee0228f4cc3e1cddb2a4e3dcb9c1d83d5331ed084f23a46848494933845 DIST libcap-2.47.tar.xz 131960 BLAKE2B 745bd3ba9819a1582880dff81d94ccf198fcf3f89d776ac0ce3055535e5370a0be57c5efdf7287f99ed50189af14ee46e90805d0a324f92d394211ffc6d7002d SHA512 cfa4aaa82b7dbb76e38cd207401603582343b14eb91d6df23e0ea6698d0ec0ab2b368fe0d08208a014a1b1a68d11316ecefa45c27983f9ad95e7b8184351fad8 +DIST libcap-2.48.tar.xz 132280 BLAKE2B 43ab75b73a5297ec24467fae82378f8c7aba5356afcebfb32a695d664a4b5268526fd90a009596c0f516a626d8f4523a9b49ec3225b6a886da32e62eb5b55ea5 SHA512 3cb1e2b026c0f60d6f225c7255944d45023e59fd065b8f832739fc90d33b3347981675de12dd705c4ecbd647a494a17daf39e1d92599bcd1a83306886edadba1 EBUILD libcap-2.43.ebuild 2172 BLAKE2B 94abe1f5d3ebb812f67f7d1170c4f1fa9766b75526ac1a088bd8019b76c76695784b8d57f5740f0c684f8a3fe4440bf8b61f5eec3fbfdd1bd1eb7543fe8710f5 SHA512 7593c942c3650af81cbd905d97f5265efb53a16ac9bd9156eada840ea10c85e64de2464fbc4088306a73e3761a1606f8000e9a95e9ee36b15db741e33aa08612 -EBUILD libcap-2.46.ebuild 2211 BLAKE2B d2336c7bbf69c5f99806dabdc568cfae6d7266b55fcb5b4501a5378e61fe186a915a72a282b8400997d78e8caff13d08b11b8bd9b5eace6798f8a608b01f4989 SHA512 c10100e06e0e8dda04dc6825277993fe36f123bed7effc1f23e72fa6e7b8c852a434c4ec9c4bafd064b014b0011507d23aa22ba68dba31c44f03035beef988a4 EBUILD libcap-2.47.ebuild 2211 BLAKE2B 039b339674c58e2ef751d351e1aee338a780b7c41a41733403a3930dede8e9dc40fe2ad2baacd64f95f980f62a788d84e6d96484dd71deb777787b22d4309b5f SHA512 527ae893595d258eee71fc88b9453c66397d006c97afe3e6e17e857bbc212f6e454c4ea41de09850004e20118f7975185c84a8e5f8ce7369113c56ff9c18af52 +EBUILD libcap-2.48.ebuild 2211 BLAKE2B 0fcb26a104e587f7eff0748d418adc37ed827740f1c0ae1e1047271683f69c1dd9a5079c5d6a1d68be0b7b31d4b4ad4ab22f42dc361076e6467c343bf4e19e7d SHA512 4db06e0129107b57def2ad8329b6b9c882408f8c51ec2359e54f936590585b6569f59219255bbc587083343e2bfede40c5faafb5ef04afda110d9d4caf927236 MISC metadata.xml 332 BLAKE2B 2177c836192a85a6d943221da405f7f11f355011767789d81009d5e4d822a203302a946fa1a0ffbc66be6a37a7069aa94a796125fa1dedbdf023762b47f8f614 SHA512 a9887500fd60b72156ac2589b1fefab8dd70b0c03477dd795f147fdc91bbe6fd027b8cf58c3e86cdb6e831368d34b4881cdf0e833af5aee9e7d1a01e90408ae1 diff --git a/sys-libs/libcap/files/libcap-2.48-build-system-fixes.patch b/sys-libs/libcap/files/libcap-2.48-build-system-fixes.patch new file mode 100644 index 000000000000..a672ecedaca6 --- /dev/null +++ b/sys-libs/libcap/files/libcap-2.48-build-system-fixes.patch @@ -0,0 +1,199 @@ +From d0e5c20fda92fcc48109bce7055d5fad458579ca Mon Sep 17 00:00:00 2001 +From: Mike Frysinger +Date: Wed, 4 Nov 2020 22:46:20 +0100 +Subject: [PATCH] build system fixes + +This touches up the homebrewed build system to work much better "out of the +box" for people. Specifically: + - allow toolchain vars to be set via environment + - CC / BUILD_CC / AR / RANLIB + - CFLAGS / CPPFLAGS / LDFLAGS + - split CPPFLAGS out of CFLAGS + - break -fPIC out of global CFLAGS and only use where needed + - use LDLIBS for libraries, not LDFLAGS + +Signed-off-by: Mike Frysinger + +Forward ported from libcap-2.24 to libcap-2.25 +Forward ported from libcap-2.25 to libcap-2.28 +Forward ported from libcap-2.28 to libcap-2.29 +Forward ported from libcap-2.29 to libcap-2.33 +Forward ported from libcap-2.33 to libcap-2.34 +Forward ported from libcap-2.34 to libcap-2.37 +Forward ported from libcap-2.37 to libcap-2.39 +Forward ported from libcap-2.39 to libcap-2.42 +Forward ported from libcap-2.42 to libcap-2.44 +Forward ported from libcap-2.44 to libcap-2.45 +Forward ported from libcap-2.45 to libcap-2.48 + +Signed-off-by: Lars Wendler +--- + Make.Rules | 10 ++++++---- + Makefile | 1 - + libcap/Makefile | 7 ++++--- + pam_cap/Makefile | 8 +++++--- + progs/Makefile | 2 +- + tests/Makefile | 6 ++++-- + 6 files changed, 20 insertions(+), 14 deletions(-) + +diff --git a/Make.Rules b/Make.Rules +index ded9014..07b716f 100644 +--- a/Make.Rules ++++ b/Make.Rules +@@ -52,7 +52,6 @@ GOMAJOR=0 + # Compilation specifics + + KERNEL_HEADERS := $(topdir)/libcap/include/uapi +-IPATH += -fPIC -I$(KERNEL_HEADERS) -I$(topdir)/libcap/include + + CC := $(CROSS_COMPILE)gcc + DEFINES := -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 +@@ -60,7 +59,7 @@ COPTS ?= -O2 + CFLAGS ?= $(COPTS) $(DEFINES) + BUILD_CC ?= $(CC) + BUILD_COPTS ?= -O2 +-BUILD_CFLAGS ?= $(BUILD_COPTS) $(DEFINES) $(IPATH) ++BUILD_CFLAGS ?= $(CFLAGS) + AR := $(CROSS_COMPILE)ar + RANLIB := $(CROSS_COMPILE)ranlib + DEBUG = -g #-DDEBUG +@@ -76,10 +75,13 @@ LIBPSXLIB := -L$(topdir)/libcap -lpsx $(PSXLINKFLAGS) + + BUILD_GPERF := $(shell which gperf >/dev/null 2>/dev/null && echo yes) + +-SYSTEM_HEADERS = /usr/include ++LIBCAP_CPPFLAGS = -I$(KERNEL_HEADERS) -I$(topdir)/libcap/include $(DEFINES) ++CPPFLAGS += $(LIBCAP_CPPFLAGS) ++BUILD_CPPFLAGS += $(LIBCAP_CPPFLAGS) + INCS=$(topdir)/libcap/include/sys/capability.h + LDFLAGS += -L$(topdir)/libcap +-CFLAGS += -Dlinux $(WARNINGS) $(DEBUG) ++CPPFLAGS += -Dlinux ++CFLAGS += $(WARNINGS) $(DEBUG) + INDENT := $(shell if [ -n "$$(which indent 2>/dev/null)" ]; then echo "| indent -kr" ; fi) + + # SHARED tracks whether or not the SHARED libraries (libcap.so, +diff --git a/Makefile b/Makefile +index 7150b9b..9dff1e9 100644 +--- a/Makefile ++++ b/Makefile +@@ -17,7 +17,6 @@ ifeq ($(GOLANG),yes) + $(MAKE) -C go $@ + rm -f cap/go.sum + endif +- $(MAKE) -C tests $@ + $(MAKE) -C progs $@ + $(MAKE) -C doc $@ + $(MAKE) -C kdebug $@ +diff --git a/libcap/Makefile b/libcap/Makefile +index 9563d88..4b42f01 100644 +--- a/libcap/Makefile ++++ b/libcap/Makefile +@@ -25,6 +25,7 @@ MINCAPLIBNAME=$(MAJCAPLIBNAME).$(MINOR) + PSXOBJS=$(addsuffix .o, $(PSXFILES)) + MAJPSXLIBNAME=$(PSXLIBNAME).$(VERSION) + MINPSXLIBNAME=$(MAJPSXLIBNAME).$(MINOR) ++CFLAGS += -fPIC + + all: pcs $(STACAPLIBNAME) + ifeq ($(SHARED),yes) +@@ -66,7 +67,7 @@ libpsx.pc: libpsx.pc.in + $< >$@ + + _makenames: _makenames.c cap_names.list.h +- $(BUILD_CC) $(BUILD_CFLAGS) $< -o $@ ++ $(BUILD_CC) $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) $< -o $@ + + cap_names.h: _makenames + ./_makenames > cap_names.h +@@ -105,10 +106,10 @@ $(PSXLIBNAME) $(MAJPSXLIBNAME) $(MINPSXLIBNAME): $(PSXOBJS) include/sys/psx_sysc + endif + + %.o: %.c $(INCLS) +- $(CC) $(CFLAGS) $(IPATH) -c $< -o $@ ++ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ + + cap_text.o: cap_text.c $(USE_GPERF_OUTPUT) $(INCLS) +- $(CC) $(CFLAGS) $(IPATH) $(INCLUDE_GPERF_OUTPUT) -c $< -o $@ ++ $(CC) $(CFLAGS) $(CPPFLAGS) $(INCLUDE_GPERF_OUTPUT) -c $< -o $@ + + cap_test: cap_test.c libcap.h + $(CC) $(CFLAGS) $(IPATH) $< -o $@ +diff --git a/pam_cap/Makefile b/pam_cap/Makefile +index 56604fd..2da4674 100644 +--- a/pam_cap/Makefile ++++ b/pam_cap/Makefile +@@ -3,6 +3,8 @@ + topdir=$(shell pwd)/.. + include ../Make.Rules + ++CFLAGS += -fPIC ++ + all: pam_cap.so + $(MAKE) testlink + +@@ -16,16 +18,16 @@ install: all + # written (and you know why it fails), email me and explain why. Thanks! + + pam_cap.so: pam_cap.o +- $(LD) -o pam_cap.so $< $(LIBCAPLIB) $(LDFLAGS) ++ $(LD) $(CFLAGS) -o pam_cap.so $< $(LIBCAPLIB) $(LDFLAGS) + + pam_cap.o: pam_cap.c +- $(CC) $(CFLAGS) $(IPATH) -c $< -o $@ ++ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ + + test_pam_cap: test_pam_cap.c pam_cap.c + $(CC) $(CFLAGS) $(IPATH) -o $@ test_pam_cap.c $(LIBCAPLIB) $(LDFLAGS) --static + + testlink: test.c pam_cap.o +- $(CC) $(CFLAGS) -o $@ $+ -lpam -ldl $(LIBCAPLIB) $(LDFLAGS) ++ $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $+ -lpam -ldl $(LIBCAPLIB) $(LDFLAGS) + + test: pam_cap.so + make testlink +diff --git a/progs/Makefile b/progs/Makefile +index 1d7fc7a..64dbe86 100644 +--- a/progs/Makefile ++++ b/progs/Makefile +@@ -28,7 +28,7 @@ $(BUILD): %: %.o $(DEPS) + $(CC) $(CFLAGS) -o $@ $< $(LIBCAPLIB) $(LDFLAGS) + + %.o: %.c $(INCS) +- $(CC) $(IPATH) $(CAPSH_SHELL) $(CFLAGS) -c $< -o $@ ++ $(CC) $(CAPSH_SHELL) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ + + install: all + mkdir -p -m 0755 $(FAKEROOT)$(SBINDIR) +diff --git a/tests/Makefile b/tests/Makefile +index 1e7039d..5874624 100644 +--- a/tests/Makefile ++++ b/tests/Makefile +@@ -13,6 +13,8 @@ ifeq ($(PTHREADS),yes) + make psx_test libcap_psx_test libcap_psx_launch_test + endif + ++CFLAGS += -fPIC ++ + install: all + + ifeq ($(DYNAMIC),yes) +@@ -62,13 +64,13 @@ run_psx_test: psx_test + ./psx_test + + psx_test: psx_test.c $(DEPS) +- $(CC) $(CFLAGS) $(IPATH) $< -o $@ $(LINKEXTRA) $(LIBPSXLIB) $(LDFLAGS) ++ $(CC) $(CFLAGS) $(CPPFLAGS) $< -o $@ $(LINKEXTRA) $(LIBPSXLIB) $(LDFLAGS) + + run_libcap_psx_test: libcap_psx_test + ./libcap_psx_test + + libcap_psx_test: libcap_psx_test.c $(DEPS) +- $(CC) $(CFLAGS) $(IPATH) $< -o $@ $(LINKEXTRA) $(LIBCAPLIB) $(LIBPSXLIB) $(LDFLAGS) ++ $(CC) $(CFLAGS) $(CPPFLAGS) $< -o $@ $(LINKEXTRA) $(LIBCAPLIB) $(LIBPSXLIB) $(LDFLAGS) + + # privileged + run_libcap_launch_test: libcap_launch_test noop ../progs/tcapsh-static +-- +2.30.0 + diff --git a/sys-libs/libcap/libcap-2.46.ebuild b/sys-libs/libcap/libcap-2.46.ebuild deleted file mode 100644 index f96270520eda..000000000000 --- a/sys-libs/libcap/libcap-2.46.ebuild +++ /dev/null @@ -1,89 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit multilib multilib-minimal toolchain-funcs pam usr-ldscript - -DESCRIPTION="POSIX 1003.1e capabilities" -HOMEPAGE="https://sites.google.com/site/fullycapable/" -SRC_URI="https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/${P}.tar.xz" - -# it's available under either of the licenses -LICENSE="|| ( GPL-2 BSD )" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" -IUSE="pam static-libs" - -# While the build system optionally uses gperf, we don't DEPEND on it because -# the build automatically falls back when it's unavailable. #604802 -RDEPEND=">=sys-apps/attr-2.4.47-r1[${MULTILIB_USEDEP}]" -PDEPEND="pam? ( sys-libs/pam[${MULTILIB_USEDEP}] )" -DEPEND="${RDEPEND} - ${PDEPEND} - sys-kernel/linux-headers" - -# Requires test suite being run as root (via sudo) -RESTRICT="test" - -PATCHES=( - "${FILESDIR}"/${PN}-2.45-build-system-fixes.patch - "${FILESDIR}"/${PN}-2.38-no_perl.patch - "${FILESDIR}"/${PN}-2.25-ignore-RAISE_SETFCAP-install-failures.patch - "${FILESDIR}"/${PN}-2.21-include.patch -) - -src_prepare() { - default - multilib_copy_sources -} - -run_emake() { - local args=( - exec_prefix="${EPREFIX}" - lib_prefix="${EPREFIX}/usr" - lib="$(get_libdir)" - prefix="${EPREFIX}/usr" - PAM_CAP="$(usex pam yes no)" - DYNAMIC=yes - GOLANG=no - CC="$(tc-getCC)" - AR="$(tc-getAR)" - RANLIB="$(tc-getRANLIB)" - ) - emake "${args[@]}" "$@" -} - -src_configure() { - tc-export AR CC RANLIB - tc-export_build_env BUILD_CC - multilib-minimal_src_configure -} - -multilib_src_compile() { - run_emake -} - -multilib_src_install() { - # no configure, needs explicit install line #444724#c3 - run_emake DESTDIR="${D}" install - - gen_usr_ldscript -a cap - gen_usr_ldscript -a psx - if ! use static-libs ; then - rm "${ED}"/usr/$(get_libdir)/lib{cap,psx}.a || die - fi - - if [[ -d "${ED}"/usr/$(get_libdir)/security ]] ; then - rm -r "${ED}"/usr/$(get_libdir)/security || die - fi - - if use pam; then - dopammod pam_cap/pam_cap.so - dopamsecurity '' pam_cap/capability.conf - fi -} - -multilib_src_install_all() { - dodoc CHANGELOG README doc/capability.notes -} diff --git a/sys-libs/libcap/libcap-2.48.ebuild b/sys-libs/libcap/libcap-2.48.ebuild new file mode 100644 index 000000000000..2c01dccada73 --- /dev/null +++ b/sys-libs/libcap/libcap-2.48.ebuild @@ -0,0 +1,89 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit multilib multilib-minimal toolchain-funcs pam usr-ldscript + +DESCRIPTION="POSIX 1003.1e capabilities" +HOMEPAGE="https://sites.google.com/site/fullycapable/" +SRC_URI="https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/${P}.tar.xz" + +# it's available under either of the licenses +LICENSE="|| ( GPL-2 BSD )" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="pam static-libs" + +# While the build system optionally uses gperf, we don't DEPEND on it because +# the build automatically falls back when it's unavailable. #604802 +RDEPEND=">=sys-apps/attr-2.4.47-r1[${MULTILIB_USEDEP}]" +PDEPEND="pam? ( sys-libs/pam[${MULTILIB_USEDEP}] )" +DEPEND="${RDEPEND} + ${PDEPEND} + sys-kernel/linux-headers" + +# Requires test suite being run as root (via sudo) +RESTRICT="test" + +PATCHES=( + "${FILESDIR}"/${PN}-2.48-build-system-fixes.patch + "${FILESDIR}"/${PN}-2.38-no_perl.patch + "${FILESDIR}"/${PN}-2.25-ignore-RAISE_SETFCAP-install-failures.patch + "${FILESDIR}"/${PN}-2.21-include.patch +) + +src_prepare() { + default + multilib_copy_sources +} + +run_emake() { + local args=( + exec_prefix="${EPREFIX}" + lib_prefix="${EPREFIX}/usr" + lib="$(get_libdir)" + prefix="${EPREFIX}/usr" + PAM_CAP="$(usex pam yes no)" + DYNAMIC=yes + GOLANG=no + CC="$(tc-getCC)" + AR="$(tc-getAR)" + RANLIB="$(tc-getRANLIB)" + ) + emake "${args[@]}" "$@" +} + +src_configure() { + tc-export AR CC RANLIB + tc-export_build_env BUILD_CC + multilib-minimal_src_configure +} + +multilib_src_compile() { + run_emake +} + +multilib_src_install() { + # no configure, needs explicit install line #444724#c3 + run_emake DESTDIR="${D}" install + + gen_usr_ldscript -a cap + gen_usr_ldscript -a psx + if ! use static-libs ; then + rm "${ED}"/usr/$(get_libdir)/lib{cap,psx}.a || die + fi + + if [[ -d "${ED}"/usr/$(get_libdir)/security ]] ; then + rm -r "${ED}"/usr/$(get_libdir)/security || die + fi + + if use pam; then + dopammod pam_cap/pam_cap.so + dopamsecurity '' pam_cap/capability.conf + fi +} + +multilib_src_install_all() { + dodoc CHANGELOG README doc/capability.notes +} diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest index df7bef65e96a..e4435ee9403c 100644 --- a/sys-libs/libcxx/Manifest +++ b/sys-libs/libcxx/Manifest @@ -4,15 +4,17 @@ DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc DIST llvmorg-11.0.1.tar.gz 122790338 BLAKE2B 0130996b4a8c4d9f757136fd7fb318068c9bfdc565060dec0d4336480c4ab66c4ae3185a7fdb05f13cf9ee8fd4123b09df938881b75d6e5d3689595114b7e32a SHA512 f5e6ef0b3111aae08a89cd01adb2ff4abfa9ef779c68b9190421d0447efd25c2cc00e5aae9f4764805f5fa31434866043d1510ae7389817e28ae53a5442e2fdf DIST llvmorg-11.1.0-rc1.tar.gz 122793491 BLAKE2B f4777455f5903cffea284eaffd872be6c287c6c1ebbd0c4b5b5473f146d7f5476f3551998a58d3e976ab90cde7b0d05db2b3be97f4e8e2c3474755ff38739268 SHA512 44e281486c44fa1611042ab658b9833a75f9613b7f896863613cfb99de66d13607fb1e9064f42ea3d89ca7951113465a90fd96ca4544262f165f78bd5261f5a8 DIST llvmorg-11.1.0-rc2.tar.gz 122794772 BLAKE2B ab533f078d9d6c37e27c578866a07896344a0b4cf4ebf6402f4fa490213e017310d1c882bf63e552e99a5b4f6d1d8c01413420713b200bfa6732eff64f3c47a9 SHA512 88d8f1d938f0ba7ec39478d03a35c09a30bea51735276205494265b1061621b3ebcda8ee4211e896783b1b99a377c9fa68046118b0d6cb7fcb7bea1e960f95b7 +DIST llvmorg-11.1.0-rc3.tar.gz 122785838 BLAKE2B d0998219471476be1a1249b3a2444750585a352047d4dc14de6fec87eb3407d0f4b848757340200d3423cb4090554ae033fb4ec3797446e46556fbb566bb77a3 SHA512 b67874cb127f3f929a3796558cdfbf509b384c4247f4936ba08cecf88ca880a167cf67c23d78104b5bab4a98efd9435d1b923deb7ae7367875414e6c896957d1 DIST llvmorg-12.0.0-rc1.tar.gz 134164708 BLAKE2B d4261ff7d9586b47f4cfda3d2cda4b76534f9e17fbd5cdb8861895b8eb466021962f4608bfcdeb52f8fce78850a994fd5eda0560f7211e5c8d1ac9330a738a36 SHA512 3d07d013d0705bb99f56898cc55d054d0d95aeb53b3c756cfab80b4c9097cc4935bcea89b9efde2e503a899b9fccf0dacc0073c9991c8ea352755c5ec68a757a DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59 -EBUILD libcxx-10.0.1.ebuild 5967 BLAKE2B 0b5f340cb4c6cf971fc540ef32df89e4532b9f82cd7b42d40757ee783dc3180a0f4f8a976007d6d3f488f24434341cef7e41165bc2fd1c441c38ef2e41d092e3 SHA512 4f0bdf3fec7772c762e49c94d9ee15005df54aac67a1f9dfa19598602aee6edbaccdaa17d2e4fc34b561819809ea19feecd5252dfa6732f30db6052eda0b5ada -EBUILD libcxx-11.0.0.ebuild 6831 BLAKE2B e298e76430e620179368bdfcc8cc63f36467d2272d4c066e41e9464c156a764d3d94e3f7c0a2c0ef7307d379df67c63c746bc43cab66c14beb64cd222d6e6ec0 SHA512 b214242f2492b46df13f21831e72d97a3fd30fbac7ab9bc381e3aabbeb8e18746cafc97de9d3ba8a26061c6f4a153fde1b4f945a2c018db5f2fbcab9d0a7b804 -EBUILD libcxx-11.0.1.ebuild 6836 BLAKE2B b05861caac87d42461e901cac3f31a13f33efe3479ef3ef3d0309a3bb9a526b3bf3b1d8d0f7698f93a6e45265fb588e7ca8f049d53ff41bf91e519cc4dde213b SHA512 f7ca32c72c44aec292e814d2001e06e8c49798686137c9e4367f5562e3c1fb46f57bab6b22c912e082712a6bf7205229e584adf94f83b5966522285f324778b4 -EBUILD libcxx-11.1.0_rc1.ebuild 6795 BLAKE2B 2f014965935e74327019ce2bb96f1f768487f598d4bc35a3589aad70ae287198366849c22266e5fb753a317feb2f2ef9ab515c07d7abeea5257e1723cf00e74e SHA512 90ca4dd2ab3da45c63430bd4fe30db2d7acdc4e30eea903f41305cd8b68ac3f22f6d20c1e2f51aa1371ee40c7654cc6d6f115ba5df3466d0442a7cf678afd763 -EBUILD libcxx-11.1.0_rc2.ebuild 6795 BLAKE2B 2f014965935e74327019ce2bb96f1f768487f598d4bc35a3589aad70ae287198366849c22266e5fb753a317feb2f2ef9ab515c07d7abeea5257e1723cf00e74e SHA512 90ca4dd2ab3da45c63430bd4fe30db2d7acdc4e30eea903f41305cd8b68ac3f22f6d20c1e2f51aa1371ee40c7654cc6d6f115ba5df3466d0442a7cf678afd763 -EBUILD libcxx-12.0.0.9999.ebuild 6795 BLAKE2B 2f014965935e74327019ce2bb96f1f768487f598d4bc35a3589aad70ae287198366849c22266e5fb753a317feb2f2ef9ab515c07d7abeea5257e1723cf00e74e SHA512 90ca4dd2ab3da45c63430bd4fe30db2d7acdc4e30eea903f41305cd8b68ac3f22f6d20c1e2f51aa1371ee40c7654cc6d6f115ba5df3466d0442a7cf678afd763 -EBUILD libcxx-12.0.0_rc1.ebuild 6795 BLAKE2B 2f014965935e74327019ce2bb96f1f768487f598d4bc35a3589aad70ae287198366849c22266e5fb753a317feb2f2ef9ab515c07d7abeea5257e1723cf00e74e SHA512 90ca4dd2ab3da45c63430bd4fe30db2d7acdc4e30eea903f41305cd8b68ac3f22f6d20c1e2f51aa1371ee40c7654cc6d6f115ba5df3466d0442a7cf678afd763 -EBUILD libcxx-13.0.0.9999.ebuild 6795 BLAKE2B 2f014965935e74327019ce2bb96f1f768487f598d4bc35a3589aad70ae287198366849c22266e5fb753a317feb2f2ef9ab515c07d7abeea5257e1723cf00e74e SHA512 90ca4dd2ab3da45c63430bd4fe30db2d7acdc4e30eea903f41305cd8b68ac3f22f6d20c1e2f51aa1371ee40c7654cc6d6f115ba5df3466d0442a7cf678afd763 -EBUILD libcxx-9.0.1.ebuild 6394 BLAKE2B 9ddc00de80209c022078a87ca39c267154472cc1f457078c4e4cc9fe1fdcc41cefedfbb3040c067c59e610e35e1ea4ed1a6d96d94b1b3046cd1c79ffecb64137 SHA512 fc6a4592ed8098d737156db3bf684e009755027d95db27b8a74302fac4067e6168da64e6db82690b61b06d7bd1525b855c860290bfcb9653a0150da0402d2936 +EBUILD libcxx-10.0.1.ebuild 5966 BLAKE2B 230f37223e113c8f17020986b4fe65478d2bc65c5b4236f9709e556159e9118d0659172a59544b1767d9d55884549b51592d45fded05a91bf0e8762388c1baaf SHA512 4cf81cf1a0922d50c4357811169d4c2eda890ed6636fd2a0cee47c7181434bee76b36411ab487ef42d8179650d3c379336ad6c2ec1d18f109338e76d38e82f9d +EBUILD libcxx-11.0.0.ebuild 6830 BLAKE2B a57ee66a8096c4456483bbb2a1d67a7e153dce97bdb7eb6a2d8e5ec5ac839d28c7c43f315f8399a5dc5bc157bd8b08cde156e1b3e962cfd05fe95dc6ca811929 SHA512 abaa0922a39380b3dffb65ea8a2c4774ae8c2fa561e9ceec30e70851779a13aedb2853bdf34c7586656dd389fb7b1e0c7dda9ac9de23ae52986b5392dd8ff12a +EBUILD libcxx-11.0.1.ebuild 6835 BLAKE2B f6d1949fe821d3038af20faa593e8e8f1f99495deb2d58a00670b0273debb5a1a51112cec6e5f4bd5cdd4f8796f18fdc6c5dea709b42c3fe4c0a340c79a11fba SHA512 d64fd24069e39f8e00cfcc463e7c31fde0c432d2bf282153063ff3aa0d2cf485be1fb649da73133f01b420532807b9623f5795e65cafefc3cd6731f2ac2f50a6 +EBUILD libcxx-11.1.0_rc1.ebuild 6794 BLAKE2B cdde8697e6c974e68fc5ef47027ae108386b72c1e4506550f94984cd8dcc836dee6823c9660d252a73c8acfff5c1084f32bfe44247bfc2c3f6998f3d6dbb5f0b SHA512 cbc5f18d8be0ab2ab0294e33dc528e6a306b5abcf5411015cfa48427e4dbe10b614ebd38da03dc1b3127ca892de5ab9484493e3cd10d1a52f6d8abaa74ab2ab4 +EBUILD libcxx-11.1.0_rc2.ebuild 6794 BLAKE2B cdde8697e6c974e68fc5ef47027ae108386b72c1e4506550f94984cd8dcc836dee6823c9660d252a73c8acfff5c1084f32bfe44247bfc2c3f6998f3d6dbb5f0b SHA512 cbc5f18d8be0ab2ab0294e33dc528e6a306b5abcf5411015cfa48427e4dbe10b614ebd38da03dc1b3127ca892de5ab9484493e3cd10d1a52f6d8abaa74ab2ab4 +EBUILD libcxx-11.1.0_rc3.ebuild 6794 BLAKE2B cdde8697e6c974e68fc5ef47027ae108386b72c1e4506550f94984cd8dcc836dee6823c9660d252a73c8acfff5c1084f32bfe44247bfc2c3f6998f3d6dbb5f0b SHA512 cbc5f18d8be0ab2ab0294e33dc528e6a306b5abcf5411015cfa48427e4dbe10b614ebd38da03dc1b3127ca892de5ab9484493e3cd10d1a52f6d8abaa74ab2ab4 +EBUILD libcxx-12.0.0.9999.ebuild 6794 BLAKE2B cdde8697e6c974e68fc5ef47027ae108386b72c1e4506550f94984cd8dcc836dee6823c9660d252a73c8acfff5c1084f32bfe44247bfc2c3f6998f3d6dbb5f0b SHA512 cbc5f18d8be0ab2ab0294e33dc528e6a306b5abcf5411015cfa48427e4dbe10b614ebd38da03dc1b3127ca892de5ab9484493e3cd10d1a52f6d8abaa74ab2ab4 +EBUILD libcxx-12.0.0_rc1.ebuild 6794 BLAKE2B cdde8697e6c974e68fc5ef47027ae108386b72c1e4506550f94984cd8dcc836dee6823c9660d252a73c8acfff5c1084f32bfe44247bfc2c3f6998f3d6dbb5f0b SHA512 cbc5f18d8be0ab2ab0294e33dc528e6a306b5abcf5411015cfa48427e4dbe10b614ebd38da03dc1b3127ca892de5ab9484493e3cd10d1a52f6d8abaa74ab2ab4 +EBUILD libcxx-13.0.0.9999.ebuild 6794 BLAKE2B cdde8697e6c974e68fc5ef47027ae108386b72c1e4506550f94984cd8dcc836dee6823c9660d252a73c8acfff5c1084f32bfe44247bfc2c3f6998f3d6dbb5f0b SHA512 cbc5f18d8be0ab2ab0294e33dc528e6a306b5abcf5411015cfa48427e4dbe10b614ebd38da03dc1b3127ca892de5ab9484493e3cd10d1a52f6d8abaa74ab2ab4 +EBUILD libcxx-9.0.1.ebuild 6393 BLAKE2B 2f217a0fa5ed41d5ecd6695ed541d6d10a30afa52b39f221f802a3e990093bdf74faf4bf5217a0d8e84d85000a5cd5d3aab0c4287660101effe77f6e05bdeddd SHA512 a86ad384476199ef2aec39cd2f4d1b7f1e92fcd84558971db3e8afa44817ce714527b4f35f1f76713794c2c5eb492d07d4e074d6d865113e3997f39e4f24d234 MISC metadata.xml 731 BLAKE2B a6e96906bc2bff950c1b193b01feeb456b064fa585042566eae77dbe9a207bb08dfd083a3ab5fede2133a80b905a61c6dd541f9196e585c60b5629dd04a06213 SHA512 0a25560aa3eff5355137dadbb9cc48e384d2885b89075a97a8dafc7ac0ebe4ec5fde5b171a3416490264791a734c4405ec8a42dfc98e7e830c30ef0cfef58b6f diff --git a/sys-libs/libcxx/libcxx-10.0.1.ebuild b/sys-libs/libcxx/libcxx-10.0.1.ebuild index 42d16c17aa15..4f386c128379 100644 --- a/sys-libs/libcxx/libcxx-10.0.1.ebuild +++ b/sys-libs/libcxx/libcxx-10.0.1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -15,7 +15,7 @@ llvm.org_set_globals LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="amd64 arm arm64 x86" -IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test" +IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test" REQUIRED_USE="libunwind? ( libcxxabi )" RESTRICT="!test? ( test )" diff --git a/sys-libs/libcxx/libcxx-11.0.0.ebuild b/sys-libs/libcxx/libcxx-11.0.0.ebuild index 83f5fdb6ce16..f63adc4cf51c 100644 --- a/sys-libs/libcxx/libcxx-11.0.0.ebuild +++ b/sys-libs/libcxx/libcxx-11.0.0.ebuild @@ -15,7 +15,7 @@ llvm.org_set_globals LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="amd64 arm arm64 ~riscv x86 ~x64-macos" -IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test" +IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test" REQUIRED_USE="libunwind? ( libcxxabi )" RESTRICT="!test? ( test )" diff --git a/sys-libs/libcxx/libcxx-11.0.1.ebuild b/sys-libs/libcxx/libcxx-11.0.1.ebuild index acb3f6367ef0..9414c15c0f46 100644 --- a/sys-libs/libcxx/libcxx-11.0.1.ebuild +++ b/sys-libs/libcxx/libcxx-11.0.1.ebuild @@ -13,7 +13,7 @@ HOMEPAGE="https://libcxx.llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos" -IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test" +IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test" REQUIRED_USE="libunwind? ( libcxxabi )" RESTRICT="!test? ( test )" diff --git a/sys-libs/libcxx/libcxx-11.1.0_rc1.ebuild b/sys-libs/libcxx/libcxx-11.1.0_rc1.ebuild index 76372b775b84..8ed99383fe0b 100644 --- a/sys-libs/libcxx/libcxx-11.1.0_rc1.ebuild +++ b/sys-libs/libcxx/libcxx-11.1.0_rc1.ebuild @@ -13,7 +13,7 @@ HOMEPAGE="https://libcxx.llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="" -IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test" +IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test" REQUIRED_USE="libunwind? ( libcxxabi )" RESTRICT="!test? ( test )" diff --git a/sys-libs/libcxx/libcxx-11.1.0_rc2.ebuild b/sys-libs/libcxx/libcxx-11.1.0_rc2.ebuild index 76372b775b84..8ed99383fe0b 100644 --- a/sys-libs/libcxx/libcxx-11.1.0_rc2.ebuild +++ b/sys-libs/libcxx/libcxx-11.1.0_rc2.ebuild @@ -13,7 +13,7 @@ HOMEPAGE="https://libcxx.llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="" -IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test" +IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test" REQUIRED_USE="libunwind? ( libcxxabi )" RESTRICT="!test? ( test )" diff --git a/sys-libs/libcxx/libcxx-11.1.0_rc3.ebuild b/sys-libs/libcxx/libcxx-11.1.0_rc3.ebuild new file mode 100644 index 000000000000..8ed99383fe0b --- /dev/null +++ b/sys-libs/libcxx/libcxx-11.1.0_rc3.ebuild @@ -0,0 +1,218 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +CMAKE_ECLASS=cmake +PYTHON_COMPAT=( python3_{7..9} ) +inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs + +DESCRIPTION="New implementation of the C++ standard library, targeting C++11" +HOMEPAGE="https://libcxx.llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="" +IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test" +REQUIRED_USE="libunwind? ( libcxxabi )" +RESTRICT="!test? ( test )" + +RDEPEND=" + libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] ) + !libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )" +# llvm-6 for new lit options +# clang-3.9.0 installs necessary target symlinks unconditionally +# which removes the need for MULTILIB_USEDEP +DEPEND="${RDEPEND} + >=sys-devel/llvm-6" +BDEPEND=" + test? ( + >=dev-util/cmake-3.16 + >=sys-devel/clang-3.9.0 + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') + )" + +DOCS=( CREDITS.TXT ) + +LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} ) +llvm.org_set_globals + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + # Darwin Prefix builds do not have llvm installed yet, so rely on + # bootstrap-prefix to set the appropriate path vars to LLVM instead + # of using llvm_pkg_setup. + if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then + llvm_pkg_setup + fi + use test && python-any-r1_pkg_setup + + if ! use libcxxabi && ! tc-is-gcc ; then + eerror "To build ${PN} against libsupc++, you have to use gcc. Other" + eerror "compilers are not supported. Please set CC=gcc and CXX=g++" + eerror "and try again." + die + fi +} + +src_prepare() { + # Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a + # out-of-tree build. + eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch" + + llvm.org_src_prepare +} + +test_compiler() { + $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \ + <<<'int main() { return 0; }' &>/dev/null +} + +src_configure() { + # note: we need to do this before multilib kicks in since it will + # alter the CHOST + local cxxabi cxxabi_incs + if use libcxxabi; then + cxxabi=libcxxabi + cxxabi_incs="${EPREFIX}/usr/include/libcxxabi" + else + local gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)" + cxxabi=libsupc++ + cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}" + fi + + multilib-minimal_src_configure +} + +multilib_src_configure() { + # we want -lgcc_s for unwinder, and for compiler runtime when using + # gcc, clang with gcc runtime (or any unknown compiler) + local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF + if use libunwind; then + # work-around missing -lunwind upstream + extra_libs+=( -lunwind ) + # if we're using libunwind and clang with compiler-rt, we want + # to link to compiler-rt instead of -lgcc_s + if tc-is-clang; then + local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ + ${LDFLAGS} -print-libgcc-file-name) + if [[ ${compiler_rt} == *libclang_rt* ]]; then + want_gcc_s=OFF + want_compiler_rt=ON + extra_libs+=( "${compiler_rt}" ) + fi + fi + elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then + # clang-based darwin prefix disables libunwind useflag during + # bootstrap, because libunwind is not in the prefix yet. + # override the default, though, because clang based libcxx + # should never use gcc_s on Darwin. + want_gcc_s=OFF + # compiler_rt is not available in EPREFIX during bootstrap, + # so we cannot link to it yet anyway, so keep the defaults + # of want_compiler_rt=OFF and extra_libs=() + fi + + # bootstrap: cmake is unhappy if compiler can't link to stdlib + local nolib_flags=( -nodefaultlibs -lc ) + if ! test_compiler; then + if test_compiler "${nolib_flags[@]}"; then + local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" + ewarn "${CXX} seems to lack runtime, trying with ${nolib_flags[*]}" + fi + fi + + local libdir=$(get_libdir) + local mycmakeargs=( + -DLIBCXX_LIBDIR_SUFFIX=${libdir#lib} + -DLIBCXX_ENABLE_SHARED=ON + -DLIBCXX_ENABLE_STATIC=$(usex static-libs) + -DLIBCXX_CXX_ABI=${cxxabi} + -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi_incs} + # we're using our own mechanism for generating linker scripts + -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF + -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) + -DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s} + -DLIBCXX_INCLUDE_TESTS=$(usex test) + -DLIBCXX_USE_COMPILER_RT=${want_compiler_rt} + -DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}" + ) + + if use test; then + local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) + [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" + + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}" + -DPython3_EXECUTABLE="${PYTHON}" + ) + fi + cmake_src_configure +} + +multilib_src_test() { + local -x LIT_PRESERVES_TMP=1 + cmake_build check-cxx +} + +# Usage: deps +gen_ldscript() { + local output_format + output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p') + [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )" + + cat <<-END_LDSCRIPT +/* GNU ld script + Include missing dependencies +*/ +${output_format} +GROUP ( $@ ) +END_LDSCRIPT +} + +gen_static_ldscript() { + local libdir=$(get_libdir) + local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a") + + # Move it first. + mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${libdir}/libc++_static.a" || die + # Generate libc++.a ldscript for inclusion of its dependencies so that + # clang++ -stdlib=libc++ -static works out of the box. + local deps="libc++_static.a ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.a)" + # On Linux/glibc it does not link without libpthread or libdl. It is + # fine on FreeBSD. + use elibc_glibc && deps+=" libpthread.a libdl.a" + + gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.a" || die +} + +gen_shared_ldscript() { + local libdir=$(get_libdir) + # libsupc++ doesn't have a shared version + local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a") + + mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die + local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)" + + gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die +} + +multilib_src_install() { + cmake_src_install + if [[ ${CHOST} != *-darwin* ]] ; then + gen_shared_ldscript + use static-libs && gen_static_ldscript + fi +} + +pkg_postinst() { + elog "This package (${PN}) is mainly intended as a replacement for the C++" + elog "standard library when using clang." + elog "To use it, instead of libstdc++, use:" + elog " clang++ -stdlib=libc++" + elog "to compile your C++ programs." +} diff --git a/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild index 76372b775b84..8ed99383fe0b 100644 --- a/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild +++ b/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild @@ -13,7 +13,7 @@ HOMEPAGE="https://libcxx.llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="" -IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test" +IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test" REQUIRED_USE="libunwind? ( libcxxabi )" RESTRICT="!test? ( test )" diff --git a/sys-libs/libcxx/libcxx-12.0.0_rc1.ebuild b/sys-libs/libcxx/libcxx-12.0.0_rc1.ebuild index 76372b775b84..8ed99383fe0b 100644 --- a/sys-libs/libcxx/libcxx-12.0.0_rc1.ebuild +++ b/sys-libs/libcxx/libcxx-12.0.0_rc1.ebuild @@ -13,7 +13,7 @@ HOMEPAGE="https://libcxx.llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="" -IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test" +IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test" REQUIRED_USE="libunwind? ( libcxxabi )" RESTRICT="!test? ( test )" diff --git a/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild index 76372b775b84..8ed99383fe0b 100644 --- a/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild +++ b/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild @@ -13,7 +13,7 @@ HOMEPAGE="https://libcxx.llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="" -IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test" +IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test" REQUIRED_USE="libunwind? ( libcxxabi )" RESTRICT="!test? ( test )" diff --git a/sys-libs/libcxx/libcxx-9.0.1.ebuild b/sys-libs/libcxx/libcxx-9.0.1.ebuild index 3249adf01345..9e4aac296d82 100644 --- a/sys-libs/libcxx/libcxx-9.0.1.ebuild +++ b/sys-libs/libcxx/libcxx-9.0.1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -15,7 +15,7 @@ llvm.org_set_globals LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="amd64 arm arm64 x86" -IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test" +IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind static-libs test" REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) ) ?? ( libcxxabi libcxxrt )" RESTRICT="!test? ( test )" diff --git a/sys-libs/libcxxabi/Manifest b/sys-libs/libcxxabi/Manifest index 1064d4dc7dac..ef75d694c57d 100644 --- a/sys-libs/libcxxabi/Manifest +++ b/sys-libs/libcxxabi/Manifest @@ -3,15 +3,17 @@ DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc DIST llvmorg-11.0.1.tar.gz 122790338 BLAKE2B 0130996b4a8c4d9f757136fd7fb318068c9bfdc565060dec0d4336480c4ab66c4ae3185a7fdb05f13cf9ee8fd4123b09df938881b75d6e5d3689595114b7e32a SHA512 f5e6ef0b3111aae08a89cd01adb2ff4abfa9ef779c68b9190421d0447efd25c2cc00e5aae9f4764805f5fa31434866043d1510ae7389817e28ae53a5442e2fdf DIST llvmorg-11.1.0-rc1.tar.gz 122793491 BLAKE2B f4777455f5903cffea284eaffd872be6c287c6c1ebbd0c4b5b5473f146d7f5476f3551998a58d3e976ab90cde7b0d05db2b3be97f4e8e2c3474755ff38739268 SHA512 44e281486c44fa1611042ab658b9833a75f9613b7f896863613cfb99de66d13607fb1e9064f42ea3d89ca7951113465a90fd96ca4544262f165f78bd5261f5a8 DIST llvmorg-11.1.0-rc2.tar.gz 122794772 BLAKE2B ab533f078d9d6c37e27c578866a07896344a0b4cf4ebf6402f4fa490213e017310d1c882bf63e552e99a5b4f6d1d8c01413420713b200bfa6732eff64f3c47a9 SHA512 88d8f1d938f0ba7ec39478d03a35c09a30bea51735276205494265b1061621b3ebcda8ee4211e896783b1b99a377c9fa68046118b0d6cb7fcb7bea1e960f95b7 +DIST llvmorg-11.1.0-rc3.tar.gz 122785838 BLAKE2B d0998219471476be1a1249b3a2444750585a352047d4dc14de6fec87eb3407d0f4b848757340200d3423cb4090554ae033fb4ec3797446e46556fbb566bb77a3 SHA512 b67874cb127f3f929a3796558cdfbf509b384c4247f4936ba08cecf88ca880a167cf67c23d78104b5bab4a98efd9435d1b923deb7ae7367875414e6c896957d1 DIST llvmorg-12.0.0-rc1.tar.gz 134164708 BLAKE2B d4261ff7d9586b47f4cfda3d2cda4b76534f9e17fbd5cdb8861895b8eb466021962f4608bfcdeb52f8fce78850a994fd5eda0560f7211e5c8d1ac9330a738a36 SHA512 3d07d013d0705bb99f56898cc55d054d0d95aeb53b3c756cfab80b4c9097cc4935bcea89b9efde2e503a899b9fccf0dacc0073c9991c8ea352755c5ec68a757a DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59 -EBUILD libcxxabi-10.0.1.ebuild 3238 BLAKE2B 95e4d640b5d0e5898efd03838aef935d8b6fc715748da5edb9bd187a0457a5b86812477f143206cec983da2e169d3bad413225e0894e426a0329222d104054d9 SHA512 7dd169d2548cf7241035450541035b655ee6ea754b00525f235f2538d0a5bc3f64a7fbf5d774dbdd13d2f08ef4e7c6d0bc07bf3e6cd9771947120b5d46d854ba -EBUILD libcxxabi-11.0.0.ebuild 3558 BLAKE2B 84cbc44c9917a7794625cfd211648090a829d05005ac4ee09fd1c3d1491907ef2bf257c440eae5f09e240dc626e3aa0041e1b45585f436c7e6f23895994c557e SHA512 09167222d31723fc3c92b165b7f783f229c40564d1d7ea6e541e2617adc5055ac2af031803ca8bd6e152e9e2299faae9dfd8e76a4368820c8b45c1f568b51cf7 -EBUILD libcxxabi-11.0.1.ebuild 3564 BLAKE2B c575163e872ffec98e8116603c371115d15ed5290e912f6b31ca2278cfc91ec11d5b3075a2e8f8a5e8a5ae9d1161baf867a1973b5c44897f9ae4fc01bd9419c9 SHA512 ea61996f876a32513b01b528cbd36d04f4aa5490e16d6a81a8d888c197d200fbe3a040bfad96599e90bb8e8fa91098e2fbe7e001c7d7c8024c781ea09ef98f22 -EBUILD libcxxabi-11.1.0_rc1.ebuild 3523 BLAKE2B 0d9bfa1834238c8084bdd3ff3bed510d0b7117f5bf1ed360f1413ea68dbd7617af218f36ebd81cdbabd9f21cdc8daafced636ded904cf75b29a12fa00c1c0e30 SHA512 b48107d21b4e4f7016ed175af48be92e2e962bce990b643c565ea0f0d202e3b6884c8f7864c60b55909bfd2e940e3c66da699456b83c644091a287e8b1de2fc2 -EBUILD libcxxabi-11.1.0_rc2.ebuild 3523 BLAKE2B 0d9bfa1834238c8084bdd3ff3bed510d0b7117f5bf1ed360f1413ea68dbd7617af218f36ebd81cdbabd9f21cdc8daafced636ded904cf75b29a12fa00c1c0e30 SHA512 b48107d21b4e4f7016ed175af48be92e2e962bce990b643c565ea0f0d202e3b6884c8f7864c60b55909bfd2e940e3c66da699456b83c644091a287e8b1de2fc2 -EBUILD libcxxabi-12.0.0.9999.ebuild 3506 BLAKE2B a35c0b2f983a78f82d0cf20eb4c17a3d755c7b47456d38c2430cef85503dcb282dde040fe83ffc0e48d88663500dcc0467d146e7b000159bb1321d38fd7ae83e SHA512 506f7e77f23be2e6dd37de2b4fb173e3a3b75d4d1edbf0669564f21ccc70d3f9e5c3a8a5e9b20145a639ae98d4c2c074b2b64d7a9631318a373ba02a340be4b6 -EBUILD libcxxabi-12.0.0_rc1.ebuild 3506 BLAKE2B a35c0b2f983a78f82d0cf20eb4c17a3d755c7b47456d38c2430cef85503dcb282dde040fe83ffc0e48d88663500dcc0467d146e7b000159bb1321d38fd7ae83e SHA512 506f7e77f23be2e6dd37de2b4fb173e3a3b75d4d1edbf0669564f21ccc70d3f9e5c3a8a5e9b20145a639ae98d4c2c074b2b64d7a9631318a373ba02a340be4b6 -EBUILD libcxxabi-13.0.0.9999.ebuild 3506 BLAKE2B a35c0b2f983a78f82d0cf20eb4c17a3d755c7b47456d38c2430cef85503dcb282dde040fe83ffc0e48d88663500dcc0467d146e7b000159bb1321d38fd7ae83e SHA512 506f7e77f23be2e6dd37de2b4fb173e3a3b75d4d1edbf0669564f21ccc70d3f9e5c3a8a5e9b20145a639ae98d4c2c074b2b64d7a9631318a373ba02a340be4b6 -EBUILD libcxxabi-9.0.1.ebuild 3386 BLAKE2B f6d84ebd25328425f9ed9f035a00e6393aa56579c9b68eebdbdc555bb91fa2ce015f09699ca1fbde494803384105afecd19d1abb4291e99663be4b0385b054db SHA512 f345e685e74763115348c5629677f82245d8abe06ba9272fed8869a8d696b9fdd44dcca50099bd99ebd11463025584a6ac5222061367f5c49041355506150e64 +EBUILD libcxxabi-10.0.1.ebuild 3237 BLAKE2B 828cabd1bccb0f7dc672648fd1143f1913df2b3f075194da3b053413ad8e0ff8f8669ce6263fa51ed0b02702e0bd611a77f4009e57a7d2659362db21c5665e4e SHA512 b9fef273fea1343aab604c3606fa4b9ed340e0e6f649e68f81f1285d96374f440ab787937b203ee5eba5b8e867a5926b48f63d8739c326fd1a646193635dd65e +EBUILD libcxxabi-11.0.0.ebuild 3557 BLAKE2B 17ffd28ae4044bfa72830f1ee5614e2d89e8b3382c6fde88e6725bc5ef9bb374632c4abefa334931e8c2c52e232e0b4a74ea53be59d777acc3a80f33290ee499 SHA512 bf185e151c0926ccf5e87d30a4f42f1b4a6fbfe175c7cd40ce0f2abee0b2450d3fedf74366d786796ccb55193ad7ffdd01d9a9c6ee97529bf9f6dc7080ae6289 +EBUILD libcxxabi-11.0.1.ebuild 3563 BLAKE2B b7114186df8da65e7c1297d41aec60b5bff2372ac319f15019f84eaa0f1459cf2788eccb01bbf75df383d50ced4e9e6722ac4d20abf69afcdb76d9c78c6cac9c SHA512 663e88359e06cd7d146b6f1bb43ea0235241b4f77cf559036ba0c1c6e4d99a9b0eda48a5146aafd798055f0a164e2eea21742593c405a7e54d852edd2e581ade +EBUILD libcxxabi-11.1.0_rc1.ebuild 3522 BLAKE2B daf621b1af7d0304b8f0d1440f61548c24c97fe6189bc327f6808d437d2f06efb0874ca8061aaa1fe666b6e92b1705e5df7a096345fab6eba8f6fa5e184dc951 SHA512 08b6f56404eba7dff79518b5ff096270aad3bb5a0a563e392287e4933363e78a938a7990b0c88cbb6d6b36cf3db435e6216ad51c3cc1e364cb7ef08eb4ce272e +EBUILD libcxxabi-11.1.0_rc2.ebuild 3522 BLAKE2B daf621b1af7d0304b8f0d1440f61548c24c97fe6189bc327f6808d437d2f06efb0874ca8061aaa1fe666b6e92b1705e5df7a096345fab6eba8f6fa5e184dc951 SHA512 08b6f56404eba7dff79518b5ff096270aad3bb5a0a563e392287e4933363e78a938a7990b0c88cbb6d6b36cf3db435e6216ad51c3cc1e364cb7ef08eb4ce272e +EBUILD libcxxabi-11.1.0_rc3.ebuild 3522 BLAKE2B daf621b1af7d0304b8f0d1440f61548c24c97fe6189bc327f6808d437d2f06efb0874ca8061aaa1fe666b6e92b1705e5df7a096345fab6eba8f6fa5e184dc951 SHA512 08b6f56404eba7dff79518b5ff096270aad3bb5a0a563e392287e4933363e78a938a7990b0c88cbb6d6b36cf3db435e6216ad51c3cc1e364cb7ef08eb4ce272e +EBUILD libcxxabi-12.0.0.9999.ebuild 3505 BLAKE2B fe4d762e646ab8a6daad3ca1da7d63c34ffb6735a6bb6657e03e724428422706d821057715369cd818ecc696453620d7f2473535ac031ec0cc0a5bc6f4ec2186 SHA512 40ce77407d30efc2ada70d0166bcadbc4140e33275ecf537dcbd7580e3e8fc9ff030a29ba6be4a67bcadc9835ee8b1a2cd3fef07085c57df4792c04b445b0d7b +EBUILD libcxxabi-12.0.0_rc1.ebuild 3505 BLAKE2B fe4d762e646ab8a6daad3ca1da7d63c34ffb6735a6bb6657e03e724428422706d821057715369cd818ecc696453620d7f2473535ac031ec0cc0a5bc6f4ec2186 SHA512 40ce77407d30efc2ada70d0166bcadbc4140e33275ecf537dcbd7580e3e8fc9ff030a29ba6be4a67bcadc9835ee8b1a2cd3fef07085c57df4792c04b445b0d7b +EBUILD libcxxabi-13.0.0.9999.ebuild 3505 BLAKE2B fe4d762e646ab8a6daad3ca1da7d63c34ffb6735a6bb6657e03e724428422706d821057715369cd818ecc696453620d7f2473535ac031ec0cc0a5bc6f4ec2186 SHA512 40ce77407d30efc2ada70d0166bcadbc4140e33275ecf537dcbd7580e3e8fc9ff030a29ba6be4a67bcadc9835ee8b1a2cd3fef07085c57df4792c04b445b0d7b +EBUILD libcxxabi-9.0.1.ebuild 3385 BLAKE2B d6f87c6cdb0a322dbfd3c68637ad7de0f677fb7017202b326d1a5bad6b649cec39175d1657146b48dc02d34acdf655d55f47a3000cfb859f2903748d5a69a0d4 SHA512 6cbf68df2906aff37d329777a36ac95d73e6e63c1e403275fa90fd89f541fceeb761a0adcc807737328fe4e3e754e65196377852afe89d26649adc3f5a75a1fe MISC metadata.xml 350 BLAKE2B 67b70b8d7292327882a845b76667ce24fee728cd84f27ed7e329bc7963631cba4c28bafce5e6a5fefb4ba1df5c7fd572b3b0d7a2b31ef649496f2f991b691bff SHA512 317dd7b59a711dd0461b5369f7e31ea196882b018e047e1dbae8077274d06cb68542c8762efb852cce0b8021bedea69c19aa0c124b9414a36cf1a9c00e0b9703 diff --git a/sys-libs/libcxxabi/libcxxabi-10.0.1.ebuild b/sys-libs/libcxxabi/libcxxabi-10.0.1.ebuild index a8d5a05997f5..7aa13e0d8e6e 100644 --- a/sys-libs/libcxxabi/libcxxabi-10.0.1.ebuild +++ b/sys-libs/libcxxabi/libcxxabi-10.0.1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -16,7 +16,7 @@ llvm.org_set_globals LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="amd64 arm arm64 x86" -IUSE="+libunwind +static-libs test elibc_musl" +IUSE="+libunwind static-libs test elibc_musl" RESTRICT="!test? ( test )" RDEPEND=" diff --git a/sys-libs/libcxxabi/libcxxabi-11.0.0.ebuild b/sys-libs/libcxxabi/libcxxabi-11.0.0.ebuild index fe26ee75eaa7..e0342a38384b 100644 --- a/sys-libs/libcxxabi/libcxxabi-11.0.0.ebuild +++ b/sys-libs/libcxxabi/libcxxabi-11.0.0.ebuild @@ -17,7 +17,7 @@ llvm.org_set_globals LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="amd64 arm arm64 ~riscv x86 ~x64-macos" -IUSE="+libunwind +static-libs test elibc_musl" +IUSE="+libunwind static-libs test elibc_musl" RESTRICT="!test? ( test )" RDEPEND=" diff --git a/sys-libs/libcxxabi/libcxxabi-11.0.1.ebuild b/sys-libs/libcxxabi/libcxxabi-11.0.1.ebuild index df3f045f7202..7ceb778be532 100644 --- a/sys-libs/libcxxabi/libcxxabi-11.0.1.ebuild +++ b/sys-libs/libcxxabi/libcxxabi-11.0.1.ebuild @@ -13,7 +13,7 @@ HOMEPAGE="https://libcxxabi.llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos" -IUSE="+libunwind +static-libs test elibc_musl" +IUSE="+libunwind static-libs test elibc_musl" RESTRICT="!test? ( test )" RDEPEND=" diff --git a/sys-libs/libcxxabi/libcxxabi-11.1.0_rc1.ebuild b/sys-libs/libcxxabi/libcxxabi-11.1.0_rc1.ebuild index 32af10f1e6cf..59511b92f9ed 100644 --- a/sys-libs/libcxxabi/libcxxabi-11.1.0_rc1.ebuild +++ b/sys-libs/libcxxabi/libcxxabi-11.1.0_rc1.ebuild @@ -13,7 +13,7 @@ HOMEPAGE="https://libcxxabi.llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="" -IUSE="+libunwind +static-libs test elibc_musl" +IUSE="+libunwind static-libs test elibc_musl" RESTRICT="!test? ( test )" RDEPEND=" diff --git a/sys-libs/libcxxabi/libcxxabi-11.1.0_rc2.ebuild b/sys-libs/libcxxabi/libcxxabi-11.1.0_rc2.ebuild index 32af10f1e6cf..59511b92f9ed 100644 --- a/sys-libs/libcxxabi/libcxxabi-11.1.0_rc2.ebuild +++ b/sys-libs/libcxxabi/libcxxabi-11.1.0_rc2.ebuild @@ -13,7 +13,7 @@ HOMEPAGE="https://libcxxabi.llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="" -IUSE="+libunwind +static-libs test elibc_musl" +IUSE="+libunwind static-libs test elibc_musl" RESTRICT="!test? ( test )" RDEPEND=" diff --git a/sys-libs/libcxxabi/libcxxabi-11.1.0_rc3.ebuild b/sys-libs/libcxxabi/libcxxabi-11.1.0_rc3.ebuild new file mode 100644 index 000000000000..59511b92f9ed --- /dev/null +++ b/sys-libs/libcxxabi/libcxxabi-11.1.0_rc3.ebuild @@ -0,0 +1,123 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +CMAKE_ECLASS=cmake +PYTHON_COMPAT=( python3_{7..9} ) +inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs + +DESCRIPTION="Low level support for a standard C++ library" +HOMEPAGE="https://libcxxabi.llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="" +IUSE="+libunwind static-libs test elibc_musl" +RESTRICT="!test? ( test )" + +RDEPEND=" + libunwind? ( + || ( + >=sys-libs/libunwind-1.0.1-r1[static-libs?,${MULTILIB_USEDEP}] + >=sys-libs/llvm-libunwind-3.9.0-r1[static-libs?,${MULTILIB_USEDEP}] + ) + )" +# llvm-6 for new lit options +DEPEND="${RDEPEND} + >=sys-devel/llvm-6" +BDEPEND=" + test? ( >=sys-devel/clang-3.9.0 + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') + )" + +# libcxx is needed uncondtionally for the headers +LLVM_COMPONENTS=( libcxx{abi,} ) +LLVM_TEST_COMPONENTS=( llvm/cmake ) +llvm.org_set_globals + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + # darwin prefix builds do not have llvm installed yet, so rely on bootstrap-prefix + # to set the appropriate path vars to LLVM instead of using llvm_pkg_setup. + if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then + llvm_pkg_setup + fi + use test && python-any-r1_pkg_setup +} + +multilib_src_configure() { + # link against compiler-rt instead of libgcc if we are using clang with libunwind + local want_compiler_rt=OFF + if use libunwind && tc-is-clang; then + local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ + ${LDFLAGS} -print-libgcc-file-name) + if [[ ${compiler_rt} == *libclang_rt* ]]; then + want_compiler_rt=ON + fi + fi + + local libdir=$(get_libdir) + local mycmakeargs=( + -DLIBCXXABI_LIBDIR_SUFFIX=${libdir#lib} + -DLIBCXXABI_ENABLE_SHARED=ON + -DLIBCXXABI_ENABLE_STATIC=$(usex static-libs) + -DLIBCXXABI_USE_LLVM_UNWINDER=$(usex libunwind) + -DLIBCXXABI_INCLUDE_TESTS=$(usex test) + -DLIBCXXABI_USE_COMPILER_RT=${want_compiler_rt} + + -DLIBCXXABI_LIBCXX_INCLUDES="${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) + [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" + + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}" + -DPython3_EXECUTABLE="${PYTHON}" + ) + fi + cmake_src_configure +} + +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=OFF + -DLIBCXX_ENABLE_STATIC=ON + -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF + -DLIBCXX_CXX_ABI=libcxxabi + -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${S}"/include + -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF + -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) + -DLIBCXX_HAS_GCC_S_LIB=OFF + -DLIBCXX_INCLUDE_TESTS=OFF + ) + + cmake_src_configure + cmake_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 + + local -x LIT_PRESERVES_TMP=1 + cmake_build check-cxxabi +} + +multilib_src_install_all() { + insinto /usr/include/libcxxabi + doins -r include/. +} diff --git a/sys-libs/libcxxabi/libcxxabi-12.0.0.9999.ebuild b/sys-libs/libcxxabi/libcxxabi-12.0.0.9999.ebuild index fdb1d198e853..8c24d9691115 100644 --- a/sys-libs/libcxxabi/libcxxabi-12.0.0.9999.ebuild +++ b/sys-libs/libcxxabi/libcxxabi-12.0.0.9999.ebuild @@ -13,7 +13,7 @@ HOMEPAGE="https://libcxxabi.llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="" -IUSE="+libunwind +static-libs test elibc_musl" +IUSE="+libunwind static-libs test elibc_musl" RESTRICT="!test? ( test )" RDEPEND=" diff --git a/sys-libs/libcxxabi/libcxxabi-12.0.0_rc1.ebuild b/sys-libs/libcxxabi/libcxxabi-12.0.0_rc1.ebuild index fdb1d198e853..8c24d9691115 100644 --- a/sys-libs/libcxxabi/libcxxabi-12.0.0_rc1.ebuild +++ b/sys-libs/libcxxabi/libcxxabi-12.0.0_rc1.ebuild @@ -13,7 +13,7 @@ HOMEPAGE="https://libcxxabi.llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="" -IUSE="+libunwind +static-libs test elibc_musl" +IUSE="+libunwind static-libs test elibc_musl" RESTRICT="!test? ( test )" RDEPEND=" diff --git a/sys-libs/libcxxabi/libcxxabi-13.0.0.9999.ebuild b/sys-libs/libcxxabi/libcxxabi-13.0.0.9999.ebuild index fdb1d198e853..8c24d9691115 100644 --- a/sys-libs/libcxxabi/libcxxabi-13.0.0.9999.ebuild +++ b/sys-libs/libcxxabi/libcxxabi-13.0.0.9999.ebuild @@ -13,7 +13,7 @@ HOMEPAGE="https://libcxxabi.llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="" -IUSE="+libunwind +static-libs test elibc_musl" +IUSE="+libunwind static-libs test elibc_musl" RESTRICT="!test? ( test )" RDEPEND=" diff --git a/sys-libs/libcxxabi/libcxxabi-9.0.1.ebuild b/sys-libs/libcxxabi/libcxxabi-9.0.1.ebuild index 26bb7e5ca0fe..94d469615757 100644 --- a/sys-libs/libcxxabi/libcxxabi-9.0.1.ebuild +++ b/sys-libs/libcxxabi/libcxxabi-9.0.1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -15,7 +15,7 @@ llvm.org_set_globals LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="amd64 arm arm64 x86" -IUSE="+libunwind +static-libs test elibc_musl" +IUSE="+libunwind static-libs test elibc_musl" RESTRICT="!test? ( test )" RDEPEND=" diff --git a/sys-libs/libnih/Manifest b/sys-libs/libnih/Manifest deleted file mode 100644 index 0b47b1ea8d6b..000000000000 --- a/sys-libs/libnih/Manifest +++ /dev/null @@ -1,9 +0,0 @@ -AUX libnih-1.0.3-expat-2.2.5.patch 465 BLAKE2B e260bd17a18d51ae48cae66226a19d06bdb724d72993f484a2cb69cfc202514d259cbd8a3b96516d049011757b8dd760e8ef8c0da17cfd20a842fd142c1f04c5 SHA512 8cc5785c60187c9716f92978fb567de67d80cc302bed26dab34a2dd2e3bd3e52ab8caca033abb2b757ff19a00bf68576d37501f6173e46c001a3c408dabf49a0 -AUX libnih-1.0.3-fno-common.patch 267 BLAKE2B 157f1c34239b90ff6a2ab76a0c29f8d8cc563979e4f42405c8bab7f78bb0352a3ec3fa4d02d7b1cb1bc07970f289be7f39ed095cc3b19c6a166a343de02eac64 SHA512 b0e08aca019b9e0c1e2954b67036dac8d07b347fcb33a17163706b788896c5e5d9f95f23f6ffbe5a061f2e0773ed9179f94a68e162386c39df9ceeb8c8c17508 -AUX libnih-1.0.3-glibc-2.24.patch 2176 BLAKE2B b72a328ab9ccc7c56756887d7954c80cdd40daee359ac681c599e3dfd447dffb0919ff1f3b2c86be4e85280b7b243086d59dcac67e387cb4e55b87e08bf717b7 SHA512 92746d83b598eadf96dae490d4f23aee1262e54dda2bba752a13db88b7eb717f8e56d749c4487ca8f034206509f77b027e4ada37895d56f19f14f49ed23f5eb6 -AUX libnih-1.0.3-optional-dbus.patch 1113 BLAKE2B b7c30e666fcb641edbb2168058d837f90e0cf0fc8e290ed91fbe2da7de15ab884c4b312aa8f8cffda878010da794d587a73fdc49954d0c551161184e22537c2c SHA512 c46e434a5e162fedbe06408680ab5d08e875ad35aaa058974724565c5b8f1719a56187fb78bbd0cc87729dcde05cfa571678297b8e5d9cfe7e1bb18a3ed78961 -AUX libnih-1.0.3-pkg-config.patch 393 BLAKE2B 77ed2af4429624e03e86f00cdb58c015f19c1acc690f2f76efbef4142c5a166be478860b14756dbe5ee99a73824d16d50505098c5d1aa5b89e4df9c99536c793 SHA512 c483a5032fdb727d6ae106e27b7c66b184b5aae19d7ed3ba5796533f444763facdacb5c0e08b2ac4e371056dab6ee0478d26fbc190ea149c9f976accaba1abb8 -AUX libnih-1.0.3-signal-race.patch 1432 BLAKE2B b08b7356d2fae755fbe45b2a45b4081c9e1b27ab5aa3a1f71a6945ced5048bc587883de5b9181887a8124f4fc025bcbea4e668ae0e93d5b97e56f67788dd42a8 SHA512 5bd1ff4d7774db62cb6f54721c3b30b5fba1f085a69b28da12f85f448efacb6efd0dd9b9b61801ceb3fc94ca1616fb898bdce33e873f9e57486e44f26c063ed5 -DIST libnih-1.0.3.tar.gz 1187624 BLAKE2B f8f9fcdda86eabff39de0b0f92cd1f8c1c0eeb0c86ec4970e5bef1cc0dff0fda83db64975ece93d5d8ede5d0613d5f363dd7456c59fe966feb5e61e5b8913627 SHA512 fce40d2445b28c27b8838631681ca3206a4f053b2dd4fc488fc9ef98bbd3d933e3d62b82cf346be2ef1677f6457f692cf5544cd915a6bb1e5c618f98ffa101b4 -EBUILD libnih-1.0.3-r4.ebuild 1550 BLAKE2B 2702bb63c838405c689983a5b9f78a876a6076d8d720fd8e73125c33e92c7903532d9599e0f8ffef6ac419ffcaec6dc582d3c26cc564d3989bd057a9b77e1542 SHA512 520144da2e52984531ff89f216dcdefb5b0c61a314226c2ac7abcc572b866ef0a15db45f72d19396224bb8fa617ab9587be96125dfeb1dfe529d4df9ab1a19d4 -MISC metadata.xml 241 BLAKE2B 02f7c7b912751df8725055416a093647e79dfdbf7f06c9f56246c67f6a1176997454dd3aaaa493ecf7d00d8ae295066e2861ac10bee860a94eef6085437561af SHA512 31e21c0bed310c4a025385f24c5b76f2e588999912fa548ca343947d95ad448b3a1232211cd4427607550c0f5de2e562e2b4e492415b6d207c954a516b811a84 diff --git a/sys-libs/libnih/files/libnih-1.0.3-expat-2.2.5.patch b/sys-libs/libnih/files/libnih-1.0.3-expat-2.2.5.patch deleted file mode 100644 index 02b5e4c0a9e2..000000000000 --- a/sys-libs/libnih/files/libnih-1.0.3-expat-2.2.5.patch +++ /dev/null @@ -1,15 +0,0 @@ -Description: Adapt test suite to expat 2.2.5 -Author: Axel Beckert -Bug-Debian: https://bugs.debian.org/886416 - ---- a/nih-dbus-tool/tests/test_parse.c -+++ b/nih-dbus-tool/tests/test_parse.c -@@ -7950,7 +7950,7 @@ - - TEST_EQ_P (node, NULL); - -- TEST_FILE_EQ (output, ("test:foo:2:0: " -+ TEST_FILE_EQ (output, ("test:foo:1:36: " - "Invalid object path in name attribute\n")); - TEST_FILE_END (output); - TEST_FILE_RESET (output); diff --git a/sys-libs/libnih/files/libnih-1.0.3-fno-common.patch b/sys-libs/libnih/files/libnih-1.0.3-fno-common.patch deleted file mode 100644 index 2b3a9cef5b48..000000000000 --- a/sys-libs/libnih/files/libnih-1.0.3-fno-common.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/nih-dbus-tool/output.h -+++ b/nih-dbus-tool/output.h -@@ -27,7 +27,7 @@ - - NIH_BEGIN_EXTERN - --char *output_package; -+extern char *output_package; - - int output (const char *source_path, int source_fd, - const char *header_path, int header_fd, diff --git a/sys-libs/libnih/files/libnih-1.0.3-glibc-2.24.patch b/sys-libs/libnih/files/libnih-1.0.3-glibc-2.24.patch deleted file mode 100644 index 9b90f3539d7c..000000000000 --- a/sys-libs/libnih/files/libnih-1.0.3-glibc-2.24.patch +++ /dev/null @@ -1,57 +0,0 @@ -With glibc >= 2.24, raise() temporarily blocks signals to make this -function async-signal-safe. This has the consequence that the SIGCONT -signal send by the call to PTRACE_CONT is delivered slightly later. In -turn it means the next ptrace event received is the SIGCONT signal -instead of the expected one. - -Unfortunately the libnih testsuite has very precise expectations, and -do not expect such an event. Fix that by catching it and waiting for the -following event. - ---- libnih-1.0.3.orig/nih/tests/test_child.c -+++ libnih-1.0.3/nih/tests/test_child.c -@@ -360,6 +360,14 @@ test_poll (void) - - waitid (P_PID, pid, &siginfo, WSTOPPED | WNOWAIT); - -+ /* ptrace might catch the SIGCONT emitted with PTRACE_CONT, catch it -+ and wait for the next event. -+ */ -+ if (siginfo.si_code == CLD_TRAPPED && siginfo.si_status == SIGCONT) { -+ assert0 (ptrace (PTRACE_CONT, pid, NULL, NULL)); -+ waitid (P_PID, pid, &siginfo, WSTOPPED | WNOWAIT); -+ } -+ - watch = nih_child_add_watch (NULL, pid, NIH_CHILD_TRAPPED, - my_handler, &watch); - -@@ -420,6 +428,14 @@ test_poll (void) - /* Wait for ptrace to stop the parent (signalling the fork) */ - waitid (P_PID, pid, &siginfo, WSTOPPED | WNOWAIT); - -+ /* ptrace might catch the SIGCONT emitted with PTRACE_CONT, catch it -+ and wait for the next event. -+ */ -+ if (siginfo.si_code == CLD_TRAPPED && siginfo.si_status == SIGCONT) { -+ assert0 (ptrace (PTRACE_CONT, pid, NULL, NULL)); -+ waitid (P_PID, pid, &siginfo, WSTOPPED | WNOWAIT); -+ } -+ - /* Will be able to get the child pid now, we have to do it here - * because we want to wait on it to ensure the test is synchronous; - * otherwise nih_child_poll() could actually eat the child event -@@ -489,6 +505,14 @@ test_poll (void) - - waitid (P_PID, pid, &siginfo, WSTOPPED | WNOWAIT); - -+ /* ptrace might catch the SIGCONT emitted with PTRACE_CONT, catch it -+ and wait for the next event. -+ */ -+ if (siginfo.si_code == CLD_TRAPPED && siginfo.si_status == SIGCONT) { -+ assert0 (ptrace (PTRACE_CONT, pid, NULL, NULL)); -+ waitid (P_PID, pid, &siginfo, WSTOPPED | WNOWAIT); -+ } -+ - watch = nih_child_add_watch (NULL, pid, NIH_CHILD_PTRACE, - my_handler, &watch); - diff --git a/sys-libs/libnih/files/libnih-1.0.3-optional-dbus.patch b/sys-libs/libnih/files/libnih-1.0.3-optional-dbus.patch deleted file mode 100644 index 49ad68a07b5a..000000000000 --- a/sys-libs/libnih/files/libnih-1.0.3-optional-dbus.patch +++ /dev/null @@ -1,40 +0,0 @@ ---- a/configure.ac -+++ b/configure.ac -@@ -23,12 +23,21 @@ - PKG_PROG_PKG_CONFIG([0.22]) - - # Checks for libraries. --PKG_CHECK_MODULES([DBUS], [dbus-1 >= 1.2.16]) --AC_CHECK_LIB([expat], [XML_ParserCreate], -+AC_ARG_WITH([dbus], -+ [AS_HELP_STRING([--without-dbus], -+ [disable support for dbus])], -+ [], -+ [with_dbus=yes]) -+ -+AS_IF([test "x$with_dbus" != xno],[ -+ PKG_CHECK_MODULES([DBUS], [dbus-1 >= 1.2.16]) -+ AC_CHECK_LIB([expat], [XML_ParserCreate], - [AC_CHECK_LIB([expat], [XML_StopParser], - [AC_SUBST([EXPAT_LIBS], [-lexpat])], - [AC_MSG_ERROR([expat >= 2.0.0 required])])], -- [AC_MSG_ERROR([expat library not found])]) -+ [AC_MSG_ERROR([expat library not found])])]) -+ -+AM_CONDITIONAL([DBUS_SUPPORT], [test "x$with_dbus" != xno]) - - # Checks for header files. - AC_CHECK_HEADERS([valgrind/valgrind.h]) ---- a/Makefile.am -+++ b/Makefile.am -@@ -1,6 +1,9 @@ - ## Process this file with automake to produce Makefile.in - --SUBDIRS = m4 intl nih nih-dbus nih-dbus-tool po -+SUBDIRS = m4 intl nih po -+if DBUS_SUPPORT -+SUBDIRS += nih-dbus nih-dbus-tool -+endif - - EXTRA_DIST = HACKING - diff --git a/sys-libs/libnih/files/libnih-1.0.3-pkg-config.patch b/sys-libs/libnih/files/libnih-1.0.3-pkg-config.patch deleted file mode 100644 index 6516de799432..000000000000 --- a/sys-libs/libnih/files/libnih-1.0.3-pkg-config.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- a/nih-dbus/Makefile.am -+++ b/nih-dbus/Makefile.am -@@ -49,7 +49,7 @@ - test_dbus.h - - --pkgconfigdir = $(prefix)/lib/pkgconfig -+pkgconfigdir = $(libdir)/pkgconfig - pkgconfig_DATA = libnih-dbus.pc - - - ---- a/nih/Makefile.am -+++ b/nih/Makefile.am -@@ -71,7 +71,7 @@ - test_hash.h - - --pkgconfigdir = $(prefix)/lib/pkgconfig -+pkgconfigdir = $(libdir)/pkgconfig - pkgconfig_DATA = libnih.pc - - - diff --git a/sys-libs/libnih/files/libnih-1.0.3-signal-race.patch b/sys-libs/libnih/files/libnih-1.0.3-signal-race.patch deleted file mode 100644 index 364af7f5383e..000000000000 --- a/sys-libs/libnih/files/libnih-1.0.3-signal-race.patch +++ /dev/null @@ -1,44 +0,0 @@ ---- a/nih/signal.c -+++ b/nih/signal.c -@@ -337,17 +337,37 @@ - - nih_signal_init (); - -+ /* Since this poller runs w/out signals masked, we do not want to try -+ * and clear any other signals (like zeroing the caught array at the -+ * end). If we do that, we open a race: -+ * - Walk the list of signals. -+ * - First one is not set so we move on to the second one. -+ * - First signal comes in while processing second and increments the -+ * caught array entry. -+ * - Finish walking the whole list. -+ * - Zero out the whole list and thus throw away the first signal. -+ * Since the signal handlers can take any length of time, this race -+ * can be open for a variable amount of time. -+ */ -+ - NIH_LIST_FOREACH_SAFE (nih_signals, iter) { - NihSignal *signal = (NihSignal *)iter; - - if (! signals_caught[signal->signum]) - continue; - -+ /* Now that we know we're going to process this signal, clear -+ * out all pending counts for it. There is a slight race here -+ * where the same signal can come in, but the API has never -+ * guaranteed exact coverage since POSIX does not provide it -- -+ * more than one signal can be collapsed into one event. All -+ * we can guarantee is that we'll notice signals that come in -+ * once the handler runs. -+ */ -+ signals_caught[signal->signum] = 0; -+ - signal->handler (signal->data, signal); - } -- -- for (s = 0; s < NUM_SIGNALS; s++) -- signals_caught[s] = 0; - } - - - diff --git a/sys-libs/libnih/libnih-1.0.3-r4.ebuild b/sys-libs/libnih/libnih-1.0.3-r4.ebuild deleted file mode 100644 index a5fefa9e8dce..000000000000 --- a/sys-libs/libnih/libnih-1.0.3-r4.ebuild +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools toolchain-funcs multilib flag-o-matic usr-ldscript - -DESCRIPTION="Light-weight 'standard library' of C functions" -HOMEPAGE="https://launchpad.net/libnih" -SRC_URI="https://launchpad.net/${PN}/$(ver_cut 1-2)/${PV}/+download/${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 s390 sparc x86" -IUSE="+dbus nls static-libs +threads" - -# The configure phase will check for valgrind headers, and the tests will use -# that header, but only to do dynamic valgrind detection. The tests aren't -# run directly through valgrind, only by developers directly. So don't bother -# depending on valgrind here. #559830 -RDEPEND="dbus? ( dev-libs/expat >=sys-apps/dbus-1.2.16 )" -DEPEND="${RDEPEND} - sys-devel/gettext - virtual/pkgconfig" -PATCHES=( - "${FILESDIR}"/${P}-optional-dbus.patch - "${FILESDIR}"/${P}-pkg-config.patch - "${FILESDIR}"/${P}-signal-race.patch - "${FILESDIR}"/${P}-fno-common.patch - "${FILESDIR}"/${P}-expat-2.2.5.patch - "${FILESDIR}"/${P}-glibc-2.24.patch -) - -src_prepare() { - default - eautoreconf -} - -src_configure() { - append-lfs-flags - econf \ - $(use_with dbus) \ - $(use_enable nls) \ - $(use_enable static-libs static) \ - $(use_enable threads) \ - $(use_enable threads threading) -} - -src_install() { - default - - # we need to be in / because upstart needs libnih - gen_usr_ldscript -a nih $(use dbus && echo nih-dbus) - use static-libs || rm "${ED}"/usr/$(get_libdir)/*.la -} diff --git a/sys-libs/libnih/metadata.xml b/sys-libs/libnih/metadata.xml deleted file mode 100644 index c029a63d0b84..000000000000 --- a/sys-libs/libnih/metadata.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - libnih - - diff --git a/sys-libs/libomp/Manifest b/sys-libs/libomp/Manifest index d8707af337f8..1119960fb935 100644 --- a/sys-libs/libomp/Manifest +++ b/sys-libs/libomp/Manifest @@ -3,6 +3,7 @@ DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc DIST llvmorg-11.0.1.tar.gz 122790338 BLAKE2B 0130996b4a8c4d9f757136fd7fb318068c9bfdc565060dec0d4336480c4ab66c4ae3185a7fdb05f13cf9ee8fd4123b09df938881b75d6e5d3689595114b7e32a SHA512 f5e6ef0b3111aae08a89cd01adb2ff4abfa9ef779c68b9190421d0447efd25c2cc00e5aae9f4764805f5fa31434866043d1510ae7389817e28ae53a5442e2fdf DIST llvmorg-11.1.0-rc1.tar.gz 122793491 BLAKE2B f4777455f5903cffea284eaffd872be6c287c6c1ebbd0c4b5b5473f146d7f5476f3551998a58d3e976ab90cde7b0d05db2b3be97f4e8e2c3474755ff38739268 SHA512 44e281486c44fa1611042ab658b9833a75f9613b7f896863613cfb99de66d13607fb1e9064f42ea3d89ca7951113465a90fd96ca4544262f165f78bd5261f5a8 DIST llvmorg-11.1.0-rc2.tar.gz 122794772 BLAKE2B ab533f078d9d6c37e27c578866a07896344a0b4cf4ebf6402f4fa490213e017310d1c882bf63e552e99a5b4f6d1d8c01413420713b200bfa6732eff64f3c47a9 SHA512 88d8f1d938f0ba7ec39478d03a35c09a30bea51735276205494265b1061621b3ebcda8ee4211e896783b1b99a377c9fa68046118b0d6cb7fcb7bea1e960f95b7 +DIST llvmorg-11.1.0-rc3.tar.gz 122785838 BLAKE2B d0998219471476be1a1249b3a2444750585a352047d4dc14de6fec87eb3407d0f4b848757340200d3423cb4090554ae033fb4ec3797446e46556fbb566bb77a3 SHA512 b67874cb127f3f929a3796558cdfbf509b384c4247f4936ba08cecf88ca880a167cf67c23d78104b5bab4a98efd9435d1b923deb7ae7367875414e6c896957d1 DIST llvmorg-12.0.0-rc1.tar.gz 134164708 BLAKE2B d4261ff7d9586b47f4cfda3d2cda4b76534f9e17fbd5cdb8861895b8eb466021962f4608bfcdeb52f8fce78850a994fd5eda0560f7211e5c8d1ac9330a738a36 SHA512 3d07d013d0705bb99f56898cc55d054d0d95aeb53b3c756cfab80b4c9097cc4935bcea89b9efde2e503a899b9fccf0dacc0073c9991c8ea352755c5ec68a757a DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59 EBUILD libomp-10.0.1.ebuild 2893 BLAKE2B 6085966e4e392ded8492c6b398d3a14ba5205aee8ecf3f63d0853e463f1bf007ff3b3c31555eb7cb566cc8c4bdc580e9d0ce38ca7cd58785820a7949e2969024 SHA512 e1b7b17dd0800908adbb06b29c7ef2d5bd73c66784104b554c59e5c5176c9c49c5432e0ecd72c6e3c00e71def839342cbedbd666f3886afa3ea92d8fc94ba591 @@ -10,6 +11,7 @@ EBUILD libomp-11.0.0.ebuild 2900 BLAKE2B 8dd6c10719ec67cb10e15610cb99276e8e80299 EBUILD libomp-11.0.1.ebuild 2906 BLAKE2B 532bba9092f082b646fbf7d22c929568e8e763d9ed23b23e5ec6691fe8b5188f359d592892fb2f35768354d722470f538a54285dbac0170e7589471a50d3d836 SHA512 541d34bdc48d88dc140aa7510e8696a2c139347ba5b99f7023582de2bdadfc8e69e204998890598a5fec09aa4c01429c57024fce4a35f9cda90b8961c1fc9afe EBUILD libomp-11.1.0_rc1.ebuild 2845 BLAKE2B ec9434f4040a5fb085a6b3b8fed7d9a730920657fcdacf6b2828bd37359d709d112ed3b39f120d3c52373362c05ac534829f8873a49d55082a799ae661de51ba SHA512 3ce9cb608ace32f3a861f375df90af73e9ca277ccd7ebdb1678d02a2264da53d7c98f0b7dccfe41692ff35933ac499efcbb11007b559010a81d2f718cad0e7e7 EBUILD libomp-11.1.0_rc2.ebuild 2845 BLAKE2B ec9434f4040a5fb085a6b3b8fed7d9a730920657fcdacf6b2828bd37359d709d112ed3b39f120d3c52373362c05ac534829f8873a49d55082a799ae661de51ba SHA512 3ce9cb608ace32f3a861f375df90af73e9ca277ccd7ebdb1678d02a2264da53d7c98f0b7dccfe41692ff35933ac499efcbb11007b559010a81d2f718cad0e7e7 +EBUILD libomp-11.1.0_rc3.ebuild 2845 BLAKE2B ec9434f4040a5fb085a6b3b8fed7d9a730920657fcdacf6b2828bd37359d709d112ed3b39f120d3c52373362c05ac534829f8873a49d55082a799ae661de51ba SHA512 3ce9cb608ace32f3a861f375df90af73e9ca277ccd7ebdb1678d02a2264da53d7c98f0b7dccfe41692ff35933ac499efcbb11007b559010a81d2f718cad0e7e7 EBUILD libomp-12.0.0.9999.ebuild 2858 BLAKE2B 7e0c70445e2822d34c0f48f99debbe2f99e35601cfc3ce8e5d5a22888b29b6af5ca5090c66ebc7fb77990e2fdce37b958a2803d2a4be7e626359b48a7ad68c01 SHA512 8c7c35ed7c2d747d0d47a0d9588f2486a93852f31e7e1120688f41b09089e9507534fbae5d609b18bb28899de7dce2670ea1b87eb2e90cf06bbc116cac7daa22 EBUILD libomp-12.0.0_rc1.ebuild 2858 BLAKE2B 1472a9384d0b92de2402af12c14ea7225aab79198114290c1511b12df7bd63956f95c40791928f85cc67a88c92f62059ac4d4fda1f7a0c3e831a33d827ad19b7 SHA512 2524adeb5ce85b79ea591e273631ffb65bcb8e409367bb7db8a38e9368622cf39d6d7ca2d200b7a57ca125081844ebdc625fdda33193f64e1af0c93ed0f48a22 EBUILD libomp-13.0.0.9999.ebuild 2858 BLAKE2B 1472a9384d0b92de2402af12c14ea7225aab79198114290c1511b12df7bd63956f95c40791928f85cc67a88c92f62059ac4d4fda1f7a0c3e831a33d827ad19b7 SHA512 2524adeb5ce85b79ea591e273631ffb65bcb8e409367bb7db8a38e9368622cf39d6d7ca2d200b7a57ca125081844ebdc625fdda33193f64e1af0c93ed0f48a22 diff --git a/sys-libs/libomp/libomp-11.1.0_rc3.ebuild b/sys-libs/libomp/libomp-11.1.0_rc3.ebuild new file mode 100644 index 000000000000..72e1ed678464 --- /dev/null +++ b/sys-libs/libomp/libomp-11.1.0_rc3.ebuild @@ -0,0 +1,105 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +CMAKE_ECLASS=cmake +PYTHON_COMPAT=( python3_{7..9} ) +inherit cmake-multilib linux-info llvm.org python-any-r1 + +DESCRIPTION="OpenMP runtime library for LLVM/clang compiler" +HOMEPAGE="https://openmp.llvm.org" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="" +IUSE="cuda hwloc kernel_linux offload ompt test" +# CUDA works only with the x86_64 ABI +REQUIRED_USE="offload? ( cuda? ( abi_x86_64 ) )" +RESTRICT="!test? ( test )" + +RDEPEND=" + hwloc? ( sys-apps/hwloc:0=[${MULTILIB_USEDEP}] ) + offload? ( + virtual/libelf:=[${MULTILIB_USEDEP}] + dev-libs/libffi:=[${MULTILIB_USEDEP}] + cuda? ( dev-util/nvidia-cuda-toolkit:= ) + )" +# tests: +# - dev-python/lit provides the test runner +# - sys-devel/llvm provide test utils (e.g. FileCheck) +# - sys-devel/clang provides the compiler to run tests +DEPEND="${RDEPEND}" +BDEPEND="dev-lang/perl + offload? ( virtual/pkgconfig ) + test? ( + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') + >=sys-devel/clang-6 + )" + +LLVM_COMPONENTS=( openmp ) +llvm.org_set_globals + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +kernel_pds_check() { + if use kernel_linux && kernel_is -lt 4 15 && kernel_is -ge 4 13; then + local CONFIG_CHECK="~!SCHED_PDS" + local ERROR_SCHED_PDS="\ +PDS scheduler versions >= 0.98c < 0.98i (e.g. used in kernels >= 4.13-pf11 +< 4.14-pf9) do not implement sched_yield() call which may result in horrible +performance problems with libomp. If you are using one of the specified +kernel versions, you may want to disable the PDS scheduler." + + check_extra_config + fi +} + +pkg_pretend() { + kernel_pds_check +} + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +multilib_src_configure() { + local libdir="$(get_libdir)" + local mycmakeargs=( + -DOPENMP_LIBDIR_SUFFIX="${libdir#lib}" + + -DLIBOMP_USE_HWLOC=$(usex hwloc) + -DLIBOMP_OMPT_SUPPORT=$(usex ompt) + + -DOPENMP_ENABLE_LIBOMPTARGET=$(usex offload) + + # do not install libgomp.so & libiomp5.so aliases + -DLIBOMP_INSTALL_ALIASES=OFF + # disable unnecessary hack copying stuff back to srcdir + -DLIBOMP_COPY_EXPORTS=OFF + ) + use offload && mycmakeargs+=( + # this is non-fatal and libomp checks for CUDA conditionally + # to ABI, so we can just ignore passing the wrong value + # on non-amd64 ABIs + -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=$(usex !cuda) + ) + use test && mycmakeargs+=( + # this project does not use standard LLVM cmake macros + -DOPENMP_LLVM_LIT_EXECUTABLE="${EPREFIX}/usr/bin/lit" + -DOPENMP_LIT_ARGS="$(get_lit_flags)" + + -DOPENMP_TEST_C_COMPILER="$(type -P "${CHOST}-clang")" + -DOPENMP_TEST_CXX_COMPILER="$(type -P "${CHOST}-clang++")" + ) + cmake_src_configure +} + +multilib_src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + + cmake_build check-libomp +} diff --git a/sys-libs/libunwind/Manifest b/sys-libs/libunwind/Manifest index 8e7587a4ca9a..6cbacdc6b6c7 100644 --- a/sys-libs/libunwind/Manifest +++ b/sys-libs/libunwind/Manifest @@ -3,6 +3,6 @@ AUX libunwind-1.2-ia64-missing.patch 3863 BLAKE2B 384d2afd7d725f0730207b5b32ff4f AUX libunwind-1.2-ia64-ptrace-coredump.patch 1445 BLAKE2B 0b4b6b5d7b3cfc8be58c3973b096ceeb19faa84f175a23f2130588351e40f94abf5c53a4eb5813d8b9da7762f032671031d2d637bd2ec445f7e4f9ea9d276773 SHA512 0bab310ff16294d7617077ffa1261fe9c1a6aaeb4339c96918869c4dd9a2b1b73fbe2ebb5c895f1a420ff7922da85cbb44ccfcd69df6e2518c1f2ff64b7b2d76 AUX libunwind-1.2.1-only-include-execinfo_h-if-avaliable.patch 1290 BLAKE2B eac40a5cb05fbda00e5dde5b4ecedfa21442cb5481281b8aac45b118d8b8d503bafe69aa9adb93cac9c7e89cb72f8b44bdb7018a09aa4c9d512e20a457c7d78f SHA512 36b76eefdff3ca832696c13b18d9153ca89d5b648c7df11d3c112a85e9ab92e9f124fdbd05d2d9017bd9c5cdc6bbb2de5038918c9f3a2695c8fa3a05835abdb0 DIST libunwind-1.5.0.tar.gz 878355 BLAKE2B ee35441289926ac22a58bedb9f831d8e13bacd663a99b3ce25eed229f25f0423bbbd90e09e3d62b003518d7a620aa6d15b0dd5b93632736a89fa0667b35d5fc2 SHA512 1df20ca7a8cee2f2e61294fa9b677e88fec52e9d5a329f88d05c2671c69fa462f6c18808c97ca9ff664ef57292537a844f00b18d142b1938c9da701ca95a4bab -EBUILD libunwind-1.5.0-r1.ebuild 3239 BLAKE2B d689137f8f3a0cad002012012ba3bba630c6653534c9e651a8b99b02559e14bf9ca478667cc68598ac2fadcc8cf2fabc739d96e037b9251712a0686df771c6f1 SHA512 a963325a5fe629e748cdc91537c022953290742c3ca64e7823751e00887d37cb8ab84e5f37e49aef2bb7dd88f685e35d44531b1bfac4261abb7ad51bf1218c8c +EBUILD libunwind-1.5.0-r1.ebuild 3234 BLAKE2B 2cc6088545ce68dedbbdf4ec3155c67e502ef681c9485746daa2425cc3aaa535e1fe5c18f7bf93c80eae940345d8eb777326b5a306e6847fc6a7587fb8fcf268 SHA512 f74b37fd947878d3f1c465d865163e722005366ba25256ca10d089f47948b5072cc2ab4be9de3a013e99647de0c7468efd4fb933de0b4ab947bfcd6a8cfc0563 EBUILD libunwind-1.5.0.ebuild 3233 BLAKE2B 3f2cf31fabbc43bb0ec23353ae4bb93baf94df6fb2b0ce526989df3bb5d1ac705d537c1342090fd3d27aec779f661df4f83f64a362a159bb4bc9183f269e8846 SHA512 1ca06a8a5f3332746c4964d0befa05579eba67593555a86b09496badd1e5485bf04640760ea1300699c3655bde91c8cad12ca4a2a08f635459c2819a4e192f7a -MISC metadata.xml 489 BLAKE2B c0a884e7161b62e8548fdf3c8c1d34b24936c71a99fef37713b7c36e0ef3423563e5c98eae8e9748db059645ce85cf972448e0584b1ed92e51c228794e5ed10d SHA512 d7586420e24a7b841cb090ce8dc7bb1c1260a3e2afbc6606d0a974243ca20c0586b4aa3e770b5b98787f8d34b8255846d87550c16f68da6e9d3f55f8b57bde40 +MISC metadata.xml 573 BLAKE2B e47d22f4aae366401c590e779ad2344f03a4bb0657b60f31b9738f38083cbef92d59b06fbb7ccb7b4c74d97ead90fbba1c3a41955f6510af7fafb536d20c95fa SHA512 8bf89292bb26d81b26ab36137965ef3f4db2d02a4bc6c6413c2806b4a6552ec7ff87249c2d09b6812a91948248c5fd006e3c2b7f888590fce80bab5256dd639c diff --git a/sys-libs/libunwind/libunwind-1.5.0-r1.ebuild b/sys-libs/libunwind/libunwind-1.5.0-r1.ebuild index 2467a4251a01..7d9e157276c7 100644 --- a/sys-libs/libunwind/libunwind-1.5.0-r1.ebuild +++ b/sys-libs/libunwind/libunwind-1.5.0-r1.ebuild @@ -13,7 +13,7 @@ SRC_URI="mirror://nongnu/libunwind/${MY_P}.tar.gz" LICENSE="MIT" SLOT="0/8" # libunwind.so.8 -KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 -sparc ~x86 ~amd64-linux ~x86-linux" +KEYWORDS="amd64 ~arm ~arm64 hppa ~ia64 ~mips ppc ppc64 -sparc x86 ~amd64-linux ~x86-linux" IUSE="debug debug-frame doc libatomic lzma static-libs zlib" RESTRICT="test" # some tests are broken (toolchain version dependent, rely on external binaries) diff --git a/sys-libs/libunwind/metadata.xml b/sys-libs/libunwind/metadata.xml index 95faca4e7634..bbf0cc649c96 100644 --- a/sys-libs/libunwind/metadata.xml +++ b/sys-libs/libunwind/metadata.xml @@ -9,4 +9,7 @@ Adds support for DWARF .debug_frame section: Use the information from this section if available Use libatomic instead of builtin atomic operations + + libunwind/libunwind + diff --git a/sys-libs/libxcrypt/Manifest b/sys-libs/libxcrypt/Manifest index b79d8b33b8b5..4636c457e95c 100644 --- a/sys-libs/libxcrypt/Manifest +++ b/sys-libs/libxcrypt/Manifest @@ -3,5 +3,5 @@ AUX libxcrypt-4.4.12-pythonver.patch 616 BLAKE2B 73c7039127b23c075a7b8e5bc897299 DIST libxcrypt-4.4.16.tar.gz 480694 BLAKE2B 0e93c2ff45a8148f82a80a67fb732a3ef42e87505d19258023f91d3352a382483204e77e2704e7a0de15f4f1e38a326d0867506a5580faf8c81857270588a4a3 SHA512 e1d3b1262c6be7c6c8847b8c4eb8191d9e5e482798be6f1186876c72f3d8c737124378ec45a38aa464f556e10a557b96f855bd371f03c3611eada27904bf6781 DIST libxcrypt-4.4.17.tar.gz 519096 BLAKE2B 12cbe3d1f235baddd8d2ec8159f2a7514e75c2f91cf0db18ef909ec11c38ac19efebecec647a90cafb27c7ebc7e940da448ca8f3edd1c49e5cb9cc4407d5198c SHA512 94aaba6ccf9b6d1a32f9a571ee32261cecd393d5b8d8c6f18d740dc7bb29ac0fbd381124e7f0d84882559bb634208c08151b3dc05c9138fa0a229c4ba20fb6f7 EBUILD libxcrypt-4.4.16.ebuild 4192 BLAKE2B 6bc32959800d5fcfe657abb9a40dbac0f9060ac731c2451c4cb981dc3feb5b90f764376b6516890c753a32d4d3b19898a5ce29c124146889c9e31647d471dc2a SHA512 0f262070da5d399e9f2dce3878fc37a8b0270430f8649a01f0e774ee4c4fa26429464b6e727b8263d154d64dff4132407cf35c027c0134ebc937569f376880dd -EBUILD libxcrypt-4.4.17.ebuild 4251 BLAKE2B 9dd7ca80616710d9de7592bab1c504699703d9351bec1e55fca4744db765cc56a42774014b5d66fa8e49cbaf5d5dd3f37dbf67fe4fe5e7670d4de43655c28d43 SHA512 67728b7831cf17e8eadd6944eb50fd6bed342b5f152c330121b15c0b4ba51bb859b306dd4312f2bdca1e4211e765eab61533af206e33917f697f1b63e6a9d5cf +EBUILD libxcrypt-4.4.17.ebuild 4258 BLAKE2B 53a20134f66fcb9eae163dd0805483d7a3d4044abfbeea617004cfac7d5b3e54d94ee273b87e13981f40c839e7c25ffcc248fa6cbb53148575a995f73d33d455 SHA512 90357ac3c720730262003c3d459ad2b44ffa3368c7551cf40a5a10977e33c10b8b148607eac48cadf49ce870017c4991b54a684ca4e48dab61cd1c97449be263 MISC metadata.xml 856 BLAKE2B e9fea1aa08f5b3f0abdd4d490973da2f133ea90e3a366d4549361233f51e674cc646b2fb6b4b15bca72d5a4e3b36be9a06e55afd3a4cb8f439d3958f09f8af25 SHA512 862cf3201efbecfc23167ecd1f6798f6729ba4e76749c174d17baf8aa4887f21d36f40234f35bc1b896e4384d110033b3f2260f01930b926f759e0243039adf8 diff --git a/sys-libs/libxcrypt/libxcrypt-4.4.17.ebuild b/sys-libs/libxcrypt/libxcrypt-4.4.17.ebuild index 63f6f43d74a5..b75180b9c275 100644 --- a/sys-libs/libxcrypt/libxcrypt-4.4.17.ebuild +++ b/sys-libs/libxcrypt/libxcrypt-4.4.17.ebuild @@ -1,4 +1,4 @@ -# Copyright 2004-2020 Gentoo Authors +# Copyright 2004-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -11,7 +11,7 @@ HOMEPAGE="https://github.com/besser82/libxcrypt" LICENSE="LGPL-2.1+ public-domain BSD BSD-2" SLOT="0/1" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" IUSE="+compat split-usr +static-libs system test" DEPEND="system? ( diff --git a/sys-libs/llvm-libunwind/Manifest b/sys-libs/llvm-libunwind/Manifest index d549c07db109..ce703286a546 100644 --- a/sys-libs/llvm-libunwind/Manifest +++ b/sys-libs/llvm-libunwind/Manifest @@ -3,15 +3,17 @@ DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc DIST llvmorg-11.0.1.tar.gz 122790338 BLAKE2B 0130996b4a8c4d9f757136fd7fb318068c9bfdc565060dec0d4336480c4ab66c4ae3185a7fdb05f13cf9ee8fd4123b09df938881b75d6e5d3689595114b7e32a SHA512 f5e6ef0b3111aae08a89cd01adb2ff4abfa9ef779c68b9190421d0447efd25c2cc00e5aae9f4764805f5fa31434866043d1510ae7389817e28ae53a5442e2fdf DIST llvmorg-11.1.0-rc1.tar.gz 122793491 BLAKE2B f4777455f5903cffea284eaffd872be6c287c6c1ebbd0c4b5b5473f146d7f5476f3551998a58d3e976ab90cde7b0d05db2b3be97f4e8e2c3474755ff38739268 SHA512 44e281486c44fa1611042ab658b9833a75f9613b7f896863613cfb99de66d13607fb1e9064f42ea3d89ca7951113465a90fd96ca4544262f165f78bd5261f5a8 DIST llvmorg-11.1.0-rc2.tar.gz 122794772 BLAKE2B ab533f078d9d6c37e27c578866a07896344a0b4cf4ebf6402f4fa490213e017310d1c882bf63e552e99a5b4f6d1d8c01413420713b200bfa6732eff64f3c47a9 SHA512 88d8f1d938f0ba7ec39478d03a35c09a30bea51735276205494265b1061621b3ebcda8ee4211e896783b1b99a377c9fa68046118b0d6cb7fcb7bea1e960f95b7 +DIST llvmorg-11.1.0-rc3.tar.gz 122785838 BLAKE2B d0998219471476be1a1249b3a2444750585a352047d4dc14de6fec87eb3407d0f4b848757340200d3423cb4090554ae033fb4ec3797446e46556fbb566bb77a3 SHA512 b67874cb127f3f929a3796558cdfbf509b384c4247f4936ba08cecf88ca880a167cf67c23d78104b5bab4a98efd9435d1b923deb7ae7367875414e6c896957d1 DIST llvmorg-12.0.0-rc1.tar.gz 134164708 BLAKE2B d4261ff7d9586b47f4cfda3d2cda4b76534f9e17fbd5cdb8861895b8eb466021962f4608bfcdeb52f8fce78850a994fd5eda0560f7211e5c8d1ac9330a738a36 SHA512 3d07d013d0705bb99f56898cc55d054d0d95aeb53b3c756cfab80b4c9097cc4935bcea89b9efde2e503a899b9fccf0dacc0073c9991c8ea352755c5ec68a757a DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59 -EBUILD llvm-libunwind-10.0.1.ebuild 3186 BLAKE2B 20111349470510f40573d9e8d7facfe1d75be0badf63b3c66f458ca48bcc453c9e21e0140aceafdae9135b9aff9fe19fe6b9742b76b50bfe0c03c18130e72624 SHA512 9f6f9adb083153995cea59a5a0acb7851da5b2dcf9638b2b6016575db7fcbc3c63ecf1c1c5ad4ba4d42a66c6673e76772c6a8aaf760f8522c45071a5dd2a9d8a -EBUILD llvm-libunwind-11.0.0.ebuild 3208 BLAKE2B 5def0ebac893cb088f4ec8ed6f0ced45421c8668d20765340d53964e9aa2e518cac5ea8edb7d402520870f43210e02dad6d173bf93a9c71789473e86d44e9570 SHA512 0cdf341aa86af792d8d436b1705561f8eb3bfbe397cda58a182cdd34d46fdf107714022be8171c81a9862449e79502027bc502db9796c8ba960ae7b4888d05e1 -EBUILD llvm-libunwind-11.0.1.ebuild 3214 BLAKE2B da8d1de0f2bdeb283ba1d9e37c5d881b4cd885e47e4b76d6df6d5df87abf5f83a04b8ff1afacf4b5c9cce4e2a981e6c85b76335300d8ce4002950a859abf577e SHA512 a228eb46fecc8030fb877906e6aad4abbd051fdf372320253f8ca199c52bece499524cc52ab8fd7357643a582f4a6f84e574ed354ea8c30490c646393b54a258 -EBUILD llvm-libunwind-11.1.0_rc1.ebuild 3180 BLAKE2B 01b485b40e4e569ca9a8fa4317d645956e400e0fc204aef7e44235e6be540cbdc62886fdfd70f3cd4a129613bc8d8f7895f4be0a7d95be3d56c9cfa0ac490b05 SHA512 68507ab5f9eebe3d9849787d463691b685f2067d5de99303871728a7c903061150d2f293c3a40a3e098d92e9b1ecb1ac8a636beb0d62b5e6f88f42e4574f60da -EBUILD llvm-libunwind-11.1.0_rc2.ebuild 3180 BLAKE2B 01b485b40e4e569ca9a8fa4317d645956e400e0fc204aef7e44235e6be540cbdc62886fdfd70f3cd4a129613bc8d8f7895f4be0a7d95be3d56c9cfa0ac490b05 SHA512 68507ab5f9eebe3d9849787d463691b685f2067d5de99303871728a7c903061150d2f293c3a40a3e098d92e9b1ecb1ac8a636beb0d62b5e6f88f42e4574f60da -EBUILD llvm-libunwind-12.0.0.9999.ebuild 3192 BLAKE2B 30754e455558d93b86c1249110bdea4df4add61f51ea90ae75e5662aa74b170d9fa52bf24211691222829af98f3153c33c7c9046b708c16f00618af86d6f437f SHA512 1c1d5b9bfe255c0e9771b0b18ecc995ea6abf0a2b9b33292234df9e1192228d50135d963352e3e49edb5dd5474399cba918695994a257534101037a53f342704 -EBUILD llvm-libunwind-12.0.0_rc1.ebuild 3192 BLAKE2B 30754e455558d93b86c1249110bdea4df4add61f51ea90ae75e5662aa74b170d9fa52bf24211691222829af98f3153c33c7c9046b708c16f00618af86d6f437f SHA512 1c1d5b9bfe255c0e9771b0b18ecc995ea6abf0a2b9b33292234df9e1192228d50135d963352e3e49edb5dd5474399cba918695994a257534101037a53f342704 -EBUILD llvm-libunwind-13.0.0.9999.ebuild 3192 BLAKE2B 30754e455558d93b86c1249110bdea4df4add61f51ea90ae75e5662aa74b170d9fa52bf24211691222829af98f3153c33c7c9046b708c16f00618af86d6f437f SHA512 1c1d5b9bfe255c0e9771b0b18ecc995ea6abf0a2b9b33292234df9e1192228d50135d963352e3e49edb5dd5474399cba918695994a257534101037a53f342704 -EBUILD llvm-libunwind-9.0.1.ebuild 3352 BLAKE2B 3d2e8e62c8866c92c98d89c0155c87838a7778bbd28b3a83720de20d41a9d03855c5f379e71bd3055e4f0c7c7a27a8e44fbf6286aafe60de8ce9d211ae6bf414 SHA512 9794f893101f34ca0167d650d6015c16379bcaacffcf450cb9b2eae18bb169565824e4865a9ac1b24ed41a88e97eb8c938679d236165a85563f2624c3c18b083 +EBUILD llvm-libunwind-10.0.1.ebuild 3185 BLAKE2B 150bde0a85684ac2cbc01d20139e458f57377c2c9692037e7fec432019b16f073d6e14d772dfee190ab8a682e4b133f538dce51fce3ede54e8e20152575ac7c1 SHA512 4cdf4ce69be5ca630701d4e41bdcfead01eac10ced7edc39a9b20628e3225b65b33ac493d3010f8ac8cfe5cce73b70bb2d4988d1ea00f2766efdbe30c03aa6de +EBUILD llvm-libunwind-11.0.0.ebuild 3207 BLAKE2B 38d6419d35871059220e6d43672454fd29a8155da65cd4a729679a01c8bf8a9c97078bd01256126370d2caf48f91bcc44b12c33a8f93f3a737b1128d09e684e7 SHA512 7d450f6dcbf347679c9ac33e8838d9f334bd000e971cdc4c0cd8cfdee0ffe5eee253172fa3c7418e0fa13d6e439e95cd8d816fb69aa2253510c9943486ac1638 +EBUILD llvm-libunwind-11.0.1.ebuild 3213 BLAKE2B 0879af9f4037a6f84f0271228f6b1e73e563e1ce3647f647acab455fe6cb0620e7add0a6a316496aa6e44abd08596e94b37382f64a720a0f8bfe85a83ff1b8ae SHA512 be908911cbaae2c963677fcf13d0737d5fabf2b1798afbd0497744c10856a07e110505d32199cfa3c8c805b3796d2e4737d6c3b19721c09038febd265f27c321 +EBUILD llvm-libunwind-11.1.0_rc1.ebuild 3179 BLAKE2B 151b86081db1a1b1cef8124f2428209c1fb6842228e49123d64aa61431490e6181a7197856f5a475d8b0aad49ff4c4298253d52f95e8c88b15ec2cd988a76a68 SHA512 f345a86c461b6b4f7152eef81abcb77b903bd09312ff541baf41c569fb6be4a96277b42877e5f2aaf0923ddde7de9045ebba04fb15e946fcc1edb281e171b5b8 +EBUILD llvm-libunwind-11.1.0_rc2.ebuild 3179 BLAKE2B 151b86081db1a1b1cef8124f2428209c1fb6842228e49123d64aa61431490e6181a7197856f5a475d8b0aad49ff4c4298253d52f95e8c88b15ec2cd988a76a68 SHA512 f345a86c461b6b4f7152eef81abcb77b903bd09312ff541baf41c569fb6be4a96277b42877e5f2aaf0923ddde7de9045ebba04fb15e946fcc1edb281e171b5b8 +EBUILD llvm-libunwind-11.1.0_rc3.ebuild 3179 BLAKE2B 151b86081db1a1b1cef8124f2428209c1fb6842228e49123d64aa61431490e6181a7197856f5a475d8b0aad49ff4c4298253d52f95e8c88b15ec2cd988a76a68 SHA512 f345a86c461b6b4f7152eef81abcb77b903bd09312ff541baf41c569fb6be4a96277b42877e5f2aaf0923ddde7de9045ebba04fb15e946fcc1edb281e171b5b8 +EBUILD llvm-libunwind-12.0.0.9999.ebuild 3191 BLAKE2B c6d413951aed1e093b629506afdb3f76f5887239dc4aedd1d9f7063549d2cad5b286d253df25aacb20116ad6ac6f85453d357eb96de02611d18d5f136d62ebc4 SHA512 99693bac2c943e756f4c7b586d78add1811f91c0bf9bad235bb9a9feb4df1edb779d1e01759ff86a484e48a8bca2ebd6740d5a4c4cdf9dbddab6ebc6a0bd8591 +EBUILD llvm-libunwind-12.0.0_rc1.ebuild 3191 BLAKE2B c6d413951aed1e093b629506afdb3f76f5887239dc4aedd1d9f7063549d2cad5b286d253df25aacb20116ad6ac6f85453d357eb96de02611d18d5f136d62ebc4 SHA512 99693bac2c943e756f4c7b586d78add1811f91c0bf9bad235bb9a9feb4df1edb779d1e01759ff86a484e48a8bca2ebd6740d5a4c4cdf9dbddab6ebc6a0bd8591 +EBUILD llvm-libunwind-13.0.0.9999.ebuild 3191 BLAKE2B c6d413951aed1e093b629506afdb3f76f5887239dc4aedd1d9f7063549d2cad5b286d253df25aacb20116ad6ac6f85453d357eb96de02611d18d5f136d62ebc4 SHA512 99693bac2c943e756f4c7b586d78add1811f91c0bf9bad235bb9a9feb4df1edb779d1e01759ff86a484e48a8bca2ebd6740d5a4c4cdf9dbddab6ebc6a0bd8591 +EBUILD llvm-libunwind-9.0.1.ebuild 3351 BLAKE2B 46bb85a2d212aa1c39ea1432dba65e76a7c92ebd25ad1bea24676bc1b3bc384366fd8d0c615719f39c533db0b118fff89b7c6ca12f602d06a00efaf2e57f56f1 SHA512 a4760293bac492040cfb2e05cf365c802f1bbce636b8daed1faafeae715315c8b82962371732d7b688dc056e10ecdee33125f9841b2d042218d26cd761061258 MISC metadata.xml 302 BLAKE2B 1cdee7813ed9a3766b2eddccd14f9e0576ba5cc7f812d7af4f35c8c2e5991790f3800c6473c37da90d72804832fd9af969a2e3bf7aa625f0d3a32da1dbcefacf SHA512 3afaef82e6a495a81e221524ae7604dc170ef5c103333728674faf0417c45ba7996118c10466eaa24f8feef9ed8f0fc60d535a5195462317d61c61a531c8a285 diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-10.0.1.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-10.0.1.ebuild index 13cab062c868..7be495a57783 100644 --- a/sys-libs/llvm-libunwind/llvm-libunwind-10.0.1.ebuild +++ b/sys-libs/llvm-libunwind/llvm-libunwind-10.0.1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -16,7 +16,7 @@ llvm.org_set_globals LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="amd64 arm arm64 x86" -IUSE="debug +static-libs test" +IUSE="debug static-libs test" RESTRICT="!test? ( test )" RDEPEND="!sys-libs/libunwind" diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-11.0.0.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-11.0.0.ebuild index 5f0e806022c0..8d86e39b63fb 100644 --- a/sys-libs/llvm-libunwind/llvm-libunwind-11.0.0.ebuild +++ b/sys-libs/llvm-libunwind/llvm-libunwind-11.0.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -16,7 +16,7 @@ llvm.org_set_globals LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="amd64 arm arm64 x86 ~x64-macos" -IUSE="debug +static-libs test" +IUSE="debug static-libs test" RESTRICT="!test? ( test )" RDEPEND="!sys-libs/libunwind" diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-11.0.1.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-11.0.1.ebuild index 7427b7f7c975..0856ae1999ec 100644 --- a/sys-libs/llvm-libunwind/llvm-libunwind-11.0.1.ebuild +++ b/sys-libs/llvm-libunwind/llvm-libunwind-11.0.1.ebuild @@ -13,7 +13,7 @@ HOMEPAGE="https://github.com/llvm-mirror/libunwind" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~x64-macos" -IUSE="debug +static-libs test" +IUSE="debug static-libs test" RESTRICT="!test? ( test )" RDEPEND="!sys-libs/libunwind" diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-11.1.0_rc1.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-11.1.0_rc1.ebuild index 7c1fd0a6d8ef..350dc8c77379 100644 --- a/sys-libs/llvm-libunwind/llvm-libunwind-11.1.0_rc1.ebuild +++ b/sys-libs/llvm-libunwind/llvm-libunwind-11.1.0_rc1.ebuild @@ -13,7 +13,7 @@ HOMEPAGE="https://github.com/llvm-mirror/libunwind" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="" -IUSE="debug +static-libs test" +IUSE="debug static-libs test" RESTRICT="!test? ( test )" RDEPEND="!sys-libs/libunwind" diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-11.1.0_rc2.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-11.1.0_rc2.ebuild index 7c1fd0a6d8ef..350dc8c77379 100644 --- a/sys-libs/llvm-libunwind/llvm-libunwind-11.1.0_rc2.ebuild +++ b/sys-libs/llvm-libunwind/llvm-libunwind-11.1.0_rc2.ebuild @@ -13,7 +13,7 @@ HOMEPAGE="https://github.com/llvm-mirror/libunwind" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="" -IUSE="debug +static-libs test" +IUSE="debug static-libs test" RESTRICT="!test? ( test )" RDEPEND="!sys-libs/libunwind" diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-11.1.0_rc3.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-11.1.0_rc3.ebuild new file mode 100644 index 000000000000..350dc8c77379 --- /dev/null +++ b/sys-libs/llvm-libunwind/llvm-libunwind-11.1.0_rc3.ebuild @@ -0,0 +1,124 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +CMAKE_ECLASS=cmake +PYTHON_COMPAT=( python3_{7..9} ) +inherit cmake-multilib llvm llvm.org python-any-r1 + +DESCRIPTION="C++ runtime stack unwinder from LLVM" +HOMEPAGE="https://github.com/llvm-mirror/libunwind" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="" +IUSE="debug static-libs test" +RESTRICT="!test? ( test )" + +RDEPEND="!sys-libs/libunwind" +# llvm-6 for new lit options +DEPEND=" + >=sys-devel/llvm-6" +BDEPEND=" + test? ( >=sys-devel/clang-3.9.0 + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') + )" + +LLVM_COMPONENTS=( libunwind ) +LLVM_TEST_COMPONENTS=( libcxx{,abi} llvm/cmake ) +llvm.org_set_globals + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +multilib_src_configure() { + local 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) + [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" + + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}" + -DLIBUNWIND_LIBCXX_PATH="${WORKDIR}/libcxx" + ) + fi + + cmake_src_configure +} + +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=OFF + -DLIBCXXABI_ENABLE_STATIC=ONF + -DLIBCXXABI_USE_LLVM_UNWINDER=ON + -DLIBCXXABI_INCLUDE_TESTS=OFF + + -DLIBCXXABI_LIBCXX_INCLUDES="${WORKDIR}"/libcxx/include + -DLIBCXXABI_LIBUNWIND_INCLUDES="${S}"/include + ) + + cmake_src_configure + cmake_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=OFF + -DLIBCXX_ENABLE_STATIC=ON + -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF + -DLIBCXXABI_USE_LLVM_UNWINDER=ON + -DLIBCXX_CXX_ABI=libcxxabi + -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${WORKDIR}"/libcxxabi/include + -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF + -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) + -DLIBCXX_HAS_GCC_S_LIB=OFF + -DLIBCXX_INCLUDE_TESTS=OFF + ) + + cmake_src_configure + cmake_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 + + local -x LIT_PRESERVES_TMP=1 + cmake_build check-unwind +} + +multilib_src_install() { + cmake_src_install + + # install headers like sys-libs/libunwind + doheader "${S}"/include/*.h +} diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-12.0.0.9999.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-12.0.0.9999.ebuild index 0e6da8298540..bf538b66689b 100644 --- a/sys-libs/llvm-libunwind/llvm-libunwind-12.0.0.9999.ebuild +++ b/sys-libs/llvm-libunwind/llvm-libunwind-12.0.0.9999.ebuild @@ -13,7 +13,7 @@ HOMEPAGE="https://github.com/llvm-mirror/libunwind" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="" -IUSE="debug +static-libs test" +IUSE="debug static-libs test" RESTRICT="!test? ( test )" RDEPEND="!sys-libs/libunwind" diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-12.0.0_rc1.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-12.0.0_rc1.ebuild index 0e6da8298540..bf538b66689b 100644 --- a/sys-libs/llvm-libunwind/llvm-libunwind-12.0.0_rc1.ebuild +++ b/sys-libs/llvm-libunwind/llvm-libunwind-12.0.0_rc1.ebuild @@ -13,7 +13,7 @@ HOMEPAGE="https://github.com/llvm-mirror/libunwind" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="" -IUSE="debug +static-libs test" +IUSE="debug static-libs test" RESTRICT="!test? ( test )" RDEPEND="!sys-libs/libunwind" diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-13.0.0.9999.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-13.0.0.9999.ebuild index 0e6da8298540..bf538b66689b 100644 --- a/sys-libs/llvm-libunwind/llvm-libunwind-13.0.0.9999.ebuild +++ b/sys-libs/llvm-libunwind/llvm-libunwind-13.0.0.9999.ebuild @@ -13,7 +13,7 @@ HOMEPAGE="https://github.com/llvm-mirror/libunwind" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="" -IUSE="debug +static-libs test" +IUSE="debug static-libs test" RESTRICT="!test? ( test )" RDEPEND="!sys-libs/libunwind" diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-9.0.1.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-9.0.1.ebuild index b5f6727bbe8b..6f8fa70ec4e7 100644 --- a/sys-libs/llvm-libunwind/llvm-libunwind-9.0.1.ebuild +++ b/sys-libs/llvm-libunwind/llvm-libunwind-9.0.1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -15,7 +15,7 @@ llvm.org_set_globals LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="amd64 arm arm64 x86" -IUSE="debug +static-libs test" +IUSE="debug static-libs test" RESTRICT="!test? ( test )" RDEPEND="!sys-libs/libunwind" diff --git a/sys-libs/ncurses/Manifest b/sys-libs/ncurses/Manifest index 5eb71c007b9c..984654a066b4 100644 --- a/sys-libs/ncurses/Manifest +++ b/sys-libs/ncurses/Manifest @@ -5,6 +5,10 @@ AUX ncurses-6.0-pkg-config.patch 386 BLAKE2B 27a61878d45aa781291e18a2e18b8e861dd 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.2-no_user_ldflags_in_libs.patch 1254 BLAKE2B ccc2cd660bf102b61118f0ca170d079454b47a2eee41f9fb1e2b82dc241233adeb1481221fc25ce15b8c101cab200e5eefffde4ff0fbf102d8acf16fe222c40c SHA512 17e365302c683b7fc59b4ed870738b8ab487b9cc1e074d9629e1963120b6ea69b4c3b47b42c80524630d56e1b27519c6f8451397ae892ad759d1d0f019057418 +AUX ncurses-6.2_p20210123-cppflags-cross.patch 1246 BLAKE2B f2e6d5b3f106639435f1901f0a43aaf9ab1cfcc2c295f13cd51120f13bb09ee4e6863aee3e6036b175479235ba8804622ad1ad4e4f181e9ca7ac67ae98ff13f1 SHA512 89a1471bc1dec666a593819b15d778d061fb370fc9786251b0546535cebf46b7ff61579937e64bf35cd15e4b8493e49c74625fb9686bb003935eef017cf449da +AUX ncurses-6.2_p20210123-no_user_ldflags_in_libs.patch 1262 BLAKE2B 06de969e051fc167729318162500b529a0da243501e33c9cd915f5a853c78445147a6cee22b06e9577fd5821ec0820c05a908933fc9de64b672fdcaf60a74e08 SHA512 09f340e8359ea361e639af7d62f747e59e55b8a186724f6c833dd4a3067046d5b82400069900b7a3b8ca51bdee976e4eb550ad246cd843f85331d331db18e2f0 DIST ncurses-6.2.tar.gz 3425862 BLAKE2B 6680cd7a369a4cb8234442a70869c283f0db6db9d7da1da2a7a5c519eb862a2c9b9411957d99f9ebb5089cad00b42e1ca6bc0784327461113df2eeaec695913c SHA512 4c1333dcc30e858e8a9525d4b9aefb60000cfc727bc4a1062bace06ffc4639ad9f6e54f6bdda0e3a0e5ea14de995f96b52b3327d9ec633608792c99a1e8d840d +DIST ncurses-6.2_p20210123.patch.xz 519076 BLAKE2B 790ca80f0b7cdba2e75e3ace91e7f40a740594bdcb19930f64a5aaad8ba041f9ee6057e0a856050e5ef54f79ffe21f23897477dd186790fce9f8192d6149e8fc SHA512 f0d4ef317157472400f183e9ba65102e342e996c4f1d99924ece72305064c3d8616668bb2c81c6113b4bd145b1589844f8c948e6424d4372939752364bed6141 EBUILD ncurses-6.2-r1.ebuild 10022 BLAKE2B cad77942242cec2929dc0199ada0dc92a42bf4f49eb490b49bcb8db0175d04d403d063de5fa4fb59649b07bc21ada8e72c4b9412329cd9817119cc0a04db7dc4 SHA512 b7693f3b64b11c80a7cab0ff1aee64b1a9f842e7ed682daa75850952c005e7f1b870f173ee78b5883c91f82d9ff42cfb3f45ba4f017a323daedaf7145a69e970 +EBUILD ncurses-6.2_p20210123.ebuild 10136 BLAKE2B 7b63b7a7ba3ac71e6df2f0eb1ed99b621b6463684577a3dd956c7d816434b61e351b6f188225aacc422c4d230d085f4e7e42b6c8c4de3b7c2b95d82eb43b4a97 SHA512 3e6155661224db0e5a3a3e81f257d1c2b2f6477d843b80abd61743aab5fba0f7070fd5c9535507abbf12f1edeb76e9aa82be6f69d332a94869033705e5feeac5 MISC metadata.xml 696 BLAKE2B 00deabf0f9a310870a8080425ee4df0e581c6871565f5f3c42c823f51bb4fabac4a8980e371f2bd142a982b6369527bee184ecb941e5d5f31697a871cd0a8237 SHA512 ff73226dc25e761ad9106768fc7ad0d2c40b6fefd3beced9ba5dfcc31a499220408fb2f2a6fd8aa53bb360398154a3653bf0e0ddb16c4ef4e5e89fe60752b7b5 diff --git a/sys-libs/ncurses/files/ncurses-6.2_p20210123-cppflags-cross.patch b/sys-libs/ncurses/files/ncurses-6.2_p20210123-cppflags-cross.patch new file mode 100644 index 000000000000..1087bf5c9cb7 --- /dev/null +++ b/sys-libs/ncurses/files/ncurses-6.2_p20210123-cppflags-cross.patch @@ -0,0 +1,35 @@ +https://bugs.gentoo.org/601426 +https://lists.gnu.org/archive/html/bug-ncurses/2015-02/msg00012.html + +From: John Vogel +Subject: [PATCH] c++ binding missed when cross compiling +Date: Mon, 16 Feb 2015 01:01:48 -0500 + +The configure script hard codes the include dir to the prefix'ed include dir, +when checking if c++ compiler works. This breaks the compiler's built-in search +path. I've included two patches. The first works on the configure.in file, which +requires your autoconf stuff to test and I'm not ready to meddle with at the +moment. The other works directly on the configure file. I've tested the second +one; it should mirror what the first patch tries to achieve and works for me. + +--- a/configure ++++ b/configure +@@ -3459,10 +3459,6 @@ + echo "$as_me:3459: checking if $CXX works" >&5 + echo $ECHO_N "checking if $CXX works... $ECHO_C" >&6 + +- save_CPPFLAGS="$CPPFLAGS" +- eval cf_includedir=${includedir} +- CPPFLAGS="$CPPFLAGS -I${cf_includedir}" +- + cat >"conftest.$ac_ext" <<_ACEOF + #line 3467 "configure" + #include "confdefs.h" +@@ -3499,7 +3495,6 @@ + cf_cxx_works=no + fi + rm -f "conftest.$ac_objext" "conftest.$ac_ext" +- CPPFLAGS="$save_CPPFLAGS" + + echo "$as_me:3504: result: $cf_cxx_works" >&5 + echo "${ECHO_T}$cf_cxx_works" >&6 diff --git a/sys-libs/ncurses/files/ncurses-6.2_p20210123-no_user_ldflags_in_libs.patch b/sys-libs/ncurses/files/ncurses-6.2_p20210123-no_user_ldflags_in_libs.patch new file mode 100644 index 000000000000..fde03f1d56f4 --- /dev/null +++ b/sys-libs/ncurses/files/ncurses-6.2_p20210123-no_user_ldflags_in_libs.patch @@ -0,0 +1,40 @@ +From 6af3253a91d8844f16924a77349f162060e038fa Mon Sep 17 00:00:00 2001 +From: Lars Wendler +Date: Thu, 13 Feb 2020 11:51:09 +0100 +Subject: [PATCH] Don't bleed user LDFLAGS into Libs + +Signed-off-by: Lars Wendler +--- + misc/gen-pkgconfig.in | 2 +- + misc/ncurses-config.in | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/misc/gen-pkgconfig.in b/misc/gen-pkgconfig.in +index 5a71ab02..9fa2e0a1 100644 +--- a/misc/gen-pkgconfig.in ++++ b/misc/gen-pkgconfig.in +@@ -83,7 +83,7 @@ if [ "$includedir" != "/usr/include" ]; then + fi + + lib_flags= +-for opt in -L$libdir @LDFLAGS@ @EXTRA_PKG_LDFLAGS@ @LIBS@ ++for opt in -L$libdir @LIBS@ + do + case $opt in + -l*) # LIBS is handled specially below +diff --git a/misc/ncurses-config.in b/misc/ncurses-config.in +index eae39a51..a25e2787 100644 +--- a/misc/ncurses-config.in ++++ b/misc/ncurses-config.in +@@ -101,7 +101,7 @@ fi + # There is no portable way to find the list of standard library directories. + # Require a POSIX shell anyway, to keep this simple. + lib_flags= +-for opt in -L$libdir @LDFLAGS@ @EXTRA_PKG_LDFLAGS@ $LIBS ++for opt in -L$libdir $LIBS + do + case $opt in + -specs*) # ignore linker specs-files which were used to build library +-- +2.30.0 + diff --git a/sys-libs/ncurses/ncurses-6.2_p20210123.ebuild b/sys-libs/ncurses/ncurses-6.2_p20210123.ebuild new file mode 100644 index 000000000000..df45a2a66cd4 --- /dev/null +++ b/sys-libs/ncurses/ncurses-6.2_p20210123.ebuild @@ -0,0 +1,327 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit flag-o-matic toolchain-funcs multilib-minimal preserve-libs usr-ldscript + +MY_PV="${PV:0:3}" +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" + +if [[ "${PV}" == *_p* ]] ; then + #SRC_URI+=" ftp://ftp.invisible-island.net/${PN}/${PV/_p*}/${P/_p/-}-patch.sh.bz2 + # https://invisible-mirror.net/archives/${PN}/${PV/_p*}/${P/_p/-}-patch.sh.bz2" + SRC_URI+=" https://dev.gentoo.org/~polynomial-c/dist/${P}.patch.xz" +fi + +LICENSE="MIT" +# The subslot reflects the SONAME. +SLOT="0/6" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="ada +cxx debug doc gpm minimal profile static-libs test threads tinfo trace unicode" +RESTRICT="!test? ( test )" + +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 + !& /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 + --disable-pkg-ldflags + ) + + 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 ! has_version -b "~sys-libs/${P}:0" ; then + # We could possibly merge these two branches but opting to be + # conservative when merging some of the Prefix changes. + + if [[ ${CHOST} == *-cygwin* ]] && ! multilib_is_native_abi ; then + # We make 'tic$(x)' here, for Cygwin having x=".exe". + BUILD_DIR="${WORKDIR}" \ + do_compile cross -C progs all PROGS='tic$(x)' + else + BUILD_DIR="${WORKDIR}" \ + do_compile cross -C progs tic + fi + 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 ... + # -FIXME- + # Ugly hackaround for riscv having two parts libdir (#689240) + # Replace this hack with an official solution once we have one... + # -FIXME- + dosym $(sed 's@[^/]\+@..@g' <<< $(get_libdir))/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/timezone-data/Manifest b/sys-libs/timezone-data/Manifest index 6a2542d6ff55..6703d2d5a4df 100644 --- a/sys-libs/timezone-data/Manifest +++ b/sys-libs/timezone-data/Manifest @@ -1,13 +1,10 @@ -DIST tzcode2020d.tar.gz 260182 BLAKE2B ddf00c3a87b09de52f9ebb8ce8141ca22c2cec5340a476df041fdbfa5899af4c78cfa63d733e33e63b7efa3f37541eacc0bd4b240bcbcaa8708ee9c13cf582fa SHA512 315ce86574780d89482761298137b2871a21cb4391886abdc9f29c6cc09e8b8f6585f96d3f4dfef8d7b54e24720214f5c77144114ad58cc91aa5bbde350c0f9b DIST tzcode2020e.tar.gz 262357 BLAKE2B 962ae8481a7e38b1876cdafd1c5688ab0a98bcf99a36b39b170dd08e032462a7e778f1922428c083e4ef71b0f4054f199cfdd23a7d3412b40f461c8f67782173 SHA512 37656ee4400f6e7ac8b3d4b515ea2ae940de05e8a95873112a4ec08afc11227214f269e4ef1bedb0389497958dd07a6d4721191e441920bc45c235b029a8a885 DIST tzcode2020f.tar.gz 262454 BLAKE2B e555f4c59e11e2b091fa48fad4a74ff1577d9f1204c5cc9733a0263a4e1e1d769a548e721e29656cfd187f625d9fdc957f14dbf22b248e6d459e610ba4848101 SHA512 5f6bf1b508434842eb9dacacc744b5f3375c35b88e401ef372b5fde80ad2f523484fe52a6e99460e402230406ebf6a9261a97efde45a610f8e8085893d55c4ed DIST tzcode2021a.tar.gz 262204 BLAKE2B 4072685f2344602ffcfe32a7bf92d3b0d93e38ffca842f1c07a60db5e26f1f18ab32fc7b5f155b0bdab49f8d0bfcd5b58f4a192b4d06d7d9639893e5cb596328 SHA512 bf1d53bcbfecd3b09d57a9e6d3cb49b5dc5f8e1b6674b67e7f974e1a268c2aaf13ca89a7ef12f49d0665aff782bd72685e00c22a41ca88a028da0429f972fd45 -DIST tzdata2020d.tar.gz 401479 BLAKE2B 0136bf157e9a97fba56a02a2a495be19cc9b2008c6106eb9d4f4af13cb24848bd72e7e9c0182ca4643819a95ecfdff8750ff199bb2d1f9a560b4cd6685b41e50 SHA512 362e4569a666b0776614be3f63f1fe3d5ae259055e7051c9875f36023db9c52b0c5a10c19067114443a4cf2bf92475f8a0aebdf79bac836d967527fcdea4e9b6 DIST tzdata2020e.tar.gz 411619 BLAKE2B 64eb26fefa4579b731cdf0589da4be0e17587f34a56994cc26bbd4f3a1f073ef48eddd9359d2e9cc123896267388eb66f5b526189115454916c7dd64a6d62ad0 SHA512 1e64b5c91b9e56923cf8e3e079781c59c8afb6c379b38b9b91ef493929814d50c29a6368cfcf77db08a7af3b6876387bac5617f64ac965a5bddab436d17862c4 DIST tzdata2020f.tar.gz 411739 BLAKE2B 703a8c899e76d2e8f6660dc077a92988dd69ae332daca5246cde9a4972688ba0244badd735ab3bc7537b00d44af151d95ee8bfe216028825577cdd953d455767 SHA512 dd312def18c807452fda2e697514e2064c5f51ebdbedd0cfe6f231252c76ee5d4409f653b295ed5657b7d30b868690047fdb70a10942e69eaa40b77473e3f9ca DIST tzdata2021a.tar.gz 411892 BLAKE2B b8d177e90e22bd8a3fd23c9a9c19896cb245efd8e768b59ab8c63e56ab141e67331f3231e3a7c802f844375049cfd902e14e912ce677b3aea38fc0d968905e87 SHA512 7cdd762ec90ce12a30fa36b1d66d1ea82d9fa21e514e2b9c7fcbe2541514ee0fadf30843ff352c65512fb270857b51d1517b45e1232b89c6f954ba9ff1833bb3 -EBUILD timezone-data-2020d.ebuild 5380 BLAKE2B 2f058ece71e2feb8e3db2ad1d09822ec3e32befa081331a2172f451fd84c8674a572aa5433d93294003701bbf94e6bc7d9b8a66d169b5d9f8580b1c9b801ad7b SHA512 a7beca84f4b2d34d602dc68a7a73b0ff64d35e8af4df415e7cbae135bc219d77ab38b62e216c01dbacefb978f7328d9e56a7c68bcec7d5d69950013caf55d6d8 -EBUILD timezone-data-2020e.ebuild 5382 BLAKE2B 2aef8cf96735bc10645de445c5088aebd8fc54bc37bdc6e1e6c554e4026d714229bbe5071dae7c65c074a996b425ce249176d720835bd3dd88116486b5f9e2a8 SHA512 f729026834bc9c1030e45e71e9cb30310e36f025918455512616eabb04351ab2360a8cadb61ba676cd441c0f83553248c6cdfc40125e6f3b474e5d0a0a48f8ed -EBUILD timezone-data-2020f.ebuild 5389 BLAKE2B 24b380342dd1de1943c96608762177926595954e4ad683f92b1b9fd6f77d65aec5f27aa97202c4e819e0ea77b0fc4187c2ac8f12dd6cd44f49d7e254d8be8b6a SHA512 734817e9fd7f2ef4429b314e41b25853d9d024f3a502ec6f6ef2c0c0067311a3db1fecd29fcbc1428a1af3e07fd854c76b3ed3162cad3c90b384cf89828debec +EBUILD timezone-data-2020e.ebuild 5380 BLAKE2B 2f058ece71e2feb8e3db2ad1d09822ec3e32befa081331a2172f451fd84c8674a572aa5433d93294003701bbf94e6bc7d9b8a66d169b5d9f8580b1c9b801ad7b SHA512 a7beca84f4b2d34d602dc68a7a73b0ff64d35e8af4df415e7cbae135bc219d77ab38b62e216c01dbacefb978f7328d9e56a7c68bcec7d5d69950013caf55d6d8 +EBUILD timezone-data-2020f.ebuild 5382 BLAKE2B b1a8b15714daf5ec6828d4c365da14e2e0ed77084ef64ba4582601d5439d55aece59f70e4ce7d6088c41b70996a2fee0278439a7c53b3566c3731c9008db21fe SHA512 d2ff0f2ec525013eb6d5d886c60bf5f3bfb10223d1f70fabf5c8b839e9cbc6df69b8545d4e49ffa9461ed5a202bf5059b57be02ae1dc6ddf32e2923a0e206b19 EBUILD timezone-data-2021a.ebuild 5389 BLAKE2B 24b380342dd1de1943c96608762177926595954e4ad683f92b1b9fd6f77d65aec5f27aa97202c4e819e0ea77b0fc4187c2ac8f12dd6cd44f49d7e254d8be8b6a SHA512 734817e9fd7f2ef4429b314e41b25853d9d024f3a502ec6f6ef2c0c0067311a3db1fecd29fcbc1428a1af3e07fd854c76b3ed3162cad3c90b384cf89828debec MISC metadata.xml 728 BLAKE2B b390f4f3d184c7f424d97a36883c9ab67f56a2445d6ecfe6deca69d42864b1249fa2fec6a48bf693f9b2101c167597e5a435cf13a8797784e8f37ad870bf3daf SHA512 36e2c2fa026441ae4b21d33b9425a7195c4d4d404e8f010e9bf894be3095b0d461079a87126f22c398475652777301aa5dcf151b195502d25b4094420c56c7e4 diff --git a/sys-libs/timezone-data/timezone-data-2020d.ebuild b/sys-libs/timezone-data/timezone-data-2020d.ebuild deleted file mode 100644 index 52f5fbdca3bd..000000000000 --- a/sys-libs/timezone-data/timezone-data-2020d.ebuild +++ /dev/null @@ -1,183 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -inherit toolchain-funcs flag-o-matic - -code_ver=${PV} -data_ver=${PV} -DESCRIPTION="Timezone data (/usr/share/zoneinfo) and utilities (tzselect/zic/zdump)" -HOMEPAGE="https://www.iana.org/time-zones" -SRC_URI="https://www.iana.org/time-zones/repository/releases/tzdata${data_ver}.tar.gz - https://www.iana.org/time-zones/repository/releases/tzcode${code_ver}.tar.gz" - -LICENSE="BSD public-domain" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" -IUSE="nls leaps-timezone elibc_FreeBSD zic-slim" - -DEPEND="nls? ( virtual/libintl )" -RDEPEND="${DEPEND} - !sys-libs/glibc[vanilla(+)]" - -S=${WORKDIR} - -src_prepare() { - default - - # check_web contacts validator.w3.org - sed -i -e 's/check_tables check_web/check_tables/g' \ - Makefile || die "Failed to disable check_web" - - tc-is-cross-compiler && cp -pR "${S}" "${S}"-native -} - -src_configure() { - tc-export CC - - append-lfs-flags #471102 - - if use elibc_FreeBSD || use elibc_Darwin ; then - append-cppflags -DSTD_INSPIRED #138251 - fi - - append-cppflags -DHAVE_GETTEXT=$(usex nls 1 0) -DTZ_DOMAIN='\"libc\"' - - # Upstream default is 'slim', but it breaks quite a few programs - # that parse /etc/localtime directly: bug# 747538. - append-cppflags -DZIC_BLOAT_DEFAULT='\"'$(usex zic-slim slim fat)'\"' - - LDLIBS="" - if use nls ; then - # See if an external libintl is available. #154181 #578424 - local c="${T}/test" - echo 'main(){}' > "${c}.c" - if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} ${LDFLAGS} "${c}.c" -o "${c}" -lintl 2>/dev/null ; then - LDLIBS+=" -lintl" - fi - fi -} - -_emake() { - emake \ - REDO=$(usex leaps-timezone posix_right posix_only) \ - TZDATA_TEXT= \ - TOPDIR="${EPREFIX}" \ - ZICDIR='$(TOPDIR)/usr/bin' \ - "$@" -} - -src_compile() { - _emake \ - AR="$(tc-getAR)" \ - cc="$(tc-getCC)" \ - RANLIB="$(tc-getRANLIB)" \ - CFLAGS="${CFLAGS} -std=gnu99 ${CPPFLAGS}" \ - LDFLAGS="${LDFLAGS}" \ - LDLIBS="${LDLIBS}" - if tc-is-cross-compiler ; then - _emake -C "${S}"-native \ - AR="$(tc-getBUILD_AR)" \ - cc="$(tc-getBUILD_CC)" \ - RANLIB="$(tc-getBUILD_RANLIB)" \ - CFLAGS="${BUILD_CFLAGS} ${BUILD_CPPFLAGS}" \ - LDFLAGS="${BUILD_LDFLAGS}" \ - LDLIBS="${LDLIBS}" \ - zic - fi -} - -src_test() { - # VALIDATE_ENV is used for extended/web based tests. Punt on them. - emake check VALIDATE_ENV=true -} - -src_install() { - local zic="" - tc-is-cross-compiler && zic="zic=${S}-native/zic" - _emake install ${zic} DESTDIR="${D}" LIBDIR="/nukeit" - rm -rf "${D}/nukeit" "${ED}/etc" || die - - insinto /usr/share/zoneinfo - doins "${S}"/leap-seconds.list - - # Delete man pages installed by man-pages package. - rm "${ED}"/usr/share/man/man5/tzfile.5* "${ED}"/usr/share/man/man8/{tzselect,zdump,zic}.8 || die - dodoc CONTRIBUTING README NEWS *.html -} - -get_TIMEZONE() { - local tz src="${EROOT}/etc/timezone" - if [[ -e ${src} ]] ; then - tz=$(sed -e 's:#.*::' -e 's:[[:space:]]*::g' -e '/^$/d' "${src}") - else - tz="FOOKABLOIE" - fi - [[ -z ${tz} ]] && return 1 || echo "${tz}" -} - -pkg_preinst() { - local tz=$(get_TIMEZONE) - if [[ ${tz} == right/* || ${tz} == posix/* ]] ; then - eerror "The right & posix subdirs are no longer installed as subdirs -- they have been" - eerror "relocated to match upstream paths as sibling paths. Further, posix/xxx is the" - eerror "same as xxx, so you should simply drop the posix/ prefix. You also should not" - eerror "be using right/xxx for the system timezone as it breaks programs." - die "Please fix your timezone setting" - fi - - # Trim the symlink by hand to avoid portage's automatic protection checks. - rm -f "${EROOT}"/usr/share/zoneinfo/posix - - if has_version "<=${CATEGORY}/${PN}-2015c" ; then - elog "Support for accessing posix/ and right/ directly has been dropped to match" - elog "upstream. There is no need to set TZ=posix/xxx as it is the same as TZ=xxx." - elog "For TZ=right/, you can use TZ=../zoneinfo-leaps/xxx instead. See this post" - elog "for details: https://mm.icann.org/pipermail/tz/2015-February/022024.html" - fi -} - -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" - - # 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 - einfo "Assuming your ${etc_lt} symlink is what you want; skipping update." - return 0 - fi - - if ! tz=$(get_TIMEZONE) ; then - einfo "Assuming your empty ${etc_lt} file is what you want; skipping update." - return 0 - fi - if [[ "${tz}" == "FOOKABLOIE" ]] ; then - elog "You do not have TIMEZONE set in ${src}." - - if [[ ! -e "${etc_lt}" ]] ; then - cp -f "${EROOT}"/usr/share/zoneinfo/Factory "${etc_lt}" - elog "Setting ${etc_lt} to Factory." - else - elog "Skipping auto-update of ${etc_lt}." - fi - return 0 - fi - - 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}" -} - -pkg_config() { - configure_tz_data -} - -pkg_postinst() { - configure_tz_data -} diff --git a/sys-libs/timezone-data/timezone-data-2020e.ebuild b/sys-libs/timezone-data/timezone-data-2020e.ebuild index e7aa51171b81..52f5fbdca3bd 100644 --- a/sys-libs/timezone-data/timezone-data-2020e.ebuild +++ b/sys-libs/timezone-data/timezone-data-2020e.ebuild @@ -14,7 +14,7 @@ SRC_URI="https://www.iana.org/time-zones/repository/releases/tzdata${data_ver}.t LICENSE="BSD public-domain" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ~ppc ppc64 ~riscv s390 sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" IUSE="nls leaps-timezone elibc_FreeBSD zic-slim" DEPEND="nls? ( virtual/libintl )" diff --git a/sys-libs/timezone-data/timezone-data-2020f.ebuild b/sys-libs/timezone-data/timezone-data-2020f.ebuild index 7830674ddfa9..578dc3b56702 100644 --- a/sys-libs/timezone-data/timezone-data-2020f.ebuild +++ b/sys-libs/timezone-data/timezone-data-2020f.ebuild @@ -14,7 +14,7 @@ SRC_URI="https://www.iana.org/time-zones/repository/releases/tzdata${data_ver}.t LICENSE="BSD public-domain" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +KEYWORDS="~alpha amd64 ~arm ~arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" IUSE="nls leaps-timezone elibc_FreeBSD zic-slim" DEPEND="nls? ( virtual/libintl )" -- cgit v1.2.3