From 752d6256e5204b958b0ef7905675a940b5e9172f Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Thu, 12 May 2022 16:42:50 +0300 Subject: gentoo resync : 12.05.2022 --- sys-libs/Manifest.gz | Bin 14395 -> 14417 bytes sys-libs/binutils-libs/Manifest | 2 + .../binutils-libs/binutils-libs-2.38-r2.ebuild | 144 ++ sys-libs/compiler-rt-sanitizers/Manifest | 21 +- .../compiler-rt-sanitizers-11.1.0-r1.ebuild | 204 --- .../compiler-rt-sanitizers-13.0.0-r1.ebuild | 207 --- .../compiler-rt-sanitizers-13.0.0.ebuild | 207 --- .../compiler-rt-sanitizers-13.0.1.ebuild | 2 +- .../compiler-rt-sanitizers-14.0.0.ebuild | 215 --- .../compiler-rt-sanitizers-14.0.1.ebuild | 2 +- .../compiler-rt-sanitizers-14.0.3.ebuild | 221 +++ .../compiler-rt-sanitizers-15.0.0.9999.ebuild | 18 +- sys-libs/compiler-rt/Manifest | 19 +- sys-libs/compiler-rt/compiler-rt-11.1.0.ebuild | 123 -- sys-libs/compiler-rt/compiler-rt-13.0.0.ebuild | 130 -- sys-libs/compiler-rt/compiler-rt-13.0.1.ebuild | 2 +- sys-libs/compiler-rt/compiler-rt-14.0.0.ebuild | 137 -- sys-libs/compiler-rt/compiler-rt-14.0.1.ebuild | 2 +- sys-libs/compiler-rt/compiler-rt-14.0.3.ebuild | 139 ++ .../compiler-rt/compiler-rt-15.0.0.9999.ebuild | 10 +- sys-libs/cracklib/Manifest | 2 +- sys-libs/cracklib/cracklib-2.9.7.ebuild | 4 +- sys-libs/db/Manifest | 4 +- sys-libs/db/db-5.3.28-r8.ebuild | 2 + sys-libs/db/db-6.0.35-r4.ebuild | 2 +- sys-libs/gdbm/Manifest | 2 +- sys-libs/gdbm/gdbm-1.23.ebuild | 12 +- sys-libs/glibc/Manifest | 17 +- sys-libs/glibc/glibc-2.34-r10.ebuild | 2 +- sys-libs/glibc/glibc-2.34-r12.ebuild | 1617 ++++++++++++++++++++ sys-libs/glibc/glibc-2.34-r13.ebuild | 1617 ++++++++++++++++++++ sys-libs/glibc/glibc-2.35-r1.ebuild | 1582 ------------------- sys-libs/glibc/glibc-2.35-r2.ebuild | 1593 ------------------- sys-libs/glibc/glibc-2.35-r3.ebuild | 1601 +++++++++++++++++++ sys-libs/glibc/glibc-2.35-r4.ebuild | 1596 +++++++++++++++++++ sys-libs/glibc/glibc-9999.ebuild | 5 - sys-libs/glibc/metadata.xml | 1 + sys-libs/gpm/Manifest | 2 +- sys-libs/gpm/gpm-1.20.7-r4.ebuild | 2 +- sys-libs/kpmcore/Manifest | 8 +- .../kpmcore-21.08.3-dont-destroy-zfs-pool.patch | 46 - ....08.3-fix-seek-error-when-shred-partition.patch | 27 - sys-libs/kpmcore/kpmcore-21.08.3-r1.ebuild | 39 - sys-libs/kpmcore/kpmcore-21.12.3.ebuild | 2 +- sys-libs/kpmcore/kpmcore-22.04.0.ebuild | 34 + sys-libs/ldb/Manifest | 6 +- sys-libs/ldb/ldb-2.3.1-r1.ebuild | 120 -- sys-libs/ldb/ldb-2.3.3.ebuild | 120 ++ sys-libs/ldb/ldb-2.4.0-r2.ebuild | 120 -- sys-libs/libaal/Manifest | 2 +- sys-libs/libaal/libaal-1.0.7-r2.ebuild | 4 +- sys-libs/libblockdev/Manifest | 8 +- sys-libs/libblockdev/libblockdev-2.25.ebuild | 119 -- sys-libs/libblockdev/libblockdev-2.26.ebuild | 6 +- sys-libs/libblockdev/libblockdev-9999.ebuild | 17 +- sys-libs/libblockdev/metadata.xml | 1 + sys-libs/libcap-ng/Manifest | 2 +- sys-libs/libcap-ng/libcap-ng-0.8.3.ebuild | 2 +- sys-libs/libcap/Manifest | 4 +- sys-libs/libcap/libcap-2.64.ebuild | 2 +- sys-libs/libcap/libcap-9999.ebuild | 4 +- sys-libs/libcxx/Manifest | 19 +- sys-libs/libcxx/libcxx-11.1.0.ebuild | 211 --- sys-libs/libcxx/libcxx-13.0.0.ebuild | 214 --- sys-libs/libcxx/libcxx-13.0.1.ebuild | 2 +- sys-libs/libcxx/libcxx-14.0.0.ebuild | 220 --- sys-libs/libcxx/libcxx-14.0.1.ebuild | 2 +- sys-libs/libcxx/libcxx-14.0.3.ebuild | 228 +++ sys-libs/libcxx/libcxx-15.0.0.9999.ebuild | 24 +- sys-libs/libcxxabi/Manifest | 12 +- sys-libs/libcxxabi/libcxxabi-11.1.0.ebuild | 123 -- sys-libs/libcxxabi/libcxxabi-13.0.0.ebuild | 125 -- sys-libs/libcxxabi/libcxxabi-13.0.1.ebuild | 2 +- sys-libs/libcxxabi/libcxxabi-14.0.0.ebuild | 124 -- sys-libs/libcxxabi/libcxxabi-14.0.3.ebuild | 130 ++ sys-libs/libcxxabi/libcxxabi-15.0.0.9999.ebuild | 18 +- sys-libs/libhugetlbfs/Manifest | 2 +- sys-libs/libhugetlbfs/libhugetlbfs-2.23.ebuild | 24 +- sys-libs/libomp/Manifest | 13 +- sys-libs/libomp/libomp-11.1.0.ebuild | 105 -- sys-libs/libomp/libomp-13.0.0-r2.ebuild | 131 -- sys-libs/libomp/libomp-13.0.1.ebuild | 2 +- sys-libs/libomp/libomp-14.0.0.ebuild | 134 -- sys-libs/libomp/libomp-14.0.3.ebuild | 142 ++ sys-libs/libomp/libomp-15.0.0.9999.ebuild | 26 +- sys-libs/libseccomp/Manifest | 10 +- sys-libs/libseccomp/libseccomp-2.5.1.ebuild | 84 - sys-libs/libseccomp/libseccomp-2.5.2.ebuild | 90 -- sys-libs/libseccomp/libseccomp-2.5.4.ebuild | 110 ++ sys-libs/libseccomp/libseccomp-9999.ebuild | 29 +- sys-libs/libseccomp/metadata.xml | 3 + sys-libs/libsmbios/Manifest | 2 +- sys-libs/libsmbios/libsmbios-2.4.3.ebuild | 4 +- sys-libs/libstdc++-v3/Manifest | 2 - sys-libs/libstdc++-v3/libstdc++-v3-3.3.6-r3.ebuild | 201 --- sys-libs/libucontext/Manifest | 2 + sys-libs/libucontext/libucontext-1.2.ebuild | 69 + sys-libs/libunwind/Manifest | 9 +- .../files/libunwind-1.2-coredump-regs.patch | 16 - .../files/libunwind-1.2-ia64-missing.patch | 93 -- .../files/libunwind-1.2-ia64-ptrace-coredump.patch | 34 - ....2.1-only-include-execinfo_h-if-avaliable.patch | 53 - sys-libs/libunwind/files/libunwind-1.5.0-x32.patch | 17 - sys-libs/libunwind/libunwind-1.5.0-r1.ebuild | 108 -- sys-libs/libunwind/libunwind-1.6.2.ebuild | 4 +- sys-libs/libutempter/Manifest | 2 +- sys-libs/libutempter/libutempter-1.2.1.ebuild | 2 +- sys-libs/libxcrypt/Manifest | 6 +- sys-libs/libxcrypt/libxcrypt-4.4.25-r1.ebuild | 225 --- sys-libs/libxcrypt/libxcrypt-4.4.26-r1.ebuild | 225 --- sys-libs/libxcrypt/libxcrypt-4.4.28.ebuild | 72 +- sys-libs/llvm-libunwind/Manifest | 14 +- .../llvm-libunwind/llvm-libunwind-11.1.0.ebuild | 124 -- .../llvm-libunwind/llvm-libunwind-13.0.0.ebuild | 142 -- .../llvm-libunwind/llvm-libunwind-13.0.1.ebuild | 2 +- .../llvm-libunwind/llvm-libunwind-14.0.0.ebuild | 116 -- .../llvm-libunwind/llvm-libunwind-14.0.1.ebuild | 2 +- .../llvm-libunwind/llvm-libunwind-14.0.3.ebuild | 122 ++ .../llvm-libunwind-15.0.0.9999.ebuild | 16 +- sys-libs/mtdev/Manifest | 2 +- sys-libs/mtdev/mtdev-1.1.6.ebuild | 2 +- sys-libs/musl/Manifest | 13 +- sys-libs/musl/files/ldconfig.in | 144 -- sys-libs/musl/files/ldconfig.in-r1 | 155 -- sys-libs/musl/musl-1.2.2-r3.ebuild | 151 -- sys-libs/musl/musl-1.2.2-r4.ebuild | 167 -- sys-libs/musl/musl-1.2.2-r6.ebuild | 167 -- sys-libs/musl/musl-1.2.2-r7.ebuild | 2 +- sys-libs/musl/musl-1.2.2-r8.ebuild | 2 +- sys-libs/musl/musl-1.2.3.ebuild | 2 +- sys-libs/musl/musl-9999.ebuild | 2 +- sys-libs/ncurses/Manifest | 56 +- sys-libs/ncurses/ncurses-6.3_p20211106.ebuild | 4 +- sys-libs/ncurses/ncurses-6.3_p20220423-r1.ebuild | 395 +++++ sys-libs/ncurses/ncurses-6.3_p20220423.ebuild | 393 +++++ sys-libs/obstack-standalone/Manifest | 2 + .../obstack-standalone-1.2.3.ebuild | 36 + sys-libs/pam/Manifest | 2 +- sys-libs/pam/pam-1.5.2-r1.ebuild | 2 +- sys-libs/pam_wrapper/Manifest | 2 +- sys-libs/pam_wrapper/pam_wrapper-1.1.3-r3.ebuild | 4 +- sys-libs/readline/Manifest | 5 +- sys-libs/readline/readline-8.1_p2.ebuild | 2 +- sys-libs/readline/readline-8.2_beta.ebuild | 49 +- sys-libs/readline/readline-9999.ebuild | 224 +++ sys-libs/slang/Manifest | 2 +- sys-libs/slang/slang-2.3.2.ebuild | 4 +- sys-libs/tevent/Manifest | 2 + sys-libs/tevent/tevent-0.12.0.ebuild | 78 + sys-libs/timezone-data/Manifest | 2 +- sys-libs/timezone-data/timezone-data-2022a.ebuild | 2 +- sys-libs/zlib/Manifest | 3 +- sys-libs/zlib/zlib-1.2.12-r1.ebuild | 188 --- sys-libs/zlib/zlib-1.2.12-r2.ebuild | 2 +- 154 files changed, 9421 insertions(+), 9051 deletions(-) create mode 100644 sys-libs/binutils-libs/binutils-libs-2.38-r2.ebuild delete mode 100644 sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-11.1.0-r1.ebuild delete mode 100644 sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.0-r1.ebuild delete mode 100644 sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.0.ebuild delete mode 100644 sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-14.0.0.ebuild create mode 100644 sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-14.0.3.ebuild delete mode 100644 sys-libs/compiler-rt/compiler-rt-11.1.0.ebuild delete mode 100644 sys-libs/compiler-rt/compiler-rt-13.0.0.ebuild delete mode 100644 sys-libs/compiler-rt/compiler-rt-14.0.0.ebuild create mode 100644 sys-libs/compiler-rt/compiler-rt-14.0.3.ebuild create mode 100644 sys-libs/glibc/glibc-2.34-r12.ebuild create mode 100644 sys-libs/glibc/glibc-2.34-r13.ebuild delete mode 100644 sys-libs/glibc/glibc-2.35-r1.ebuild delete mode 100644 sys-libs/glibc/glibc-2.35-r2.ebuild create mode 100644 sys-libs/glibc/glibc-2.35-r3.ebuild create mode 100644 sys-libs/glibc/glibc-2.35-r4.ebuild delete mode 100644 sys-libs/kpmcore/files/kpmcore-21.08.3-dont-destroy-zfs-pool.patch delete mode 100644 sys-libs/kpmcore/files/kpmcore-21.08.3-fix-seek-error-when-shred-partition.patch delete mode 100644 sys-libs/kpmcore/kpmcore-21.08.3-r1.ebuild create mode 100644 sys-libs/kpmcore/kpmcore-22.04.0.ebuild delete mode 100644 sys-libs/ldb/ldb-2.3.1-r1.ebuild create mode 100644 sys-libs/ldb/ldb-2.3.3.ebuild delete mode 100644 sys-libs/ldb/ldb-2.4.0-r2.ebuild delete mode 100644 sys-libs/libblockdev/libblockdev-2.25.ebuild delete mode 100644 sys-libs/libcxx/libcxx-11.1.0.ebuild delete mode 100644 sys-libs/libcxx/libcxx-13.0.0.ebuild delete mode 100644 sys-libs/libcxx/libcxx-14.0.0.ebuild create mode 100644 sys-libs/libcxx/libcxx-14.0.3.ebuild delete mode 100644 sys-libs/libcxxabi/libcxxabi-11.1.0.ebuild delete mode 100644 sys-libs/libcxxabi/libcxxabi-13.0.0.ebuild delete mode 100644 sys-libs/libcxxabi/libcxxabi-14.0.0.ebuild create mode 100644 sys-libs/libcxxabi/libcxxabi-14.0.3.ebuild delete mode 100644 sys-libs/libomp/libomp-11.1.0.ebuild delete mode 100644 sys-libs/libomp/libomp-13.0.0-r2.ebuild delete mode 100644 sys-libs/libomp/libomp-14.0.0.ebuild create mode 100644 sys-libs/libomp/libomp-14.0.3.ebuild delete mode 100644 sys-libs/libseccomp/libseccomp-2.5.1.ebuild delete mode 100644 sys-libs/libseccomp/libseccomp-2.5.2.ebuild create mode 100644 sys-libs/libseccomp/libseccomp-2.5.4.ebuild delete mode 100644 sys-libs/libstdc++-v3/libstdc++-v3-3.3.6-r3.ebuild create mode 100644 sys-libs/libucontext/libucontext-1.2.ebuild delete mode 100644 sys-libs/libunwind/files/libunwind-1.2-coredump-regs.patch delete mode 100644 sys-libs/libunwind/files/libunwind-1.2-ia64-missing.patch delete mode 100644 sys-libs/libunwind/files/libunwind-1.2-ia64-ptrace-coredump.patch delete mode 100644 sys-libs/libunwind/files/libunwind-1.2.1-only-include-execinfo_h-if-avaliable.patch delete mode 100644 sys-libs/libunwind/files/libunwind-1.5.0-x32.patch delete mode 100644 sys-libs/libunwind/libunwind-1.5.0-r1.ebuild delete mode 100644 sys-libs/libxcrypt/libxcrypt-4.4.25-r1.ebuild delete mode 100644 sys-libs/libxcrypt/libxcrypt-4.4.26-r1.ebuild delete mode 100644 sys-libs/llvm-libunwind/llvm-libunwind-11.1.0.ebuild delete mode 100644 sys-libs/llvm-libunwind/llvm-libunwind-13.0.0.ebuild delete mode 100644 sys-libs/llvm-libunwind/llvm-libunwind-14.0.0.ebuild create mode 100644 sys-libs/llvm-libunwind/llvm-libunwind-14.0.3.ebuild delete mode 100644 sys-libs/musl/files/ldconfig.in delete mode 100644 sys-libs/musl/files/ldconfig.in-r1 delete mode 100644 sys-libs/musl/musl-1.2.2-r3.ebuild delete mode 100644 sys-libs/musl/musl-1.2.2-r4.ebuild delete mode 100644 sys-libs/musl/musl-1.2.2-r6.ebuild create mode 100644 sys-libs/ncurses/ncurses-6.3_p20220423-r1.ebuild create mode 100644 sys-libs/ncurses/ncurses-6.3_p20220423.ebuild create mode 100644 sys-libs/obstack-standalone/obstack-standalone-1.2.3.ebuild create mode 100644 sys-libs/readline/readline-9999.ebuild create mode 100644 sys-libs/tevent/tevent-0.12.0.ebuild delete mode 100644 sys-libs/zlib/zlib-1.2.12-r1.ebuild (limited to 'sys-libs') diff --git a/sys-libs/Manifest.gz b/sys-libs/Manifest.gz index b0e1675ff036..8444b17b18bf 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 7b52cf85a085..82bdebfb0d87 100644 --- a/sys-libs/binutils-libs/Manifest +++ b/sys-libs/binutils-libs/Manifest @@ -8,10 +8,12 @@ DIST binutils-2.36.1.tar.xz 22772248 BLAKE2B 03fbfbedd6dba2beaa836b1ed254eddd7a5 DIST binutils-2.37_p1-patches-2.tar.xz 31956 BLAKE2B 39c48628d0e2d7f3a8cf11be391b51dc64c7a534a3e64950fd992907c34fa36bebdf95cc5a184dd5b35e134e0c20376b5883abbf96ae57403c55377e615a6790 SHA512 c927aafa8c87e3b68ad28da5a17edf5647591ec26feeb56c743bc6637ffb10832b50ec6fd8442e80e40628b624e31b2f0f0b5f1193e77dc7e5442df0cb8cc8f1 DIST binutils-2.37_p1.tar.xz 22992196 BLAKE2B a8aa0f386d03a5b1466166ac7c40989c228351ccf0949a9b462b4d4615d70ab7e1a45351299140a42baf39c317b8007733c253eb547ee1dfadb612addde11621 SHA512 46c297ec2a7a5b81d1c6e3f16486a6dc2860a07520fe2dd8871d1eb5160065bbe2cc6b0415d5352bf12284133e5817a4e429e6077182d615e969bd1a8f52ed28 DIST binutils-2.38-patches-3.tar.xz 189068 BLAKE2B 5b14c90ab7dba253e92ad57b3a702fcbf48739dd0121ce8f739d88331da820ce44c35e16ac4bee394525c3a46bce980e9e1bbf4cbc9ce8a14fc324bc8fa059e7 SHA512 099266a8ef4272fd7f7552071e1892d114ed564a38b700df32e058ed691c6bfcd6f2454f649461f9c36594ea819a35d1e4cd2418609a2407be2a4f8885e500e3 +DIST binutils-2.38-patches-4.tar.xz 193852 BLAKE2B 5a83e20008e58464ed563a6817a367e50684c59d08c47345cc546054269c42463d1651441720f865851e4e182e917df1a095c68e64226e0351b64e975d524096 SHA512 6657e547bb02898632cc45a8f1894be098aa7472b6725b65f95393e621abb127e468b4e50310720bf03f7e8d0a68bc2c47af76fc43aaa8f32b2e4a149c0c6290 DIST binutils-2.38.tar.xz 23651408 BLAKE2B 19ede396ec97b88e632aded2f69f4684cc5053109e06c3c4a1934944e3f0ceaa9e4a2604528a440189771f778cb5d75edd510163970eeea31afba87fa256feba SHA512 8bf0b0d193c9c010e0518ee2b2e5a830898af206510992483b427477ed178396cd210235e85fd7bd99a96fc6d5eedbeccbd48317a10f752b7336ada8b2bb826d EBUILD binutils-libs-2.34-r2.ebuild 3678 BLAKE2B 2ecd619f2dd9968a11a3c8c2cf8f65d30d7191163bc6fd5ae1fc7d6dfad4bb30b061e5029fc7d2a23c1b7d0a4ca142532b8175b593d9d0ac408338c39cc02e60 SHA512 3ae489fa333ea206ce758f102a56ebbde7a59fa817720503eb1287c4d1d156598cbe7bc78beb2f0ab85f6f60c32f753d4c66cb0428dcbeb13d873407a4c86335 EBUILD binutils-libs-2.35.2.ebuild 4100 BLAKE2B 521acb4f160e171efd6500aba598825f50c19b62f77689b208dcca260396aa1a2c769937db49b147a51e7645baa1fd72f13559fa15e5fced7c8bd57088575027 SHA512 628c171049d6fae374538a96ad7cc76463d78e562d16fbd5877ab7b0800b026e9c72f3b346ec2e3e92a9c5836c483e0eec226c5ac2ecc8e71c2c66c6c8c5b844 EBUILD binutils-libs-2.36.1-r2.ebuild 4053 BLAKE2B 1d2c9609ce0fa3aff3222d89ee237ba73d31515bb0032ffd8d6b6a9a04060aec1df32cb727572a0a20b9ba64834dc43c2260f3401703cb711d0d5516e136a3d1 SHA512 e355a34921f4a260f2f61a222365703b1afc103fc993e255801a8c2deec42409ba1aec8a22d734c38a4440c385b29f81eac52c4584431ee54d0cf0cfe611ff6c EBUILD binutils-libs-2.37_p1-r2.ebuild 4126 BLAKE2B 63dcef180b378d47d48f714e095ff2ce98dcd027de0d176c64179fcfe1f48df5f451468fb974176ade21914f4ba731487b91b03223eba11662be17cb3b42c9c1 SHA512 c659774de8238e81669507dfd5b2a565b5deaa8c54fe12ee02f5b3b204a147b2aea5bb9a6707930d0ac3ca10225ce486f294e510402b37c99ee1f6c170c31ecc EBUILD binutils-libs-2.38-r1.ebuild 4530 BLAKE2B 6fbf59602ecd890921c795d31d67559da3e36790d1f2976f25a8cfd4a8c644236870cf03e843c82e6ffdd74ba2386d43ee722c7aa5a421058eabbafa3585bc7d SHA512 42253acb4cd37d34c44af701bdd3c7eeba54409601e55ef5267370ff2cd76574046d32ffbf04921b64104df73ccb0a312a282cc4cc7d1d58cfd8d6d89063b951 +EBUILD binutils-libs-2.38-r2.ebuild 4537 BLAKE2B d614a3575bbe8eb281eae46868e38475fd57e57349ca402a3853955683e86a196d24253d72efa819ed5c7b00b56f072f1cf602d654aeada2e67e047a5543da0d SHA512 b4f9362a4daa410c3141026c6e53b685965b62cf54accfb521d33f1deabb923a44a0d779dd673244cd6c9fe59b946868829af487119e53173d67d5cf7aa6f3bc MISC metadata.xml 612 BLAKE2B ceaafd9fd1421e9f3993e003d0029c92a78054c7a2b90bd78afc05370ad19c931c6a7c150545cfb7d57165168e0fdaf3a00dde1905b328826a91cbc70d9548a8 SHA512 c8d33bb8d1c62c7e95758624ed0febbc9d40e9f141bfd280837b3207bcd771412158d71c0cb5548d60be0b236f6fe103621daf7efa8875191982859b566ffa8d diff --git a/sys-libs/binutils-libs/binutils-libs-2.38-r2.ebuild b/sys-libs/binutils-libs/binutils-libs-2.38-r2.ebuild new file mode 100644 index 000000000000..a48951d19c89 --- /dev/null +++ b/sys-libs/binutils-libs/binutils-libs-2.38-r2.ebuild @@ -0,0 +1,144 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PATCH_VER=4 +PATCH_DEV=dilfridge + +inherit libtool toolchain-funcs multilib-minimal + +MY_PN="binutils" +MY_P="${MY_PN}-${PV}" +PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}} +PATCH_DEV=${PATCH_DEV:-dilfridge} + +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_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%_p?}" +IUSE="64-bit-bfd cet multitarget nls static-libs" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~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%_p?}" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/bfd.h +) + +src_prepare() { + if [[ -n ${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 + + if [[ ${CHOST} == *-darwin* ]] ; then + # somehow libtool/configure is messed up and (custom patch at + # upstream?) and misdetects (basically assumes) nm can be called + # with -B arg -- can't run eautoreconf (fails), so patch up + # manually, this would break any target that needs -B to nm + sed -i -e 's/lt_cv_path_NM="$tmp_nm -B"/lt_cv_path_NM="$tmp_nm"/' \ + libctf/configure || die + fi + + 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/compiler-rt-sanitizers/Manifest b/sys-libs/compiler-rt-sanitizers/Manifest index 971bd4a8f422..3e92711dfcd9 100644 --- a/sys-libs/compiler-rt-sanitizers/Manifest +++ b/sys-libs/compiler-rt-sanitizers/Manifest @@ -1,22 +1,15 @@ -DIST llvm-gentoo-patchset-11.1.0-3.tar.xz 5984 BLAKE2B 89056fb8e82c7a29ae76c643ac631876d51391ffb579324aaf13c7f79e03f6fd8bbcb27d46e57e0f04a702602ebf51c116e82cb092452a1dbc97fb0eb7518f11 SHA512 08aabe8836b62ecfde4e264d567169ba495d5b5915b56aba35ae86992387e534bba6d512fde94056e641abe909b478e47edcbdaa3ee0b94182ecd68c98201441 DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249 -DIST llvm-gentoo-patchset-13.0.0-r3.tar.xz 10176 BLAKE2B fc5825a4bd3b85bd9c970901e5e036cc4c928373495a8a6f63c7f4531c7f52575d06f80dfbd80671d9f0fcd32d5c48d96f5961602b024c7a936362aeba8a612a SHA512 2289eef3f6301ade2e1110ebc4b66ad3db91ed10868ca7296a29c55667007e06739b01f38c0783bb2c56deadfb8a04605c370df9c5a4c6bc9aea9382e6ed52a5 -DIST llvm-gentoo-patchset-13.0.0.tar.xz 5012 BLAKE2B 6760c78c086aaf6629143fd920b0a2c68cad9278628fbea8164dfeb59db95984a5b5d6b3505b510c697e8c95bf8d2be782c6b73c01622d52f2da9b07ecff39e0 SHA512 7764d49343b795b6bebae64f646ba27e3e6cc2a20b8a1aee645ce0d8474633c34acfbb73c08546fee415755dd4ea5a98c1d84db5e394cf5f4fc802eb61148ab6 DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01 -DIST llvm-gentoo-patchset-14.0.0-r2.tar.xz 7872 BLAKE2B 529986a4be1c876d625b09b0cee7cc22cd0dd883770d7f0ef6aeec79fe2da822bf67a5121602af22722962d54a65352242c3ae643060c778c728ed67917b3470 SHA512 7a7bb329facfe60875d7e4df9da120aaa314ed08ed73f00f953c0e9b235bbe7f68a4d75241e6457407fa795ad1a0fde5ede4ce95dce3b046d44cab20e7be86ac +DIST llvm-gentoo-patchset-14.0.1.tar.xz 4724 BLAKE2B 2689298c687fa8b5fa2545afccc248c00ff6778f1a14e3e7999e5d52a1b0b9c3b2e66e8c008e27c62c6c3c08009dc7d9d083ca53698138258ac972e4ad03c042 SHA512 a9f071ad0a792f558105a64790f9e470d8aaed05bd1baabbe86539760c881f772602a03265e0962d8599f991f7fd44d14a49e2ef9d74bb5eb283f473f4084d32 +DIST llvm-gentoo-patchset-14.0.3.tar.xz 5492 BLAKE2B 48a46d50a81c5572d1573c6923bc404b198f74ee8587a928e0858553dac37f7fa39cc969d72b938ef3d2f04f6872f9e2e2478821ab90c657ecbbacb3f7d99d7a SHA512 b917b549de6d46cd7aab3e59b888b5e5ffb955435b33d6538be2f31dc30217a24740a673cb6bb661087c245121edb079052b179badaf70b86b985ca69b3652a6 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc -DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1 -DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f -DIST llvmorg-14.0.0.tar.gz 158057350 BLAKE2B 7052684c620a5eaf52beeee4591adf58cfec9e64a5ee0b24f3d5849fd4df5b006e2906a839cb806ac69c33fab6013c58589b1d74e4fb8558758edcb7d5065064 SHA512 eb5acf96b5e2c59bd07579f7ebe73018b0dd6e2f2d9a5a3c7986320e88febd837d1084b9e5313a2264310342193044629d228337cc76dd2b8527dc0a8bdda999 DIST llvmorg-14.0.1.tar.gz 158074615 BLAKE2B bf80366461580058494eb101646efcd1a8b55a66818a710c2eb8c649bf88c02fe4552cecf4c1c8637a64e7cee8d644bca31aafc804765ed18f2b5e2975dd6c92 SHA512 0a15aa9cfc978a7b03a1659a2affad65ede66d280f5c12bf0beaaf194cd7bdd57ff438b5f40e64c1e1b88f368de99be349e9d30b544d2bbe4a50f0ebed3307f2 -EBUILD compiler-rt-sanitizers-11.1.0-r1.ebuild 6042 BLAKE2B b2e497920258f581395f794ac977615e42e153ea966fead3a7ce5fbd9c93831ec807f4b711ffc41a1ecb84214e3bd386ffc038b549bc9ade691b7f843a5032a4 SHA512 05092de752ccb3a1832eb834315a63e161b52a7bd4a52ec77b24adeff9611368fe1166bf7bd12b2111e15364a44d2573527111641d97b9e989e593342a4fbc9a +DIST llvmorg-14.0.3.tar.gz 158092596 BLAKE2B ef901df510ec6bc1242595ec330e9c9ee76e696b077d67a8d62b53608c3d18b2f2d7ea3150864e13d9b37a8ce899ebca946ebe72cbc4538700176e20859ddec2 SHA512 511e93fd9b1c414c38fe9e2649679ac0b16cb04f7f7838569d187b04c542a185e364d6db73e96465026e3b2533649eb75ac95507d12514af32b28bdfb66f2646 EBUILD compiler-rt-sanitizers-12.0.1.ebuild 5959 BLAKE2B acfa1240b3ffa450fe5ede50a6d8bc9d32b06bea46da57f82c004fbde8e69693242037f9571bf885f56d16d3ead4711402f1c3a2bf65fb42741ea95b12a1baff SHA512 cf095eeaf547d431d60b11f147e5e8a03e3659a3b56ec98be4af3fdbd4cb3ed16891eb8066187bff27613f0c6a37d30d08725df95419b515f1038087c149ad82 -EBUILD compiler-rt-sanitizers-13.0.0-r1.ebuild 6162 BLAKE2B e9f41c36aa12ed0257e3fa3298a5504e13243c1f73a0c4e425a9660751011f05856d09f72eb6d6c5fe9c901b670173931899858420352bc63627df69feccb975 SHA512 b134ad7badbd4f6540f8d683c5a0b0b583702879465caa16a13ab0f528328d7db92ed214dae6698371671fec582429032b0d7dbcdcefa94721395f4d366de60a -EBUILD compiler-rt-sanitizers-13.0.0.ebuild 6154 BLAKE2B 97eaca6637d5f368d5f21e6640486734d1fb60fca89cc330ab19b7d129c425f8eefabfa225711a624018972b403329434e44e55fd1f69cf148d2b0d642ba08ae SHA512 31c7c45eec392795267f8ca2efa1f2894e183ef4fc5f575fbc531a60ebee3c90c4bb4a551f82a6723a3010ac5196a8c83cbd1b7e49704d9b9cfbe1cc68753cf9 -EBUILD compiler-rt-sanitizers-13.0.1.ebuild 6338 BLAKE2B 426d8ba85088ad30835f1499cb5abc26beb79da37fd3073c6d3f585a468a830545572a311edbeec0c0546572c83ef7881ad9cdc22dfc048892bc652060bca61b SHA512 820b956317798da42f7b43594fb3c1eae482bff3d67e498cea44a3e38b632c1edeb715d4e9057583ecc0416118334880b0c4bcced37290985e158b66404431d2 -EBUILD compiler-rt-sanitizers-14.0.0.ebuild 6351 BLAKE2B 8de9e08840a8322278be3733f6805cbba23f8ae7e8bc21eaaa87a1a30a07e89a5340cdc5114a958d30ff8131b9ae0858bd0de116616eee6093577fbf6ac7ab94 SHA512 447fa87861a95615165248d189c36b41b314087e8e2fcbbf2639bbb6b9979a6472e273be30494ff05ba9f6bef4ca5d78e799494aa1379a7569845005ec366c26 -EBUILD compiler-rt-sanitizers-14.0.1.ebuild 6345 BLAKE2B 67e5d67b909ff0521852023f5406032af9a147ca600a09c99e308471545c00afaca3b281ad12ec97b75ec98f71daab9ef82d63c3f01e2cb982bc854464e16980 SHA512 7bcda533453bffb06d4689f6e52695e6050a10929fba34593bd5c2d71ecc0a9deb56da9d96c0474489ffd7a2669e4a347c4f0d9e27f7f18f4119c530210140d7 -EBUILD compiler-rt-sanitizers-15.0.0.9999.ebuild 6273 BLAKE2B 74cecea17e26529cf75ada6ba68c169d587033de3320ed5ed5f31ae85935cff691e9b025011338b34ea50d1a747f8fe2f3fe25874072cfb328704906d0c298bb SHA512 701c5f5d70c20d7cd1276763d7198438dc53772c2b2713be82a96b05d5ef3797d2866eb94b65b16d2a0e3f842caffe4578c12dc3e775368ebc0d7afc8811be0e +EBUILD compiler-rt-sanitizers-13.0.1.ebuild 6337 BLAKE2B 67f5e39af19ab6e4dccb2989d044a1f148a7e3cafd7134ea7ccdc75481416158613137e3cc7204d32b3c868d00e5047c9d378f09814b8fc1e46ad876d5214423 SHA512 c49b998f5f990103e53253f22f19313e3b8e884818bdc5b651ee976957f8fa10d36ce6146b1db65336c60e4f22f67c435c5841e0f8cea48901724790d3c6738f +EBUILD compiler-rt-sanitizers-14.0.1.ebuild 6348 BLAKE2B b5af3a1463dbd380734be4ac8bfca915433b6211d2c4a4c1d72d78a9fed3ad6019af27acd3ae35ad2b5c08c1c79dc474fcd4ef61081486db7287ebebbb0aefd2 SHA512 2c20d2182c590f03eab7a59861da8ae324446df3d5a4a4d6b23f49ae9090645c494fc9673f43b2648b201ac330dab9fb104823435763713772e1bffd7e46f44b +EBUILD compiler-rt-sanitizers-14.0.3.ebuild 6351 BLAKE2B 635b4e58dcd3469c586bd54327640759fc33ea17e86974fc40cdde02a7df22626e4d9e1a7462076fd9d7511a66f0124daf000e3af3ae0206d8080fbe337e63a5 SHA512 8bc9ac8fa1d2eea753b9de57bd27c66903723f4fefeb35781820f80eb2166de6d336240836dca0557e7df8c934aba8f9275f470d1b8129a8bef7122a092db857 +EBUILD compiler-rt-sanitizers-15.0.0.9999.ebuild 6281 BLAKE2B 1535547da34623ff67d497136d5757a5ff788622e8077fa78c64a388637a27954e0aa39873abfb5f014029bf88d4f0349536a33194d11089137e843cb9fadc9e SHA512 9d79e661e825e3f4670efcbf6efe40c6051ab5100b0fdb2ae4bc761665b8dbcfb795e7147836044d0eb1d57cd9c2eec228004bcb13bc303d919e2d3912c58f7f MISC metadata.xml 1330 BLAKE2B 8381c36fb0ee37358cebacf512ee2a0ff6f2c0fc8e05544d9dc1bb1e11bc53f4196c2ecc6c8eb66c833f266c8d12da2c92a5f0b94cb3404397f925f9ebfc2a72 SHA512 6ea6159eb0929dc9f009ab326295549db329f7594dd5ff82e255238ed1fb17e3e8909079c915c6ae4829bb853666456772d17fa2078a332f6340807d6cd4f20e diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-11.1.0-r1.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-11.1.0-r1.ebuild deleted file mode 100644 index c56dd239fbd5..000000000000 --- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-11.1.0-r1.ebuild +++ /dev/null @@ -1,204 +0,0 @@ -# Copyright 1999-2022 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="amd64 arm arm64 ppc64 ~riscv x86 ~amd64-linux ~ppc-macos ~x64-macos" -IUSE="+clang test" -# 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 ) - test? ( - cfi? ( ubsan ) - gwp-asan? ( scudo ) - )" -RESTRICT="!test? ( test ) !clang? ( test )" - -CLANG_SLOT=${SLOT%%.*} -# llvm-6 for new lit options -DEPEND=" - >=sys-devel/llvm-6 - virtual/libcrypt" -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_PATCHSET=11.1.0-3 -llvm.org_set_globals - -python_check_deps() { - use test || return 0 - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -check_space() { - if use test; then - local CHECKREQS_DISK_BUILD=11G - check-reqs_pkg_pretend - fi -} - -pkg_pretend() { - check_space -} - -pkg_setup() { - check_space - llvm_pkg_setup - python-any-r1_pkg_setup -} - -src_prepare() { - sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die - - local flag - for flag in "${SANITIZER_FLAGS[@]}"; do - if ! use "${flag}"; then - local cmake_flag=${flag/-/_} - sed -i -e "/COMPILER_RT_HAS_${cmake_flag^^}/s:TRUE:FALSE:" \ - cmake/config-ix.cmake || die - fi - done - - # TODO: fix these tests to be skipped upstream - if use asan && ! use profile; then - rm test/asan/TestCases/asan_and_llvm_coverage_test.cpp || die - fi - if use ubsan && ! use cfi; then - > test/cfi/CMakeLists.txt || die - fi - - # 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-sanitizers/compiler-rt-sanitizers-13.0.0-r1.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.0-r1.ebuild deleted file mode 100644 index 942810e86916..000000000000 --- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.0-r1.ebuild +++ /dev/null @@ -1,207 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{8..10} ) -inherit check-reqs cmake flag-o-matic llvm llvm.org python-any-r1 - -DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)" -HOMEPAGE="https://llvm.org/" - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="$(ver_cut 1-3)" -KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos" -IUSE="+clang debug test" -# base targets -IUSE+=" +libfuzzer +memprof +orc +profile +xray" -# sanitizer targets, keep in sync with config-ix.cmake -# NB: ubsan, scudo deliberately match two entries -SANITIZER_FLAGS=( - asan dfsan lsan msan hwasan tsan ubsan safestack cfi scudo - shadowcallstack gwp-asan -) -IUSE+=" ${SANITIZER_FLAGS[@]/#/+}" -REQUIRED_USE=" - || ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray ) - test? ( - cfi? ( ubsan ) - gwp-asan? ( scudo ) - )" -RESTRICT="!test? ( test ) !clang? ( test )" - -CLANG_SLOT=${SLOT%%.*} -# llvm-6 for new lit options -DEPEND=" - >=sys-devel/llvm-6 - virtual/libcrypt" -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} - ) - !test? ( - ${PYTHON_DEPS} - )" - -LLVM_COMPONENTS=( compiler-rt ) -LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support llvm/utils/unittest ) -LLVM_PATCHSET=${PV/_/-}-r3 -llvm.org_set_globals - -python_check_deps() { - use test || return 0 - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -check_space() { - if use test; then - local CHECKREQS_DISK_BUILD=11G - check-reqs_pkg_pretend - fi -} - -pkg_pretend() { - check_space -} - -pkg_setup() { - check_space - llvm_pkg_setup - python-any-r1_pkg_setup -} - -src_prepare() { - sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die - - local flag - for flag in "${SANITIZER_FLAGS[@]}"; do - if ! use "${flag}"; then - local cmake_flag=${flag/-/_} - sed -i -e "/COMPILER_RT_HAS_${cmake_flag^^}/s:TRUE:FALSE:" \ - cmake/config-ix.cmake || die - fi - done - - # TODO: fix these tests to be skipped upstream - if use asan && ! use profile; then - rm test/asan/TestCases/asan_and_llvm_coverage_test.cpp || die - fi - if use ubsan && ! use cfi; then - > test/cfi/CMakeLists.txt || die - fi - - llvm.org_src_prepare -} - -src_configure() { - # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" - - # pre-set since we need to pass it to cmake - BUILD_DIR=${WORKDIR}/compiler-rt_build - - if use clang; then - local -x CC=${CHOST}-clang - local -x CXX=${CHOST}-clang++ - strip-unsupported-flags - fi - - local flag want_sanitizer=OFF - for flag in "${SANITIZER_FLAGS[@]}"; do - if use "${flag}"; then - want_sanitizer=ON - break - fi - done - - local mycmakeargs=( - -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" - # use a build dir structure consistent with install - # this makes it possible to easily deploy test-friendly clang - -DCOMPILER_RT_OUTPUT_DIR="${BUILD_DIR}/lib/clang/${SLOT}" - - -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) - # builtins & crt installed by sys-libs/compiler-rt - -DCOMPILER_RT_BUILD_BUILTINS=OFF - -DCOMPILER_RT_BUILD_CRT=OFF - -DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer) - -DCOMPILER_RT_BUILD_MEMPROF=$(usex memprof) - -DCOMPILER_RT_BUILD_ORC=$(usex orc) - -DCOMPILER_RT_BUILD_PROFILE=$(usex profile) - -DCOMPILER_RT_BUILD_SANITIZERS="${want_sanitizer}" - -DCOMPILER_RT_BUILD_XRAY=$(usex xray) - - -DPython3_EXECUTABLE="${PYTHON}" - ) - if use test; then - mycmakeargs+=( - -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="$(get_lit_flags)" - - # they are created during src_test() - -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang" - -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang++" - ) - - # same flags are passed for build & tests, so we need to strip - # them down to a subset supported by clang - CC=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang \ - CXX=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++ \ - strip-unsupported-flags - fi - - if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then - mycmakeargs+=( - # setting -isysroot is disabled with compiler-rt-prefix-paths.patch - # this allows adding arm64 support using SDK in EPREFIX - -DDARWIN_macosx_CACHED_SYSROOT="${EPREFIX}/MacOSX.sdk" - # Set version based on the SDK in EPREFIX - # This disables i386 for SDK >= 10.15 - # Will error if has_use tsan and SDK < 10.12 - -DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath ${EPREFIX}/MacOSX.sdk | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')" - # Use our libtool instead of looking it up with xcrun - -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool" - ) - fi - - cmake_src_configure - - if use test; then - local sys_dir=( "${EPREFIX}"/usr/lib/clang/${SLOT}/lib/* ) - [[ -e ${sys_dir} ]] || die "Unable to find ${sys_dir}" - [[ ${#sys_dir[@]} -eq 1 ]] || die "Non-deterministic compiler-rt install: ${sys_dir[*]}" - - # copy clang over since resource_dir is located relatively to binary - # therefore, we can put our new libraries in it - mkdir -p "${BUILD_DIR}"/lib/{llvm/${CLANG_SLOT}/{bin,$(get_libdir)},clang/${SLOT}/include} || die - cp "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/bin/clang{,++} \ - "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/bin/ || die - cp "${EPREFIX}"/usr/lib/clang/${SLOT}/include/*.h \ - "${BUILD_DIR}"/lib/clang/${SLOT}/include/ || die - cp "${sys_dir}"/*builtins*.a \ - "${BUILD_DIR}/lib/clang/${SLOT}/lib/${sys_dir##*/}/" || die - # we also need LLVMgold.so for gold-based tests - if [[ -f ${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so ]]; then - ln -s "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so \ - "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/$(get_libdir)/ || die - fi - fi -} - -src_test() { - # respect TMPDIR! - local -x LIT_PRESERVES_TMP=1 - # disable sandbox to have it stop clobbering LD_PRELOAD - local -x SANDBOX_ON=0 - # wipe LD_PRELOAD to make ASAN happy - local -x LD_PRELOAD= - - cmake_build check-all -} diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.0.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.0.ebuild deleted file mode 100644 index 0e4e81fde951..000000000000 --- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.0.ebuild +++ /dev/null @@ -1,207 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{8..10} ) -inherit check-reqs cmake flag-o-matic llvm llvm.org python-any-r1 - -DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)" -HOMEPAGE="https://llvm.org/" - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="$(ver_cut 1-3)" -KEYWORDS="amd64 arm arm64 ppc64 ~riscv x86 ~amd64-linux ~ppc-macos ~x64-macos" -IUSE="+clang debug test" -# base targets -IUSE+=" +libfuzzer +memprof +orc +profile +xray" -# sanitizer targets, keep in sync with config-ix.cmake -# NB: ubsan, scudo deliberately match two entries -SANITIZER_FLAGS=( - asan dfsan lsan msan hwasan tsan ubsan safestack cfi scudo - shadowcallstack gwp-asan -) -IUSE+=" ${SANITIZER_FLAGS[@]/#/+}" -REQUIRED_USE=" - || ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray ) - test? ( - cfi? ( ubsan ) - gwp-asan? ( scudo ) - )" -RESTRICT="!test? ( test ) !clang? ( test )" - -CLANG_SLOT=${SLOT%%.*} -# llvm-6 for new lit options -DEPEND=" - >=sys-devel/llvm-6 - virtual/libcrypt" -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} - ) - !test? ( - ${PYTHON_DEPS} - )" - -LLVM_COMPONENTS=( compiler-rt ) -LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support llvm/utils/unittest ) -LLVM_PATCHSET=${PV/_/-} -llvm.org_set_globals - -python_check_deps() { - use test || return 0 - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -check_space() { - if use test; then - local CHECKREQS_DISK_BUILD=11G - check-reqs_pkg_pretend - fi -} - -pkg_pretend() { - check_space -} - -pkg_setup() { - check_space - llvm_pkg_setup - python-any-r1_pkg_setup -} - -src_prepare() { - sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die - - local flag - for flag in "${SANITIZER_FLAGS[@]}"; do - if ! use "${flag}"; then - local cmake_flag=${flag/-/_} - sed -i -e "/COMPILER_RT_HAS_${cmake_flag^^}/s:TRUE:FALSE:" \ - cmake/config-ix.cmake || die - fi - done - - # TODO: fix these tests to be skipped upstream - if use asan && ! use profile; then - rm test/asan/TestCases/asan_and_llvm_coverage_test.cpp || die - fi - if use ubsan && ! use cfi; then - > test/cfi/CMakeLists.txt || die - fi - - llvm.org_src_prepare -} - -src_configure() { - # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" - - # pre-set since we need to pass it to cmake - BUILD_DIR=${WORKDIR}/compiler-rt_build - - if use clang; then - local -x CC=${CHOST}-clang - local -x CXX=${CHOST}-clang++ - strip-unsupported-flags - fi - - local flag want_sanitizer=OFF - for flag in "${SANITIZER_FLAGS[@]}"; do - if use "${flag}"; then - want_sanitizer=ON - break - fi - done - - local mycmakeargs=( - -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" - # use a build dir structure consistent with install - # this makes it possible to easily deploy test-friendly clang - -DCOMPILER_RT_OUTPUT_DIR="${BUILD_DIR}/lib/clang/${SLOT}" - - -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) - # builtins & crt installed by sys-libs/compiler-rt - -DCOMPILER_RT_BUILD_BUILTINS=OFF - -DCOMPILER_RT_BUILD_CRT=OFF - -DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer) - -DCOMPILER_RT_BUILD_MEMPROF=$(usex memprof) - -DCOMPILER_RT_BUILD_ORC=$(usex orc) - -DCOMPILER_RT_BUILD_PROFILE=$(usex profile) - -DCOMPILER_RT_BUILD_SANITIZERS="${want_sanitizer}" - -DCOMPILER_RT_BUILD_XRAY=$(usex xray) - - -DPython3_EXECUTABLE="${PYTHON}" - ) - if use test; then - mycmakeargs+=( - -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="$(get_lit_flags)" - - # they are created during src_test() - -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang" - -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang++" - ) - - # same flags are passed for build & tests, so we need to strip - # them down to a subset supported by clang - CC=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang \ - CXX=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++ \ - strip-unsupported-flags - fi - - if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then - mycmakeargs+=( - # setting -isysroot is disabled with compiler-rt-prefix-paths.patch - # this allows adding arm64 support using SDK in EPREFIX - -DDARWIN_macosx_CACHED_SYSROOT="${EPREFIX}/MacOSX.sdk" - # Set version based on the SDK in EPREFIX - # This disables i386 for SDK >= 10.15 - # Will error if has_use tsan and SDK < 10.12 - -DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath ${EPREFIX}/MacOSX.sdk | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')" - # Use our libtool instead of looking it up with xcrun - -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool" - ) - fi - - cmake_src_configure - - if use test; then - local sys_dir=( "${EPREFIX}"/usr/lib/clang/${SLOT}/lib/* ) - [[ -e ${sys_dir} ]] || die "Unable to find ${sys_dir}" - [[ ${#sys_dir[@]} -eq 1 ]] || die "Non-deterministic compiler-rt install: ${sys_dir[*]}" - - # copy clang over since resource_dir is located relatively to binary - # therefore, we can put our new libraries in it - mkdir -p "${BUILD_DIR}"/lib/{llvm/${CLANG_SLOT}/{bin,$(get_libdir)},clang/${SLOT}/include} || die - cp "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/bin/clang{,++} \ - "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/bin/ || die - cp "${EPREFIX}"/usr/lib/clang/${SLOT}/include/*.h \ - "${BUILD_DIR}"/lib/clang/${SLOT}/include/ || die - cp "${sys_dir}"/*builtins*.a \ - "${BUILD_DIR}/lib/clang/${SLOT}/lib/${sys_dir##*/}/" || die - # we also need LLVMgold.so for gold-based tests - if [[ -f ${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so ]]; then - ln -s "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so \ - "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/$(get_libdir)/ || die - fi - fi -} - -src_test() { - # respect TMPDIR! - local -x LIT_PRESERVES_TMP=1 - # disable sandbox to have it stop clobbering LD_PRELOAD - local -x SANDBOX_ON=0 - # wipe LD_PRELOAD to make ASAN happy - local -x LD_PRELOAD= - - cmake_build check-all -} diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.1.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.1.ebuild index c7695d4eb7b6..9ea0f646dc82 100644 --- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.1.ebuild +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.1.ebuild @@ -11,7 +11,7 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="$(ver_cut 1-3)" -KEYWORDS="amd64 arm arm64 ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos" +KEYWORDS="amd64 arm arm64 ppc64 ~riscv x86 ~amd64-linux ~ppc-macos ~x64-macos" IUSE="+abi_x86_32 abi_x86_64 +clang debug test" # base targets IUSE+=" +libfuzzer +memprof +orc +profile +xray" diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-14.0.0.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-14.0.0.ebuild deleted file mode 100644 index 4a0fae4b09bb..000000000000 --- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-14.0.0.ebuild +++ /dev/null @@ -1,215 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{8..10} ) -inherit check-reqs cmake flag-o-matic llvm llvm.org python-any-r1 - -DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)" -HOMEPAGE="https://llvm.org/" - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="$(ver_cut 1-3)" -KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos" -IUSE="+abi_x86_32 abi_x86_64 +clang debug test" -# base targets -IUSE+=" +libfuzzer +memprof +orc +profile +xray" -# sanitizer targets, keep in sync with config-ix.cmake -# NB: ubsan, scudo deliberately match two entries -SANITIZER_FLAGS=( - asan dfsan lsan msan hwasan tsan ubsan safestack cfi scudo - shadowcallstack gwp-asan -) -IUSE+=" ${SANITIZER_FLAGS[@]/#/+}" -REQUIRED_USE=" - || ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray ) - test? ( - cfi? ( ubsan ) - gwp-asan? ( scudo ) - )" -RESTRICT="!test? ( test ) !clang? ( test )" - -CLANG_SLOT=${SLOT%%.*} -# llvm-6 for new lit options -DEPEND=" - >=sys-devel/llvm-6 - virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]" -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} - ) - !test? ( - ${PYTHON_DEPS} - )" - -LLVM_COMPONENTS=( compiler-rt cmake ) -LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support llvm/utils/unittest ) -LLVM_PATCHSET=${PV/_/-}-r2 -llvm.org_set_globals - -python_check_deps() { - use test || return 0 - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -check_space() { - if use test; then - local CHECKREQS_DISK_BUILD=11G - check-reqs_pkg_pretend - fi -} - -pkg_pretend() { - check_space -} - -pkg_setup() { - check_space - llvm_pkg_setup - python-any-r1_pkg_setup -} - -src_prepare() { - sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die - - local flag - for flag in "${SANITIZER_FLAGS[@]}"; do - if ! use "${flag}"; then - local cmake_flag=${flag/-/_} - sed -i -e "/COMPILER_RT_HAS_${cmake_flag^^}/s:TRUE:FALSE:" \ - cmake/config-ix.cmake || die - fi - done - - # TODO: fix these tests to be skipped upstream - if use asan && ! use profile; then - rm test/asan/TestCases/asan_and_llvm_coverage_test.cpp || die - fi - if use ubsan && ! use cfi; then - > test/cfi/CMakeLists.txt || die - fi - - llvm.org_src_prepare -} - -src_configure() { - # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" - - # pre-set since we need to pass it to cmake - BUILD_DIR=${WORKDIR}/compiler-rt_build - - if use clang; then - local -x CC=${CHOST}-clang - local -x CXX=${CHOST}-clang++ - strip-unsupported-flags - fi - - local flag want_sanitizer=OFF - for flag in "${SANITIZER_FLAGS[@]}"; do - if use "${flag}"; then - want_sanitizer=ON - break - fi - done - - local mycmakeargs=( - -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" - # use a build dir structure consistent with install - # this makes it possible to easily deploy test-friendly clang - -DCOMPILER_RT_OUTPUT_DIR="${BUILD_DIR}/lib/clang/${SLOT}" - - -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) - # builtins & crt installed by sys-libs/compiler-rt - -DCOMPILER_RT_BUILD_BUILTINS=OFF - -DCOMPILER_RT_BUILD_CRT=OFF - -DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer) - -DCOMPILER_RT_BUILD_MEMPROF=$(usex memprof) - -DCOMPILER_RT_BUILD_ORC=$(usex orc) - -DCOMPILER_RT_BUILD_PROFILE=$(usex profile) - -DCOMPILER_RT_BUILD_SANITIZERS="${want_sanitizer}" - -DCOMPILER_RT_BUILD_XRAY=$(usex xray) - - -DPython3_EXECUTABLE="${PYTHON}" - ) - - if use amd64; then - mycmakeargs+=( - -DCAN_TARGET_i386=$(usex abi_x86_32) - -DCAN_TARGET_x86_64=$(usex abi_x86_64) - ) - fi - - if use test; then - mycmakeargs+=( - -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="$(get_lit_flags)" - - # they are created during src_test() - -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang" - -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang++" - ) - - # same flags are passed for build & tests, so we need to strip - # them down to a subset supported by clang - CC=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang \ - CXX=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++ \ - strip-unsupported-flags - fi - - if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then - mycmakeargs+=( - # setting -isysroot is disabled with compiler-rt-prefix-paths.patch - # this allows adding arm64 support using SDK in EPREFIX - -DDARWIN_macosx_CACHED_SYSROOT="${EPREFIX}/MacOSX.sdk" - # Set version based on the SDK in EPREFIX - # This disables i386 for SDK >= 10.15 - # Will error if has_use tsan and SDK < 10.12 - -DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath ${EPREFIX}/MacOSX.sdk | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')" - # Use our libtool instead of looking it up with xcrun - -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool" - ) - fi - - cmake_src_configure - - if use test; then - local sys_dir=( "${EPREFIX}"/usr/lib/clang/${SLOT}/lib/* ) - [[ -e ${sys_dir} ]] || die "Unable to find ${sys_dir}" - [[ ${#sys_dir[@]} -eq 1 ]] || die "Non-deterministic compiler-rt install: ${sys_dir[*]}" - - # copy clang over since resource_dir is located relatively to binary - # therefore, we can put our new libraries in it - mkdir -p "${BUILD_DIR}"/lib/{llvm/${CLANG_SLOT}/{bin,$(get_libdir)},clang/${SLOT}/include} || die - cp "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/bin/clang{,++} \ - "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/bin/ || die - cp "${EPREFIX}"/usr/lib/clang/${SLOT}/include/*.h \ - "${BUILD_DIR}"/lib/clang/${SLOT}/include/ || die - cp "${sys_dir}"/*builtins*.a \ - "${BUILD_DIR}/lib/clang/${SLOT}/lib/${sys_dir##*/}/" || die - # we also need LLVMgold.so for gold-based tests - if [[ -f ${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so ]]; then - ln -s "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so \ - "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/$(get_libdir)/ || die - fi - fi -} - -src_test() { - # respect TMPDIR! - local -x LIT_PRESERVES_TMP=1 - # disable sandbox to have it stop clobbering LD_PRELOAD - local -x SANDBOX_ON=0 - # wipe LD_PRELOAD to make ASAN happy - local -x LD_PRELOAD= - - cmake_build check-all -} diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-14.0.1.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-14.0.1.ebuild index 49ba4a231b56..b0a36755b564 100644 --- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-14.0.1.ebuild +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-14.0.1.ebuild @@ -51,7 +51,7 @@ BDEPEND=" LLVM_COMPONENTS=( compiler-rt cmake ) LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support llvm/utils/unittest ) -LLVM_PATCHSET=9999-1 +LLVM_PATCHSET=${PV/_/-} llvm.org_set_globals python_check_deps() { diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-14.0.3.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-14.0.3.ebuild new file mode 100644 index 000000000000..433da0366bd7 --- /dev/null +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-14.0.3.ebuild @@ -0,0 +1,221 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{8..10} ) +inherit check-reqs cmake flag-o-matic llvm llvm.org python-any-r1 + +DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)" +HOMEPAGE="https://llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="$(ver_cut 1-3)" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos" +IUSE="+abi_x86_32 abi_x86_64 +clang debug test" +# base targets +IUSE+=" +libfuzzer +memprof +orc +profile +xray" +# sanitizer targets, keep in sync with config-ix.cmake +# NB: ubsan, scudo deliberately match two entries +SANITIZER_FLAGS=( + asan dfsan lsan msan hwasan tsan ubsan safestack cfi scudo + shadowcallstack gwp-asan +) +IUSE+=" ${SANITIZER_FLAGS[@]/#/+}" +REQUIRED_USE=" + || ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray ) + test? ( + cfi? ( ubsan ) + gwp-asan? ( scudo ) + ) +" +RESTRICT=" + !clang? ( test ) + !test? ( test ) +" + +CLANG_SLOT=${SLOT%%.*} +# llvm-6 for new lit options +DEPEND=" + >=sys-devel/llvm-6 + virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?] +" +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} + ) + !test? ( + ${PYTHON_DEPS} + ) +" + +LLVM_COMPONENTS=( compiler-rt cmake ) +LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support llvm/utils/unittest ) +LLVM_PATCHSET=${PV} +llvm.org_set_globals + +python_check_deps() { + use test || return 0 + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +check_space() { + if use test; then + local CHECKREQS_DISK_BUILD=11G + check-reqs_pkg_pretend + fi +} + +pkg_pretend() { + check_space +} + +pkg_setup() { + check_space + llvm_pkg_setup + python-any-r1_pkg_setup +} + +src_prepare() { + sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die + + local flag + for flag in "${SANITIZER_FLAGS[@]}"; do + if ! use "${flag}"; then + local cmake_flag=${flag/-/_} + sed -i -e "/COMPILER_RT_HAS_${cmake_flag^^}/s:TRUE:FALSE:" \ + cmake/config-ix.cmake || die + fi + done + + # TODO: fix these tests to be skipped upstream + if use asan && ! use profile; then + rm test/asan/TestCases/asan_and_llvm_coverage_test.cpp || die + fi + if use ubsan && ! use cfi; then + > test/cfi/CMakeLists.txt || die + fi + + llvm.org_src_prepare +} + +src_configure() { + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + + # pre-set since we need to pass it to cmake + BUILD_DIR=${WORKDIR}/compiler-rt_build + + if use clang; then + local -x CC=${CHOST}-clang + local -x CXX=${CHOST}-clang++ + strip-unsupported-flags + fi + + local flag want_sanitizer=OFF + for flag in "${SANITIZER_FLAGS[@]}"; do + if use "${flag}"; then + want_sanitizer=ON + break + fi + done + + local mycmakeargs=( + -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" + # use a build dir structure consistent with install + # this makes it possible to easily deploy test-friendly clang + -DCOMPILER_RT_OUTPUT_DIR="${BUILD_DIR}/lib/clang/${SLOT}" + + -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) + # builtins & crt installed by sys-libs/compiler-rt + -DCOMPILER_RT_BUILD_BUILTINS=OFF + -DCOMPILER_RT_BUILD_CRT=OFF + -DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer) + -DCOMPILER_RT_BUILD_MEMPROF=$(usex memprof) + -DCOMPILER_RT_BUILD_ORC=$(usex orc) + -DCOMPILER_RT_BUILD_PROFILE=$(usex profile) + -DCOMPILER_RT_BUILD_SANITIZERS="${want_sanitizer}" + -DCOMPILER_RT_BUILD_XRAY=$(usex xray) + + -DPython3_EXECUTABLE="${PYTHON}" + ) + + if use amd64; then + mycmakeargs+=( + -DCAN_TARGET_i386=$(usex abi_x86_32) + -DCAN_TARGET_x86_64=$(usex abi_x86_64) + ) + fi + + if use test; then + mycmakeargs+=( + -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags)" + + # they are created during src_test() + -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang" + -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang++" + ) + + # same flags are passed for build & tests, so we need to strip + # them down to a subset supported by clang + CC=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang \ + CXX=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++ \ + strip-unsupported-flags + fi + + if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then + mycmakeargs+=( + # setting -isysroot is disabled with compiler-rt-prefix-paths.patch + # this allows adding arm64 support using SDK in EPREFIX + -DDARWIN_macosx_CACHED_SYSROOT="${EPREFIX}/MacOSX.sdk" + # Set version based on the SDK in EPREFIX + # This disables i386 for SDK >= 10.15 + # Will error if has_use tsan and SDK < 10.12 + -DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath ${EPREFIX}/MacOSX.sdk | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')" + # Use our libtool instead of looking it up with xcrun + -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool" + ) + fi + + cmake_src_configure + + if use test; then + local sys_dir=( "${EPREFIX}"/usr/lib/clang/${SLOT}/lib/* ) + [[ -e ${sys_dir} ]] || die "Unable to find ${sys_dir}" + [[ ${#sys_dir[@]} -eq 1 ]] || die "Non-deterministic compiler-rt install: ${sys_dir[*]}" + + # copy clang over since resource_dir is located relatively to binary + # therefore, we can put our new libraries in it + mkdir -p "${BUILD_DIR}"/lib/{llvm/${CLANG_SLOT}/{bin,$(get_libdir)},clang/${SLOT}/include} || die + cp "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/bin/clang{,++} \ + "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/bin/ || die + cp "${EPREFIX}"/usr/lib/clang/${SLOT}/include/*.h \ + "${BUILD_DIR}"/lib/clang/${SLOT}/include/ || die + cp "${sys_dir}"/*builtins*.a \ + "${BUILD_DIR}/lib/clang/${SLOT}/lib/${sys_dir##*/}/" || die + # we also need LLVMgold.so for gold-based tests + if [[ -f ${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so ]]; then + ln -s "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so \ + "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/$(get_libdir)/ || die + fi + fi +} + +src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + # disable sandbox to have it stop clobbering LD_PRELOAD + local -x SANDBOX_ON=0 + # wipe LD_PRELOAD to make ASAN happy + local -x LD_PRELOAD= + + cmake_build check-all +} diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.0.9999.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.0.9999.ebuild index 12e5eb2d01e7..5006d1d658ce 100644 --- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.0.9999.ebuild +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.0.9999.ebuild @@ -1,7 +1,7 @@ # Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 PYTHON_COMPAT=( python3_{8..10} ) inherit check-reqs cmake flag-o-matic llvm llvm.org python-any-r1 @@ -27,27 +27,33 @@ REQUIRED_USE=" test? ( cfi? ( ubsan ) gwp-asan? ( scudo ) - )" -RESTRICT="!test? ( test ) !clang? ( test )" + ) +" +RESTRICT=" + !clang? ( test ) + !test? ( test ) +" CLANG_SLOT=${SLOT%%.*} # llvm-6 for new lit options DEPEND=" >=sys-devel/llvm-6 - virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]" + virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?] +" BDEPEND=" >=dev-util/cmake-3.16 clang? ( sys-devel/clang ) elibc_glibc? ( net-libs/libtirpc ) test? ( !=dev-python/lit-5[\${PYTHON_USEDEP}]") + $(python_gen_any_dep ">=dev-python/lit-15[\${PYTHON_USEDEP}]") =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} sys-libs/compiler-rt:${SLOT} ) !test? ( ${PYTHON_DEPS} - )" + ) +" LLVM_COMPONENTS=( compiler-rt cmake ) LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support llvm/utils/unittest ) diff --git a/sys-libs/compiler-rt/Manifest b/sys-libs/compiler-rt/Manifest index b7aa51355bc2..e6e31f372bec 100644 --- a/sys-libs/compiler-rt/Manifest +++ b/sys-libs/compiler-rt/Manifest @@ -1,20 +1,15 @@ -DIST llvm-gentoo-patchset-11.1.0-1.tar.xz 4032 BLAKE2B e69138a422e315b31a3d9c11faa4ae1ddf1bf9092cee2db0de4d2adef81fd802973488293aab48b764402b51996893b17ca03249ef4620848a576d1f6cdb9698 SHA512 e1c5504dab6c5db9fdf4addfeb12316f22d0258717ba551a9b7b3ba37919491fb6011ac5cca1e793b7509d5c1c186bc6bc4213f7d6155d190612492b216f979b DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249 -DIST llvm-gentoo-patchset-13.0.0.tar.xz 5012 BLAKE2B 6760c78c086aaf6629143fd920b0a2c68cad9278628fbea8164dfeb59db95984a5b5d6b3505b510c697e8c95bf8d2be782c6b73c01622d52f2da9b07ecff39e0 SHA512 7764d49343b795b6bebae64f646ba27e3e6cc2a20b8a1aee645ce0d8474633c34acfbb73c08546fee415755dd4ea5a98c1d84db5e394cf5f4fc802eb61148ab6 DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01 -DIST llvm-gentoo-patchset-14.0.0.tar.xz 4076 BLAKE2B dc114e53fb878ca74489c420506b9dd9c417e2b97dff4d9441d78a0a256ca1e7243ea2ce38b8665d37b0f24436f9ea5771cd05d9b13887e7370a19ec5e05ba20 SHA512 7f7d08fc762d634692fb251a51c0d73a4a9098907f25451b9ca9453315b603331b65a454b2d631cfecbb3fbc11ab3a36f644c0d7b03e1bb8e96ce4aa08d60615 +DIST llvm-gentoo-patchset-14.0.1.tar.xz 4724 BLAKE2B 2689298c687fa8b5fa2545afccc248c00ff6778f1a14e3e7999e5d52a1b0b9c3b2e66e8c008e27c62c6c3c08009dc7d9d083ca53698138258ac972e4ad03c042 SHA512 a9f071ad0a792f558105a64790f9e470d8aaed05bd1baabbe86539760c881f772602a03265e0962d8599f991f7fd44d14a49e2ef9d74bb5eb283f473f4084d32 +DIST llvm-gentoo-patchset-14.0.3.tar.xz 5492 BLAKE2B 48a46d50a81c5572d1573c6923bc404b198f74ee8587a928e0858553dac37f7fa39cc969d72b938ef3d2f04f6872f9e2e2478821ab90c657ecbbacb3f7d99d7a SHA512 b917b549de6d46cd7aab3e59b888b5e5ffb955435b33d6538be2f31dc30217a24740a673cb6bb661087c245121edb079052b179badaf70b86b985ca69b3652a6 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc -DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1 -DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f -DIST llvmorg-14.0.0.tar.gz 158057350 BLAKE2B 7052684c620a5eaf52beeee4591adf58cfec9e64a5ee0b24f3d5849fd4df5b006e2906a839cb806ac69c33fab6013c58589b1d74e4fb8558758edcb7d5065064 SHA512 eb5acf96b5e2c59bd07579f7ebe73018b0dd6e2f2d9a5a3c7986320e88febd837d1084b9e5313a2264310342193044629d228337cc76dd2b8527dc0a8bdda999 DIST llvmorg-14.0.1.tar.gz 158074615 BLAKE2B bf80366461580058494eb101646efcd1a8b55a66818a710c2eb8c649bf88c02fe4552cecf4c1c8637a64e7cee8d644bca31aafc804765ed18f2b5e2975dd6c92 SHA512 0a15aa9cfc978a7b03a1659a2affad65ede66d280f5c12bf0beaaf194cd7bdd57ff438b5f40e64c1e1b88f368de99be349e9d30b544d2bbe4a50f0ebed3307f2 -EBUILD compiler-rt-11.1.0.ebuild 3506 BLAKE2B fea54ca4aabe9bf35afc64a579ae18eb4491eeecb58ede43369ba9c294f624851214525f399cfa3adadee70ca66cbe64821376272b9965304266bcfc07b9f220 SHA512 f50906ee9f3b044a251ddd56db6ce10d3d2b632ffa7d3fd608cc5d7320e8d4b47b1ada26965b5fc9bb746e77c1b01ec61b5f719bc6bb2805720df035fca993da +DIST llvmorg-14.0.3.tar.gz 158092596 BLAKE2B ef901df510ec6bc1242595ec330e9c9ee76e696b077d67a8d62b53608c3d18b2f2d7ea3150864e13d9b37a8ce899ebca946ebe72cbc4538700176e20859ddec2 SHA512 511e93fd9b1c414c38fe9e2649679ac0b16cb04f7f7838569d187b04c542a185e364d6db73e96465026e3b2533649eb75ac95507d12514af32b28bdfb66f2646 EBUILD compiler-rt-12.0.1.ebuild 3539 BLAKE2B 7d6bd0a7be4fec1b8427aa9d81eacf69d3338490c70f097910ad0bb4a67f0313ea8fd6bae15a5e05b8805cad6a789124d94ee91577a58beb96f471a1bf49c3b3 SHA512 bd671f1896182a00ade3b53252ba6b7cb8a6f65eec3d806bbfc7bd4e2b9253a8bc2bd497c018705f34fb30ad1897693af268c6e4cc39e044c788807042d7b55e -EBUILD compiler-rt-13.0.0.ebuild 3717 BLAKE2B bb6b7ccb4ee20e7da325bd111adefa0c212be6b6291d71e2553d31b56e0c95e7a50ea5ba2b2107bf3cbd052126491ae5811844a06a60b742069cb8ca268c8315 SHA512 03e3925de867fefa79ffc8bf6a1b53020452ccda98d79dedc09b4d2c5dddcef07890b2055c7774ea054241cb124f0629819aef9df1102cb70b6e7579ed52aa44 -EBUILD compiler-rt-13.0.1.ebuild 3869 BLAKE2B e94607722b892fed333b17ceeb35825d0bf83fce783f6a8f4cb1c70eb028a0e0397ed81e50850057f2d863576b5bb19c7b144a25cfb5778805aadacdf8e6c489 SHA512 648bb060f7fa67435859c9548d606fa489f8b6994befa2b10c9ffced1df67cfa9fbc8ca1a3bea7520298bc48b185dbba1a86f9b4283821d0d23a5327a0ea54b9 -EBUILD compiler-rt-14.0.0.ebuild 3879 BLAKE2B f67b9247bb931ef6fe9de922e98842a2df8271e17eba634a34bab201670a8e0ada3a252b378e4a5584ac8d40a32b254a2970a1294dfc75a9198757f4164f403e SHA512 2cd68cecd5e1207086f99d469234fb147e3b64fc65a111260e18b1668efcbe1caa2ce3852a528433bc8c27d0f3575e8089c4d8b118f0ed86ac8941c9a9f9b3c3 -EBUILD compiler-rt-14.0.1.ebuild 3876 BLAKE2B 77cbc5ec36cb3f5ae1f413f511d67073522911329a8fe466044043b5247df9615f9bda56baff64b89534a35508024e86d2a7743b18180301c4ab9bd7ab8729ba SHA512 9b0e71af5288415b2477403424173955e9d2a77b8d1896780ea401e3e6db8397375322612f0f23667b8d62266d95f69b3c41773445e0c3573df254f4ed49cf90 -EBUILD compiler-rt-15.0.0.9999.ebuild 3804 BLAKE2B 5e4c91ff5ed9ddd0c4567b540a2eb4607434000b26ad826c706c806aff443b2b33e86911f09b9c380ca6a052c0012ee2bcb7e464dae67c254793463fff605241 SHA512 1b23c0bec12a5b2450cd4d6e5b09248607f81b7a4c70b074340d3975172bf9a077da89f308af7ae32ee4bfa4d6a080b4cfa08fc1c8c7fcfc661868a0266bbc31 +EBUILD compiler-rt-13.0.1.ebuild 3868 BLAKE2B b2b643b850023513b69076bc791b22b74aa54445250cba334a2d3dfdc26a1ea11d30d1ce9df6cb2d1c813b66eaa59a130821470b3a3076237f9ef93d2919a124 SHA512 334a2609ae6882dbbb9caca5bb3bc7ba0a668f9a8f337570d54bde926d7ebfaa87fe4e53dddc73ea602b2d52e7537b9490f8936736480f1ddac6c9caf7b6832d +EBUILD compiler-rt-14.0.1.ebuild 3879 BLAKE2B f67b9247bb931ef6fe9de922e98842a2df8271e17eba634a34bab201670a8e0ada3a252b378e4a5584ac8d40a32b254a2970a1294dfc75a9198757f4164f403e SHA512 2cd68cecd5e1207086f99d469234fb147e3b64fc65a111260e18b1668efcbe1caa2ce3852a528433bc8c27d0f3575e8089c4d8b118f0ed86ac8941c9a9f9b3c3 +EBUILD compiler-rt-14.0.3.ebuild 3877 BLAKE2B f86d43aa88361017a82b659262e9d997c4a3520b446836fa4ab48510060d19e246443d1acc0f717f256ecf6dad6f8c93a7c55b9e8373f3d837515c12ea26f168 SHA512 ec4ebd8a3343d28b41bf991a0b00d4df058ef0b53204cbcd786e83f659eadea377822c7ad8043f0fda381255ebd7386c32ebd4a87d3c60bc774e682cbb069807 +EBUILD compiler-rt-15.0.0.9999.ebuild 3803 BLAKE2B 8b63b280b28c95627852a737b9a5838d57682dff031eda2f436c2c624eeab2a76f809a1687f24fddc81ff8d22c50877077f6aeec0e649951bf0338952582872b SHA512 889b8d1d835fb9717511b042399946f1afbc0beb7b1468a347d90ec185e98caf5eba7093b823e16f90939764cd2781fb0141135ccbd3ec73047cb9f38371323c MISC metadata.xml 334 BLAKE2B e52ad011edc624e8b4c6449a9c77d0972222c4e3ecad01ea24eb9f3175053b191df6267886a186bc3e169581b86b624b6c77f37fac763a12129a1dd8cd6ee285 SHA512 1bf0f62c12690e6596650e8872405fc53bc3c4bbddcf80e02b3bcce9b762f0aa02d462949b9b54c0c930ca6cce5518333e79951ae57378def8eb9719463a9297 diff --git a/sys-libs/compiler-rt/compiler-rt-11.1.0.ebuild b/sys-libs/compiler-rt/compiler-rt-11.1.0.ebuild deleted file mode 100644 index 46345babf318..000000000000 --- a/sys-libs/compiler-rt/compiler-rt-11.1.0.ebuild +++ /dev/null @@ -1,123 +0,0 @@ -# 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="amd64 arm arm64 ppc64 ~riscv x86 ~amd64-linux ~ppc-macos ~x64-macos" -IUSE="+clang test" -RESTRICT="!test? ( test ) !clang? ( test )" - -CLANG_SLOT=${SLOT%%.*} -# llvm-6 for new lit options -DEPEND=" - >=sys-devel/llvm-6" -BDEPEND=" - >=dev-util/cmake-3.16 - clang? ( sys-devel/clang ) - test? ( - $(python_gen_any_dep ">=dev-python/lit-9.0.1[\${PYTHON_USEDEP}]") - =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} - ) - ${PYTHON_DEPS}" - -LLVM_COMPONENTS=( compiler-rt ) -LLVM_PATCHSET=11.1.0-1 -llvm.org_set_globals - -python_check_deps() { - use test || return 0 - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -pkg_pretend() { - if ! use clang && ! tc-is-clang; then - ewarn "Building using a compiler other than clang may result in broken atomics" - ewarn "library. Enable USE=clang unless you have a very good reason not to." - fi -} - -pkg_setup() { - # Darwin Prefix builds do not have llvm installed yet, so rely on - # bootstrap-prefix to set the appropriate path vars to LLVM instead - # of using llvm_pkg_setup. - if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then - llvm_pkg_setup - fi - python-any-r1_pkg_setup -} - -test_compiler() { - $(tc-getCC) ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \ - <<<'int main() { return 0; }' &>/dev/null -} - -src_configure() { - # pre-set since we need to pass it to cmake - BUILD_DIR=${WORKDIR}/${P}_build - - local nolib_flags=( -nodefaultlibs -lc ) - if use clang; then - local -x CC=${CHOST}-clang - local -x CXX=${CHOST}-clang++ - strip-unsupported-flags - # ensure we can use clang before installing compiler-rt - local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" - elif ! test_compiler; then - if test_compiler "${nolib_flags[@]}"; then - local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" - ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}" - fi - fi - - local mycmakeargs=( - -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" - - -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) - -DCOMPILER_RT_BUILD_LIBFUZZER=OFF - -DCOMPILER_RT_BUILD_PROFILE=OFF - -DCOMPILER_RT_BUILD_SANITIZERS=OFF - -DCOMPILER_RT_BUILD_XRAY=OFF - - -DPython3_EXECUTABLE="${PYTHON}" - ) - - if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then - mycmakeargs+=( - # setting -isysroot is disabled with compiler-rt-prefix-paths.patch - # this allows adding arm64 support using SDK in EPREFIX - -DDARWIN_macosx_CACHED_SYSROOT="${EPREFIX}/MacOSX.sdk" - # Set version based on the SDK in EPREFIX. - # This disables i386 for SDK >= 10.15 - -DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath ${EPREFIX}/MacOSX.sdk | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')" - # Use our libtool instead of looking it up with xcrun - -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool" - ) - fi - - if use test; then - mycmakeargs+=( - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="$(get_lit_flags)" - - -DCOMPILER_RT_TEST_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang" - -DCOMPILER_RT_TEST_CXX_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++" - ) - fi - - cmake_src_configure -} - -src_test() { - # respect TMPDIR! - local -x LIT_PRESERVES_TMP=1 - - cmake_build check-builtins -} diff --git a/sys-libs/compiler-rt/compiler-rt-13.0.0.ebuild b/sys-libs/compiler-rt/compiler-rt-13.0.0.ebuild deleted file mode 100644 index a2d62590de11..000000000000 --- a/sys-libs/compiler-rt/compiler-rt-13.0.0.ebuild +++ /dev/null @@ -1,130 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{8..10} ) -inherit cmake flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs - -DESCRIPTION="Compiler runtime library for clang (built-in part)" -HOMEPAGE="https://llvm.org/" - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="$(ver_cut 1-3)" -KEYWORDS="amd64 arm arm64 ppc64 ~riscv x86 ~amd64-linux ~ppc-macos ~x64-macos" -IUSE="+clang debug 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} - ) - !test? ( - ${PYTHON_DEPS} - )" - -LLVM_COMPONENTS=( compiler-rt ) -LLVM_PATCHSET=${PV/_/-} -llvm.org_set_globals - -python_check_deps() { - use test || return 0 - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -pkg_pretend() { - if ! use clang && ! tc-is-clang; then - ewarn "Building using a compiler other than clang may result in broken atomics" - ewarn "library. Enable USE=clang unless you have a very good reason not to." - fi -} - -pkg_setup() { - # Darwin Prefix builds do not have llvm installed yet, so rely on - # bootstrap-prefix to set the appropriate path vars to LLVM instead - # of using llvm_pkg_setup. - if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then - llvm_pkg_setup - fi - python-any-r1_pkg_setup -} - -test_compiler() { - $(tc-getCC) ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \ - <<<'int main() { return 0; }' &>/dev/null -} - -src_configure() { - # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" - - # pre-set since we need to pass it to cmake - BUILD_DIR=${WORKDIR}/${P}_build - - local nolib_flags=( -nodefaultlibs -lc ) - if use clang; then - local -x CC=${CHOST}-clang - local -x CXX=${CHOST}-clang++ - strip-unsupported-flags - # ensure we can use clang before installing compiler-rt - local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" - elif ! test_compiler; then - if test_compiler "${nolib_flags[@]}"; then - local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" - ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}" - fi - fi - - local mycmakeargs=( - -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" - - -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) - -DCOMPILER_RT_BUILD_LIBFUZZER=OFF - -DCOMPILER_RT_BUILD_MEMPROF=OFF - -DCOMPILER_RT_BUILD_ORC=OFF - -DCOMPILER_RT_BUILD_PROFILE=OFF - -DCOMPILER_RT_BUILD_SANITIZERS=OFF - -DCOMPILER_RT_BUILD_XRAY=OFF - - -DPython3_EXECUTABLE="${PYTHON}" - ) - - if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then - mycmakeargs+=( - # setting -isysroot is disabled with compiler-rt-prefix-paths.patch - # this allows adding arm64 support using SDK in EPREFIX - -DDARWIN_macosx_CACHED_SYSROOT="${EPREFIX}/MacOSX.sdk" - # Set version based on the SDK in EPREFIX. - # This disables i386 for SDK >= 10.15 - -DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath ${EPREFIX}/MacOSX.sdk | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')" - # Use our libtool instead of looking it up with xcrun - -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool" - ) - fi - - if use test; then - mycmakeargs+=( - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="$(get_lit_flags)" - - -DCOMPILER_RT_TEST_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang" - -DCOMPILER_RT_TEST_CXX_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++" - ) - fi - - cmake_src_configure -} - -src_test() { - # respect TMPDIR! - local -x LIT_PRESERVES_TMP=1 - - cmake_build check-builtins -} diff --git a/sys-libs/compiler-rt/compiler-rt-13.0.1.ebuild b/sys-libs/compiler-rt/compiler-rt-13.0.1.ebuild index 26709f8a2123..08e7c073204b 100644 --- a/sys-libs/compiler-rt/compiler-rt-13.0.1.ebuild +++ b/sys-libs/compiler-rt/compiler-rt-13.0.1.ebuild @@ -11,7 +11,7 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="$(ver_cut 1-3)" -KEYWORDS="amd64 arm arm64 ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos" +KEYWORDS="amd64 arm arm64 ppc64 ~riscv x86 ~amd64-linux ~ppc-macos ~x64-macos" IUSE="+abi_x86_32 abi_x86_64 +clang debug test" RESTRICT="!test? ( test ) !clang? ( test )" diff --git a/sys-libs/compiler-rt/compiler-rt-14.0.0.ebuild b/sys-libs/compiler-rt/compiler-rt-14.0.0.ebuild deleted file mode 100644 index 0ac188065657..000000000000 --- a/sys-libs/compiler-rt/compiler-rt-14.0.0.ebuild +++ /dev/null @@ -1,137 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{8..10} ) -inherit cmake flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs - -DESCRIPTION="Compiler runtime library for clang (built-in part)" -HOMEPAGE="https://llvm.org/" - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="$(ver_cut 1-3)" -KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos" -IUSE="+abi_x86_32 abi_x86_64 +clang debug 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} - ) - !test? ( - ${PYTHON_DEPS} - )" - -LLVM_COMPONENTS=( compiler-rt cmake ) -LLVM_PATCHSET=${PV/_/-} -llvm.org_set_globals - -python_check_deps() { - use test || return 0 - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -pkg_pretend() { - if ! use clang && ! tc-is-clang; then - ewarn "Building using a compiler other than clang may result in broken atomics" - ewarn "library. Enable USE=clang unless you have a very good reason not to." - fi -} - -pkg_setup() { - # Darwin Prefix builds do not have llvm installed yet, so rely on - # bootstrap-prefix to set the appropriate path vars to LLVM instead - # of using llvm_pkg_setup. - if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then - llvm_pkg_setup - fi - python-any-r1_pkg_setup -} - -test_compiler() { - $(tc-getCC) ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \ - <<<'int main() { return 0; }' &>/dev/null -} - -src_configure() { - # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" - - # pre-set since we need to pass it to cmake - BUILD_DIR=${WORKDIR}/${P}_build - - local nolib_flags=( -nodefaultlibs -lc ) - if use clang; then - local -x CC=${CHOST}-clang - local -x CXX=${CHOST}-clang++ - strip-unsupported-flags - # ensure we can use clang before installing compiler-rt - local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" - elif ! test_compiler; then - if test_compiler "${nolib_flags[@]}"; then - local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" - ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}" - fi - fi - - local mycmakeargs=( - -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" - - -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) - -DCOMPILER_RT_BUILD_LIBFUZZER=OFF - -DCOMPILER_RT_BUILD_MEMPROF=OFF - -DCOMPILER_RT_BUILD_ORC=OFF - -DCOMPILER_RT_BUILD_PROFILE=OFF - -DCOMPILER_RT_BUILD_SANITIZERS=OFF - -DCOMPILER_RT_BUILD_XRAY=OFF - - -DPython3_EXECUTABLE="${PYTHON}" - ) - - if use amd64; then - mycmakeargs+=( - -DCAN_TARGET_i386=$(usex abi_x86_32) - -DCAN_TARGET_x86_64=$(usex abi_x86_64) - ) - 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 - -DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath ${EPREFIX}/MacOSX.sdk | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')" - # Use our libtool instead of looking it up with xcrun - -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool" - ) - fi - - if use test; then - mycmakeargs+=( - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="$(get_lit_flags)" - - -DCOMPILER_RT_TEST_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang" - -DCOMPILER_RT_TEST_CXX_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++" - ) - fi - - cmake_src_configure -} - -src_test() { - # respect TMPDIR! - local -x LIT_PRESERVES_TMP=1 - - cmake_build check-builtins -} diff --git a/sys-libs/compiler-rt/compiler-rt-14.0.1.ebuild b/sys-libs/compiler-rt/compiler-rt-14.0.1.ebuild index 3822cdf53b40..0ac188065657 100644 --- a/sys-libs/compiler-rt/compiler-rt-14.0.1.ebuild +++ b/sys-libs/compiler-rt/compiler-rt-14.0.1.ebuild @@ -31,7 +31,7 @@ BDEPEND=" )" LLVM_COMPONENTS=( compiler-rt cmake ) -LLVM_PATCHSET=9999-1 +LLVM_PATCHSET=${PV/_/-} llvm.org_set_globals python_check_deps() { diff --git a/sys-libs/compiler-rt/compiler-rt-14.0.3.ebuild b/sys-libs/compiler-rt/compiler-rt-14.0.3.ebuild new file mode 100644 index 000000000000..dcbada06ccf0 --- /dev/null +++ b/sys-libs/compiler-rt/compiler-rt-14.0.3.ebuild @@ -0,0 +1,139 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{8..10} ) +inherit cmake flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs + +DESCRIPTION="Compiler runtime library for clang (built-in part)" +HOMEPAGE="https://llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="$(ver_cut 1-3)" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos" +IUSE="+abi_x86_32 abi_x86_64 +clang debug 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} + ) + !test? ( + ${PYTHON_DEPS} + ) +" + +LLVM_COMPONENTS=( compiler-rt cmake ) +LLVM_PATCHSET=${PV} +llvm.org_set_globals + +python_check_deps() { + use test || return 0 + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_pretend() { + if ! use clang && ! tc-is-clang; then + ewarn "Building using a compiler other than clang may result in broken atomics" + ewarn "library. Enable USE=clang unless you have a very good reason not to." + fi +} + +pkg_setup() { + # Darwin Prefix builds do not have llvm installed yet, so rely on + # bootstrap-prefix to set the appropriate path vars to LLVM instead + # of using llvm_pkg_setup. + if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then + llvm_pkg_setup + fi + python-any-r1_pkg_setup +} + +test_compiler() { + $(tc-getCC) ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \ + <<<'int main() { return 0; }' &>/dev/null +} + +src_configure() { + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + + # pre-set since we need to pass it to cmake + BUILD_DIR=${WORKDIR}/${P}_build + + local nolib_flags=( -nodefaultlibs -lc ) + if use clang; then + local -x CC=${CHOST}-clang + local -x CXX=${CHOST}-clang++ + strip-unsupported-flags + # ensure we can use clang before installing compiler-rt + local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" + elif ! test_compiler; then + if test_compiler "${nolib_flags[@]}"; then + local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" + ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}" + fi + fi + + local mycmakeargs=( + -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" + + -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) + -DCOMPILER_RT_BUILD_LIBFUZZER=OFF + -DCOMPILER_RT_BUILD_MEMPROF=OFF + -DCOMPILER_RT_BUILD_ORC=OFF + -DCOMPILER_RT_BUILD_PROFILE=OFF + -DCOMPILER_RT_BUILD_SANITIZERS=OFF + -DCOMPILER_RT_BUILD_XRAY=OFF + + -DPython3_EXECUTABLE="${PYTHON}" + ) + + if use amd64; then + mycmakeargs+=( + -DCAN_TARGET_i386=$(usex abi_x86_32) + -DCAN_TARGET_x86_64=$(usex abi_x86_64) + ) + 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 + -DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath ${EPREFIX}/MacOSX.sdk | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')" + # Use our libtool instead of looking it up with xcrun + -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool" + ) + fi + + if use test; then + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags)" + + -DCOMPILER_RT_TEST_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang" + -DCOMPILER_RT_TEST_CXX_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++" + ) + fi + + cmake_src_configure +} + +src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + + cmake_build check-builtins +} diff --git a/sys-libs/compiler-rt/compiler-rt-15.0.0.9999.ebuild b/sys-libs/compiler-rt/compiler-rt-15.0.0.9999.ebuild index 1c847a474a08..1a7cc5f2b724 100644 --- a/sys-libs/compiler-rt/compiler-rt-15.0.0.9999.ebuild +++ b/sys-libs/compiler-rt/compiler-rt-15.0.0.9999.ebuild @@ -1,7 +1,7 @@ # Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 PYTHON_COMPAT=( python3_{8..10} ) inherit cmake flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs @@ -18,17 +18,19 @@ RESTRICT="!test? ( test ) !clang? ( test )" CLANG_SLOT=${SLOT%%.*} # llvm-6 for new lit options DEPEND=" - >=sys-devel/llvm-6" + >=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}]") + $(python_gen_any_dep ">=dev-python/lit-15[\${PYTHON_USEDEP}]") =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} ) !test? ( ${PYTHON_DEPS} - )" + ) +" LLVM_COMPONENTS=( compiler-rt cmake ) LLVM_PATCHSET=9999-1 diff --git a/sys-libs/cracklib/Manifest b/sys-libs/cracklib/Manifest index ed02b33ec414..a007bb95f2ad 100644 --- a/sys-libs/cracklib/Manifest +++ b/sys-libs/cracklib/Manifest @@ -1,3 +1,3 @@ DIST cracklib-2.9.7.tar.bz2 603630 BLAKE2B 81a45b2fb9f34da84d4fb864e1a9f67a4b22c246f1e4db1c599a555f79d560a04d95afb01a89cd3a2e0936f0e8fc51ff5ada26098c24d7af0777a94f51b82bbd SHA512 f6bf65ac092ba46ff78ddbc115692260fb76dc71219cd679d2ea935ebfb9e709fbb30259a7406743ed00dbdc415335b3ac9d9fcba1d204ea36d5eb96bf1333a2 -EBUILD cracklib-2.9.7.ebuild 2606 BLAKE2B 94554367a34bcd0924abd1a054e64408b605b43ecf904d6e72527612ec485ecd8cb03d9b664372a603e132d32facbbe63f40ca85c74f0206e455ff063672de23 SHA512 c65aad0170ff3b3ac58c30805d6816de1ad1df8174bfb390d6b04117e2761d7e04693fe1d07068831625ae9382b59b39c521e4f27882f5f22a7a275733fac66f +EBUILD cracklib-2.9.7.ebuild 2613 BLAKE2B 314ce7d109f3987f8386408bd82220793bd65b5a6a459dca63c054faf6d4432b699f226626e096fe7cf1f57d987b4f68019806dcdc70289ddd6e0ad9e53949b3 SHA512 e5e60fe3f604eccac9b0cb1d0e1c15a0c22adee15a99352517770b322d8052f295baa6b5444dbaeb0fdff3557065d7fef2697f104b8daf8cb1f63d601ac1af8c MISC metadata.xml 385 BLAKE2B f81e1ac44f5a4c3f647473385363eed564accca3b62ecde3cb35fab14112af1ceb2a25dc2816fc096aee9c3ed15006252f32491583861689ed70d49218684360 SHA512 6d9908f12c310ef22feeae2216236f9b632dc5204916fbb5693cc53bb58e592dc44f49c45d2c8bc22addd69cc5e4e63df463a23299d09a637f4f0f7379e7b796 diff --git a/sys-libs/cracklib/cracklib-2.9.7.ebuild b/sys-libs/cracklib/cracklib-2.9.7.ebuild index b2cada86052b..4acc9d791b07 100644 --- a/sys-libs/cracklib/cracklib-2.9.7.ebuild +++ b/sys-libs/cracklib/cracklib-2.9.7.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -17,7 +17,7 @@ SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.bz2" LICENSE="LGPL-2.1" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos" IUSE="nls python static-libs zlib" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" diff --git a/sys-libs/db/Manifest b/sys-libs/db/Manifest index a19eac69f2aa..3aaf35b5f96e 100644 --- a/sys-libs/db/Manifest +++ b/sys-libs/db/Manifest @@ -19,8 +19,8 @@ DIST db-6.2.38.tar.gz 41298311 BLAKE2B a04a3344058b1d9982f39628c1114aded8f8c8607 EBUILD db-18.1.32-r1.ebuild 5960 BLAKE2B 0c5376bf33a91c69c3f0bfe3baf9b4f99770082ebbbf202ac436a9a1b9d8f9ce8e59f8e2670c0a524848717e98991cbb0e628098d060af99cead9fa5ef82a632 SHA512 3f5dca955df5d78f95baaeb2f64ae30e67f7ee30656e962ccd119f8a88d45905fecbdf5d29a2e72b5e63c41ef849db6961b22b86cc03aa132a0114fc00310d61 EBUILD db-18.1.40-r1.ebuild 5877 BLAKE2B 225c7e6250140cc1c8c81f0b99a326e5b3ea0007b5b8804155b45e4b3c82fe09bb704590379098789ea43a657d0e72e79b1bd2e0c0dfd69c4615685010939d51 SHA512 6d9052607d2bf864d3ded422054b55a387c7cbc17f2575c879b7333be22b57507f186598f4107167a914dee7594c0a98d5e1628aba40a2c3269dc95ef0b73905 EBUILD db-4.8.30-r6.ebuild 4304 BLAKE2B c9021ae73d814d5f78e0fa9066a27813729d7353fb62b5735dadf7394dbc586b67e4f4703132396f9b80906c70353cde6ae1113cab8ed5778894d6242024e648 SHA512 6509604b1624b47f5e3a51e2b37e5de002836d23a4ea4633b994a4f168c44804dd2283904783473391e160cae5462ed6c087da893d2e4e06440f7db6456246e9 -EBUILD db-5.3.28-r8.ebuild 6274 BLAKE2B 47e32b5796b11c9d794a0ac69d5983d89b17c88ea98b2e50b9678fd9ae1d0072a8c28dc126d3c787324d84f04fd7db9f3d6e1eebea32a29cf35b1f295f4e14e0 SHA512 8b200232eeeee74f7e3cd23f53b202a8da8f3e215ee3a21ee62f57729fcea533379b8515a48de3449442a3b75abd40c4a1bcbab197366e9e82af9de201671dd4 -EBUILD db-6.0.35-r4.ebuild 6221 BLAKE2B c5c9602d02034638fd45c9cf4723cd86ee0bec8d2291add78ebbfb13fe43278fb477dea4337514b41002e4ade5dd2f715cf391b8f5353e9145455766bea2d2f6 SHA512 9642cb3f3b64510ec3d8d8bf04f95299f4301a48641b67c4a219d5c770947df9d2be20adc82c919c1b8be546fb19e0de85a8336fb28f7b7c51825c81f88db4b5 +EBUILD db-5.3.28-r8.ebuild 6325 BLAKE2B 8e4db465357b5fa3aa897134c0f18a0042d004896ed43979bf007b9602a1df889aed765ee0fadb70b9a50b991891d81606cd7d56393b098fb1d1bc42ef821a88 SHA512 e65b8a7801a8c180375949b2584952a05f207a8411021540f4d8989c0b3d6e462eb732592eaf468610cda3abeb70fb2381c07022288021de4cfa8654b4e82c65 +EBUILD db-6.0.35-r4.ebuild 6228 BLAKE2B 6c533595bbe2d1888c296eabaae5eb40f1335c81a76d1d95a3b4bbd2123abc673dee0e08e90c323ab7a59c95ab8890da483aa53cec93c92079000021e4d943b9 SHA512 18497321dd41cd1025c2e9ebffae12a0e0acb70843dd73c7db668bca86d31246cd3e60ceebfb1d06367061a47e8cbde3fa51053c67917000d567d1c4d663541f EBUILD db-6.1.38-r1.ebuild 6004 BLAKE2B fb9176d0eef059b4b9606d9287bebe69dafa3752c98fd03e536593b34159b500498758b77456771e28edf9409bbf917f10ca13365899c5245685ce2fe10e5a20 SHA512 7ccfff6e27f1e138a53abba02123f56e10a3da56ddc41c12a2715aa9fd6e8a47d8c8b2e05a6489e18ef69b063a1c9150378a93b398288f3c5fb89ed3c2c2449c EBUILD db-6.2.38-r1.ebuild 6267 BLAKE2B 883d7c81d6e2fc11a2c3d7dc6746935f1ea3a26aae9ab0bc833138234c238057a58caebc23b70e2dc2da05d0ea130bb670a4b33bf68aeb2bfd90bf86d9339b0f SHA512 b1411c814134c6ef9751425aaa79362cc03c0aa8d19a21fd4c5cc8085ec5a98bddc773442bdb69ee9f06544d013505f36b3c2d1301b37b20646f4126573c7aeb MISC metadata.xml 1261 BLAKE2B 81cfdd965f4e2e0342d812c6c1fd602c43ca8bbbb23bd12f230444d26bee578f9ba2af781a8390bb754b66b4699c6aada379dea90397798f8a489a7fd11b85fb SHA512 08d43450d54a8718639ae2637f13da7626415e99a8fa5948c5107b7a973161f31b3b0cf58dc538dd48a18db996f020d57d20edefbcdd8e37c6e58c206c3aab6e diff --git a/sys-libs/db/db-5.3.28-r8.ebuild b/sys-libs/db/db-5.3.28-r8.ebuild index c7f5d0f6d288..133c241be4a6 100644 --- a/sys-libs/db/db-5.3.28-r8.ebuild +++ b/sys-libs/db/db-5.3.28-r8.ebuild @@ -38,6 +38,8 @@ REQUIRED_USE="test? ( tcl )" DEPEND="tcl? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] ) test? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )" RDEPEND="tcl? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )" +# bug #841698 +BDEPEND="sys-devel/autoconf-archive" MULTILIB_WRAPPED_HEADERS=( /usr/include/db${SLOT}/db.h diff --git a/sys-libs/db/db-6.0.35-r4.ebuild b/sys-libs/db/db-6.0.35-r4.ebuild index cf95493690ea..93dc0fcf54a6 100644 --- a/sys-libs/db/db-6.0.35-r4.ebuild +++ b/sys-libs/db/db-6.0.35-r4.ebuild @@ -29,7 +29,7 @@ done LICENSE="AGPL-3" SLOT="$(ver_cut 1-2)" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" IUSE="doc cxx tcl test" REQUIRED_USE="test? ( tcl )" diff --git a/sys-libs/gdbm/Manifest b/sys-libs/gdbm/Manifest index 6f7480e033da..a7bf5e45e050 100644 --- a/sys-libs/gdbm/Manifest +++ b/sys-libs/gdbm/Manifest @@ -2,5 +2,5 @@ DIST gdbm-1.22.tar.gz 1090100 BLAKE2B f27c65e8cc7c71fc4f4a119b92e1d1b2068c1ec874 DIST gdbm-1.23.tar.gz 1115854 BLAKE2B a47746577cf2f3c9b62faea496c4d6a50a8f1b0a5af448cb2215e90057c99b5b630ba3f5357c85dfb7fd98ba4e90969e30a779120c29106ed1e8736721f9bec1 SHA512 918080cb0225b221c11eb7339634a95e00c526072395f7a3d46ccf42ef020dea7c4c5bec34aff2c4f16033e1fff6583252b7e978f68b8d7f8736b0e025838e10 DIST gdbm-1.23.tar.gz.sig 181 BLAKE2B 34785e6fe8e02100084d61e989749ee388794b8af82fc59a417140807bf169c45c15935f8cf91d0ba116dfdee295e05b2b014f1539f1f128a57acfe59010d34d SHA512 6653751c04584f10aa3325bd1cb5b9f7970a786dd2a99602ea620c11a86a9ba5c342aa52627bd06c03da822e9e1600dc034d9a8f42856a287fd67f6b9f161c71 EBUILD gdbm-1.22.ebuild 1202 BLAKE2B bc388868d2de48c00f3f68086ae93b65672b56a377432bdfb7285818dbbf4ca55d0b741fc13fd46927163947e620fbf2f9b014acc9f2c17cb8c46af89828f069 SHA512 3fcd47d0d2aafe1db816bcadfba4bce22b0bc8c7ebf7a67654e237df10ccff461e746f6ed530e1b4cc84c1f0b66499c7ca09239ba4d83c16a680b3874f63abb8 -EBUILD gdbm-1.23.ebuild 1405 BLAKE2B bb83d1bfda58d40be3383f0cafc9a59288a7a72ee94d3d8ecf8a2613b7c7d1fccf05494c22d1defe2cdbd26b438817985d4d5a404265b71ed49f0205e4288276 SHA512 e0e5ba2fc70e0573fbdfea95b6c0f084da2fb759b84583bdde3ca85ea28899eb14b9a40f7cfaca6cb56afd9a33d42a8232e1d4e2c22372ee1ab1a76bf1851d90 +EBUILD gdbm-1.23.ebuild 1552 BLAKE2B 52913b3c2c9a9db27305b9e8e79283099f3312d7f15d444703b008aefe3ca292438fddf4e4d63ddd683f7050b16c15ca6033299a645fe93ca1625a8a363afe68 SHA512 ff390a0dd103fd0b4b64f317cfe753950fe51246c5a306e59f80f8d067fdb3b77d4c48f9f8b1a48ced69a9a0861ebb23a5cb8592867ac4803bafec66827e98de MISC metadata.xml 360 BLAKE2B 4133eee8e152f330b954a1bcc947747364b73301a0bbb5c26cc88f8d53fa816a8b16e34b06a79859a19975bf45761dbc8bd73b6b6a875587d63624ccd737600b SHA512 5f8de97ceb589c6db119d81ef7e662042b288d2fca0ab1d1f8fef714dcb2087cf5f87ade607f7a18790fba02579a9ec5a84edb0482c83b7181e7836d108eb9d3 diff --git a/sys-libs/gdbm/gdbm-1.23.ebuild b/sys-libs/gdbm/gdbm-1.23.ebuild index 634e8f355c15..9df46a0d5032 100644 --- a/sys-libs/gdbm/gdbm-1.23.ebuild +++ b/sys-libs/gdbm/gdbm-1.23.ebuild @@ -4,7 +4,7 @@ EAPI=7 VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/gdbm.asc -inherit multilib-minimal verify-sig +inherit libtool multilib-minimal verify-sig DESCRIPTION="Standard GNU database libraries" HOMEPAGE="https://www.gnu.org/software/gdbm/" @@ -13,13 +13,21 @@ SRC_URI+=" verify-sig? ( mirror://gnu/gdbm/${P}.tar.gz.sig )" LICENSE="GPL-3" SLOT="0/6" # libgdbm.so version -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" IUSE="+berkdb nls +readline static-libs" DEPEND="readline? ( sys-libs/readline:=[${MULTILIB_USEDEP}] )" RDEPEND="${DEPEND}" BDEPEND="verify-sig? ( sec-keys/openpgp-keys-gdbm )" +src_prepare() { + default + + # gdbm ships with very old libtool files, regen to avoid + # errors when cross-compiling. + elibtoolize +} + multilib_src_configure() { # gdbm doesn't appear to use either of these libraries export ac_cv_lib_dbm_main=no ac_cv_lib_ndbm_main=no diff --git a/sys-libs/glibc/Manifest b/sys-libs/glibc/Manifest index 4a48e9eb19ea..2f57073cf3a7 100644 --- a/sys-libs/glibc/Manifest +++ b/sys-libs/glibc/Manifest @@ -25,9 +25,10 @@ DIST glibc-2.33-patches-11.tar.xz 143916 BLAKE2B ac13b3ccf9681bb6d3c35ecc33e268e DIST glibc-2.33.tar.xz 17031280 BLAKE2B 703d12121c1e2c5d9e0c6ba5341f5fb5c4d9111611a83f2360029b5de9c6e5a5611249d1833684a58ed4afdf49cae614365d87ec8721ba0e5d218f593b1f229d SHA512 4cb5777b68b22b746cc51669e0e9282b43c83f6944e42656e6db7195ebb68f2f9260f130fdeb4e3cfc64efae4f58d96c43d388f52be1eb024ca448084684abdb DIST glibc-2.34-patches-15.tar.xz 146124 BLAKE2B f679f0fc27780173875178537cf996cbfb59bb844566388df0c351dec125eb02070571d4e2852742b43933d09c7a148a39bbc7b2b71fffebd7b8d9d3c16850ac SHA512 5224613e2288fcf027be224001306a84019ebe741114ee1b09d3de9b269dad0280a6dc4d88f4bc38dace501b2944a0098972589a1560756cb3da7e1b7341d672 DIST glibc-2.34-patches-16.tar.xz 164648 BLAKE2B 78786a67109812942ac11bee9a880b9383aa61d0c2b006e3e7e635218842f49c6ce5b7c75597f7d317aa18fede0ca0c79a4bd436b8659ba6a2f1953848484d2a SHA512 acfc91e821cd8b4e57907c7aeaf1eac0bae1f8e244e4011f27819a8ba16a4e9c10fc675c6aaff992be81bba9373ec981fb598838f26aa247e7bd016e2cd786d2 +DIST glibc-2.34-patches-17.tar.xz 241584 BLAKE2B e4eea130c331f64ba66e14a6ba318853141ee3e41b455cb45b8fdb702cae071dd307229dafcfcafcc41e5a56982f52c87e31d95295f824f1a2ae689a7e0f5b49 SHA512 c6a51b373be3986e1ad753541ccf73f29515b5df0f80e0450b26bed37e8c505e22e8f13e89554347e551819c8d89d30f306464e5d25cafa4a12400c112578dca DIST glibc-2.34.tar.xz 17301232 BLAKE2B 874031192f2f5a3b35c3f5b044a467d4be4e67e8593e070e5b49b901ce8ea6bde2f8d2f6c92fa33b3f61eb723572a9e5f2b45e56064168df80a96d3fdb6fa30c SHA512 15252affd9ef4523a8001db16d497f4fdcb3ddf4cde7fe80e075df0bd3cc6524dc29fbe20229dbf5f97af580556e6b1fac0de321a5fe25322bc3e72f93beb624 -DIST glibc-2.35-patches-4.tar.xz 45456 BLAKE2B 47e1c5e4db4969da27f14816ac9b856f3a57e152139e071f0fd0ecf53b7ac2a0372a8dec7e9e51808d463d2e5b12a6acc9145bb0127a7f36cf1d19b96a0efa41 SHA512 39ca84ed5f3e74bccb8875a77188bb16f6b45b1b22843b4ccf8a7f792d35e05e8305929fbeede290ebb128722caf8277da03dbf4aee9261940765f8dfcd01561 -DIST glibc-2.35-patches-5.tar.xz 45632 BLAKE2B b49161139e8a9e6f4351b5954f38eaa3b0b16a444c370b906e2fcac8eb25c306e6f95474063e511a4f8bf48c0eade9509a6158a1019e32ec4b95c49f992405eb SHA512 5bf20061f24ad087aa0f22808cb0dfd810e5413e71dc9b9c7ec0e9cecd172c40e3517e0a151294175351cf0e037e9c35d8b50ba391a312976e7c4103845089e4 +DIST glibc-2.35-loongarch-patches-20220422.tar.xz 44804 BLAKE2B b93720e45d23c8d17918ffaa480351499f4748bc08ab6e1f1fd3c681fcc0b08a3381188f5d4f14e6706baa5eb45c787bc635d0e8ea59712514012caf93992222 SHA512 28e2d02f07fcf61f76585dd59627314ed20ebe29ecd7ae7f5aea8db0704482fc024fee744cbee1776e666d14b80b1393f64cd2283e3c39be4c97ebe09efcdee2 +DIST glibc-2.35-patches-6.tar.xz 57236 BLAKE2B a03845733e2f0ebe179523458695963d729b4211b4ce14310d55163cd33aff502f9e14a4bb0068410777e9b9bb5be4ef7ad1a1fd51debf9191dcf89dc9ff08b8 SHA512 59c5e1669677e969873f5bba38958316a3b32523cac628b97513aed864e191da10499edac77bb5e9a07179d14cf3c75073fd03e8427f7bcfd68fedcedc35083e DIST glibc-2.35.tar.xz 18165952 BLAKE2B 623c728884f070cd87ffeb9203f74206197c52405ac9bc44f3dd519a3468b8e8ae2536c883e5d17d94417dbd1e91775de2e674314e4ff7424f9720026d6b7063 SHA512 e7336ce27561be5d7c217832a1136fb327e057bd8d3f92925b35c97e3e9f9e486948b5a1e03e5e4090772ef06437a074d10b82e68f17f1ad8f22077ee39e1b66 DIST glibc-systemd-20210729.tar.gz 1480 BLAKE2B 37722c7579df782d890e44dbab99c3de52ab466eb9de80d82405e9bb5620bf39ffc8c5f466a435bdb86ef6d36dd7019c0736573916bda6c67d02a2581e0ec979 SHA512 efd75af58b50522c28cdac7abd1fc56555bc1bb042512c90d8340c1ec09c5791b3872a305bf83723252bbde5855b75d958c041083457765c4cfd170732d09238 DIST glibc-systemd-20210814.tar.gz 1469 BLAKE2B 10fa7bcb46d4fdce9c0ab353cbd30871e9b09a347a13a9c9a3b5777f931aa3c826c158d2e49532c604d4a834f2fab4089b67495fb88d0398945dc50d45ad9ef1 SHA512 5346a9ea459a1e6ccf665389f2a294de1e16f1e3e05cdf07e3dd99ed0e4f6f8b52cc333d4bff3c75ac90ab6ce70cd4ab2b3e126f920ce7979abd6dda56315efc @@ -39,9 +40,11 @@ EBUILD glibc-2.30-r9.ebuild 43400 BLAKE2B 01cbb9398dbe5d93f110f7c7ffe24d40719d86 EBUILD glibc-2.31-r7.ebuild 44522 BLAKE2B 1adfba68c35d3af5ec8476b2fe5d3bebf13880eeacb5aaa8438b41b98f5b275f0816a0e654446f62ee2f34f412c5c6e72befcc0deb8988b6faec2c53a07601a9 SHA512 5247b1d75efa86b1a1c85a09219f54d402aae8aaecf0e377ca663a984daf7c69ea97b3072fe83a20002ec7d72661ec7737fbc72982122b58c26cb5bc89997548 EBUILD glibc-2.32-r8.ebuild 44853 BLAKE2B 724f95c0ed2cda18dc2edcaa03b0783a2bc603b72a67e1451535040ddc83be6d1a90ad4b30f9623140b5c0a329ecafb6f19793390137e629d43a3c26e202b28a SHA512 0973b86c266e40203e301cf0c6f8fddc4273c002ffb8fd6c16f6e78f2cfdfbea95fda04adfebb8ee84a14dc950763ba706eadadb2e83f7982b800bee636d5d8f EBUILD glibc-2.33-r13.ebuild 48593 BLAKE2B 59c4e32d200c6b8fe1e365361c9cc4f4d7f93ab861e93fb13cb9bc0cc8e2d4f3a2f1f8f394570e186398858afc6d844188581f18a8eb7c0964ab73a147be9dcb SHA512 7003a462e28abef982330ab6fc29b836176c3e1943605bd04c907c40376de812783ebcd74a91305a9f86df7c0a75494a29f2187848bc75e6b42198704c514001 -EBUILD glibc-2.34-r10.ebuild 50089 BLAKE2B ada10ebb3acce89f9839a8f3ab4c52e3f42d1a8767f5701f2be1a585178efa551a8c820df524af24def955692858cc0eb7bd60f53e30bed1f3392c9d36402fec SHA512 3d6658c00b5f9cac9c29d1b15ba00ebcd3212819bdeaa83ad56f10f78f4e89286fb1eab12821cd43d4516154d4f602433ed50b9d832ceba1af1a135c80d6d882 +EBUILD glibc-2.34-r10.ebuild 50088 BLAKE2B 0851200f354aaedd3b336e2d1a5a3bf69a75c2496c6a7468b33b14b87bc641173f25154ec67d5a4a55fe620e7449f898f0bad2142e409423dc6840ef83e8d379 SHA512 522199f7d10d0b39f6cc7f13ed47159ceced9c4228c102ff200350f0aafbaf8bf2510a04e78a90c194c332339d5241273aa6f933c0750f25c70f0144162a80ec EBUILD glibc-2.34-r11.ebuild 50012 BLAKE2B 2b5c796fc88561d3862f5e1897bec6bd9a40bc53897c9b3e49ceb0c3c0f5d9fe872884da288c5284fb8da738002d9e9acd9641299972eeed38b2b12758167100 SHA512 63191d7aa56e3aa0e24976525a01491255a273686ded3f1a05bde06594e96dc0734d7fda64b3f45cd6be042c2a0cfdd6b39dfc79acfd68bc6a19f5f43ba384f0 -EBUILD glibc-2.35-r1.ebuild 48339 BLAKE2B d837073cf2e62d8cb5d6f50f1b48db0ac5d0954f6407784622ea79709fb4750f08d24ffc702d83747671b27589370640a451dea2262ea452e34327ede556ce68 SHA512 0cbc1074684f2ed48317a5face037db43de562693ffd356068eaa4160b063c01155b258fe79e47359d0400c9f50f40f1876d92eef351106974b5be6b29220077 -EBUILD glibc-2.35-r2.ebuild 48683 BLAKE2B dd103c6ff435d01e2c28eabab7099ab06ff60284a7a94eccd5a23e9809005421eaea2e5c058714765264c6d518e2d7a329fa1b7ce520b339aaa54bdbb7d78185 SHA512 1e5e12cf6030cb6dd23bd5a7b98c8d6b96cc3a0d55ef769d793365ea091b3c07f498655f53fbcc7c0391880b67219aaddf4d54bc09f38a0eb8b31c6a01e230d5 -EBUILD glibc-9999.ebuild 48441 BLAKE2B b1b5a913d75abcc15229e073d3417df2ff3c21f146eae9ca9b85a4630d35c2a3811f49deaa28eddebb76a8d4cb4208a7c8552afcca469bd69c897d14fc06d8fe SHA512 9dc2a2c09a4ba4ce923098ce579e54f84d8b756da7ac0acf426abc331447dc47a77811dcdb88e903015c2ddfa3a033cb600f6d00b96e0ef4ba74fedcdb529b80 -MISC metadata.xml 1701 BLAKE2B 91bd245d0a3685d76e3f874b50db872660054767fca5181871022fbdef9a18c4e674890bfed52cc3332c9557430ae8eec64505e67cdbedff000987406ab69ac5 SHA512 524edc37a01a47958ef557d586e8f06c6132481734ea28ed57e146969503fd129ad1da813a4d2d143a9bb8abe8810b0d8c920ab3c422a729287838435c44743a +EBUILD glibc-2.34-r12.ebuild 49816 BLAKE2B 5ea20d72b5986f2b4ff100d69a8cb85965a529c36da5120fd6c1e8c76c540f917584138d459e13eceaaf3ffdc9d2cecdb9c9e0b22a9833e88b24e2a44bfe6671 SHA512 7b7075e6534fddc9bb69ff7f362647be2061f5389a163b8681244f319fc5872bd222fe7a77dfc19e8b49d5636ae215bd147480637d6b15c22928db8fc1115155 +EBUILD glibc-2.34-r13.ebuild 49811 BLAKE2B 3e6284195fc10ef246becf0840e385a99fae575b9516945d45e83396981860097de8273077485da9ed81438fff8298693475bec8beb38a09d7e0b9d9b364f17e SHA512 fbf32c89f338f10f0155f4ee9b0c6511572fa34da29f9fb4c165b472be5e39853d72407367be66f95198de6aa57bc9a0c45a5eb8b9c772f0d3fb4651d7fa7f32 +EBUILD glibc-2.35-r3.ebuild 49052 BLAKE2B 989cad0d895fdd4c7a6c405a72c3dcb90d799076b47e7667059e54585ee64fec9aba5e1c226546afc8770af13754fc7988f08600c1d50f05e804fec422db7190 SHA512 80289d19be44c9a787022a3a389e640d46ac75c1c3510249f78c56a5898661698b85f124f29678d2a947163050de669953162ff0def1587691466d21bce44853 +EBUILD glibc-2.35-r4.ebuild 48863 BLAKE2B 6ff922da2ddcde3899bc6de017e30e215ed45a177968bf076309dfb8a15d2c91c846ec2dc10d21fb1f76205b979fc160d7924abd69e0f3138f8a34365f459cee SHA512 ce418643d37654d9cfc072272a4680a4f11a78a67682d8ed2072cdedeae02d25271784878adf8f153c569bc982b4ac5c59d6758637847c4bf5a116be717af0af +EBUILD glibc-9999.ebuild 48245 BLAKE2B 75b64b12a0ac417ac154547505bf1f4067aff625b67e082b26bfd451dfcb1c2610b50f165d76cc21cf595caf2f8c1f97b45169246cc564135a131dae46ba2345 SHA512 2b1d562471dc9754328f20398e37406b02c93e896010260479ecea69e7efe58e52dab5f8b7b82bcb4b78a51fc35a6af5deb31c9db56a887e7709b2bdf502da73 +MISC metadata.xml 1777 BLAKE2B 5dbde040a3ddbb381ff649d9e357a8fc463844ed4b2dfd836104b493f23aa2bc0117f775caf9a1f85d9a05abae9b890c0616aebc24e4f0a1e0312529691ea6c4 SHA512 ada714a8f8878ef0976fd5186979effcb5a1792812222468b881ffd45ccfecdb2c2cb04be670b181ff6f329caa40ed82760ae8019e18d8314e9fb28ea13f7774 diff --git a/sys-libs/glibc/glibc-2.34-r10.ebuild b/sys-libs/glibc/glibc-2.34-r10.ebuild index e607faf13339..3c6ded33ef89 100644 --- a/sys-libs/glibc/glibc-2.34-r10.ebuild +++ b/sys-libs/glibc/glibc-2.34-r10.ebuild @@ -29,7 +29,7 @@ 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="~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 diff --git a/sys-libs/glibc/glibc-2.34-r12.ebuild b/sys-libs/glibc/glibc-2.34-r12.ebuild new file mode 100644 index 000000000000..ea14a5159f6b --- /dev/null +++ b/sys-libs/glibc/glibc-2.34-r12.ebuild @@ -0,0 +1,1617 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +# Bumping notes: https://wiki.gentoo.org/wiki/Project:Toolchain/sys-libs/glibc +# Please read & adapt the page as necessary if obsolete. + +# We avoid Python 3.10 here _for now_ (it does work!) to avoid circular dependencies +# on upgrades as people migrate to libxcrypt. +# https://wiki.gentoo.org/wiki/User:Sam/Portage_help/Circular_dependencies#Python_and_libcrypt +PYTHON_COMPAT=( python3_{8,9} ) +TMPFILES_OPTIONAL=1 + +inherit python-any-r1 prefix preserve-libs toolchain-funcs flag-o-matic gnuconfig \ + multilib systemd multiprocessing tmpfiles + +DESCRIPTION="GNU libc C library" +HOMEPAGE="https://www.gnu.org/software/libc/" +LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" +SLOT="2.2" + +EMULTILIB_PKG="true" + +# Gentoo patchset (ignored for live ebuilds) +PATCH_VER=16 +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=20201208 + +LOCALE_GEN_VER=2.22 + +GLIBC_SYSTEMD_VER=20210729 + +SRC_URI+=" https://gitweb.gentoo.org/proj/locale-gen.git/snapshot/locale-gen-${LOCALE_GEN_VER}.tar.gz" +SRC_URI+=" multilib-bootstrap? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" +SRC_URI+=" systemd? ( https://gitweb.gentoo.org/proj/toolchain/glibc-systemd.git/snapshot/glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz )" + +IUSE="audit caps cet +clone3 compile-locales +crypt custom-cflags doc gd headers-only +multiarch multilib multilib-bootstrap nscd profile selinux +ssp +static-libs static-pie suid systemd systemtap test vanilla" + +# Minimum kernel version that glibc requires +MIN_KERN_VER="3.2.0" +# Minimum pax-utils version needed (which contains any new syscall changes for +# its seccomp filter!). Please double check this! +MIN_PAX_UTILS_VER="1.3.3" + +# 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-${MIN_PAX_UTILS_VER} + sys-devel/bison + doc? ( sys-apps/texinfo ) + !compile-locales? ( + app-arch/gzip + sys-apps/grep + virtual/awk + ) +" +COMMON_DEPEND=" + gd? ( media-libs/gd:2= ) + nscd? ( selinux? ( + audit? ( sys-process/audit ) + caps? ( sys-libs/libcap ) + ) ) + suid? ( caps? ( sys-libs/libcap ) ) + selinux? ( sys-libs/libselinux ) + systemtap? ( dev-util/systemtap ) +" +DEPEND="${COMMON_DEPEND} + compile-locales? ( + app-arch/gzip + sys-apps/grep + virtual/awk + ) + test? ( >=net-dns/libidn2-2.3.0 ) +" +RDEPEND="${COMMON_DEPEND} + app-arch/gzip + sys-apps/grep + virtual/awk + sys-apps/gentoo-functions + !' | $(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 + + # Workaround for https://bugs.gentoo.org/823780. This really should + # be removed when the upstream bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103275 + # is fixed in our tree, either via 11.3 or an 11.2p2 patch set. + if [[ ${ABI} == x86 ]] && tc-is-gcc && (($(gcc-major-version) == 11)) && (($(gcc-minor-version) <= 2)) && (($(gcc-micro-version) == 0)); then + export CFLAGS_x86="${CFLAGS_x86} -mno-avx512f" + einfo "Auto adding -mno-avx512f to CFLAGS_x86 (bug #823780) (ABI=${ABI})" + fi + ;; + mips) + # The mips abi cannot support the GNU style hashes. #233233 + filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both + ;; + ppc|ppc64) + # Many arch-specific implementations do not work on ppc with + # cache-block not equal to 128 bytes. This breaks memset: + # https://sourceware.org/PR26522 + # https://bugs.gentoo.org/737996 + # Use default -mcpu=. For ppc it means non-multiarch setup. + filter-flags '-mcpu=*' + ;; + sparc) + # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. + filter-flags "-fcall-used-g7" + append-flags "-fcall-used-g6" + + local cpu + case ${CTARGET} in + sparc64-*) + cpu="sparc64" + case $(get-flag mcpu) in + v9) + # We need to force at least v9a because the base build doesn't + # work with just v9. + # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 + append-flags "-Wa,-xarch=v9a" + ;; + esac + ;; + sparc-*) + case $(get-flag mcpu) in + v8|supersparc|hypersparc|leon|leon3) + cpu="sparcv8" + ;; + *) + cpu="sparcv9" + ;; + esac + ;; + esac + [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" + ;; + esac +} + +setup_flags() { + # Make sure host make.conf doesn't pollute us + if is_crosscompile || tc-is-cross-compiler ; then + CHOST=${CTARGET} strip-unsupported-flags + fi + + # Store our CFLAGS because it's changed depending on which CTARGET + # we are building when pulling glibc on a multilib profile + CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} + CFLAGS=${CFLAGS_BASE} + CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} + CXXFLAGS=${CXXFLAGS_BASE} + ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} + ASFLAGS=${ASFLAGS_BASE} + + # Allow users to explicitly avoid flag sanitization via + # USE=custom-cflags. + if ! use custom-cflags; then + # Over-zealous CFLAGS can often cause problems. What may work for one + # person may not work for another. To avoid a large influx of bugs + # relating to failed builds, we strip most CFLAGS out to ensure as few + # problems as possible. + strip-flags + # Lock glibc at -O2; we want to be conservative here. + filter-flags '-O?' + append-flags -O2 + fi + + strip-unsupported-flags + filter-flags -m32 -m64 '-mabi=*' + + # glibc aborts if rpath is set by LDFLAGS + filter-ldflags '-Wl,-rpath=*' + + # ld can't use -r & --relax at the same time, bug #788901 + # https://sourceware.org/PR27837 + filter-ldflags '-Wl,--relax' + + # #492892 + filter-flags -frecord-gcc-switches + + # #829583 + filter-lfs-flags + + 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*' + + # See end of bug #830454; we handle this via USE=cet + filter-flags '-fcf-protection=' +} + +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 + + # Glibc does not work with gold (for various reasons) #269274. + tc-ld-disable-gold + + if use doc ; then + export MAKEINFO=makeinfo + else + export MAKEINFO=/dev/null + fi + + # Reset CC and CXX to the value at start of emerge + export CC=${__ORIG_CC:-${CC:-$(tc-getCC ${CTARGET})}} + export CXX=${__ORIG_CXX:-${CXX:-$(tc-getCXX ${CTARGET})}} + + # and make sure __ORIC_CC and __ORIG_CXX is defined now. + export __ORIG_CC=${CC} + export __ORIG_CXX=${CXX} + + if tc-is-clang && ! use custom-cflags && ! is_crosscompile ; then + + # If we are running in an otherwise clang/llvm environment, we need to + # recover the proper gcc and binutils settings here, at least until glibc + # is finally building with clang. So let's override everything that is + # set in the clang profiles. + # Want to shoot yourself into the foot? Set USE=custom-cflags, that's always + # a good start into that direction. + # Also, if you're crosscompiling, let's assume you know what you are doing. + # Hopefully. + # Last, we need the settings of the *build* environment, not of the + # target environment... + + local current_binutils_path=$(env ROOT="${BROOT}" binutils-config -B) + local current_gcc_path=$(env ROOT="${BROOT}" gcc-config -B) + einfo "Overriding clang configuration, since it won't work here" + + export CC="${current_gcc_path}/gcc" + export CXX="${current_gcc_path}/g++" + export LD="${current_binutils_path}/ld.bfd" + export AR="${current_binutils_path}/ar" + export AS="${current_binutils_path}/as" + export NM="${current_binutils_path}/nm" + export STRIP="${current_binutils_path}/strip" + export RANLIB="${current_binutils_path}/ranlib" + export OBJCOPY="${current_binutils_path}/objcopy" + export STRINGS="${current_binutils_path}/strings" + export OBJDUMP="${current_binutils_path}/objdump" + export READELF="${current_binutils_path}/readelf" + export ADDR2LINE="${current_binutils_path}/addr2line" + + # do we need to also do flags munging here? yes! at least... + filter-flags '-fuse-ld=*' + filter-flags '-D_FORTIFY_SOURCE=*' + + else + + # this is the "normal" case + + export CC="$(tc-getCC ${CTARGET})" + export CXX="$(tc-getCXX ${CTARGET})" + + # 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})" + + fi + + # 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. (Why does the comment talk about CFLAGS if the code + # acts on CC?) + export __GLIBC_CC=${CC} + export __GLIBC_CXX=${CXX} + + export __abi_CFLAGS="$(get_abi_CFLAGS)" + + # 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="${__GLIBC_CC} ${__abi_CFLAGS} ${CFLAGS} ${LDFLAGS}" + + # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 + export CXX="${__GLIBC_CXX} ${__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 +} + +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 + + # ABI-specific checks follow here. Hey, we have a lot more specific conditions that + # we test for... + if ! is_crosscompile ; then + if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then + ebegin "Checking that IA32 emulation is enabled in the running kernel" + echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" + local STAT + if "${CC-${CHOST}-gcc}" ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then + "${T}/check-ia32-emulation.elf32" + STAT=$? + else + # Don't fail here to allow single->multi ABI switch + # or recover from breakage like bug #646424 + ewarn "Failed to compile the ABI test. Broken host glibc?" + STAT=0 + fi + rm -f "${T}/check-ia32-emulation.elf32" + eend $STAT + [[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc." + fi + + fi + + # When we actually have to compile something... + if ! just_headers && [[ ${MERGE_TYPE} != "binary" ]] ; then + if [[ -d "${ESYSROOT}"/usr/lib/include ]] ; then + # bug #833620, bug #643302 + eerror "Found ${ESYSROOT}/usr/lib/include directory!" + eerror "This is known to break glibc's build." + eerror "Please backup its contents then remove the directory." + die "Found directory (${ESYSROOT}/usr/lib/include) which will break build (bug #833620)!" + 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 +} + +upgrade_warning() { + if [[ ${MERGE_TYPE} != buildonly && -n ${REPLACING_VERSIONS} && -z ${ROOT} ]]; then + local oldv newv=$(ver_cut 1-2 ${PV}) + for oldv in ${REPLACING_VERSIONS}; do + if ver_test ${oldv} -lt ${newv}; then + ewarn "After upgrading glibc, please restart all running processes." + ewarn "Be sure to include init (telinit u) or systemd (systemctl daemon-reexec)." + ewarn "Alternatively, reboot your system." + ewarn "(See bug #660556, bug #741116, bug #823756, etc)" + break + fi + done + fi +} + +# +# the phases +# + +# pkg_pretend + +pkg_pretend() { + # All the checks... + einfo "Checking general environment sanity." + sanity_prechecks + upgrade_warning +} + +pkg_setup() { + # see bug 682570 + [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup +} + +# src_unpack + +src_unpack() { + # Consistency is not guaranteed between pkg_ and src_ ... + sanity_prechecks + + use multilib-bootstrap && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz + + setup_env + + if [[ ${PV} == 9999* ]] ; then + EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/glibc-patches.git" + EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git + git-r3_src_unpack + mv patches-git/9999 patches || die + + EGIT_REPO_URI="https://sourceware.org/git/glibc.git" + EGIT_CHECKOUT_DIR=${S} + git-r3_src_unpack + else + unpack ${P}.tar.xz + + cd "${WORKDIR}" || die + unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz + fi + + cd "${WORKDIR}" || die + unpack locale-gen-${LOCALE_GEN_VER}.tar.gz + use systemd && unpack glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz +} + +src_prepare() { + local patchsetname + if ! use vanilla ; then + if [[ ${PV} == 9999* ]] ; then + patchsetname="from git master" + else + patchsetname="${RELEASE_VER}-${PATCH_VER}" + fi + einfo "Applying Gentoo Glibc Patchset ${patchsetname}" + eapply "${WORKDIR}"/patches + einfo "Done." + fi + + if use clone3 ; then + append-cppflags -DGENTOO_USE_CLONE3 + else + # See e.g. bug #827386, bug #819045. + elog "Disabling the clone3 syscall for compatibility with older Electron apps." + elog "Please re-enable this flag before filing bugs!" + 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() { + + local v + for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO NM AR AS STRIP RANLIB OBJCOPY STRINGS OBJDUMP READELF; do + einfo " $(printf '%15s' ${v}:) ${!v}" + done + + echo + local myconf=() + + case ${CTARGET} in + m68k*) + # setjmp() is not compatible with stack protection: + # https://sourceware.org/PR24202 + myconf+=( --enable-stack-protector=no ) + ;; + *) + # Use '=strong' instead of '=all' to protect only functions + # worth protecting from stack smashes. + # '=all' is also known to have a problem in IFUNC resolution + # tests: https://sourceware.org/PR25680, bug #712356. + myconf+=( --enable-stack-protector=$(usex ssp strong no) ) + ;; + esac + myconf+=( --enable-stackguard-randomization ) + + # Keep a whitelist of targets supporing IFUNC. glibc's ./configure + # is not robust enough to detect proper support: + # https://bugs.gentoo.org/641216 + # https://sourceware.org/PR22634#c0 + case $(tc-arch ${CTARGET}) in + # Keep whitelist of targets where autodetection mostly works. + amd64|x86|sparc|ppc|ppc64|arm|arm64|s390) ;; + # Blacklist everywhere else + *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; + esac + + # Enable Intel Control-flow Enforcement Technology on amd64 if requested + case ${CTARGET} in + x86_64-*) myconf+=( $(use_enable cet) ) ;; + *) ;; + esac + + [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) + + myconf+=( --enable-kernel=${MIN_KERN_VER} ) + + # Since SELinux support is only required for nscd, only enable it if: + # 1. USE selinux + # 2. only for the primary ABI on multilib systems + # 3. Not a crosscompile + if ! is_crosscompile && use selinux ; then + if use multilib ; then + if is_final_abi ; then + myconf+=( --with-selinux ) + else + myconf+=( --without-selinux ) + fi + else + myconf+=( --with-selinux ) + fi + else + myconf+=( --without-selinux ) + fi + + # Force a few tests where we always know the answer but + # configure is incapable of finding it. + if is_crosscompile ; then + export \ + libc_cv_c_cleanup=yes \ + libc_cv_forced_unwind=yes + fi + + myconf+=( + --without-cvs + --disable-werror + --enable-bind-now + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + $(use_enable profile) + $(use_with gd) + --with-headers=$(build_eprefix)$(alt_build_headers) + --prefix="$(host_eprefix)/usr" + --sysconfdir="$(host_eprefix)/etc" + --localstatedir="$(host_eprefix)/var" + --libdir='$(prefix)'/$(get_libdir) + --mandir='$(prefix)'/share/man + --infodir='$(prefix)'/share/info + --libexecdir='$(libdir)'/misc/glibc + --with-bugurl=https://bugs.gentoo.org/ + --with-pkgversion="$(glibc_banner)" + $(use_enable crypt) + $(use_multiarch || echo --disable-multi-arch) + $(use_enable static-pie) + $(use_enable systemtap) + $(use_enable nscd) + + # locale data is arch-independent + # https://bugs.gentoo.org/753740 + libc_cv_complocaledir='${exec_prefix}/lib/locale' + + # -march= option tricks build system to infer too + # high ISA level: https://sourceware.org/PR27318 + libc_cv_include_x86_isa_level=no + # Explicit override of https://sourceware.org/PR27991 + # exposes a bug in glibc's configure: + # https://sourceware.org/PR27991 + libc_cv_have_x86_lahf_sahf=no + libc_cv_have_x86_movbe=no + + ${EXTRA_ECONF} + ) + + # We rely on sys-libs/timezone-data for timezone tools normally. + myconf+=( $(use_enable vanilla timezone-tools) ) + + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) + ac_cv_lib_cap_cap_init=$(usex caps || echo no) + + # There is no configure option for this and we need to export it + # since the glibc build will re-run configure on itself + export libc_cv_rootsbindir="$(host_eprefix)/sbin" + export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)" + + 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 + # riscv + ilp32d /lib/ld-linux-riscv32-ilp32d.so.1 + ilp32 /lib/ld-linux-riscv32-ilp32.so.1 + lp64d /lib/ld-linux-riscv64-lp64d.so.1 + lp64 /lib/ld-linux-riscv64-lp64.so.1 + # s390 + s390 /lib/ld.so.1 + s390x /lib/ld64.so.1 + # sparc + sparc32 /lib/ld-linux.so.2 + sparc64 /lib64/ld-linux.so.2 + ) + case $(tc-endian) in + little) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64.so.1 + # ELFv2 (glibc does not support ELFv1 on LE) + ppc64 /lib64/ld64.so.2 + ) + ;; + big) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64_be.so.1 + # ELFv1 (glibc does not support ELFv2 on BE) + ppc64 /lib64/ld64.so.1 + ) + ;; + esac + if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then + dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib + fi + for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do + ldso_abi=${ldso_abi_list[i]} + has ${ldso_abi} $(get_install_abis) || continue + + ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" + if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then + dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} + fi + done + + # In the LSB 5.0 definition, someone had the excellent idea to "standardize" + # the runtime loader name, see also https://xkcd.com/927/ + # Normally, in Gentoo one should never come across executables that require this. + # However, binary commercial packages are known to adhere to weird practices. + # https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-AMD64/LSB-Core-AMD64.html#BASELIB + local lsb_ldso_name native_ldso_name lsb_ldso_abi + local lsb_ldso_abi_list=( + # x86 + amd64 ld-linux-x86-64.so.2 ld-lsb-x86-64.so.3 + ) + for (( i = 0; i < ${#lsb_ldso_abi_list[@]}; i += 3 )) ; do + lsb_ldso_abi=${lsb_ldso_abi_list[i]} + native_ldso_name=${lsb_ldso_abi_list[i+1]} + lsb_ldso_name=${lsb_ldso_abi_list[i+2]} + has ${lsb_ldso_abi} $(get_install_abis) || continue + + if [[ ! -L ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} && ! -e ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} ]] ; then + dosym ${native_ldso_name} "$(alt_prefix)/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name}" + fi + done + + # With devpts under Linux mounted properly, we do not need the pt_chown + # binary to be setuid. This is because the default owners/perms will be + # exactly what we want. + if ! use suid ; then + find "${ED}" -name pt_chown -exec chmod -s {} + + fi + + ################################################################# + # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # + # Make sure we install some symlink hacks so that when we build + # a 2nd stage cross-compiler, gcc finds the target system + # headers correctly. See gcc/doc/gccinstall.info + if is_crosscompile ; then + # We need to make sure that /lib and /usr/lib always exists. + # gcc likes to use relative paths to get to its multilibs like + # /usr/lib/../lib64/. So while we don't install any files into + # /usr/lib/, we do need it to exist. + keepdir $(alt_prefix)/lib + keepdir $(alt_prefix)/usr/lib + + dosym usr/include $(alt_prefix)/sys-include + return 0 + fi + + # Files for Debian-style locale updating + dodir /usr/share/i18n + sed \ + -e "/^#/d" \ + -e "/SUPPORTED-LOCALES=/d" \ + -e "s: \\\\::g" -e "s:/: :g" \ + "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ + || die "generating /usr/share/i18n/SUPPORTED failed" + cd "${WORKDIR}"/extra/locale + dosbin locale-gen + doman *.[0-8] + insinto /etc + doins locale.gen + + keepdir /usr/lib/locale + + cd "${S}" + + # Install misc network config files + insinto /etc + doins posix/gai.conf + + if use systemd ; then + doins "${WORKDIR}/glibc-systemd-${GLIBC_SYSTEMD_VER}/gentoo-config/nsswitch.conf" + else + doins nss/nsswitch.conf + fi + + # Gentoo-specific + newins "${FILESDIR}"/host.conf-1 host.conf + + if use nscd ; then + doins nscd/nscd.conf + + newinitd "$(prefixify_ro "${FILESDIR}"/nscd-1)" nscd + + local nscd_args=( + -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" + ) + + sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd + + use systemd && systemd_dounit nscd/nscd.service + newtmpfiles nscd/nscd.tmpfiles nscd.conf + fi + + echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc + doenvd "${T}"/00glibc + + for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do + [[ -s ${d} ]] && dodoc ${d} + done + dodoc -r ChangeLog.old + + # Prevent overwriting of the /etc/localtime symlink. We'll handle the + # creation of the "factory" symlink in pkg_postinst(). + rm -f "${ED}"/etc/localtime + + # Generate all locales if this is a native build as locale generation + if use compile-locales && ! is_crosscompile ; then + run_locale_gen --inplace-glibc "${ED}/" + sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die + fi +} + +glibc_headers_install() { + local builddir=$(builddir "headers") + cd "${builddir}" + emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers + + insinto $(alt_headers)/gnu + doins "${S}"/include/gnu/stubs.h + + # Make sure we install the sys-include symlink so that when + # we build a 2nd stage cross-compiler, gcc finds the target + # system headers correctly. See gcc/doc/gccinstall.info + dosym usr/include $(alt_prefix)/sys-include +} + +src_install() { + if just_headers ; then + export ABI=default + glibc_headers_install + return + fi + + foreach_abi glibc_do_src_install + + if ! use static-libs ; then + einfo "Not installing static glibc libraries" + find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete + fi +} + +# Simple test to make sure our new glibc isn't completely broken. +# Make sure we don't test with statically built binaries since +# they will fail. Also, skip if this glibc is a cross compiler. +# +# If coreutils is built with USE=multicall, some of these files +# will just be wrapper scripts, not actual ELFs we can test. +glibc_sanity_check() { + cd / #228809 + + # We enter ${ED} so to avoid trouble if the path contains + # special characters; for instance if the path contains the + # colon character (:), then the linker will try to split it + # and look for the libraries in an unexpected place. This can + # lead to unsafe code execution if the generated prefix is + # within a world-writable directory. + # (e.g. /var/tmp/portage:${HOSTNAME}) + pushd "${ED}"/$(get_libdir) >/dev/null + + # first let's find the actual dynamic linker here + # symlinks may point to the wrong abi + local newldso=$(find . -maxdepth 1 -name 'ld*so.?' -type f -print -quit) + + einfo Last-minute run tests with ${newldso} in /$(get_libdir) ... + + local x striptest + for x in cal date env free ls true uname uptime ; do + x=$(type -p ${x}) + [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue + striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue + case ${striptest} in + *"statically linked"*) continue;; + *"ASCII text"*) continue;; + esac + # We need to clear the locale settings as the upgrade might want + # incompatible locale data. This test is not for verifying that. + LC_ALL=C \ + ${newldso} --library-path . ${x} > /dev/null \ + || die "simple run test (${x}) failed" + done + + popd >/dev/null +} + +pkg_preinst() { + # nothing to do if just installing headers + just_headers && return + + # prepare /etc/ld.so.conf.d/ for files + mkdir -p "${EROOT}"/etc/ld.so.conf.d + + # Default /etc/hosts.conf:multi to on for systems with small dbs. + if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then + sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf + einfo "Defaulting /etc/host.conf:multi to on" + fi + + [[ -n ${ROOT} ]] && return 0 + [[ -d ${ED}/$(get_libdir) ]] || return 0 + [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check + + if [[ -L ${EROOT}/usr/lib/locale ]]; then + # Help portage migrate this to a directory + # https://bugs.gentoo.org/753740 + rm "${EROOT}"/usr/lib/locale || die + fi + + # Keep around libcrypt so that Perl doesn't break when merging libxcrypt + # (libxcrypt is the new provider for now of libcrypt.so.{1,2}). + # bug #802207 + if ! use crypt && has_version "${CATEGORY}/${PN}[crypt]" && ! has preserve-libs ${FEATURES}; then + PRESERVED_OLD_LIBCRYPT=1 + cp -p "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" "${T}/libcrypt$(get_libname 1)" || die + else + PRESERVED_OLD_LIBCRYPT=0 + fi +} + +pkg_postinst() { + # nothing to do if just installing headers + just_headers && return + + if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then + # Generate fastloading iconv module configuration file. + "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}/" + fi + + if ! is_crosscompile && [[ -z ${ROOT} ]] ; then + use compile-locales || run_locale_gen "${EROOT}/" + fi + + upgrade_warning + + # Check for sanity of /etc/nsswitch.conf, take 2 + if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then + local entry + for entry in passwd group shadow; do + if egrep -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then + ewarn "" + ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" + ewarn "removed from glibc and is now provided by the package" + ewarn " sys-auth/libnss-nis" + ewarn "Install it now to keep your NIS setup working." + ewarn "" + fi + done + fi + + if [[ ${PRESERVED_OLD_LIBCRYPT} -eq 1 ]] ; then + cp -p "${T}/libcrypt$(get_libname 1)" "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" || die + preserve_old_lib_notify /$(get_libdir)/libcrypt$(get_libname 1) + + elog "Please ignore a possible later error message about a file collision involving" + elog "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1). We need to preserve this file for the moment to keep" + elog "the upgrade working, but it also needs to be overwritten when" + elog "sys-libs/libxcrypt is installed. See bug 802210 for more details." + fi +} diff --git a/sys-libs/glibc/glibc-2.34-r13.ebuild b/sys-libs/glibc/glibc-2.34-r13.ebuild new file mode 100644 index 000000000000..dd432185bf98 --- /dev/null +++ b/sys-libs/glibc/glibc-2.34-r13.ebuild @@ -0,0 +1,1617 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +# Bumping notes: https://wiki.gentoo.org/wiki/Project:Toolchain/sys-libs/glibc +# Please read & adapt the page as necessary if obsolete. + +# We avoid Python 3.10 here _for now_ (it does work!) to avoid circular dependencies +# on upgrades as people migrate to libxcrypt. +# https://wiki.gentoo.org/wiki/User:Sam/Portage_help/Circular_dependencies#Python_and_libcrypt +PYTHON_COMPAT=( python3_{8,9} ) +TMPFILES_OPTIONAL=1 + +inherit python-any-r1 prefix preserve-libs toolchain-funcs flag-o-matic gnuconfig \ + multilib systemd multiprocessing tmpfiles + +DESCRIPTION="GNU libc C library" +HOMEPAGE="https://www.gnu.org/software/libc/" +LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" +SLOT="2.2" + +EMULTILIB_PKG="true" + +# Gentoo patchset (ignored for live ebuilds) +PATCH_VER=17 +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=20201208 + +LOCALE_GEN_VER=2.22 + +GLIBC_SYSTEMD_VER=20210729 + +SRC_URI+=" https://gitweb.gentoo.org/proj/locale-gen.git/snapshot/locale-gen-${LOCALE_GEN_VER}.tar.gz" +SRC_URI+=" multilib-bootstrap? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" +SRC_URI+=" systemd? ( https://gitweb.gentoo.org/proj/toolchain/glibc-systemd.git/snapshot/glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz )" + +IUSE="audit caps cet +clone3 compile-locales +crypt custom-cflags doc gd headers-only +multiarch multilib multilib-bootstrap nscd profile selinux +ssp +static-libs static-pie suid systemd systemtap test vanilla" + +# Minimum kernel version that glibc requires +MIN_KERN_VER="3.2.0" +# Minimum pax-utils version needed (which contains any new syscall changes for +# its seccomp filter!). Please double check this! +MIN_PAX_UTILS_VER="1.3.3" + +# 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-${MIN_PAX_UTILS_VER} + sys-devel/bison + doc? ( sys-apps/texinfo ) + !compile-locales? ( + app-arch/gzip + sys-apps/grep + virtual/awk + ) +" +COMMON_DEPEND=" + gd? ( media-libs/gd:2= ) + nscd? ( selinux? ( + audit? ( sys-process/audit ) + caps? ( sys-libs/libcap ) + ) ) + suid? ( caps? ( sys-libs/libcap ) ) + selinux? ( sys-libs/libselinux ) + systemtap? ( dev-util/systemtap ) +" +DEPEND="${COMMON_DEPEND} + compile-locales? ( + app-arch/gzip + sys-apps/grep + virtual/awk + ) + test? ( >=net-dns/libidn2-2.3.0 ) +" +RDEPEND="${COMMON_DEPEND} + app-arch/gzip + sys-apps/grep + virtual/awk + sys-apps/gentoo-functions + !' | $(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 + + # Workaround for https://bugs.gentoo.org/823780. This really should + # be removed when the upstream bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103275 + # is fixed in our tree, either via 11.3 or an 11.2p2 patch set. + if [[ ${ABI} == x86 ]] && tc-is-gcc && (($(gcc-major-version) == 11)) && (($(gcc-minor-version) <= 2)) && (($(gcc-micro-version) == 0)); then + export CFLAGS_x86="${CFLAGS_x86} -mno-avx512f" + einfo "Auto adding -mno-avx512f to CFLAGS_x86 (bug #823780) (ABI=${ABI})" + fi + ;; + mips) + # The mips abi cannot support the GNU style hashes. #233233 + filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both + ;; + ppc|ppc64) + # Many arch-specific implementations do not work on ppc with + # cache-block not equal to 128 bytes. This breaks memset: + # https://sourceware.org/PR26522 + # https://bugs.gentoo.org/737996 + # Use default -mcpu=. For ppc it means non-multiarch setup. + filter-flags '-mcpu=*' + ;; + sparc) + # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. + filter-flags "-fcall-used-g7" + append-flags "-fcall-used-g6" + + local cpu + case ${CTARGET} in + sparc64-*) + cpu="sparc64" + case $(get-flag mcpu) in + v9) + # We need to force at least v9a because the base build doesn't + # work with just v9. + # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 + append-flags "-Wa,-xarch=v9a" + ;; + esac + ;; + sparc-*) + case $(get-flag mcpu) in + v8|supersparc|hypersparc|leon|leon3) + cpu="sparcv8" + ;; + *) + cpu="sparcv9" + ;; + esac + ;; + esac + [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" + ;; + esac +} + +setup_flags() { + # Make sure host make.conf doesn't pollute us + if is_crosscompile || tc-is-cross-compiler ; then + CHOST=${CTARGET} strip-unsupported-flags + fi + + # Store our CFLAGS because it's changed depending on which CTARGET + # we are building when pulling glibc on a multilib profile + CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} + CFLAGS=${CFLAGS_BASE} + CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} + CXXFLAGS=${CXXFLAGS_BASE} + ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} + ASFLAGS=${ASFLAGS_BASE} + + # Allow users to explicitly avoid flag sanitization via + # USE=custom-cflags. + if ! use custom-cflags; then + # Over-zealous CFLAGS can often cause problems. What may work for one + # person may not work for another. To avoid a large influx of bugs + # relating to failed builds, we strip most CFLAGS out to ensure as few + # problems as possible. + strip-flags + # Lock glibc at -O2; we want to be conservative here. + filter-flags '-O?' + append-flags -O2 + fi + + strip-unsupported-flags + filter-flags -m32 -m64 '-mabi=*' + + # glibc aborts if rpath is set by LDFLAGS + filter-ldflags '-Wl,-rpath=*' + + # ld can't use -r & --relax at the same time, bug #788901 + # https://sourceware.org/PR27837 + filter-ldflags '-Wl,--relax' + + # #492892 + filter-flags -frecord-gcc-switches + + # #829583 + filter-lfs-flags + + 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*' + + # See end of bug #830454; we handle this via USE=cet + filter-flags '-fcf-protection=' +} + +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 + + # Glibc does not work with gold (for various reasons) #269274. + tc-ld-disable-gold + + if use doc ; then + export MAKEINFO=makeinfo + else + export MAKEINFO=/dev/null + fi + + # Reset CC and CXX to the value at start of emerge + export CC=${__ORIG_CC:-${CC:-$(tc-getCC ${CTARGET})}} + export CXX=${__ORIG_CXX:-${CXX:-$(tc-getCXX ${CTARGET})}} + + # and make sure __ORIC_CC and __ORIG_CXX is defined now. + export __ORIG_CC=${CC} + export __ORIG_CXX=${CXX} + + if tc-is-clang && ! use custom-cflags && ! is_crosscompile ; then + + # If we are running in an otherwise clang/llvm environment, we need to + # recover the proper gcc and binutils settings here, at least until glibc + # is finally building with clang. So let's override everything that is + # set in the clang profiles. + # Want to shoot yourself into the foot? Set USE=custom-cflags, that's always + # a good start into that direction. + # Also, if you're crosscompiling, let's assume you know what you are doing. + # Hopefully. + # Last, we need the settings of the *build* environment, not of the + # target environment... + + local current_binutils_path=$(env ROOT="${BROOT}" binutils-config -B) + local current_gcc_path=$(env ROOT="${BROOT}" gcc-config -B) + einfo "Overriding clang configuration, since it won't work here" + + export CC="${current_gcc_path}/gcc" + export CXX="${current_gcc_path}/g++" + export LD="${current_binutils_path}/ld.bfd" + export AR="${current_binutils_path}/ar" + export AS="${current_binutils_path}/as" + export NM="${current_binutils_path}/nm" + export STRIP="${current_binutils_path}/strip" + export RANLIB="${current_binutils_path}/ranlib" + export OBJCOPY="${current_binutils_path}/objcopy" + export STRINGS="${current_binutils_path}/strings" + export OBJDUMP="${current_binutils_path}/objdump" + export READELF="${current_binutils_path}/readelf" + export ADDR2LINE="${current_binutils_path}/addr2line" + + # do we need to also do flags munging here? yes! at least... + filter-flags '-fuse-ld=*' + filter-flags '-D_FORTIFY_SOURCE=*' + + else + + # this is the "normal" case + + export CC="$(tc-getCC ${CTARGET})" + export CXX="$(tc-getCXX ${CTARGET})" + + # 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})" + + fi + + # 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. (Why does the comment talk about CFLAGS if the code + # acts on CC?) + export __GLIBC_CC=${CC} + export __GLIBC_CXX=${CXX} + + export __abi_CFLAGS="$(get_abi_CFLAGS)" + + # 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="${__GLIBC_CC} ${__abi_CFLAGS} ${CFLAGS} ${LDFLAGS}" + + # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 + export CXX="${__GLIBC_CXX} ${__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 +} + +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 + + # ABI-specific checks follow here. Hey, we have a lot more specific conditions that + # we test for... + if ! is_crosscompile ; then + if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then + ebegin "Checking that IA32 emulation is enabled in the running kernel" + echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" + local STAT + if "${CC-${CHOST}-gcc}" ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then + "${T}/check-ia32-emulation.elf32" + STAT=$? + else + # Don't fail here to allow single->multi ABI switch + # or recover from breakage like bug #646424 + ewarn "Failed to compile the ABI test. Broken host glibc?" + STAT=0 + fi + rm -f "${T}/check-ia32-emulation.elf32" + eend $STAT + [[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc." + fi + + fi + + # When we actually have to compile something... + if ! just_headers && [[ ${MERGE_TYPE} != "binary" ]] ; then + if [[ -d "${ESYSROOT}"/usr/lib/include ]] ; then + # bug #833620, bug #643302 + eerror "Found ${ESYSROOT}/usr/lib/include directory!" + eerror "This is known to break glibc's build." + eerror "Please backup its contents then remove the directory." + die "Found directory (${ESYSROOT}/usr/lib/include) which will break build (bug #833620)!" + 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 +} + +upgrade_warning() { + if [[ ${MERGE_TYPE} != buildonly && -n ${REPLACING_VERSIONS} && -z ${ROOT} ]]; then + local oldv newv=$(ver_cut 1-2 ${PV}) + for oldv in ${REPLACING_VERSIONS}; do + if ver_test ${oldv} -lt ${newv}; then + ewarn "After upgrading glibc, please restart all running processes." + ewarn "Be sure to include init (telinit u) or systemd (systemctl daemon-reexec)." + ewarn "Alternatively, reboot your system." + ewarn "(See bug #660556, bug #741116, bug #823756, etc)" + break + fi + done + fi +} + +# +# the phases +# + +# pkg_pretend + +pkg_pretend() { + # All the checks... + einfo "Checking general environment sanity." + sanity_prechecks + upgrade_warning +} + +pkg_setup() { + # see bug 682570 + [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup +} + +# src_unpack + +src_unpack() { + # Consistency is not guaranteed between pkg_ and src_ ... + sanity_prechecks + + use multilib-bootstrap && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz + + setup_env + + if [[ ${PV} == 9999* ]] ; then + EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/glibc-patches.git" + EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git + git-r3_src_unpack + mv patches-git/9999 patches || die + + EGIT_REPO_URI="https://sourceware.org/git/glibc.git" + EGIT_CHECKOUT_DIR=${S} + git-r3_src_unpack + else + unpack ${P}.tar.xz + + cd "${WORKDIR}" || die + unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz + fi + + cd "${WORKDIR}" || die + unpack locale-gen-${LOCALE_GEN_VER}.tar.gz + use systemd && unpack glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz +} + +src_prepare() { + local patchsetname + if ! use vanilla ; then + if [[ ${PV} == 9999* ]] ; then + patchsetname="from git master" + else + patchsetname="${RELEASE_VER}-${PATCH_VER}" + fi + einfo "Applying Gentoo Glibc Patchset ${patchsetname}" + eapply "${WORKDIR}"/patches + einfo "Done." + fi + + if use clone3 ; then + append-cppflags -DGENTOO_USE_CLONE3 + else + # See e.g. bug #827386, bug #819045. + elog "Disabling the clone3 syscall for compatibility with older Electron apps." + elog "Please re-enable this flag before filing bugs!" + 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() { + + local v + for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO NM AR AS STRIP RANLIB OBJCOPY STRINGS OBJDUMP READELF; do + einfo " $(printf '%15s' ${v}:) ${!v}" + done + + echo + local myconf=() + + case ${CTARGET} in + m68k*) + # setjmp() is not compatible with stack protection: + # https://sourceware.org/PR24202 + myconf+=( --enable-stack-protector=no ) + ;; + *) + # Use '=strong' instead of '=all' to protect only functions + # worth protecting from stack smashes. + # '=all' is also known to have a problem in IFUNC resolution + # tests: https://sourceware.org/PR25680, bug #712356. + myconf+=( --enable-stack-protector=$(usex ssp strong no) ) + ;; + esac + myconf+=( --enable-stackguard-randomization ) + + # Keep a whitelist of targets supporing IFUNC. glibc's ./configure + # is not robust enough to detect proper support: + # https://bugs.gentoo.org/641216 + # https://sourceware.org/PR22634#c0 + case $(tc-arch ${CTARGET}) in + # Keep whitelist of targets where autodetection mostly works. + amd64|x86|sparc|ppc|ppc64|arm|arm64|s390) ;; + # Blacklist everywhere else + *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; + esac + + # Enable Intel Control-flow Enforcement Technology on amd64 if requested + case ${CTARGET} in + x86_64-*) myconf+=( $(use_enable cet) ) ;; + *) ;; + esac + + [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) + + myconf+=( --enable-kernel=${MIN_KERN_VER} ) + + # Since SELinux support is only required for nscd, only enable it if: + # 1. USE selinux + # 2. only for the primary ABI on multilib systems + # 3. Not a crosscompile + if ! is_crosscompile && use selinux ; then + if use multilib ; then + if is_final_abi ; then + myconf+=( --with-selinux ) + else + myconf+=( --without-selinux ) + fi + else + myconf+=( --with-selinux ) + fi + else + myconf+=( --without-selinux ) + fi + + # Force a few tests where we always know the answer but + # configure is incapable of finding it. + if is_crosscompile ; then + export \ + libc_cv_c_cleanup=yes \ + libc_cv_forced_unwind=yes + fi + + myconf+=( + --without-cvs + --disable-werror + --enable-bind-now + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + $(use_enable profile) + $(use_with gd) + --with-headers=$(build_eprefix)$(alt_build_headers) + --prefix="$(host_eprefix)/usr" + --sysconfdir="$(host_eprefix)/etc" + --localstatedir="$(host_eprefix)/var" + --libdir='$(prefix)'/$(get_libdir) + --mandir='$(prefix)'/share/man + --infodir='$(prefix)'/share/info + --libexecdir='$(libdir)'/misc/glibc + --with-bugurl=https://bugs.gentoo.org/ + --with-pkgversion="$(glibc_banner)" + $(use_enable crypt) + $(use_multiarch || echo --disable-multi-arch) + $(use_enable static-pie) + $(use_enable systemtap) + $(use_enable nscd) + + # locale data is arch-independent + # https://bugs.gentoo.org/753740 + libc_cv_complocaledir='${exec_prefix}/lib/locale' + + # -march= option tricks build system to infer too + # high ISA level: https://sourceware.org/PR27318 + libc_cv_include_x86_isa_level=no + # Explicit override of https://sourceware.org/PR27991 + # exposes a bug in glibc's configure: + # https://sourceware.org/PR27991 + libc_cv_have_x86_lahf_sahf=no + libc_cv_have_x86_movbe=no + + ${EXTRA_ECONF} + ) + + # We rely on sys-libs/timezone-data for timezone tools normally. + myconf+=( $(use_enable vanilla timezone-tools) ) + + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) + ac_cv_lib_cap_cap_init=$(usex caps || echo no) + + # There is no configure option for this and we need to export it + # since the glibc build will re-run configure on itself + export libc_cv_rootsbindir="$(host_eprefix)/sbin" + export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)" + + 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 + # riscv + ilp32d /lib/ld-linux-riscv32-ilp32d.so.1 + ilp32 /lib/ld-linux-riscv32-ilp32.so.1 + lp64d /lib/ld-linux-riscv64-lp64d.so.1 + lp64 /lib/ld-linux-riscv64-lp64.so.1 + # s390 + s390 /lib/ld.so.1 + s390x /lib/ld64.so.1 + # sparc + sparc32 /lib/ld-linux.so.2 + sparc64 /lib64/ld-linux.so.2 + ) + case $(tc-endian) in + little) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64.so.1 + # ELFv2 (glibc does not support ELFv1 on LE) + ppc64 /lib64/ld64.so.2 + ) + ;; + big) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64_be.so.1 + # ELFv1 (glibc does not support ELFv2 on BE) + ppc64 /lib64/ld64.so.1 + ) + ;; + esac + if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then + dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib + fi + for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do + ldso_abi=${ldso_abi_list[i]} + has ${ldso_abi} $(get_install_abis) || continue + + ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" + if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then + dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} + fi + done + + # In the LSB 5.0 definition, someone had the excellent idea to "standardize" + # the runtime loader name, see also https://xkcd.com/927/ + # Normally, in Gentoo one should never come across executables that require this. + # However, binary commercial packages are known to adhere to weird practices. + # https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-AMD64/LSB-Core-AMD64.html#BASELIB + local lsb_ldso_name native_ldso_name lsb_ldso_abi + local lsb_ldso_abi_list=( + # x86 + amd64 ld-linux-x86-64.so.2 ld-lsb-x86-64.so.3 + ) + for (( i = 0; i < ${#lsb_ldso_abi_list[@]}; i += 3 )) ; do + lsb_ldso_abi=${lsb_ldso_abi_list[i]} + native_ldso_name=${lsb_ldso_abi_list[i+1]} + lsb_ldso_name=${lsb_ldso_abi_list[i+2]} + has ${lsb_ldso_abi} $(get_install_abis) || continue + + if [[ ! -L ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} && ! -e ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} ]] ; then + dosym ${native_ldso_name} "$(alt_prefix)/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name}" + fi + done + + # With devpts under Linux mounted properly, we do not need the pt_chown + # binary to be setuid. This is because the default owners/perms will be + # exactly what we want. + if ! use suid ; then + find "${ED}" -name pt_chown -exec chmod -s {} + + fi + + ################################################################# + # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # + # Make sure we install some symlink hacks so that when we build + # a 2nd stage cross-compiler, gcc finds the target system + # headers correctly. See gcc/doc/gccinstall.info + if is_crosscompile ; then + # We need to make sure that /lib and /usr/lib always exists. + # gcc likes to use relative paths to get to its multilibs like + # /usr/lib/../lib64/. So while we don't install any files into + # /usr/lib/, we do need it to exist. + keepdir $(alt_prefix)/lib + keepdir $(alt_prefix)/usr/lib + + dosym usr/include $(alt_prefix)/sys-include + return 0 + fi + + # Files for Debian-style locale updating + dodir /usr/share/i18n + sed \ + -e "/^#/d" \ + -e "/SUPPORTED-LOCALES=/d" \ + -e "s: \\\\::g" -e "s:/: :g" \ + "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ + || die "generating /usr/share/i18n/SUPPORTED failed" + cd "${WORKDIR}"/extra/locale + dosbin locale-gen + doman *.[0-8] + insinto /etc + doins locale.gen + + keepdir /usr/lib/locale + + cd "${S}" + + # Install misc network config files + insinto /etc + doins posix/gai.conf + + if use systemd ; then + doins "${WORKDIR}/glibc-systemd-${GLIBC_SYSTEMD_VER}/gentoo-config/nsswitch.conf" + else + doins nss/nsswitch.conf + fi + + # Gentoo-specific + newins "${FILESDIR}"/host.conf-1 host.conf + + if use nscd ; then + doins nscd/nscd.conf + + newinitd "$(prefixify_ro "${FILESDIR}"/nscd-1)" nscd + + local nscd_args=( + -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" + ) + + sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd + + use systemd && systemd_dounit nscd/nscd.service + newtmpfiles nscd/nscd.tmpfiles nscd.conf + fi + + echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc + doenvd "${T}"/00glibc + + for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do + [[ -s ${d} ]] && dodoc ${d} + done + dodoc -r ChangeLog.old + + # Prevent overwriting of the /etc/localtime symlink. We'll handle the + # creation of the "factory" symlink in pkg_postinst(). + rm -f "${ED}"/etc/localtime + + # Generate all locales if this is a native build as locale generation + if use compile-locales && ! is_crosscompile ; then + run_locale_gen --inplace-glibc "${ED}/" + sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die + fi +} + +glibc_headers_install() { + local builddir=$(builddir "headers") + cd "${builddir}" + emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers + + insinto $(alt_headers)/gnu + doins "${S}"/include/gnu/stubs.h + + # Make sure we install the sys-include symlink so that when + # we build a 2nd stage cross-compiler, gcc finds the target + # system headers correctly. See gcc/doc/gccinstall.info + dosym usr/include $(alt_prefix)/sys-include +} + +src_install() { + if just_headers ; then + export ABI=default + glibc_headers_install + return + fi + + foreach_abi glibc_do_src_install + + if ! use static-libs ; then + einfo "Not installing static glibc libraries" + find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete + fi +} + +# Simple test to make sure our new glibc isn't completely broken. +# Make sure we don't test with statically built binaries since +# they will fail. Also, skip if this glibc is a cross compiler. +# +# If coreutils is built with USE=multicall, some of these files +# will just be wrapper scripts, not actual ELFs we can test. +glibc_sanity_check() { + cd / #228809 + + # We enter ${ED} so to avoid trouble if the path contains + # special characters; for instance if the path contains the + # colon character (:), then the linker will try to split it + # and look for the libraries in an unexpected place. This can + # lead to unsafe code execution if the generated prefix is + # within a world-writable directory. + # (e.g. /var/tmp/portage:${HOSTNAME}) + pushd "${ED}"/$(get_libdir) >/dev/null + + # first let's find the actual dynamic linker here + # symlinks may point to the wrong abi + local newldso=$(find . -maxdepth 1 -name 'ld*so.?' -type f -print -quit) + + einfo Last-minute run tests with ${newldso} in /$(get_libdir) ... + + local x striptest + for x in cal date env free ls true uname uptime ; do + x=$(type -p ${x}) + [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue + striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue + case ${striptest} in + *"statically linked"*) continue;; + *"ASCII text"*) continue;; + esac + # We need to clear the locale settings as the upgrade might want + # incompatible locale data. This test is not for verifying that. + LC_ALL=C \ + ${newldso} --library-path . ${x} > /dev/null \ + || die "simple run test (${x}) failed" + done + + popd >/dev/null +} + +pkg_preinst() { + # nothing to do if just installing headers + just_headers && return + + # prepare /etc/ld.so.conf.d/ for files + mkdir -p "${EROOT}"/etc/ld.so.conf.d + + # Default /etc/hosts.conf:multi to on for systems with small dbs. + if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then + sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf + einfo "Defaulting /etc/host.conf:multi to on" + fi + + [[ -n ${ROOT} ]] && return 0 + [[ -d ${ED}/$(get_libdir) ]] || return 0 + [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check + + if [[ -L ${EROOT}/usr/lib/locale ]]; then + # Help portage migrate this to a directory + # https://bugs.gentoo.org/753740 + rm "${EROOT}"/usr/lib/locale || die + fi + + # Keep around libcrypt so that Perl doesn't break when merging libxcrypt + # (libxcrypt is the new provider for now of libcrypt.so.{1,2}). + # bug #802207 + if ! use crypt && has_version "${CATEGORY}/${PN}[crypt]" && ! has preserve-libs ${FEATURES}; then + PRESERVED_OLD_LIBCRYPT=1 + cp -p "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" "${T}/libcrypt$(get_libname 1)" || die + else + PRESERVED_OLD_LIBCRYPT=0 + fi +} + +pkg_postinst() { + # nothing to do if just installing headers + just_headers && return + + if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then + # Generate fastloading iconv module configuration file. + "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}/" + fi + + if ! is_crosscompile && [[ -z ${ROOT} ]] ; then + use compile-locales || run_locale_gen "${EROOT}/" + fi + + upgrade_warning + + # Check for sanity of /etc/nsswitch.conf, take 2 + if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then + local entry + for entry in passwd group shadow; do + if egrep -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then + ewarn "" + ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" + ewarn "removed from glibc and is now provided by the package" + ewarn " sys-auth/libnss-nis" + ewarn "Install it now to keep your NIS setup working." + ewarn "" + fi + done + fi + + if [[ ${PRESERVED_OLD_LIBCRYPT} -eq 1 ]] ; then + cp -p "${T}/libcrypt$(get_libname 1)" "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" || die + preserve_old_lib_notify /$(get_libdir)/libcrypt$(get_libname 1) + + elog "Please ignore a possible later error message about a file collision involving" + elog "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1). We need to preserve this file for the moment to keep" + elog "the upgrade working, but it also needs to be overwritten when" + elog "sys-libs/libxcrypt is installed. See bug 802210 for more details." + fi +} diff --git a/sys-libs/glibc/glibc-2.35-r1.ebuild b/sys-libs/glibc/glibc-2.35-r1.ebuild deleted file mode 100644 index 891974bc21c4..000000000000 --- a/sys-libs/glibc/glibc-2.35-r1.ebuild +++ /dev/null @@ -1,1582 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -# Bumping notes: https://wiki.gentoo.org/wiki/Project:Toolchain/sys-libs/glibc -# Please read & adapt the page as necessary if obsolete. - -PYTHON_COMPAT=( python3_{8,9,10} ) -TMPFILES_OPTIONAL=1 - -inherit python-any-r1 prefix preserve-libs toolchain-funcs flag-o-matic gnuconfig \ - multilib systemd multiprocessing tmpfiles - -DESCRIPTION="GNU libc C library" -HOMEPAGE="https://www.gnu.org/software/libc/" -LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" -SLOT="2.2" - -EMULTILIB_PKG="true" - -# Gentoo patchset (ignored for live ebuilds) -PATCH_VER=4 -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=20201208 - -LOCALE_GEN_VER=2.22 - -GLIBC_SYSTEMD_VER=20210729 - -SRC_URI+=" https://gitweb.gentoo.org/proj/locale-gen.git/snapshot/locale-gen-${LOCALE_GEN_VER}.tar.gz" -SRC_URI+=" multilib-bootstrap? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" -SRC_URI+=" systemd? ( https://gitweb.gentoo.org/proj/toolchain/glibc-systemd.git/snapshot/glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz )" - -IUSE="audit caps cet compile-locales +crypt custom-cflags doc gd headers-only +multiarch multilib multilib-bootstrap nscd profile selinux +ssp +static-libs suid systemd systemtap test vanilla" - -# Minimum kernel version that glibc requires -MIN_KERN_VER="3.2.0" -# Minimum pax-utils version needed (which contains any new syscall changes for -# its seccomp filter!). Please double check this! -MIN_PAX_UTILS_VER="1.3.3" - -# 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-${MIN_PAX_UTILS_VER} - sys-devel/bison - doc? ( sys-apps/texinfo ) - !compile-locales? ( - app-arch/gzip - sys-apps/grep - virtual/awk - ) -" -COMMON_DEPEND=" - gd? ( media-libs/gd:2= ) - nscd? ( selinux? ( - audit? ( sys-process/audit ) - caps? ( sys-libs/libcap ) - ) ) - suid? ( caps? ( sys-libs/libcap ) ) - selinux? ( sys-libs/libselinux ) - systemtap? ( dev-util/systemtap ) -" -DEPEND="${COMMON_DEPEND} - compile-locales? ( - app-arch/gzip - sys-apps/grep - virtual/awk - ) - test? ( >=net-dns/libidn2-2.3.0 ) -" -RDEPEND="${COMMON_DEPEND} - app-arch/gzip - sys-apps/grep - virtual/awk - sys-apps/gentoo-functions - !' | $(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 - - # We assume CC is already set up. - 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 - ;; - mips) - # The mips abi cannot support the GNU style hashes. #233233 - filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both - ;; - ppc|ppc64) - # Many arch-specific implementations do not work on ppc with - # cache-block not equal to 128 bytes. This breaks memset: - # https://sourceware.org/PR26522 - # https://bugs.gentoo.org/737996 - # Use default -mcpu=. For ppc it means non-multiarch setup. - filter-flags '-mcpu=*' - ;; - sparc) - # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. - filter-flags "-fcall-used-g7" - append-flags "-fcall-used-g6" - - local cpu - case ${CTARGET} in - sparc64-*) - cpu="sparc64" - case $(get-flag mcpu) in - v9) - # We need to force at least v9a because the base build doesn't - # work with just v9. - # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 - append-flags "-Wa,-xarch=v9a" - ;; - esac - ;; - sparc-*) - case $(get-flag mcpu) in - v8|supersparc|hypersparc|leon|leon3) - cpu="sparcv8" - ;; - *) - cpu="sparcv9" - ;; - esac - ;; - esac - [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" - ;; - esac -} - -setup_flags() { - # Make sure host make.conf doesn't pollute us - if is_crosscompile || tc-is-cross-compiler ; then - CHOST=${CTARGET} strip-unsupported-flags - fi - - # Store our CFLAGS because it's changed depending on which CTARGET - # we are building when pulling glibc on a multilib profile - CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} - CFLAGS=${CFLAGS_BASE} - CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} - CXXFLAGS=${CXXFLAGS_BASE} - ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} - ASFLAGS=${ASFLAGS_BASE} - - # Allow users to explicitly avoid flag sanitization via - # USE=custom-cflags. - if ! use custom-cflags; then - # Over-zealous CFLAGS can often cause problems. What may work for one - # person may not work for another. To avoid a large influx of bugs - # relating to failed builds, we strip most CFLAGS out to ensure as few - # problems as possible. - strip-flags - # Lock glibc at -O2; we want to be conservative here. - filter-flags '-O?' - append-flags -O2 - fi - - strip-unsupported-flags - filter-flags -m32 -m64 '-mabi=*' - - # glibc aborts if rpath is set by LDFLAGS - filter-ldflags '-Wl,-rpath=*' - - # ld can't use -r & --relax at the same time, bug #788901 - # https://sourceware.org/PR27837 - filter-ldflags '-Wl,--relax' - - # #492892 - filter-flags -frecord-gcc-switches - - # #829583 - filter-lfs-flags - - 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*' -} - -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 - - # Glibc does not work with gold (for various reasons) #269274. - tc-ld-disable-gold - - if use doc ; then - export MAKEINFO=makeinfo - else - export MAKEINFO=/dev/null - fi - - # Reset CC and CXX to the value at start of emerge - export CC=${__ORIG_CC:-${CC:-$(tc-getCC ${CTARGET})}} - export CXX=${__ORIG_CXX:-${CXX:-$(tc-getCXX ${CTARGET})}} - - # and make sure __ORIC_CC and __ORIG_CXX is defined now. - export __ORIG_CC=${CC} - export __ORIG_CXX=${CXX} - - if tc-is-clang && ! use custom-cflags && ! is_crosscompile ; then - - # If we are running in an otherwise clang/llvm environment, we need to - # recover the proper gcc and binutils settings here, at least until glibc - # is finally building with clang. So let's override everything that is - # set in the clang profiles. - # Want to shoot yourself into the foot? Set USE=custom-cflags, that's always - # a good start into that direction. - # Also, if you're crosscompiling, let's assume you know what you are doing. - # Hopefully. - # Last, we need the settings of the *build* environment, not of the - # target environment... - - local current_binutils_path=$(env ROOT="${BROOT}" binutils-config -B) - local current_gcc_path=$(env ROOT="${BROOT}" gcc-config -B) - einfo "Overriding clang configuration, since it won't work here" - - export CC="${current_gcc_path}/gcc" - export CXX="${current_gcc_path}/g++" - export LD="${current_binutils_path}/ld.bfd" - export AR="${current_binutils_path}/ar" - export AS="${current_binutils_path}/as" - export NM="${current_binutils_path}/nm" - export STRIP="${current_binutils_path}/strip" - export RANLIB="${current_binutils_path}/ranlib" - export OBJCOPY="${current_binutils_path}/objcopy" - export STRINGS="${current_binutils_path}/strings" - export OBJDUMP="${current_binutils_path}/objdump" - export READELF="${current_binutils_path}/readelf" - export ADDR2LINE="${current_binutils_path}/addr2line" - - # do we need to also do flags munging here? yes! at least... - filter-flags '-fuse-ld=*' - filter-flags '-D_FORTIFY_SOURCE=*' - - else - - # this is the "normal" case - - export CC="$(tc-getCC ${CTARGET})" - export CXX="$(tc-getCXX ${CTARGET})" - - # 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})" - - fi - - # 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. (Why does the comment talk about CFLAGS if the code - # acts on CC?) - export __GLIBC_CC=${CC} - export __GLIBC_CXX=${CXX} - - export __abi_CFLAGS="$(get_abi_CFLAGS)" - - # 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="${__GLIBC_CC} ${__abi_CFLAGS} ${CFLAGS} ${LDFLAGS}" - - # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 - export CXX="${__GLIBC_CXX} ${__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 -} - -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 - - # ABI-specific checks follow here. Hey, we have a lot more specific conditions that - # we test for... - if ! is_crosscompile ; then - if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then - ebegin "Checking that IA32 emulation is enabled in the running kernel" - echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" - local STAT - if ${CC-${CHOST}-gcc} ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then - "${T}/check-ia32-emulation.elf32" - STAT=$? - else - # Don't fail here to allow single->multi ABI switch - # or recover from breakage like bug #646424 - ewarn "Failed to compile the ABI test. Broken host glibc?" - STAT=0 - fi - rm -f "${T}/check-ia32-emulation.elf32" - eend $STAT - [[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc." - fi - - fi - - # When we actually have to compile something... - if ! just_headers && [[ ${MERGE_TYPE} != "binary" ]] ; then - if [[ -d "${ESYSROOT}"/usr/lib/include ]] ; then - # bug #833620, bug #643302 - eerror "Found ${ESYSROOT}/usr/lib/include directory!" - eerror "This is known to break glibc's build." - eerror "Please backup its contents then remove the directory." - die "Found directory (${ESYSROOT}/usr/lib/include) which will break build (bug #833620)!" - 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 -} - -upgrade_warning() { - if [[ ${MERGE_TYPE} != buildonly && -n ${REPLACING_VERSIONS} && -z ${ROOT} ]]; then - local oldv newv=$(ver_cut 1-2 ${PV}) - for oldv in ${REPLACING_VERSIONS}; do - if ver_test ${oldv} -lt ${newv}; then - ewarn "After upgrading glibc, please restart all running processes." - ewarn "Be sure to include init (telinit u) or systemd (systemctl daemon-reexec)." - ewarn "Alternatively, reboot your system." - ewarn "(See bug #660556, bug #741116, bug #823756, etc)" - break - fi - done - fi -} - -# -# the phases -# - -# pkg_pretend - -pkg_pretend() { - upgrade_warning -} - -pkg_setup() { - # see bug 682570 - [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup -} - -# src_unpack - -src_unpack() { - setup_env - - einfo "Checking general environment sanity." - sanity_prechecks - - use multilib-bootstrap && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz - - if [[ ${PV} == 9999* ]] ; then - EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/glibc-patches.git" - EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git - git-r3_src_unpack - mv patches-git/9999 patches || die - - EGIT_REPO_URI="https://sourceware.org/git/glibc.git" - EGIT_CHECKOUT_DIR=${S} - git-r3_src_unpack - else - unpack ${P}.tar.xz - - cd "${WORKDIR}" || die - unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz - fi - - cd "${WORKDIR}" || die - unpack locale-gen-${LOCALE_GEN_VER}.tar.gz - use systemd && unpack glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz -} - -src_prepare() { - local patchsetname - if ! use vanilla ; then - if [[ ${PV} == 9999* ]] ; then - patchsetname="from git master" - else - patchsetname="${RELEASE_VER}-${PATCH_VER}" - fi - einfo "Applying Gentoo Glibc Patchset ${patchsetname}" - eapply "${WORKDIR}"/patches - einfo "Done." - fi - - default - - gnuconfig_update - - cd "${WORKDIR}" - find . -name configure -exec touch {} + - - # move the external locale-gen to its old place - mkdir extra || die - mv locale-gen-${LOCALE_GEN_VER} extra/locale || die - - eprefixify extra/locale/locale-gen - - # Fix permissions on some of the scripts. - chmod u+x "${S}"/scripts/*.sh - - cd "${S}" -} - -glibc_do_configure() { - - local v - for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO NM AR AS STRIP RANLIB OBJCOPY STRINGS OBJDUMP READELF; do - einfo " $(printf '%15s' ${v}:) ${!v}" - done - - echo - local myconf=() - - # Use '=strong' instead of '=all' to protect only functions - # worth protecting from stack smashes. - myconf+=( --enable-stack-protector=$(usex ssp strong no) ) - - # 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+=( - --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) - - # locale data is arch-independent - # https://bugs.gentoo.org/753740 - libc_cv_complocaledir='${exec_prefix}/lib/locale' - - # -march= option tricks build system to infer too - # high ISA level: https://sourceware.org/PR27318 - libc_cv_include_x86_isa_level=no - # Explicit override of https://sourceware.org/PR27991 - # exposes a bug in glibc's configure: - # https://sourceware.org/PR27991 - libc_cv_have_x86_lahf_sahf=no - libc_cv_have_x86_movbe=no - - ${EXTRA_ECONF} - ) - - # We rely on sys-libs/timezone-data for timezone tools normally. - myconf+=( $(use_enable vanilla timezone-tools) ) - - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) - ac_cv_lib_cap_cap_init=$(usex caps || echo no) - - # There is no configure option for this and we need to export it - # since the glibc build will re-run configure on itself - export libc_cv_rootsbindir="$(host_eprefix)/sbin" - export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)" - - # We take care of patching our binutils to use both hash styles, - # and many people like to force gnu hash style only, so disable - # this overriding check. #347761 - export libc_cv_hashstyle=no - - local builddir=$(builddir nptl) - mkdir -p "${builddir}" - cd "${builddir}" - set -- "${S}"/configure "${myconf[@]}" - echo "$@" - "$@" || die "failed to configure glibc" - - # ia64 static cross-compilers are a pita in so much that they - # can't produce static ELFs (as the libgcc.a is broken). so - # disable building of the programs for those targets if it - # doesn't work. - # XXX: We could turn this into a compiler test, but ia64 is - # the only one that matters, so this should be fine for now. - if is_crosscompile && [[ ${CTARGET} == ia64* ]] ; then - sed -i '1i+link-static = touch $@' config.make - fi - - # If we're trying to migrate between ABI sets, we need - # to lie and use a local copy of gcc. Like if the system - # is built with MULTILIB_ABIS="amd64 x86" but we want to - # add x32 to it, gcc/glibc don't yet support x32. - # - if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib-bootstrap ; then - echo 'main(){}' > "${T}"/test.c - if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then - sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die - fi - fi -} - -glibc_headers_configure() { - export ABI=default - - local builddir=$(builddir "headers") - mkdir -p "${builddir}" - cd "${builddir}" - - # if we don't have a compiler yet, we can't really test it now ... - # hopefully they don't affect header generation, so let's hope for - # the best here ... - local v vars=( - ac_cv_header_cpuid_h=yes - libc_cv_{386,390,alpha,arm,hppa,ia64,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes - libc_cv_asm_cfi_directives=yes - libc_cv_broken_visibility_attribute=no - libc_cv_c_cleanup=yes - libc_cv_compiler_powerpc64le_binary128_ok=yes - libc_cv_forced_unwind=yes - libc_cv_gcc___thread=yes - libc_cv_mlong_double_128=yes - libc_cv_mlong_double_128ibm=yes - libc_cv_ppc_machine=yes - libc_cv_ppc_rel16=yes - libc_cv_predef_fortify_source=no - libc_cv_target_power8_ok=yes - libc_cv_visibility_attribute=yes - libc_cv_z_combreloc=yes - libc_cv_z_execstack=yes - libc_cv_z_initfirst=yes - libc_cv_z_nodelete=yes - libc_cv_z_nodlopen=yes - libc_cv_z_relro=yes - libc_mips_abi=${ABI} - libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=no - ac_cv_lib_cap_cap_init=no - ) - - einfo "Forcing cached settings:" - for v in "${vars[@]}" ; do - einfo " ${v}" - export ${v} - done - - local headers_only_arch_CPPFLAGS=() - - # Blow away some random CC settings that screw things up. #550192 - if [[ -d ${S}/sysdeps/mips ]]; then - pushd "${S}"/sysdeps/mips >/dev/null - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die - - # Force the mips ABI to the default. This is OK because the set of - # installed headers in this phase is the same between the 3 ABIs. - # If this ever changes, this hack will break, but that's unlikely - # as glibc discourages that behavior. - # https://crbug.com/647033 - sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die - - popd >/dev/null - fi - - case ${CTARGET} in - riscv*) - # RISC-V interrogates the compiler to determine which target to - # build. If building the headers then we don't strictly need a - # RISC-V compiler, so the built-in definitions that are provided - # along with all RISC-V compiler might not exist. This causes - # glibc's RISC-V preconfigure script to blow up. Since we're just - # building the headers any value will actually work here, so just - # pick the standard one (rv64g/lp64d) to make the build scripts - # happy for now -- the headers are all the same anyway so it - # doesn't matter. - headers_only_arch_CPPFLAGS+=( - -D__riscv_xlen=64 - -D__riscv_flen=64 - -D__riscv_float_abi_double=1 - -D__riscv_atomic=1 - ) ;; - esac - - local myconf=() - myconf+=( - --disable-sanity-checks - --enable-hacker-mode - --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 - # riscv - ilp32d /lib/ld-linux-riscv32-ilp32d.so.1 - ilp32 /lib/ld-linux-riscv32-ilp32.so.1 - lp64d /lib/ld-linux-riscv64-lp64d.so.1 - lp64 /lib/ld-linux-riscv64-lp64.so.1 - # s390 - s390 /lib/ld.so.1 - s390x /lib/ld64.so.1 - # sparc - sparc32 /lib/ld-linux.so.2 - sparc64 /lib64/ld-linux.so.2 - ) - case $(tc-endian) in - little) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64.so.1 - # ELFv2 (glibc does not support ELFv1 on LE) - ppc64 /lib64/ld64.so.2 - ) - ;; - big) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64_be.so.1 - # ELFv1 (glibc does not support ELFv2 on BE) - ppc64 /lib64/ld64.so.1 - ) - ;; - esac - if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then - dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib - fi - for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do - ldso_abi=${ldso_abi_list[i]} - has ${ldso_abi} $(get_install_abis) || continue - - ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" - if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then - dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} - fi - done - - # In the LSB 5.0 definition, someone had the excellent idea to "standardize" - # the runtime loader name, see also https://xkcd.com/927/ - # Normally, in Gentoo one should never come across executables that require this. - # However, binary commercial packages are known to adhere to weird practices. - # https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-AMD64/LSB-Core-AMD64.html#BASELIB - local lsb_ldso_name native_ldso_name lsb_ldso_abi - local lsb_ldso_abi_list=( - # x86 - amd64 ld-linux-x86-64.so.2 ld-lsb-x86-64.so.3 - ) - for (( i = 0; i < ${#lsb_ldso_abi_list[@]}; i += 3 )) ; do - lsb_ldso_abi=${lsb_ldso_abi_list[i]} - native_ldso_name=${lsb_ldso_abi_list[i+1]} - lsb_ldso_name=${lsb_ldso_abi_list[i+2]} - has ${lsb_ldso_abi} $(get_install_abis) || continue - - if [[ ! -L ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} && ! -e ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} ]] ; then - dosym ${native_ldso_name} "$(alt_prefix)/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name}" - fi - done - - # With devpts under Linux mounted properly, we do not need the pt_chown - # binary to be setuid. This is because the default owners/perms will be - # exactly what we want. - if ! use suid ; then - find "${ED}" -name pt_chown -exec chmod -s {} + - fi - - ################################################################# - # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # - # Make sure we install some symlink hacks so that when we build - # a 2nd stage cross-compiler, gcc finds the target system - # headers correctly. See gcc/doc/gccinstall.info - if is_crosscompile ; then - # We need to make sure that /lib and /usr/lib always exists. - # gcc likes to use relative paths to get to its multilibs like - # /usr/lib/../lib64/. So while we don't install any files into - # /usr/lib/, we do need it to exist. - keepdir $(alt_prefix)/lib - keepdir $(alt_prefix)/usr/lib - - dosym usr/include $(alt_prefix)/sys-include - return 0 - fi - - # Files for Debian-style locale updating - dodir /usr/share/i18n - sed \ - -e "/^#/d" \ - -e "/SUPPORTED-LOCALES=/d" \ - -e "s: \\\\::g" -e "s:/: :g" \ - "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ - || die "generating /usr/share/i18n/SUPPORTED failed" - cd "${WORKDIR}"/extra/locale - dosbin locale-gen - doman *.[0-8] - insinto /etc - doins locale.gen - - keepdir /usr/lib/locale - - cd "${S}" - - # Install misc network config files - insinto /etc - doins posix/gai.conf - - if use systemd ; then - doins "${WORKDIR}/glibc-systemd-${GLIBC_SYSTEMD_VER}/gentoo-config/nsswitch.conf" - else - doins nss/nsswitch.conf - fi - - # Gentoo-specific - newins "${FILESDIR}"/host.conf-1 host.conf - - if use nscd ; then - doins nscd/nscd.conf - - newinitd "$(prefixify_ro "${FILESDIR}"/nscd-1)" nscd - - local nscd_args=( - -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" - ) - - sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd - - use systemd && systemd_dounit nscd/nscd.service - newtmpfiles nscd/nscd.tmpfiles nscd.conf - fi - - echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc - doenvd "${T}"/00glibc - - for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do - [[ -s ${d} ]] && dodoc ${d} - done - dodoc -r ChangeLog.old - - # Prevent overwriting of the /etc/localtime symlink. We'll handle the - # creation of the "factory" symlink in pkg_postinst(). - rm -f "${ED}"/etc/localtime - - # Generate all locales if this is a native build as locale generation - if use compile-locales && ! is_crosscompile ; then - run_locale_gen --inplace-glibc "${ED}/" - sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die - fi -} - -glibc_headers_install() { - local builddir=$(builddir "headers") - cd "${builddir}" - emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers - - insinto $(alt_headers)/gnu - doins "${S}"/include/gnu/stubs.h - - # Make sure we install the sys-include symlink so that when - # we build a 2nd stage cross-compiler, gcc finds the target - # system headers correctly. See gcc/doc/gccinstall.info - dosym usr/include $(alt_prefix)/sys-include -} - -src_install() { - if just_headers ; then - export ABI=default - glibc_headers_install - return - fi - - foreach_abi glibc_do_src_install - - if ! use static-libs ; then - einfo "Not installing static glibc libraries" - find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete - fi -} - -# Simple test to make sure our new glibc isn't completely broken. -# Make sure we don't test with statically built binaries since -# they will fail. Also, skip if this glibc is a cross compiler. -# -# If coreutils is built with USE=multicall, some of these files -# will just be wrapper scripts, not actual ELFs we can test. -glibc_sanity_check() { - cd / #228809 - - # We enter ${ED} so to avoid trouble if the path contains - # special characters; for instance if the path contains the - # colon character (:), then the linker will try to split it - # and look for the libraries in an unexpected place. This can - # lead to unsafe code execution if the generated prefix is - # within a world-writable directory. - # (e.g. /var/tmp/portage:${HOSTNAME}) - pushd "${ED}"/$(get_libdir) >/dev/null - - # first let's find the actual dynamic linker here - # symlinks may point to the wrong abi - local newldso=$(find . -maxdepth 1 -name 'ld*so.?' -type f -print -quit) - - einfo Last-minute run tests with ${newldso} in /$(get_libdir) ... - - local x striptest - for x in cal date env free ls true uname uptime ; do - x=$(type -p ${x}) - [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue - striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue - case ${striptest} in - *"statically linked"*) continue;; - *"ASCII text"*) continue;; - esac - # We need to clear the locale settings as the upgrade might want - # incompatible locale data. This test is not for verifying that. - LC_ALL=C \ - ${newldso} --library-path . ${x} > /dev/null \ - || die "simple run test (${x}) failed" - done - - popd >/dev/null -} - -pkg_preinst() { - # nothing to do if just installing headers - just_headers && return - - # prepare /etc/ld.so.conf.d/ for files - mkdir -p "${EROOT}"/etc/ld.so.conf.d - - # Default /etc/hosts.conf:multi to on for systems with small dbs. - if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then - sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf - einfo "Defaulting /etc/host.conf:multi to on" - fi - - [[ -n ${ROOT} ]] && return 0 - [[ -d ${ED}/$(get_libdir) ]] || return 0 - [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check - - if [[ -L ${EROOT}/usr/lib/locale ]]; then - # Help portage migrate this to a directory - # https://bugs.gentoo.org/753740 - rm "${EROOT}"/usr/lib/locale || die - fi - - # Keep around libcrypt so that Perl doesn't break when merging libxcrypt - # (libxcrypt is the new provider for now of libcrypt.so.{1,2}). - # bug #802207 - if ! use crypt && has_version "${CATEGORY}/${PN}[crypt]" && ! has preserve-libs ${FEATURES}; then - PRESERVED_OLD_LIBCRYPT=1 - cp -p "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" "${T}/libcrypt$(get_libname 1)" || die - else - PRESERVED_OLD_LIBCRYPT=0 - fi -} - -pkg_postinst() { - # nothing to do if just installing headers - just_headers && return - - if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then - # Generate fastloading iconv module configuration file. - "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}/" - fi - - if ! is_crosscompile && [[ -z ${ROOT} ]] ; then - use compile-locales || run_locale_gen "${EROOT}/" - fi - - upgrade_warning - - # Check for sanity of /etc/nsswitch.conf, take 2 - if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then - local entry - for entry in passwd group shadow; do - if egrep -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then - ewarn "" - ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" - ewarn "removed from glibc and is now provided by the package" - ewarn " sys-auth/libnss-nis" - ewarn "Install it now to keep your NIS setup working." - ewarn "" - fi - done - fi - - if [[ ${PRESERVED_OLD_LIBCRYPT} -eq 1 ]] ; then - cp -p "${T}/libcrypt$(get_libname 1)" "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" || die - preserve_old_lib_notify /$(get_libdir)/libcrypt$(get_libname 1) - - elog "Please ignore a possible later error message about a file collision involving" - elog "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1). We need to preserve this file for the moment to keep" - elog "the upgrade working, but it also needs to be overwritten when" - elog "sys-libs/libxcrypt is installed. See bug 802210 for more details." - fi -} diff --git a/sys-libs/glibc/glibc-2.35-r2.ebuild b/sys-libs/glibc/glibc-2.35-r2.ebuild deleted file mode 100644 index 22e2d5153f19..000000000000 --- a/sys-libs/glibc/glibc-2.35-r2.ebuild +++ /dev/null @@ -1,1593 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -# Bumping notes: https://wiki.gentoo.org/wiki/Project:Toolchain/sys-libs/glibc -# Please read & adapt the page as necessary if obsolete. - -PYTHON_COMPAT=( python3_{8,9,10} ) -TMPFILES_OPTIONAL=1 - -inherit python-any-r1 prefix preserve-libs toolchain-funcs flag-o-matic gnuconfig \ - multilib systemd multiprocessing tmpfiles - -DESCRIPTION="GNU libc C library" -HOMEPAGE="https://www.gnu.org/software/libc/" -LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" -SLOT="2.2" - -EMULTILIB_PKG="true" - -# Gentoo patchset (ignored for live ebuilds) -PATCH_VER=5 -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=20201208 - -LOCALE_GEN_VER=2.22 - -GLIBC_SYSTEMD_VER=20210729 - -SRC_URI+=" https://gitweb.gentoo.org/proj/locale-gen.git/snapshot/locale-gen-${LOCALE_GEN_VER}.tar.gz" -SRC_URI+=" multilib-bootstrap? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" -SRC_URI+=" systemd? ( https://gitweb.gentoo.org/proj/toolchain/glibc-systemd.git/snapshot/glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz )" - -IUSE="audit caps cet +clone3 compile-locales +crypt custom-cflags doc gd headers-only +multiarch multilib multilib-bootstrap nscd profile selinux +ssp +static-libs suid systemd systemtap test vanilla" - -# Minimum kernel version that glibc requires -MIN_KERN_VER="3.2.0" -# Minimum pax-utils version needed (which contains any new syscall changes for -# its seccomp filter!). Please double check this! -MIN_PAX_UTILS_VER="1.3.3" - -# 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-${MIN_PAX_UTILS_VER} - sys-devel/bison - doc? ( sys-apps/texinfo ) - !compile-locales? ( - app-arch/gzip - sys-apps/grep - virtual/awk - ) -" -COMMON_DEPEND=" - gd? ( media-libs/gd:2= ) - nscd? ( selinux? ( - audit? ( sys-process/audit ) - caps? ( sys-libs/libcap ) - ) ) - suid? ( caps? ( sys-libs/libcap ) ) - selinux? ( sys-libs/libselinux ) - systemtap? ( dev-util/systemtap ) -" -DEPEND="${COMMON_DEPEND} - compile-locales? ( - app-arch/gzip - sys-apps/grep - virtual/awk - ) - test? ( >=net-dns/libidn2-2.3.0 ) -" -RDEPEND="${COMMON_DEPEND} - app-arch/gzip - sys-apps/grep - virtual/awk - sys-apps/gentoo-functions - !' | $(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 - - # We assume CC is already set up. - 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 - ;; - mips) - # The mips abi cannot support the GNU style hashes. #233233 - filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both - ;; - ppc|ppc64) - # Many arch-specific implementations do not work on ppc with - # cache-block not equal to 128 bytes. This breaks memset: - # https://sourceware.org/PR26522 - # https://bugs.gentoo.org/737996 - # Use default -mcpu=. For ppc it means non-multiarch setup. - filter-flags '-mcpu=*' - ;; - sparc) - # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. - filter-flags "-fcall-used-g7" - append-flags "-fcall-used-g6" - - local cpu - case ${CTARGET} in - sparc64-*) - cpu="sparc64" - case $(get-flag mcpu) in - v9) - # We need to force at least v9a because the base build doesn't - # work with just v9. - # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 - append-flags "-Wa,-xarch=v9a" - ;; - esac - ;; - sparc-*) - case $(get-flag mcpu) in - v8|supersparc|hypersparc|leon|leon3) - cpu="sparcv8" - ;; - *) - cpu="sparcv9" - ;; - esac - ;; - esac - [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" - ;; - esac -} - -setup_flags() { - # Make sure host make.conf doesn't pollute us - if is_crosscompile || tc-is-cross-compiler ; then - CHOST=${CTARGET} strip-unsupported-flags - fi - - # Store our CFLAGS because it's changed depending on which CTARGET - # we are building when pulling glibc on a multilib profile - CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} - CFLAGS=${CFLAGS_BASE} - CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} - CXXFLAGS=${CXXFLAGS_BASE} - ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} - ASFLAGS=${ASFLAGS_BASE} - - # Allow users to explicitly avoid flag sanitization via - # USE=custom-cflags. - if ! use custom-cflags; then - # Over-zealous CFLAGS can often cause problems. What may work for one - # person may not work for another. To avoid a large influx of bugs - # relating to failed builds, we strip most CFLAGS out to ensure as few - # problems as possible. - strip-flags - # Lock glibc at -O2; we want to be conservative here. - filter-flags '-O?' - append-flags -O2 - fi - - strip-unsupported-flags - filter-flags -m32 -m64 '-mabi=*' - - # glibc aborts if rpath is set by LDFLAGS - filter-ldflags '-Wl,-rpath=*' - - # ld can't use -r & --relax at the same time, bug #788901 - # https://sourceware.org/PR27837 - filter-ldflags '-Wl,--relax' - - # #492892 - filter-flags -frecord-gcc-switches - - # #829583 - filter-lfs-flags - - 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*' - - # See end of bug #830454; we handle this via USE=cet - filter-flags '-fcf-protection=' -} - -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 - - # Glibc does not work with gold (for various reasons) #269274. - tc-ld-disable-gold - - if use doc ; then - export MAKEINFO=makeinfo - else - export MAKEINFO=/dev/null - fi - - # Reset CC and CXX to the value at start of emerge - export CC=${__ORIG_CC:-${CC:-$(tc-getCC ${CTARGET})}} - export CXX=${__ORIG_CXX:-${CXX:-$(tc-getCXX ${CTARGET})}} - - # and make sure __ORIC_CC and __ORIG_CXX is defined now. - export __ORIG_CC=${CC} - export __ORIG_CXX=${CXX} - - if tc-is-clang && ! use custom-cflags && ! is_crosscompile ; then - - # If we are running in an otherwise clang/llvm environment, we need to - # recover the proper gcc and binutils settings here, at least until glibc - # is finally building with clang. So let's override everything that is - # set in the clang profiles. - # Want to shoot yourself into the foot? Set USE=custom-cflags, that's always - # a good start into that direction. - # Also, if you're crosscompiling, let's assume you know what you are doing. - # Hopefully. - # Last, we need the settings of the *build* environment, not of the - # target environment... - - local current_binutils_path=$(env ROOT="${BROOT}" binutils-config -B) - local current_gcc_path=$(env ROOT="${BROOT}" gcc-config -B) - einfo "Overriding clang configuration, since it won't work here" - - export CC="${current_gcc_path}/gcc" - export CXX="${current_gcc_path}/g++" - export LD="${current_binutils_path}/ld.bfd" - export AR="${current_binutils_path}/ar" - export AS="${current_binutils_path}/as" - export NM="${current_binutils_path}/nm" - export STRIP="${current_binutils_path}/strip" - export RANLIB="${current_binutils_path}/ranlib" - export OBJCOPY="${current_binutils_path}/objcopy" - export STRINGS="${current_binutils_path}/strings" - export OBJDUMP="${current_binutils_path}/objdump" - export READELF="${current_binutils_path}/readelf" - export ADDR2LINE="${current_binutils_path}/addr2line" - - # do we need to also do flags munging here? yes! at least... - filter-flags '-fuse-ld=*' - filter-flags '-D_FORTIFY_SOURCE=*' - - else - - # this is the "normal" case - - export CC="$(tc-getCC ${CTARGET})" - export CXX="$(tc-getCXX ${CTARGET})" - - # 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})" - - fi - - # 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. (Why does the comment talk about CFLAGS if the code - # acts on CC?) - export __GLIBC_CC=${CC} - export __GLIBC_CXX=${CXX} - - export __abi_CFLAGS="$(get_abi_CFLAGS)" - - # 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="${__GLIBC_CC} ${__abi_CFLAGS} ${CFLAGS} ${LDFLAGS}" - - # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 - export CXX="${__GLIBC_CXX} ${__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 -} - -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 - - # ABI-specific checks follow here. Hey, we have a lot more specific conditions that - # we test for... - if ! is_crosscompile ; then - if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then - ebegin "Checking that IA32 emulation is enabled in the running kernel" - echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" - local STAT - if ${CC-${CHOST}-gcc} ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then - "${T}/check-ia32-emulation.elf32" - STAT=$? - else - # Don't fail here to allow single->multi ABI switch - # or recover from breakage like bug #646424 - ewarn "Failed to compile the ABI test. Broken host glibc?" - STAT=0 - fi - rm -f "${T}/check-ia32-emulation.elf32" - eend $STAT - [[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc." - fi - - fi - - # When we actually have to compile something... - if ! just_headers && [[ ${MERGE_TYPE} != "binary" ]] ; then - if [[ -d "${ESYSROOT}"/usr/lib/include ]] ; then - # bug #833620, bug #643302 - eerror "Found ${ESYSROOT}/usr/lib/include directory!" - eerror "This is known to break glibc's build." - eerror "Please backup its contents then remove the directory." - die "Found directory (${ESYSROOT}/usr/lib/include) which will break build (bug #833620)!" - 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 -} - -upgrade_warning() { - if [[ ${MERGE_TYPE} != buildonly && -n ${REPLACING_VERSIONS} && -z ${ROOT} ]]; then - local oldv newv=$(ver_cut 1-2 ${PV}) - for oldv in ${REPLACING_VERSIONS}; do - if ver_test ${oldv} -lt ${newv}; then - ewarn "After upgrading glibc, please restart all running processes." - ewarn "Be sure to include init (telinit u) or systemd (systemctl daemon-reexec)." - ewarn "Alternatively, reboot your system." - ewarn "(See bug #660556, bug #741116, bug #823756, etc)" - break - fi - done - fi -} - -# -# the phases -# - -# pkg_pretend - -pkg_pretend() { - upgrade_warning -} - -pkg_setup() { - # see bug 682570 - [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup -} - -# src_unpack - -src_unpack() { - setup_env - - einfo "Checking general environment sanity." - sanity_prechecks - - use multilib-bootstrap && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz - - if [[ ${PV} == 9999* ]] ; then - EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/glibc-patches.git" - EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git - git-r3_src_unpack - mv patches-git/9999 patches || die - - EGIT_REPO_URI="https://sourceware.org/git/glibc.git" - EGIT_CHECKOUT_DIR=${S} - git-r3_src_unpack - else - unpack ${P}.tar.xz - - cd "${WORKDIR}" || die - unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz - fi - - cd "${WORKDIR}" || die - unpack locale-gen-${LOCALE_GEN_VER}.tar.gz - use systemd && unpack glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz -} - -src_prepare() { - local patchsetname - if ! use vanilla ; then - if [[ ${PV} == 9999* ]] ; then - patchsetname="from git master" - else - patchsetname="${RELEASE_VER}-${PATCH_VER}" - fi - einfo "Applying Gentoo Glibc Patchset ${patchsetname}" - eapply "${WORKDIR}"/patches - einfo "Done." - fi - - if use clone3 ; then - append-cppflags -DGENTOO_USE_CLONE3 - else - # See e.g. bug #827386, bug #819045. - elog "Disabling the clone3 syscall for compatibility with older Electron apps." - elog "Please re-enable this flag before filing bugs!" - 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() { - - local v - for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO NM AR AS STRIP RANLIB OBJCOPY STRINGS OBJDUMP READELF; do - einfo " $(printf '%15s' ${v}:) ${!v}" - done - - echo - local myconf=() - - # Use '=strong' instead of '=all' to protect only functions - # worth protecting from stack smashes. - myconf+=( --enable-stack-protector=$(usex ssp strong no) ) - - # 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+=( - --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) - - # locale data is arch-independent - # https://bugs.gentoo.org/753740 - libc_cv_complocaledir='${exec_prefix}/lib/locale' - - # -march= option tricks build system to infer too - # high ISA level: https://sourceware.org/PR27318 - libc_cv_include_x86_isa_level=no - # Explicit override of https://sourceware.org/PR27991 - # exposes a bug in glibc's configure: - # https://sourceware.org/PR27991 - libc_cv_have_x86_lahf_sahf=no - libc_cv_have_x86_movbe=no - - ${EXTRA_ECONF} - ) - - # We rely on sys-libs/timezone-data for timezone tools normally. - myconf+=( $(use_enable vanilla timezone-tools) ) - - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) - ac_cv_lib_cap_cap_init=$(usex caps || echo no) - - # There is no configure option for this and we need to export it - # since the glibc build will re-run configure on itself - export libc_cv_rootsbindir="$(host_eprefix)/sbin" - export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)" - - # We take care of patching our binutils to use both hash styles, - # and many people like to force gnu hash style only, so disable - # this overriding check. #347761 - export libc_cv_hashstyle=no - - local builddir=$(builddir nptl) - mkdir -p "${builddir}" - cd "${builddir}" - set -- "${S}"/configure "${myconf[@]}" - echo "$@" - "$@" || die "failed to configure glibc" - - # ia64 static cross-compilers are a pita in so much that they - # can't produce static ELFs (as the libgcc.a is broken). so - # disable building of the programs for those targets if it - # doesn't work. - # XXX: We could turn this into a compiler test, but ia64 is - # the only one that matters, so this should be fine for now. - if is_crosscompile && [[ ${CTARGET} == ia64* ]] ; then - sed -i '1i+link-static = touch $@' config.make - fi - - # If we're trying to migrate between ABI sets, we need - # to lie and use a local copy of gcc. Like if the system - # is built with MULTILIB_ABIS="amd64 x86" but we want to - # add x32 to it, gcc/glibc don't yet support x32. - # - if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib-bootstrap ; then - echo 'main(){}' > "${T}"/test.c - if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then - sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die - fi - fi -} - -glibc_headers_configure() { - export ABI=default - - local builddir=$(builddir "headers") - mkdir -p "${builddir}" - cd "${builddir}" - - # if we don't have a compiler yet, we can't really test it now ... - # hopefully they don't affect header generation, so let's hope for - # the best here ... - local v vars=( - ac_cv_header_cpuid_h=yes - libc_cv_{386,390,alpha,arm,hppa,ia64,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes - libc_cv_asm_cfi_directives=yes - libc_cv_broken_visibility_attribute=no - libc_cv_c_cleanup=yes - libc_cv_compiler_powerpc64le_binary128_ok=yes - libc_cv_forced_unwind=yes - libc_cv_gcc___thread=yes - libc_cv_mlong_double_128=yes - libc_cv_mlong_double_128ibm=yes - libc_cv_ppc_machine=yes - libc_cv_ppc_rel16=yes - libc_cv_predef_fortify_source=no - libc_cv_target_power8_ok=yes - libc_cv_visibility_attribute=yes - libc_cv_z_combreloc=yes - libc_cv_z_execstack=yes - libc_cv_z_initfirst=yes - libc_cv_z_nodelete=yes - libc_cv_z_nodlopen=yes - libc_cv_z_relro=yes - libc_mips_abi=${ABI} - libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=no - ac_cv_lib_cap_cap_init=no - ) - - einfo "Forcing cached settings:" - for v in "${vars[@]}" ; do - einfo " ${v}" - export ${v} - done - - local headers_only_arch_CPPFLAGS=() - - # Blow away some random CC settings that screw things up. #550192 - if [[ -d ${S}/sysdeps/mips ]]; then - pushd "${S}"/sysdeps/mips >/dev/null - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die - - # Force the mips ABI to the default. This is OK because the set of - # installed headers in this phase is the same between the 3 ABIs. - # If this ever changes, this hack will break, but that's unlikely - # as glibc discourages that behavior. - # https://crbug.com/647033 - sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die - - popd >/dev/null - fi - - case ${CTARGET} in - riscv*) - # RISC-V interrogates the compiler to determine which target to - # build. If building the headers then we don't strictly need a - # RISC-V compiler, so the built-in definitions that are provided - # along with all RISC-V compiler might not exist. This causes - # glibc's RISC-V preconfigure script to blow up. Since we're just - # building the headers any value will actually work here, so just - # pick the standard one (rv64g/lp64d) to make the build scripts - # happy for now -- the headers are all the same anyway so it - # doesn't matter. - headers_only_arch_CPPFLAGS+=( - -D__riscv_xlen=64 - -D__riscv_flen=64 - -D__riscv_float_abi_double=1 - -D__riscv_atomic=1 - ) ;; - esac - - local myconf=() - myconf+=( - --disable-sanity-checks - --enable-hacker-mode - --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 - # riscv - ilp32d /lib/ld-linux-riscv32-ilp32d.so.1 - ilp32 /lib/ld-linux-riscv32-ilp32.so.1 - lp64d /lib/ld-linux-riscv64-lp64d.so.1 - lp64 /lib/ld-linux-riscv64-lp64.so.1 - # s390 - s390 /lib/ld.so.1 - s390x /lib/ld64.so.1 - # sparc - sparc32 /lib/ld-linux.so.2 - sparc64 /lib64/ld-linux.so.2 - ) - case $(tc-endian) in - little) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64.so.1 - # ELFv2 (glibc does not support ELFv1 on LE) - ppc64 /lib64/ld64.so.2 - ) - ;; - big) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64_be.so.1 - # ELFv1 (glibc does not support ELFv2 on BE) - ppc64 /lib64/ld64.so.1 - ) - ;; - esac - if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then - dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib - fi - for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do - ldso_abi=${ldso_abi_list[i]} - has ${ldso_abi} $(get_install_abis) || continue - - ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" - if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then - dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} - fi - done - - # In the LSB 5.0 definition, someone had the excellent idea to "standardize" - # the runtime loader name, see also https://xkcd.com/927/ - # Normally, in Gentoo one should never come across executables that require this. - # However, binary commercial packages are known to adhere to weird practices. - # https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-AMD64/LSB-Core-AMD64.html#BASELIB - local lsb_ldso_name native_ldso_name lsb_ldso_abi - local lsb_ldso_abi_list=( - # x86 - amd64 ld-linux-x86-64.so.2 ld-lsb-x86-64.so.3 - ) - for (( i = 0; i < ${#lsb_ldso_abi_list[@]}; i += 3 )) ; do - lsb_ldso_abi=${lsb_ldso_abi_list[i]} - native_ldso_name=${lsb_ldso_abi_list[i+1]} - lsb_ldso_name=${lsb_ldso_abi_list[i+2]} - has ${lsb_ldso_abi} $(get_install_abis) || continue - - if [[ ! -L ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} && ! -e ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} ]] ; then - dosym ${native_ldso_name} "$(alt_prefix)/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name}" - fi - done - - # With devpts under Linux mounted properly, we do not need the pt_chown - # binary to be setuid. This is because the default owners/perms will be - # exactly what we want. - if ! use suid ; then - find "${ED}" -name pt_chown -exec chmod -s {} + - fi - - ################################################################# - # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # - # Make sure we install some symlink hacks so that when we build - # a 2nd stage cross-compiler, gcc finds the target system - # headers correctly. See gcc/doc/gccinstall.info - if is_crosscompile ; then - # We need to make sure that /lib and /usr/lib always exists. - # gcc likes to use relative paths to get to its multilibs like - # /usr/lib/../lib64/. So while we don't install any files into - # /usr/lib/, we do need it to exist. - keepdir $(alt_prefix)/lib - keepdir $(alt_prefix)/usr/lib - - dosym usr/include $(alt_prefix)/sys-include - return 0 - fi - - # Files for Debian-style locale updating - dodir /usr/share/i18n - sed \ - -e "/^#/d" \ - -e "/SUPPORTED-LOCALES=/d" \ - -e "s: \\\\::g" -e "s:/: :g" \ - "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ - || die "generating /usr/share/i18n/SUPPORTED failed" - cd "${WORKDIR}"/extra/locale - dosbin locale-gen - doman *.[0-8] - insinto /etc - doins locale.gen - - keepdir /usr/lib/locale - - cd "${S}" - - # Install misc network config files - insinto /etc - doins posix/gai.conf - - if use systemd ; then - doins "${WORKDIR}/glibc-systemd-${GLIBC_SYSTEMD_VER}/gentoo-config/nsswitch.conf" - else - doins nss/nsswitch.conf - fi - - # Gentoo-specific - newins "${FILESDIR}"/host.conf-1 host.conf - - if use nscd ; then - doins nscd/nscd.conf - - newinitd "$(prefixify_ro "${FILESDIR}"/nscd-1)" nscd - - local nscd_args=( - -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" - ) - - sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd - - use systemd && systemd_dounit nscd/nscd.service - newtmpfiles nscd/nscd.tmpfiles nscd.conf - fi - - echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc - doenvd "${T}"/00glibc - - for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do - [[ -s ${d} ]] && dodoc ${d} - done - dodoc -r ChangeLog.old - - # Prevent overwriting of the /etc/localtime symlink. We'll handle the - # creation of the "factory" symlink in pkg_postinst(). - rm -f "${ED}"/etc/localtime - - # Generate all locales if this is a native build as locale generation - if use compile-locales && ! is_crosscompile ; then - run_locale_gen --inplace-glibc "${ED}/" - sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die - fi -} - -glibc_headers_install() { - local builddir=$(builddir "headers") - cd "${builddir}" - emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers - - insinto $(alt_headers)/gnu - doins "${S}"/include/gnu/stubs.h - - # Make sure we install the sys-include symlink so that when - # we build a 2nd stage cross-compiler, gcc finds the target - # system headers correctly. See gcc/doc/gccinstall.info - dosym usr/include $(alt_prefix)/sys-include -} - -src_install() { - if just_headers ; then - export ABI=default - glibc_headers_install - return - fi - - foreach_abi glibc_do_src_install - - if ! use static-libs ; then - einfo "Not installing static glibc libraries" - find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete - fi -} - -# Simple test to make sure our new glibc isn't completely broken. -# Make sure we don't test with statically built binaries since -# they will fail. Also, skip if this glibc is a cross compiler. -# -# If coreutils is built with USE=multicall, some of these files -# will just be wrapper scripts, not actual ELFs we can test. -glibc_sanity_check() { - cd / #228809 - - # We enter ${ED} so to avoid trouble if the path contains - # special characters; for instance if the path contains the - # colon character (:), then the linker will try to split it - # and look for the libraries in an unexpected place. This can - # lead to unsafe code execution if the generated prefix is - # within a world-writable directory. - # (e.g. /var/tmp/portage:${HOSTNAME}) - pushd "${ED}"/$(get_libdir) >/dev/null - - # first let's find the actual dynamic linker here - # symlinks may point to the wrong abi - local newldso=$(find . -maxdepth 1 -name 'ld*so.?' -type f -print -quit) - - einfo Last-minute run tests with ${newldso} in /$(get_libdir) ... - - local x striptest - for x in cal date env free ls true uname uptime ; do - x=$(type -p ${x}) - [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue - striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue - case ${striptest} in - *"statically linked"*) continue;; - *"ASCII text"*) continue;; - esac - # We need to clear the locale settings as the upgrade might want - # incompatible locale data. This test is not for verifying that. - LC_ALL=C \ - ${newldso} --library-path . ${x} > /dev/null \ - || die "simple run test (${x}) failed" - done - - popd >/dev/null -} - -pkg_preinst() { - # nothing to do if just installing headers - just_headers && return - - # prepare /etc/ld.so.conf.d/ for files - mkdir -p "${EROOT}"/etc/ld.so.conf.d - - # Default /etc/hosts.conf:multi to on for systems with small dbs. - if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then - sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf - einfo "Defaulting /etc/host.conf:multi to on" - fi - - [[ -n ${ROOT} ]] && return 0 - [[ -d ${ED}/$(get_libdir) ]] || return 0 - [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check - - if [[ -L ${EROOT}/usr/lib/locale ]]; then - # Help portage migrate this to a directory - # https://bugs.gentoo.org/753740 - rm "${EROOT}"/usr/lib/locale || die - fi - - # Keep around libcrypt so that Perl doesn't break when merging libxcrypt - # (libxcrypt is the new provider for now of libcrypt.so.{1,2}). - # bug #802207 - if ! use crypt && has_version "${CATEGORY}/${PN}[crypt]" && ! has preserve-libs ${FEATURES}; then - PRESERVED_OLD_LIBCRYPT=1 - cp -p "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" "${T}/libcrypt$(get_libname 1)" || die - else - PRESERVED_OLD_LIBCRYPT=0 - fi -} - -pkg_postinst() { - # nothing to do if just installing headers - just_headers && return - - if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then - # Generate fastloading iconv module configuration file. - "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}/" - fi - - if ! is_crosscompile && [[ -z ${ROOT} ]] ; then - use compile-locales || run_locale_gen "${EROOT}/" - fi - - upgrade_warning - - # Check for sanity of /etc/nsswitch.conf, take 2 - if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then - local entry - for entry in passwd group shadow; do - if egrep -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then - ewarn "" - ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" - ewarn "removed from glibc and is now provided by the package" - ewarn " sys-auth/libnss-nis" - ewarn "Install it now to keep your NIS setup working." - ewarn "" - fi - done - fi - - if [[ ${PRESERVED_OLD_LIBCRYPT} -eq 1 ]] ; then - cp -p "${T}/libcrypt$(get_libname 1)" "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" || die - preserve_old_lib_notify /$(get_libdir)/libcrypt$(get_libname 1) - - elog "Please ignore a possible later error message about a file collision involving" - elog "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1). We need to preserve this file for the moment to keep" - elog "the upgrade working, but it also needs to be overwritten when" - elog "sys-libs/libxcrypt is installed. See bug 802210 for more details." - fi -} diff --git a/sys-libs/glibc/glibc-2.35-r3.ebuild b/sys-libs/glibc/glibc-2.35-r3.ebuild new file mode 100644 index 000000000000..7040d0738b6a --- /dev/null +++ b/sys-libs/glibc/glibc-2.35-r3.ebuild @@ -0,0 +1,1601 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +# Bumping notes: https://wiki.gentoo.org/wiki/Project:Toolchain/sys-libs/glibc +# Please read & adapt the page as necessary if obsolete. + +PYTHON_COMPAT=( python3_{8,9,10} ) +TMPFILES_OPTIONAL=1 + +inherit python-any-r1 prefix preserve-libs toolchain-funcs flag-o-matic gnuconfig \ + multilib systemd multiprocessing tmpfiles + +DESCRIPTION="GNU libc C library" +HOMEPAGE="https://www.gnu.org/software/libc/" +LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" +SLOT="2.2" + +EMULTILIB_PKG="true" + +# Gentoo patchset (ignored for live ebuilds) +PATCH_VER=6 +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" + SRC_URI+=" experimental-loong? ( https://dev.gentoo.org/~xen0n/distfiles/glibc-2.35-loongarch-patches-20220422.tar.xz )" +fi + +RELEASE_VER=${PV} + +GCC_BOOTSTRAP_VER=20201208 + +LOCALE_GEN_VER=2.22 + +GLIBC_SYSTEMD_VER=20210729 + +SRC_URI+=" https://gitweb.gentoo.org/proj/locale-gen.git/snapshot/locale-gen-${LOCALE_GEN_VER}.tar.gz" +SRC_URI+=" multilib-bootstrap? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" +SRC_URI+=" systemd? ( https://gitweb.gentoo.org/proj/toolchain/glibc-systemd.git/snapshot/glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz )" + +IUSE="audit caps cet +clone3 compile-locales +crypt custom-cflags doc experimental-loong gd headers-only +multiarch multilib multilib-bootstrap nscd profile selinux +ssp +static-libs suid systemd systemtap test vanilla" + +# Minimum kernel version that glibc requires +MIN_KERN_VER="3.2.0" +# Minimum pax-utils version needed (which contains any new syscall changes for +# its seccomp filter!). Please double check this! +MIN_PAX_UTILS_VER="1.3.3" + +# 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-${MIN_PAX_UTILS_VER} + sys-devel/bison + doc? ( sys-apps/texinfo ) + !compile-locales? ( + app-arch/gzip + sys-apps/grep + virtual/awk + ) +" +COMMON_DEPEND=" + gd? ( media-libs/gd:2= ) + nscd? ( selinux? ( + audit? ( sys-process/audit ) + caps? ( sys-libs/libcap ) + ) ) + suid? ( caps? ( sys-libs/libcap ) ) + selinux? ( sys-libs/libselinux ) + systemtap? ( dev-util/systemtap ) +" +DEPEND="${COMMON_DEPEND} + compile-locales? ( + app-arch/gzip + sys-apps/grep + virtual/awk + ) + test? ( >=net-dns/libidn2-2.3.0 ) +" +RDEPEND="${COMMON_DEPEND} + app-arch/gzip + sys-apps/grep + virtual/awk + sys-apps/gentoo-functions + !' | $(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 + + # We assume CC is already set up. + 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 + ;; + mips) + # The mips abi cannot support the GNU style hashes. #233233 + filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both + ;; + ppc|ppc64) + # Many arch-specific implementations do not work on ppc with + # cache-block not equal to 128 bytes. This breaks memset: + # https://sourceware.org/PR26522 + # https://bugs.gentoo.org/737996 + # Use default -mcpu=. For ppc it means non-multiarch setup. + filter-flags '-mcpu=*' + ;; + sparc) + # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. + filter-flags "-fcall-used-g7" + append-flags "-fcall-used-g6" + + local cpu + case ${CTARGET} in + sparc64-*) + cpu="sparc64" + case $(get-flag mcpu) in + v9) + # We need to force at least v9a because the base build doesn't + # work with just v9. + # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 + append-flags "-Wa,-xarch=v9a" + ;; + esac + ;; + sparc-*) + case $(get-flag mcpu) in + v8|supersparc|hypersparc|leon|leon3) + cpu="sparcv8" + ;; + *) + cpu="sparcv9" + ;; + esac + ;; + esac + [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" + ;; + esac +} + +setup_flags() { + # Make sure host make.conf doesn't pollute us + if is_crosscompile || tc-is-cross-compiler ; then + CHOST=${CTARGET} strip-unsupported-flags + fi + + # Store our CFLAGS because it's changed depending on which CTARGET + # we are building when pulling glibc on a multilib profile + CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} + CFLAGS=${CFLAGS_BASE} + CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} + CXXFLAGS=${CXXFLAGS_BASE} + ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} + ASFLAGS=${ASFLAGS_BASE} + + # Allow users to explicitly avoid flag sanitization via + # USE=custom-cflags. + if ! use custom-cflags; then + # Over-zealous CFLAGS can often cause problems. What may work for one + # person may not work for another. To avoid a large influx of bugs + # relating to failed builds, we strip most CFLAGS out to ensure as few + # problems as possible. + strip-flags + # Lock glibc at -O2; we want to be conservative here. + filter-flags '-O?' + append-flags -O2 + fi + + strip-unsupported-flags + filter-flags -m32 -m64 '-mabi=*' + + # glibc aborts if rpath is set by LDFLAGS + filter-ldflags '-Wl,-rpath=*' + + # ld can't use -r & --relax at the same time, bug #788901 + # https://sourceware.org/PR27837 + filter-ldflags '-Wl,--relax' + + # #492892 + filter-flags -frecord-gcc-switches + + # #829583 + filter-lfs-flags + + 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*' + + # See end of bug #830454; we handle this via USE=cet + filter-flags '-fcf-protection=' +} + +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 + + # Glibc does not work with gold (for various reasons) #269274. + tc-ld-disable-gold + + if use doc ; then + export MAKEINFO=makeinfo + else + export MAKEINFO=/dev/null + fi + + # Reset CC and CXX to the value at start of emerge + export CC=${__ORIG_CC:-${CC:-$(tc-getCC ${CTARGET})}} + export CXX=${__ORIG_CXX:-${CXX:-$(tc-getCXX ${CTARGET})}} + + # and make sure __ORIC_CC and __ORIG_CXX is defined now. + export __ORIG_CC=${CC} + export __ORIG_CXX=${CXX} + + if tc-is-clang && ! use custom-cflags && ! is_crosscompile ; then + + # If we are running in an otherwise clang/llvm environment, we need to + # recover the proper gcc and binutils settings here, at least until glibc + # is finally building with clang. So let's override everything that is + # set in the clang profiles. + # Want to shoot yourself into the foot? Set USE=custom-cflags, that's always + # a good start into that direction. + # Also, if you're crosscompiling, let's assume you know what you are doing. + # Hopefully. + # Last, we need the settings of the *build* environment, not of the + # target environment... + + local current_binutils_path=$(env ROOT="${BROOT}" binutils-config -B) + local current_gcc_path=$(env ROOT="${BROOT}" gcc-config -B) + einfo "Overriding clang configuration, since it won't work here" + + export CC="${current_gcc_path}/gcc" + export CXX="${current_gcc_path}/g++" + export LD="${current_binutils_path}/ld.bfd" + export AR="${current_binutils_path}/ar" + export AS="${current_binutils_path}/as" + export NM="${current_binutils_path}/nm" + export STRIP="${current_binutils_path}/strip" + export RANLIB="${current_binutils_path}/ranlib" + export OBJCOPY="${current_binutils_path}/objcopy" + export STRINGS="${current_binutils_path}/strings" + export OBJDUMP="${current_binutils_path}/objdump" + export READELF="${current_binutils_path}/readelf" + export ADDR2LINE="${current_binutils_path}/addr2line" + + # do we need to also do flags munging here? yes! at least... + filter-flags '-fuse-ld=*' + filter-flags '-D_FORTIFY_SOURCE=*' + + else + + # this is the "normal" case + + export CC="$(tc-getCC ${CTARGET})" + export CXX="$(tc-getCXX ${CTARGET})" + + # 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})" + + fi + + # 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. (Why does the comment talk about CFLAGS if the code + # acts on CC?) + export __GLIBC_CC=${CC} + export __GLIBC_CXX=${CXX} + + export __abi_CFLAGS="$(get_abi_CFLAGS)" + + # 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="${__GLIBC_CC} ${__abi_CFLAGS} ${CFLAGS} ${LDFLAGS}" + + # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 + export CXX="${__GLIBC_CXX} ${__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 +} + +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 + + # ABI-specific checks follow here. Hey, we have a lot more specific conditions that + # we test for... + if ! is_crosscompile ; then + if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then + ebegin "Checking that IA32 emulation is enabled in the running kernel" + echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" + local STAT + if ${CC-${CHOST}-gcc} ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then + "${T}/check-ia32-emulation.elf32" + STAT=$? + else + # Don't fail here to allow single->multi ABI switch + # or recover from breakage like bug #646424 + ewarn "Failed to compile the ABI test. Broken host glibc?" + STAT=0 + fi + rm -f "${T}/check-ia32-emulation.elf32" + eend $STAT + [[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc." + fi + + fi + + # When we actually have to compile something... + if ! just_headers && [[ ${MERGE_TYPE} != "binary" ]] ; then + if [[ -d "${ESYSROOT}"/usr/lib/include ]] ; then + # bug #833620, bug #643302 + eerror "Found ${ESYSROOT}/usr/lib/include directory!" + eerror "This is known to break glibc's build." + eerror "Please backup its contents then remove the directory." + die "Found directory (${ESYSROOT}/usr/lib/include) which will break build (bug #833620)!" + 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 +} + +upgrade_warning() { + if [[ ${MERGE_TYPE} != buildonly && -n ${REPLACING_VERSIONS} && -z ${ROOT} ]]; then + local oldv newv=$(ver_cut 1-2 ${PV}) + for oldv in ${REPLACING_VERSIONS}; do + if ver_test ${oldv} -lt ${newv}; then + ewarn "After upgrading glibc, please restart all running processes." + ewarn "Be sure to include init (telinit u) or systemd (systemctl daemon-reexec)." + ewarn "Alternatively, reboot your system." + ewarn "(See bug #660556, bug #741116, bug #823756, etc)" + break + fi + done + fi +} + +# +# the phases +# + +# pkg_pretend + +pkg_pretend() { + upgrade_warning +} + +pkg_setup() { + # see bug 682570 + [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup +} + +# src_unpack + +src_unpack() { + setup_env + + einfo "Checking general environment sanity." + sanity_prechecks + + use multilib-bootstrap && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz + + 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 + use experimental-loong && unpack glibc-2.35-loongarch-patches-20220422.tar.xz + fi + + cd "${WORKDIR}" || die + unpack locale-gen-${LOCALE_GEN_VER}.tar.gz + use systemd && unpack glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz +} + +src_prepare() { + local patchsetname + if ! use vanilla ; then + if [[ ${PV} == 9999* ]] ; then + patchsetname="from git master" + else + patchsetname="${RELEASE_VER}-${PATCH_VER}" + fi + einfo "Applying Gentoo Glibc Patchset ${patchsetname}" + eapply "${WORKDIR}"/patches + einfo "Done." + + if use experimental-loong ; then + einfo "Applying experimental LoongArch patchset" + eapply "${WORKDIR}"/loongarch-2.35 + einfo "Done." + fi + fi + + if use clone3 ; then + append-cppflags -DGENTOO_USE_CLONE3 + else + # See e.g. bug #827386, bug #819045. + elog "Disabling the clone3 syscall for compatibility with older Electron apps." + elog "Please re-enable this flag before filing bugs!" + 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() { + + local v + for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO NM AR AS STRIP RANLIB OBJCOPY STRINGS OBJDUMP READELF; do + einfo " $(printf '%15s' ${v}:) ${!v}" + done + + echo + local myconf=() + + # Use '=strong' instead of '=all' to protect only functions + # worth protecting from stack smashes. + myconf+=( --enable-stack-protector=$(usex ssp strong no) ) + + # 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+=( + --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) + + # locale data is arch-independent + # https://bugs.gentoo.org/753740 + libc_cv_complocaledir='${exec_prefix}/lib/locale' + + # -march= option tricks build system to infer too + # high ISA level: https://sourceware.org/PR27318 + libc_cv_include_x86_isa_level=no + # Explicit override of https://sourceware.org/PR27991 + # exposes a bug in glibc's configure: + # https://sourceware.org/PR27991 + libc_cv_have_x86_lahf_sahf=no + libc_cv_have_x86_movbe=no + + ${EXTRA_ECONF} + ) + + # We rely on sys-libs/timezone-data for timezone tools normally. + myconf+=( $(use_enable vanilla timezone-tools) ) + + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) + ac_cv_lib_cap_cap_init=$(usex caps || echo no) + + # There is no configure option for this and we need to export it + # since the glibc build will re-run configure on itself + export libc_cv_rootsbindir="$(host_eprefix)/sbin" + export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)" + + # We take care of patching our binutils to use both hash styles, + # and many people like to force gnu hash style only, so disable + # this overriding check. #347761 + export libc_cv_hashstyle=no + + local builddir=$(builddir nptl) + mkdir -p "${builddir}" + cd "${builddir}" + set -- "${S}"/configure "${myconf[@]}" + echo "$@" + "$@" || die "failed to configure glibc" + + # ia64 static cross-compilers are a pita in so much that they + # can't produce static ELFs (as the libgcc.a is broken). so + # disable building of the programs for those targets if it + # doesn't work. + # XXX: We could turn this into a compiler test, but ia64 is + # the only one that matters, so this should be fine for now. + if is_crosscompile && [[ ${CTARGET} == ia64* ]] ; then + sed -i '1i+link-static = touch $@' config.make + fi + + # If we're trying to migrate between ABI sets, we need + # to lie and use a local copy of gcc. Like if the system + # is built with MULTILIB_ABIS="amd64 x86" but we want to + # add x32 to it, gcc/glibc don't yet support x32. + # + if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib-bootstrap ; then + echo 'main(){}' > "${T}"/test.c + if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then + sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die + fi + fi +} + +glibc_headers_configure() { + export ABI=default + + local builddir=$(builddir "headers") + mkdir -p "${builddir}" + cd "${builddir}" + + # if we don't have a compiler yet, we can't really test it now ... + # hopefully they don't affect header generation, so let's hope for + # the best here ... + local v vars=( + ac_cv_header_cpuid_h=yes + libc_cv_{386,390,alpha,arm,hppa,ia64,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes + libc_cv_asm_cfi_directives=yes + libc_cv_broken_visibility_attribute=no + libc_cv_c_cleanup=yes + libc_cv_compiler_powerpc64le_binary128_ok=yes + libc_cv_forced_unwind=yes + libc_cv_gcc___thread=yes + libc_cv_mlong_double_128=yes + libc_cv_mlong_double_128ibm=yes + libc_cv_ppc_machine=yes + libc_cv_ppc_rel16=yes + libc_cv_predef_fortify_source=no + libc_cv_target_power8_ok=yes + libc_cv_visibility_attribute=yes + libc_cv_z_combreloc=yes + libc_cv_z_execstack=yes + libc_cv_z_initfirst=yes + libc_cv_z_nodelete=yes + libc_cv_z_nodlopen=yes + libc_cv_z_relro=yes + libc_mips_abi=${ABI} + libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=no + ac_cv_lib_cap_cap_init=no + ) + + einfo "Forcing cached settings:" + for v in "${vars[@]}" ; do + einfo " ${v}" + export ${v} + done + + local headers_only_arch_CPPFLAGS=() + + # Blow away some random CC settings that screw things up. #550192 + if [[ -d ${S}/sysdeps/mips ]]; then + pushd "${S}"/sysdeps/mips >/dev/null + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die + + # Force the mips ABI to the default. This is OK because the set of + # installed headers in this phase is the same between the 3 ABIs. + # If this ever changes, this hack will break, but that's unlikely + # as glibc discourages that behavior. + # https://crbug.com/647033 + sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die + + popd >/dev/null + fi + + case ${CTARGET} in + riscv*) + # RISC-V interrogates the compiler to determine which target to + # build. If building the headers then we don't strictly need a + # RISC-V compiler, so the built-in definitions that are provided + # along with all RISC-V compiler might not exist. This causes + # glibc's RISC-V preconfigure script to blow up. Since we're just + # building the headers any value will actually work here, so just + # pick the standard one (rv64g/lp64d) to make the build scripts + # happy for now -- the headers are all the same anyway so it + # doesn't matter. + headers_only_arch_CPPFLAGS+=( + -D__riscv_xlen=64 + -D__riscv_flen=64 + -D__riscv_float_abi_double=1 + -D__riscv_atomic=1 + ) ;; + esac + + local myconf=() + myconf+=( + --disable-sanity-checks + --enable-hacker-mode + --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 + # riscv + ilp32d /lib/ld-linux-riscv32-ilp32d.so.1 + ilp32 /lib/ld-linux-riscv32-ilp32.so.1 + lp64d /lib/ld-linux-riscv64-lp64d.so.1 + lp64 /lib/ld-linux-riscv64-lp64.so.1 + # s390 + s390 /lib/ld.so.1 + s390x /lib/ld64.so.1 + # sparc + sparc32 /lib/ld-linux.so.2 + sparc64 /lib64/ld-linux.so.2 + ) + case $(tc-endian) in + little) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64.so.1 + # ELFv2 (glibc does not support ELFv1 on LE) + ppc64 /lib64/ld64.so.2 + ) + ;; + big) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64_be.so.1 + # ELFv1 (glibc does not support ELFv2 on BE) + ppc64 /lib64/ld64.so.1 + ) + ;; + esac + if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then + dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib + fi + for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do + ldso_abi=${ldso_abi_list[i]} + has ${ldso_abi} $(get_install_abis) || continue + + ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" + if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then + dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} + fi + done + + # In the LSB 5.0 definition, someone had the excellent idea to "standardize" + # the runtime loader name, see also https://xkcd.com/927/ + # Normally, in Gentoo one should never come across executables that require this. + # However, binary commercial packages are known to adhere to weird practices. + # https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-AMD64/LSB-Core-AMD64.html#BASELIB + local lsb_ldso_name native_ldso_name lsb_ldso_abi + local lsb_ldso_abi_list=( + # x86 + amd64 ld-linux-x86-64.so.2 ld-lsb-x86-64.so.3 + ) + for (( i = 0; i < ${#lsb_ldso_abi_list[@]}; i += 3 )) ; do + lsb_ldso_abi=${lsb_ldso_abi_list[i]} + native_ldso_name=${lsb_ldso_abi_list[i+1]} + lsb_ldso_name=${lsb_ldso_abi_list[i+2]} + has ${lsb_ldso_abi} $(get_install_abis) || continue + + if [[ ! -L ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} && ! -e ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} ]] ; then + dosym ${native_ldso_name} "$(alt_prefix)/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name}" + fi + done + + # With devpts under Linux mounted properly, we do not need the pt_chown + # binary to be setuid. This is because the default owners/perms will be + # exactly what we want. + if ! use suid ; then + find "${ED}" -name pt_chown -exec chmod -s {} + + fi + + ################################################################# + # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # + # Make sure we install some symlink hacks so that when we build + # a 2nd stage cross-compiler, gcc finds the target system + # headers correctly. See gcc/doc/gccinstall.info + if is_crosscompile ; then + # We need to make sure that /lib and /usr/lib always exists. + # gcc likes to use relative paths to get to its multilibs like + # /usr/lib/../lib64/. So while we don't install any files into + # /usr/lib/, we do need it to exist. + keepdir $(alt_prefix)/lib + keepdir $(alt_prefix)/usr/lib + + dosym usr/include $(alt_prefix)/sys-include + return 0 + fi + + # Files for Debian-style locale updating + dodir /usr/share/i18n + sed \ + -e "/^#/d" \ + -e "/SUPPORTED-LOCALES=/d" \ + -e "s: \\\\::g" -e "s:/: :g" \ + "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ + || die "generating /usr/share/i18n/SUPPORTED failed" + cd "${WORKDIR}"/extra/locale + dosbin locale-gen + doman *.[0-8] + insinto /etc + doins locale.gen + + keepdir /usr/lib/locale + + cd "${S}" + + # Install misc network config files + insinto /etc + doins posix/gai.conf + + if use systemd ; then + doins "${WORKDIR}/glibc-systemd-${GLIBC_SYSTEMD_VER}/gentoo-config/nsswitch.conf" + else + doins nss/nsswitch.conf + fi + + # Gentoo-specific + newins "${FILESDIR}"/host.conf-1 host.conf + + if use nscd ; then + doins nscd/nscd.conf + + newinitd "$(prefixify_ro "${FILESDIR}"/nscd-1)" nscd + + local nscd_args=( + -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" + ) + + sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd + + use systemd && systemd_dounit nscd/nscd.service + newtmpfiles nscd/nscd.tmpfiles nscd.conf + fi + + echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc + doenvd "${T}"/00glibc + + for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do + [[ -s ${d} ]] && dodoc ${d} + done + dodoc -r ChangeLog.old + + # Prevent overwriting of the /etc/localtime symlink. We'll handle the + # creation of the "factory" symlink in pkg_postinst(). + rm -f "${ED}"/etc/localtime + + # Generate all locales if this is a native build as locale generation + if use compile-locales && ! is_crosscompile ; then + run_locale_gen --inplace-glibc "${ED}/" + sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die + fi +} + +glibc_headers_install() { + local builddir=$(builddir "headers") + cd "${builddir}" + emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers + + insinto $(alt_headers)/gnu + doins "${S}"/include/gnu/stubs.h + + # Make sure we install the sys-include symlink so that when + # we build a 2nd stage cross-compiler, gcc finds the target + # system headers correctly. See gcc/doc/gccinstall.info + dosym usr/include $(alt_prefix)/sys-include +} + +src_install() { + if just_headers ; then + export ABI=default + glibc_headers_install + return + fi + + foreach_abi glibc_do_src_install + + if ! use static-libs ; then + einfo "Not installing static glibc libraries" + find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete + fi +} + +# Simple test to make sure our new glibc isn't completely broken. +# Make sure we don't test with statically built binaries since +# they will fail. Also, skip if this glibc is a cross compiler. +# +# If coreutils is built with USE=multicall, some of these files +# will just be wrapper scripts, not actual ELFs we can test. +glibc_sanity_check() { + cd / #228809 + + # We enter ${ED} so to avoid trouble if the path contains + # special characters; for instance if the path contains the + # colon character (:), then the linker will try to split it + # and look for the libraries in an unexpected place. This can + # lead to unsafe code execution if the generated prefix is + # within a world-writable directory. + # (e.g. /var/tmp/portage:${HOSTNAME}) + pushd "${ED}"/$(get_libdir) >/dev/null + + # first let's find the actual dynamic linker here + # symlinks may point to the wrong abi + local newldso=$(find . -maxdepth 1 -name 'ld*so.?' -type f -print -quit) + + einfo Last-minute run tests with ${newldso} in /$(get_libdir) ... + + local x striptest + for x in cal date env free ls true uname uptime ; do + x=$(type -p ${x}) + [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue + striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue + case ${striptest} in + *"statically linked"*) continue;; + *"ASCII text"*) continue;; + esac + # We need to clear the locale settings as the upgrade might want + # incompatible locale data. This test is not for verifying that. + LC_ALL=C \ + ${newldso} --library-path . ${x} > /dev/null \ + || die "simple run test (${x}) failed" + done + + popd >/dev/null +} + +pkg_preinst() { + # nothing to do if just installing headers + just_headers && return + + # prepare /etc/ld.so.conf.d/ for files + mkdir -p "${EROOT}"/etc/ld.so.conf.d + + # Default /etc/hosts.conf:multi to on for systems with small dbs. + if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then + sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf + einfo "Defaulting /etc/host.conf:multi to on" + fi + + [[ -n ${ROOT} ]] && return 0 + [[ -d ${ED}/$(get_libdir) ]] || return 0 + [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check + + if [[ -L ${EROOT}/usr/lib/locale ]]; then + # Help portage migrate this to a directory + # https://bugs.gentoo.org/753740 + rm "${EROOT}"/usr/lib/locale || die + fi + + # Keep around libcrypt so that Perl doesn't break when merging libxcrypt + # (libxcrypt is the new provider for now of libcrypt.so.{1,2}). + # bug #802207 + if ! use crypt && has_version "${CATEGORY}/${PN}[crypt]" && ! has preserve-libs ${FEATURES}; then + PRESERVED_OLD_LIBCRYPT=1 + cp -p "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" "${T}/libcrypt$(get_libname 1)" || die + else + PRESERVED_OLD_LIBCRYPT=0 + fi +} + +pkg_postinst() { + # nothing to do if just installing headers + just_headers && return + + if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then + # Generate fastloading iconv module configuration file. + "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}/" + fi + + if ! is_crosscompile && [[ -z ${ROOT} ]] ; then + use compile-locales || run_locale_gen "${EROOT}/" + fi + + upgrade_warning + + # Check for sanity of /etc/nsswitch.conf, take 2 + if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then + local entry + for entry in passwd group shadow; do + if egrep -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then + ewarn "" + ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" + ewarn "removed from glibc and is now provided by the package" + ewarn " sys-auth/libnss-nis" + ewarn "Install it now to keep your NIS setup working." + ewarn "" + fi + done + fi + + if [[ ${PRESERVED_OLD_LIBCRYPT} -eq 1 ]] ; then + cp -p "${T}/libcrypt$(get_libname 1)" "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" || die + preserve_old_lib_notify /$(get_libdir)/libcrypt$(get_libname 1) + + elog "Please ignore a possible later error message about a file collision involving" + elog "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1). We need to preserve this file for the moment to keep" + elog "the upgrade working, but it also needs to be overwritten when" + elog "sys-libs/libxcrypt is installed. See bug 802210 for more details." + fi +} diff --git a/sys-libs/glibc/glibc-2.35-r4.ebuild b/sys-libs/glibc/glibc-2.35-r4.ebuild new file mode 100644 index 000000000000..c67cc3205f9f --- /dev/null +++ b/sys-libs/glibc/glibc-2.35-r4.ebuild @@ -0,0 +1,1596 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +# Bumping notes: https://wiki.gentoo.org/wiki/Project:Toolchain/sys-libs/glibc +# Please read & adapt the page as necessary if obsolete. + +PYTHON_COMPAT=( python3_{8,9,10} ) +TMPFILES_OPTIONAL=1 + +inherit python-any-r1 prefix preserve-libs toolchain-funcs flag-o-matic gnuconfig \ + multilib systemd multiprocessing tmpfiles + +DESCRIPTION="GNU libc C library" +HOMEPAGE="https://www.gnu.org/software/libc/" +LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" +SLOT="2.2" + +EMULTILIB_PKG="true" + +# Gentoo patchset (ignored for live ebuilds) +PATCH_VER=6 +PATCH_DEV=dilfridge + +if [[ ${PV} == 9999* ]]; then + inherit git-r3 +else + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~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+=" experimental-loong? ( https://dev.gentoo.org/~xen0n/distfiles/glibc-2.35-loongarch-patches-20220422.tar.xz )" +fi + +RELEASE_VER=${PV} + +GCC_BOOTSTRAP_VER=20201208 + +LOCALE_GEN_VER=2.22 + +GLIBC_SYSTEMD_VER=20210729 + +SRC_URI+=" https://gitweb.gentoo.org/proj/locale-gen.git/snapshot/locale-gen-${LOCALE_GEN_VER}.tar.gz" +SRC_URI+=" multilib-bootstrap? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" +SRC_URI+=" systemd? ( https://gitweb.gentoo.org/proj/toolchain/glibc-systemd.git/snapshot/glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz )" + +IUSE="audit caps cet +clone3 compile-locales +crypt custom-cflags doc experimental-loong gd headers-only +multiarch multilib multilib-bootstrap nscd profile selinux +ssp +static-libs suid systemd systemtap test vanilla" + +# Minimum kernel version that glibc requires +MIN_KERN_VER="3.2.0" +# Minimum pax-utils version needed (which contains any new syscall changes for +# its seccomp filter!). Please double check this! +MIN_PAX_UTILS_VER="1.3.3" + +# 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-${MIN_PAX_UTILS_VER} + sys-devel/bison + doc? ( sys-apps/texinfo ) + !compile-locales? ( + app-arch/gzip + sys-apps/grep + virtual/awk + ) +" +COMMON_DEPEND=" + gd? ( media-libs/gd:2= ) + nscd? ( selinux? ( + audit? ( sys-process/audit ) + caps? ( sys-libs/libcap ) + ) ) + suid? ( caps? ( sys-libs/libcap ) ) + selinux? ( sys-libs/libselinux ) + systemtap? ( dev-util/systemtap ) +" +DEPEND="${COMMON_DEPEND} + compile-locales? ( + app-arch/gzip + sys-apps/grep + virtual/awk + ) + test? ( >=net-dns/libidn2-2.3.0 ) +" +RDEPEND="${COMMON_DEPEND} + app-arch/gzip + sys-apps/grep + virtual/awk + sys-apps/gentoo-functions + !' | $(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 + + # We assume CC is already set up. + 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 + ;; + mips) + # The mips abi cannot support the GNU style hashes. #233233 + filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both + ;; + ppc|ppc64) + # Many arch-specific implementations do not work on ppc with + # cache-block not equal to 128 bytes. This breaks memset: + # https://sourceware.org/PR26522 + # https://bugs.gentoo.org/737996 + # Use default -mcpu=. For ppc it means non-multiarch setup. + filter-flags '-mcpu=*' + ;; + sparc) + # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. + filter-flags "-fcall-used-g7" + append-flags "-fcall-used-g6" + + local cpu + case ${CTARGET} in + sparc64-*) + cpu="sparc64" + case $(get-flag mcpu) in + v9) + # We need to force at least v9a because the base build doesn't + # work with just v9. + # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 + append-flags "-Wa,-xarch=v9a" + ;; + esac + ;; + sparc-*) + case $(get-flag mcpu) in + v8|supersparc|hypersparc|leon|leon3) + cpu="sparcv8" + ;; + *) + cpu="sparcv9" + ;; + esac + ;; + esac + [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" + ;; + esac +} + +setup_flags() { + # Make sure host make.conf doesn't pollute us + if is_crosscompile || tc-is-cross-compiler ; then + CHOST=${CTARGET} strip-unsupported-flags + fi + + # Store our CFLAGS because it's changed depending on which CTARGET + # we are building when pulling glibc on a multilib profile + CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} + CFLAGS=${CFLAGS_BASE} + CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} + CXXFLAGS=${CXXFLAGS_BASE} + ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} + ASFLAGS=${ASFLAGS_BASE} + + # Allow users to explicitly avoid flag sanitization via + # USE=custom-cflags. + if ! use custom-cflags; then + # Over-zealous CFLAGS can often cause problems. What may work for one + # person may not work for another. To avoid a large influx of bugs + # relating to failed builds, we strip most CFLAGS out to ensure as few + # problems as possible. + strip-flags + # Lock glibc at -O2; we want to be conservative here. + filter-flags '-O?' + append-flags -O2 + fi + + strip-unsupported-flags + filter-flags -m32 -m64 '-mabi=*' + + # glibc aborts if rpath is set by LDFLAGS + filter-ldflags '-Wl,-rpath=*' + + # ld can't use -r & --relax at the same time, bug #788901 + # https://sourceware.org/PR27837 + filter-ldflags '-Wl,--relax' + + # #492892 + filter-flags -frecord-gcc-switches + + # #829583 + filter-lfs-flags + + 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*' + + # See end of bug #830454; we handle this via USE=cet + filter-flags '-fcf-protection=' +} + +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 + + # Glibc does not work with gold (for various reasons) #269274. + tc-ld-disable-gold + + if use doc ; then + export MAKEINFO=makeinfo + else + export MAKEINFO=/dev/null + fi + + # Reset CC and CXX to the value at start of emerge + export CC=${__ORIG_CC:-${CC:-$(tc-getCC ${CTARGET})}} + export CXX=${__ORIG_CXX:-${CXX:-$(tc-getCXX ${CTARGET})}} + + # and make sure __ORIC_CC and __ORIG_CXX is defined now. + export __ORIG_CC=${CC} + export __ORIG_CXX=${CXX} + + if tc-is-clang && ! use custom-cflags && ! is_crosscompile ; then + + # If we are running in an otherwise clang/llvm environment, we need to + # recover the proper gcc and binutils settings here, at least until glibc + # is finally building with clang. So let's override everything that is + # set in the clang profiles. + # Want to shoot yourself into the foot? Set USE=custom-cflags, that's always + # a good start into that direction. + # Also, if you're crosscompiling, let's assume you know what you are doing. + # Hopefully. + # Last, we need the settings of the *build* environment, not of the + # target environment... + + local current_binutils_path=$(env ROOT="${BROOT}" binutils-config -B) + local current_gcc_path=$(env ROOT="${BROOT}" gcc-config -B) + einfo "Overriding clang configuration, since it won't work here" + + export CC="${current_gcc_path}/gcc" + export CXX="${current_gcc_path}/g++" + export LD="${current_binutils_path}/ld.bfd" + export AR="${current_binutils_path}/ar" + export AS="${current_binutils_path}/as" + export NM="${current_binutils_path}/nm" + export STRIP="${current_binutils_path}/strip" + export RANLIB="${current_binutils_path}/ranlib" + export OBJCOPY="${current_binutils_path}/objcopy" + export STRINGS="${current_binutils_path}/strings" + export OBJDUMP="${current_binutils_path}/objdump" + export READELF="${current_binutils_path}/readelf" + export ADDR2LINE="${current_binutils_path}/addr2line" + + # do we need to also do flags munging here? yes! at least... + filter-flags '-fuse-ld=*' + filter-flags '-D_FORTIFY_SOURCE=*' + + else + + # this is the "normal" case + + export CC="$(tc-getCC ${CTARGET})" + export CXX="$(tc-getCXX ${CTARGET})" + + # 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})" + + fi + + # 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. (Why does the comment talk about CFLAGS if the code + # acts on CC?) + export __GLIBC_CC=${CC} + export __GLIBC_CXX=${CXX} + + export __abi_CFLAGS="$(get_abi_CFLAGS)" + + # 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="${__GLIBC_CC} ${__abi_CFLAGS} ${CFLAGS} ${LDFLAGS}" + + # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 + export CXX="${__GLIBC_CXX} ${__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 +} + +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 + + # ABI-specific checks follow here. Hey, we have a lot more specific conditions that + # we test for... + if ! is_crosscompile ; then + if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then + ebegin "Checking that IA32 emulation is enabled in the running kernel" + echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" + local STAT + if ${CC-${CHOST}-gcc} ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then + "${T}/check-ia32-emulation.elf32" + STAT=$? + else + # Don't fail here to allow single->multi ABI switch + # or recover from breakage like bug #646424 + ewarn "Failed to compile the ABI test. Broken host glibc?" + STAT=0 + fi + rm -f "${T}/check-ia32-emulation.elf32" + eend $STAT + [[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc." + fi + + fi + + # When we actually have to compile something... + if ! just_headers && [[ ${MERGE_TYPE} != "binary" ]] ; then + if [[ -d "${ESYSROOT}"/usr/lib/include ]] ; then + # bug #833620, bug #643302 + eerror "Found ${ESYSROOT}/usr/lib/include directory!" + eerror "This is known to break glibc's build." + eerror "Please backup its contents then remove the directory." + die "Found directory (${ESYSROOT}/usr/lib/include) which will break build (bug #833620)!" + 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 +} + +upgrade_warning() { + if [[ ${MERGE_TYPE} != buildonly && -n ${REPLACING_VERSIONS} && -z ${ROOT} ]]; then + local oldv newv=$(ver_cut 1-2 ${PV}) + for oldv in ${REPLACING_VERSIONS}; do + if ver_test ${oldv} -lt ${newv}; then + ewarn "After upgrading glibc, please restart all running processes." + ewarn "Be sure to include init (telinit u) or systemd (systemctl daemon-reexec)." + ewarn "Alternatively, reboot your system." + ewarn "(See bug #660556, bug #741116, bug #823756, etc)" + break + fi + done + fi +} + +# +# the phases +# + +# pkg_pretend + +pkg_pretend() { + upgrade_warning +} + +pkg_setup() { + # see bug 682570 + [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup +} + +# src_unpack + +src_unpack() { + setup_env + + einfo "Checking general environment sanity." + sanity_prechecks + + use multilib-bootstrap && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz + + 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 + use experimental-loong && unpack glibc-2.35-loongarch-patches-20220422.tar.xz + fi + + cd "${WORKDIR}" || die + unpack locale-gen-${LOCALE_GEN_VER}.tar.gz + use systemd && unpack glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz +} + +src_prepare() { + local patchsetname + if ! use vanilla ; then + if [[ ${PV} == 9999* ]] ; then + patchsetname="from git master" + else + patchsetname="${RELEASE_VER}-${PATCH_VER}" + fi + einfo "Applying Gentoo Glibc Patchset ${patchsetname}" + eapply "${WORKDIR}"/patches + einfo "Done." + + if use experimental-loong ; then + einfo "Applying experimental LoongArch patchset" + eapply "${WORKDIR}"/loongarch-2.35 + einfo "Done." + fi + fi + + if use clone3 ; then + append-cppflags -DGENTOO_USE_CLONE3 + else + # See e.g. bug #827386, bug #819045. + elog "Disabling the clone3 syscall for compatibility with older Electron apps." + elog "Please re-enable this flag before filing bugs!" + 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() { + + local v + for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO NM AR AS STRIP RANLIB OBJCOPY STRINGS OBJDUMP READELF; do + einfo " $(printf '%15s' ${v}:) ${!v}" + done + + echo + local myconf=() + + # Use '=strong' instead of '=all' to protect only functions + # worth protecting from stack smashes. + myconf+=( --enable-stack-protector=$(usex ssp strong no) ) + + # 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+=( + --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) + + # locale data is arch-independent + # https://bugs.gentoo.org/753740 + libc_cv_complocaledir='${exec_prefix}/lib/locale' + + # -march= option tricks build system to infer too + # high ISA level: https://sourceware.org/PR27318 + libc_cv_include_x86_isa_level=no + # Explicit override of https://sourceware.org/PR27991 + # exposes a bug in glibc's configure: + # https://sourceware.org/PR27991 + libc_cv_have_x86_lahf_sahf=no + libc_cv_have_x86_movbe=no + + ${EXTRA_ECONF} + ) + + # We rely on sys-libs/timezone-data for timezone tools normally. + myconf+=( $(use_enable vanilla timezone-tools) ) + + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) + ac_cv_lib_cap_cap_init=$(usex caps || echo no) + + # There is no configure option for this and we need to export it + # since the glibc build will re-run configure on itself + export libc_cv_rootsbindir="$(host_eprefix)/sbin" + export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)" + + 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 + --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 + # riscv + ilp32d /lib/ld-linux-riscv32-ilp32d.so.1 + ilp32 /lib/ld-linux-riscv32-ilp32.so.1 + lp64d /lib/ld-linux-riscv64-lp64d.so.1 + lp64 /lib/ld-linux-riscv64-lp64.so.1 + # s390 + s390 /lib/ld.so.1 + s390x /lib/ld64.so.1 + # sparc + sparc32 /lib/ld-linux.so.2 + sparc64 /lib64/ld-linux.so.2 + ) + case $(tc-endian) in + little) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64.so.1 + # ELFv2 (glibc does not support ELFv1 on LE) + ppc64 /lib64/ld64.so.2 + ) + ;; + big) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64_be.so.1 + # ELFv1 (glibc does not support ELFv2 on BE) + ppc64 /lib64/ld64.so.1 + ) + ;; + esac + if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then + dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib + fi + for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do + ldso_abi=${ldso_abi_list[i]} + has ${ldso_abi} $(get_install_abis) || continue + + ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" + if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then + dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} + fi + done + + # In the LSB 5.0 definition, someone had the excellent idea to "standardize" + # the runtime loader name, see also https://xkcd.com/927/ + # Normally, in Gentoo one should never come across executables that require this. + # However, binary commercial packages are known to adhere to weird practices. + # https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-AMD64/LSB-Core-AMD64.html#BASELIB + local lsb_ldso_name native_ldso_name lsb_ldso_abi + local lsb_ldso_abi_list=( + # x86 + amd64 ld-linux-x86-64.so.2 ld-lsb-x86-64.so.3 + ) + for (( i = 0; i < ${#lsb_ldso_abi_list[@]}; i += 3 )) ; do + lsb_ldso_abi=${lsb_ldso_abi_list[i]} + native_ldso_name=${lsb_ldso_abi_list[i+1]} + lsb_ldso_name=${lsb_ldso_abi_list[i+2]} + has ${lsb_ldso_abi} $(get_install_abis) || continue + + if [[ ! -L ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} && ! -e ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} ]] ; then + dosym ${native_ldso_name} "$(alt_prefix)/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name}" + fi + done + + # With devpts under Linux mounted properly, we do not need the pt_chown + # binary to be setuid. This is because the default owners/perms will be + # exactly what we want. + if ! use suid ; then + find "${ED}" -name pt_chown -exec chmod -s {} + + fi + + ################################################################# + # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # + # Make sure we install some symlink hacks so that when we build + # a 2nd stage cross-compiler, gcc finds the target system + # headers correctly. See gcc/doc/gccinstall.info + if is_crosscompile ; then + # We need to make sure that /lib and /usr/lib always exists. + # gcc likes to use relative paths to get to its multilibs like + # /usr/lib/../lib64/. So while we don't install any files into + # /usr/lib/, we do need it to exist. + keepdir $(alt_prefix)/lib + keepdir $(alt_prefix)/usr/lib + + dosym usr/include $(alt_prefix)/sys-include + return 0 + fi + + # Files for Debian-style locale updating + dodir /usr/share/i18n + sed \ + -e "/^#/d" \ + -e "/SUPPORTED-LOCALES=/d" \ + -e "s: \\\\::g" -e "s:/: :g" \ + "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ + || die "generating /usr/share/i18n/SUPPORTED failed" + cd "${WORKDIR}"/extra/locale + dosbin locale-gen + doman *.[0-8] + insinto /etc + doins locale.gen + + keepdir /usr/lib/locale + + cd "${S}" + + # Install misc network config files + insinto /etc + doins posix/gai.conf + + if use systemd ; then + doins "${WORKDIR}/glibc-systemd-${GLIBC_SYSTEMD_VER}/gentoo-config/nsswitch.conf" + else + doins nss/nsswitch.conf + fi + + # Gentoo-specific + newins "${FILESDIR}"/host.conf-1 host.conf + + if use nscd ; then + doins nscd/nscd.conf + + newinitd "$(prefixify_ro "${FILESDIR}"/nscd-1)" nscd + + local nscd_args=( + -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" + ) + + sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd + + use systemd && systemd_dounit nscd/nscd.service + newtmpfiles nscd/nscd.tmpfiles nscd.conf + fi + + echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc + doenvd "${T}"/00glibc + + for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do + [[ -s ${d} ]] && dodoc ${d} + done + dodoc -r ChangeLog.old + + # Prevent overwriting of the /etc/localtime symlink. We'll handle the + # creation of the "factory" symlink in pkg_postinst(). + rm -f "${ED}"/etc/localtime + + # Generate all locales if this is a native build as locale generation + if use compile-locales && ! is_crosscompile ; then + run_locale_gen --inplace-glibc "${ED}/" + sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die + fi +} + +glibc_headers_install() { + local builddir=$(builddir "headers") + cd "${builddir}" + emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers + + insinto $(alt_headers)/gnu + doins "${S}"/include/gnu/stubs.h + + # Make sure we install the sys-include symlink so that when + # we build a 2nd stage cross-compiler, gcc finds the target + # system headers correctly. See gcc/doc/gccinstall.info + dosym usr/include $(alt_prefix)/sys-include +} + +src_install() { + if just_headers ; then + export ABI=default + glibc_headers_install + return + fi + + foreach_abi glibc_do_src_install + + if ! use static-libs ; then + einfo "Not installing static glibc libraries" + find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete + fi +} + +# Simple test to make sure our new glibc isn't completely broken. +# Make sure we don't test with statically built binaries since +# they will fail. Also, skip if this glibc is a cross compiler. +# +# If coreutils is built with USE=multicall, some of these files +# will just be wrapper scripts, not actual ELFs we can test. +glibc_sanity_check() { + cd / #228809 + + # We enter ${ED} so to avoid trouble if the path contains + # special characters; for instance if the path contains the + # colon character (:), then the linker will try to split it + # and look for the libraries in an unexpected place. This can + # lead to unsafe code execution if the generated prefix is + # within a world-writable directory. + # (e.g. /var/tmp/portage:${HOSTNAME}) + pushd "${ED}"/$(get_libdir) >/dev/null + + # first let's find the actual dynamic linker here + # symlinks may point to the wrong abi + local newldso=$(find . -maxdepth 1 -name 'ld*so.?' -type f -print -quit) + + einfo Last-minute run tests with ${newldso} in /$(get_libdir) ... + + local x striptest + for x in cal date env free ls true uname uptime ; do + x=$(type -p ${x}) + [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue + striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue + case ${striptest} in + *"statically linked"*) continue;; + *"ASCII text"*) continue;; + esac + # We need to clear the locale settings as the upgrade might want + # incompatible locale data. This test is not for verifying that. + LC_ALL=C \ + ${newldso} --library-path . ${x} > /dev/null \ + || die "simple run test (${x}) failed" + done + + popd >/dev/null +} + +pkg_preinst() { + # nothing to do if just installing headers + just_headers && return + + # prepare /etc/ld.so.conf.d/ for files + mkdir -p "${EROOT}"/etc/ld.so.conf.d + + # Default /etc/hosts.conf:multi to on for systems with small dbs. + if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then + sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf + einfo "Defaulting /etc/host.conf:multi to on" + fi + + [[ -n ${ROOT} ]] && return 0 + [[ -d ${ED}/$(get_libdir) ]] || return 0 + [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check + + if [[ -L ${EROOT}/usr/lib/locale ]]; then + # Help portage migrate this to a directory + # https://bugs.gentoo.org/753740 + rm "${EROOT}"/usr/lib/locale || die + fi + + # Keep around libcrypt so that Perl doesn't break when merging libxcrypt + # (libxcrypt is the new provider for now of libcrypt.so.{1,2}). + # bug #802207 + if ! use crypt && has_version "${CATEGORY}/${PN}[crypt]" && ! has preserve-libs ${FEATURES}; then + PRESERVED_OLD_LIBCRYPT=1 + cp -p "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" "${T}/libcrypt$(get_libname 1)" || die + else + PRESERVED_OLD_LIBCRYPT=0 + fi +} + +pkg_postinst() { + # nothing to do if just installing headers + just_headers && return + + if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then + # Generate fastloading iconv module configuration file. + "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}/" + fi + + if ! is_crosscompile && [[ -z ${ROOT} ]] ; then + use compile-locales || run_locale_gen "${EROOT}/" + fi + + upgrade_warning + + # Check for sanity of /etc/nsswitch.conf, take 2 + if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then + local entry + for entry in passwd group shadow; do + if egrep -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then + ewarn "" + ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" + ewarn "removed from glibc and is now provided by the package" + ewarn " sys-auth/libnss-nis" + ewarn "Install it now to keep your NIS setup working." + ewarn "" + fi + done + fi + + if [[ ${PRESERVED_OLD_LIBCRYPT} -eq 1 ]] ; then + cp -p "${T}/libcrypt$(get_libname 1)" "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" || die + preserve_old_lib_notify /$(get_libdir)/libcrypt$(get_libname 1) + + elog "Please ignore a possible later error message about a file collision involving" + elog "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1). We need to preserve this file for the moment to keep" + elog "the upgrade working, but it also needs to be overwritten when" + elog "sys-libs/libxcrypt is installed. See bug 802210 for more details." + fi +} diff --git a/sys-libs/glibc/glibc-9999.ebuild b/sys-libs/glibc/glibc-9999.ebuild index 94842d8172b7..0ccad6a681c1 100644 --- a/sys-libs/glibc/glibc-9999.ebuild +++ b/sys-libs/glibc/glibc-9999.ebuild @@ -994,11 +994,6 @@ glibc_do_configure() { 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}" diff --git a/sys-libs/glibc/metadata.xml b/sys-libs/glibc/metadata.xml index 613e58eff7ee..e00a008ac5c3 100644 --- a/sys-libs/glibc/metadata.xml +++ b/sys-libs/glibc/metadata.xml @@ -11,6 +11,7 @@ build *all* locales in src_install; this is generally meant for stage building only as it ignores /etc/locale.gen file and can be pretty slow build and install libcrypt and crypt.h When USE=hardened, allow fortify/stack violations to dump core (SIGABRT) and not kill self (SIGKILL) + Add experimental LoongArch patchset build memusage and memusagestat tools enable optimizations for multiple CPU architectures (detected at runtime) Provide prebuilt libgcc.a and crt files if missing. Only needed for ABI switch. diff --git a/sys-libs/gpm/Manifest b/sys-libs/gpm/Manifest index 30384fbe6eff..3a9781c82195 100644 --- a/sys-libs/gpm/Manifest +++ b/sys-libs/gpm/Manifest @@ -10,5 +10,5 @@ AUX gpm.service 218 BLAKE2B 728726976390bb394d479e424d5c1fafb9bc17d00e23a9021899 DIST gpm-1.20.7-docs.patch.xz 41668 BLAKE2B cab4649d0eda83c37474b68ac141fab84cbfaac4e18f0f42ad7c0a90d14bc39697b17c450e8a8dc8b1c960f6d9e7ff344ec15791df240f61a27ccfcd7d0a9171 SHA512 6cdcad70d0a77a56cb507330ff8409155de11255b5e61fb92ee439c1e117932c346df475f4187abb0e348ee4c28fa235a9693883b1c36913e91404662df272f4 DIST gpm-1.20.7.tar.lzma 789691 BLAKE2B 5dbceedaa330d5f1ead8b2267fb5844cfd284627e085edd784a72365830a700f9a6a97f96afb4aa00a44ddbae735ef23be7eafc97a65f6250d72e15b359486c7 SHA512 a502741e2f457b47e41c6d155b1f7ef7c95384fd394503f82ddacf80cde9cdc286c906c77be12b6af8565ef1c3ab24d226379c1dcebcfcd15d64bcf3e94b63b9 EBUILD gpm-1.20.7-r3.ebuild 2384 BLAKE2B b54374cfe57825cac1cd3dbea8994b9087333316bcd858d6d0e94af55cdb7d840adb7884824a87b10b1e7714f43cdb61a41bc61af6136265f9de6cb7ab9c6083 SHA512 ff917fae60b9398a205ca3cefb477f4f872867192ca540abc69cf21d59b25af2b51b01d0255d73838a7ceb6630f885e2a6140a1d1ea72357fe82af248c1deb2e -EBUILD gpm-1.20.7-r4.ebuild 2536 BLAKE2B 45a61f5a57b5775564b7b231327566ccf085c92fde2ed370a862283d8eb434f33738fbd6a4f9e47aebd98e923901b773957320296a9d8bb9da2f381a213bac76 SHA512 c792d00cf7a6aedbcef3c8c0db1430e032a2ecb17675e42890a68b2d3733d0acc6b07d3ba94a1cdcf505ddbadba5d0cfb20c6e822935acc819267959e2425a42 +EBUILD gpm-1.20.7-r4.ebuild 2528 BLAKE2B 677775a267c7844a38959843ee73d6a8a19a8c0086c791f30b1f3ec92400ae1dde6c1808d311f07141e04568a4fabfa43c145b34e61b574b7904dcc343a37f6f SHA512 1372cbcfdf6cd2ba29eba5fa61661f016341dc71caa25a97463c40362052687647a8e13c4c1856571973c5fa13210153ca1667cf6e033e6297f68c33fdabfadc MISC metadata.xml 254 BLAKE2B f3a9f843cf94243d1129711770df727fcdc8808bca829ef784819cab6f5410dfa463cfed85182f8228c7de796a674dd602653ad3ef817a62c0c3e7198b23befe SHA512 b9fcd3084a7e197f6138e1ce8b0eff99c4c203c37a7d5c40de207040ba1501ef0e5b2f4e00216a567037bcd6d3394fdec6ff587484c9ba2fca9d04f431733b7c diff --git a/sys-libs/gpm/gpm-1.20.7-r4.ebuild b/sys-libs/gpm/gpm-1.20.7-r4.ebuild index d554df614508..c658f09ef995 100644 --- a/sys-libs/gpm/gpm-1.20.7-r4.ebuild +++ b/sys-libs/gpm/gpm-1.20.7-r4.ebuild @@ -15,7 +15,7 @@ SRC_URI=" LICENSE="GPL-2" SLOT="0" -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" IUSE="selinux" RDEPEND=" diff --git a/sys-libs/kpmcore/Manifest b/sys-libs/kpmcore/Manifest index 9e3243a6598a..76416d34e109 100644 --- a/sys-libs/kpmcore/Manifest +++ b/sys-libs/kpmcore/Manifest @@ -1,7 +1,5 @@ -AUX kpmcore-21.08.3-dont-destroy-zfs-pool.patch 1539 BLAKE2B 926b93a359383686e341a52ac5a74b20b48e9c8e66ff0b61ebaeaf39137ea1f96600951c41b503c903d778767547717b271d7052f688e46964873e8ba3e2c81e SHA512 3da2cadc6ab753edaf502dbca775cd96700096b2b28d9ad63039872e6728d111b855b77d77b9b2481ff439945f094f35e071425584e752c92ddc53ed5b5ae96e -AUX kpmcore-21.08.3-fix-seek-error-when-shred-partition.patch 1017 BLAKE2B 88775e15a0d7ab025645f3423675cc6a141ce343eb91c8f352cc5e32dbb4e02c11763c777fb7eccea653eeec49adaefe407261d3415745d4c561a00999ffbcb6 SHA512 2321b77cb3f80de4ff94dc886f06317bb6f3a09080d71b9e3ffbc87c6091332e6dc4e01b7c33da4724683c860f6df7b547a3c10be38f48310cbd707707e9688d -DIST kpmcore-21.08.3.tar.xz 589464 BLAKE2B 188a702b21976c352bea49c3e40e86c6d3f85b398c3dc9577301471c49cbbf8f161a5f6b62acfc020bcd9530aab2739a39023170c7586a1f18e52add4b2d6ecd SHA512 16570fe9b5e4e83d26b1c2e591d797cd23f37a2195ac5f043ee921d038d0e10d63f9d2c72c4d710e10eeb05d81a6df577f9ddb48b762b034154e399560daa7a7 DIST kpmcore-21.12.3.tar.xz 595940 BLAKE2B ddeb1140b89993ff506d3936017f4882786f716037250f93bb820b1769de2b67301a542e1222adbf71815c36d06372cfffcacee275d807f702c48f1abdd9c84a SHA512 7f26ca0a2a0889c3fe3c67a23e673e7ac96ba359a2da3dec72c1d1d0faeb247d136c405d2e28f1bbe8bcb56352dcca16666a9339cfe199d4a2d0105a44597d16 -EBUILD kpmcore-21.08.3-r1.ebuild 859 BLAKE2B ce8a1d8701008c122a79d78d39f3b744015848db11202201493ced6b342da5cc4cf40fe02f9ba75862c6f2f3f2a473695676d85ea44b588bc212e8e2e2259824 SHA512 dc3bc3f41ac00c73c4403dd4b07cb4be14e63ed30a78d0228391a5b40abdcd51bdbc9faa4c3359e3dff029a5c5ed26aced47f3dd3af9431933c161749b55b8dd -EBUILD kpmcore-21.12.3.ebuild 737 BLAKE2B cfa563bf6fabc3b3dce840a566a03e5f92ec1f4f2d201ce1fff19662973b1047a7e1afbcf36d6de992dd8161f424248f94bfa71b9c13489949fa2299c9d80c06 SHA512 6e446f8264ee04c9953e6c4085c84a170374be99ac1d47942e22bc511df416c8c883f3922102b8efb546582450ca935c5e1840bf425b48fb76e8ed7ebf22ea8d +DIST kpmcore-22.04.0.tar.xz 599012 BLAKE2B bca08917139662ad2c983a2be2ee70c949ea613d3d1a901ae564175ca26bf2110dde18c7d828b660e2d3acc40893eca0b98c30d8284557698cf0994fa5674778 SHA512 355b436b58aa99cdbef50dafc4991af8e6f80ff1f885413cb08331954c8a8c3bbcac162f67fa27c1e898e7e3246ec08a967eeefaaff5b537594a14b6f841037d +EBUILD kpmcore-21.12.3.ebuild 736 BLAKE2B f111e80d31c62c7b427d9bb7ba7944f6c8c6332e516c61622a26882aeb5dfeeaf2efb87bc1d070e1df1a71ef1b28295ae996645d1204bb351ff240baaf245e42 SHA512 ec6a75e5c2dd4f17c746d09b0c6ec50dac0c53257069497ace9cac0cd842d11652ac62c33f0d93cc3a4da8249b6da3332ce53da643676223589d3097f209f734 +EBUILD kpmcore-22.04.0.ebuild 739 BLAKE2B 0d5f6a02b1987babb3bd117cc7e052580b6f6d48193d78deec15f300590a2b73cf88424af348121ea6805f55890cf14b7c51db9254f23523a0d89c9053f73b1c SHA512 9e9746b7c62333352d688d72e24ad5f1011e253d99a6b02f85170282b433dba8ab4c9c96561a705f4ef73a2024484fe52830d8197873084b44032f0c0daf66a9 MISC metadata.xml 318 BLAKE2B 922a5e32e706b2976c5f359a14194d268d3f499398576c80ce5fad8c0fcea0fbf048de4480a80a6a1889c88b8b6c14147654a3ab4d5ffbcc258c2290da63f6d1 SHA512 614cb8dda7ad2088e5d6ef39b449bb4be0ac72cd0231c320188d76d1816dce6490c5114bb4798112c4b11d99d30a9e82ff8fcf08ffa8c049589682a5e38208f6 diff --git a/sys-libs/kpmcore/files/kpmcore-21.08.3-dont-destroy-zfs-pool.patch b/sys-libs/kpmcore/files/kpmcore-21.08.3-dont-destroy-zfs-pool.patch deleted file mode 100644 index 83cc15d0f2d5..000000000000 --- a/sys-libs/kpmcore/files/kpmcore-21.08.3-dont-destroy-zfs-pool.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 282cfdcde179ec44d053b257e13aa715158596bd Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andrius=20=C5=A0tikonas?= -Date: Sat, 30 Oct 2021 21:13:07 +0100 -Subject: [PATCH] Do not destroy zfs pool when removing zfs partition. - -This can be dangerous, e.g. if partition is part of raid set. -So better be more cautious and in some cases fail to remove partition -than lose data. ---- - src/fs/zfs.cpp | 7 ------- - src/fs/zfs.h | 1 - - 2 files changed, 8 deletions(-) - -diff --git a/src/fs/zfs.cpp b/src/fs/zfs.cpp -index 5d12894..5f4c87d 100644 ---- a/src/fs/zfs.cpp -+++ b/src/fs/zfs.cpp -@@ -77,13 +77,6 @@ qint64 zfs::maxCapacity() const - return Capacity::unitFactor(Capacity::Unit::Byte, Capacity::Unit::EiB); - } - --bool zfs::remove(Report& report, const QString& deviceNode) const --{ -- Q_UNUSED(deviceNode) -- ExternalCommand cmd(report, QStringLiteral("zpool"), { QStringLiteral("destroy"), QStringLiteral("-f"), label() }); -- return cmd.run(-1) && cmd.exitCode() == 0; --} -- - bool zfs::writeLabel(Report& report, const QString& deviceNode, const QString& newLabel) - { - Q_UNUSED(deviceNode) -diff --git a/src/fs/zfs.h b/src/fs/zfs.h -index 6e559de..61026c3 100644 ---- a/src/fs/zfs.h -+++ b/src/fs/zfs.h -@@ -35,7 +35,6 @@ public: - public: - void init() override; - -- bool remove(Report& report, const QString& deviceNode) const override; - bool writeLabel(Report& report, const QString& deviceNode, const QString& newLabel) override; - - CommandSupportType supportGetUsed() const override { --- -GitLab - diff --git a/sys-libs/kpmcore/files/kpmcore-21.08.3-fix-seek-error-when-shred-partition.patch b/sys-libs/kpmcore/files/kpmcore-21.08.3-fix-seek-error-when-shred-partition.patch deleted file mode 100644 index 568db790c7e9..000000000000 --- a/sys-libs/kpmcore/files/kpmcore-21.08.3-fix-seek-error-when-shred-partition.patch +++ /dev/null @@ -1,27 +0,0 @@ -From e9fc875c5e233401afd12f54ab0472c66ff6fdff Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andrius=20=C5=A0tikonas?= -Date: Fri, 12 Nov 2021 01:02:15 +0000 -Subject: [PATCH] Fix seek error when filling device with random data or - zeroes. - ---- - src/util/externalcommandhelper.cpp | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/util/externalcommandhelper.cpp b/src/util/externalcommandhelper.cpp -index 6e61aba..0fa400d 100644 ---- a/src/util/externalcommandhelper.cpp -+++ b/src/util/externalcommandhelper.cpp -@@ -80,7 +80,8 @@ bool ExternalCommandHelper::readData(const QString& sourceDevice, QByteArray& bu - return false; - } - -- if (!device.seek(offset)) { -+ // Sequential devices such as /dev/zero or /dev/urandom return false on seek(). -+ if (!device.isSequential() && !device.seek(offset)) { - qCritical() << xi18n("Could not seek position %1 on device %2.", offset, sourceDevice); - return false; - } --- -GitLab - diff --git a/sys-libs/kpmcore/kpmcore-21.08.3-r1.ebuild b/sys-libs/kpmcore/kpmcore-21.08.3-r1.ebuild deleted file mode 100644 index dbf7c293053e..000000000000 --- a/sys-libs/kpmcore/kpmcore-21.08.3-r1.ebuild +++ /dev/null @@ -1,39 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -ECM_NONGUI="true" -KDE_GEAR="true" -KFMIN=5.84.0 -QTMIN=5.15.2 -inherit ecm kde.org - -DESCRIPTION="Library for managing partitions" -HOMEPAGE="https://apps.kde.org/partitionmanager/" - -LICENSE="GPL-3" -SLOT="5/10" -KEYWORDS="amd64 ~arm arm64 ~ppc64 x86" -IUSE="" - -# bug 689468, tests need polkit etc. -RESTRICT="test" - -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}" -BDEPEND="virtual/pkgconfig" - -PATCHES=( - "${FILESDIR}/${P}-dont-destroy-zfs-pool.patch" - "${FILESDIR}/${P}-fix-seek-error-when-shred-partition.patch" -) diff --git a/sys-libs/kpmcore/kpmcore-21.12.3.ebuild b/sys-libs/kpmcore/kpmcore-21.12.3.ebuild index 79e6ad38178d..55a0e9f5b790 100644 --- a/sys-libs/kpmcore/kpmcore-21.12.3.ebuild +++ b/sys-libs/kpmcore/kpmcore-21.12.3.ebuild @@ -14,7 +14,7 @@ HOMEPAGE="https://apps.kde.org/partitionmanager/" LICENSE="GPL-3" SLOT="5/10" -KEYWORDS="amd64 ~arm ~arm64 ~ppc64 x86" +KEYWORDS="amd64 ~arm arm64 ~ppc64 x86" IUSE="" # bug 689468, tests need polkit etc. diff --git a/sys-libs/kpmcore/kpmcore-22.04.0.ebuild b/sys-libs/kpmcore/kpmcore-22.04.0.ebuild new file mode 100644 index 000000000000..83d3b36bf651 --- /dev/null +++ b/sys-libs/kpmcore/kpmcore-22.04.0.ebuild @@ -0,0 +1,34 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ECM_NONGUI="true" +KDE_GEAR="true" +KFMIN=5.92.0 +QTMIN=5.15.2 +inherit ecm kde.org + +DESCRIPTION="Library for managing partitions" +HOMEPAGE="https://apps.kde.org/partitionmanager/" + +LICENSE="GPL-3" +SLOT="5/10" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" +IUSE="" + +# bug 689468, tests need polkit etc. +RESTRICT="test" + +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}" diff --git a/sys-libs/ldb/Manifest b/sys-libs/ldb/Manifest index 664006118303..d607d32e5e05 100644 --- a/sys-libs/ldb/Manifest +++ b/sys-libs/ldb/Manifest @@ -1,15 +1,13 @@ AUX ldb-1.1.31-fix_PKGCONFIGDIR-when-python-disabled.patch 701 BLAKE2B dd2398f9e1fa39bfc3de89928dd3b935fd6ee9db4bc2c4e381ba5672098ae9209b2d6e475fa2549a9cef2e3ce5e9a789557413fbdb1bbd68842cca89ce1e8094 SHA512 35ba295d94ab5ce767f39c4cd5eb48d57a6e4993977013ee6ae0d640f74b5437a4dff6f1d14dc44dbcdc25d4e51e5084b0e3216353b2af383d8f544993228170 AUX ldb-1.5.2-optional_packages.patch 1441 BLAKE2B 0b9413cd9690aae2b2eb26f097d2509c0bbe0fc59f81bab22add57ffe0c603a8fb0c9be038d06693dcbb1d3817d4ad97a5931120b18bd9783efaac599fe0ccbc SHA512 2f313c3377385279ca3da6db21d926df0559d971e1fd42f8cce57b4001078c3817f472b85088a1f3b0e5ddcdfbbfd943199485d6e4a00412f62c883c6ea04afd AUX ldb-2.4.2-skip-32bit-time_t-tests.patch 1308 BLAKE2B 1ff687160b92c5395c7838ade8af32ba77637a2b18153d146b9e1496f96ec9c411cc5e5f9721a8dea1730118e6574a091ee7fd1edca1830cc54c5d4fddb007ab SHA512 27a35123cb9a1f6e39b88c91de8241ecfc0f0ed125a235ba26b95767dc3121d176b267ba97b1579e5b68cfb9e3879f40326f0163a31e311f01a1b2eb7751caf4 -DIST ldb-2.3.1.tar.gz 1718379 BLAKE2B e2aa196e6e09846be2a631d81bf0b94c0cd80984ac124757888889717efdf78caf5501c4278ace33dcc2a6fb92a4a2f224b20ea9f3bf3fa5c7333f9994dcbdc1 SHA512 d87f3839481c3ac3f5ce5e2b5bb766451fe39681bff9c53747d45e2cdcef9f1eb91c0a7d6a9c202c4d01097600d66ca431a175f4fc28a126ad987b9783cb87bc DIST ldb-2.3.2.tar.gz 1718583 BLAKE2B 48b9fb77e414af0f9fffe0cda9cf49971d79ed8b66213b01b73f53a61969e03f9e6426a04a33ff70da906c814470d8fa356902a68aa1169d969cc597e8c234d7 SHA512 be324e8f20db50529634548451dbc5f95f26a701e124bfb40ae2b0a5069de78b7c5c1a66222097209ea24ef6077373d996e67c00257a5a05198f1b81bf0ed53e -DIST ldb-2.4.0.tar.gz 1689484 BLAKE2B 904d74900011ce3f63ad1c24fe88b1a090e835c68829ddfda5e8af2c0ab3674d7a8cd9a62b95c1f38f26578d0704556d3562e46e21a54cbb44a15b9d83676521 SHA512 6c500b723c081488bc0717b6a5b0e8966c5d8a751232f8856281a6fe4d358ae6b5878c8400a82fa666379066105fbb9259b2967313e73efabef0e1386095e2ee +DIST ldb-2.3.3.tar.gz 1719542 BLAKE2B 2a5cfe3ddac2054d167c2857e0cd92e0f88d2c196f9285c029b2a525d781025a956a296bd6d793b65f848188cf7adf70f99542999061a85be473b3fc3b2856f1 SHA512 ffb50208fe971afd544a431b79905ec8fce67d78d20c3fcfb8345a56f3b278fb664bc48079d7239a8ca5b70aae8b32076b6007cb63e080cd536e9fe458efeccd DIST ldb-2.4.1.tar.gz 1719769 BLAKE2B 868d3dcc51bd8272d99f2335ed1af2e37506b6a175254f1aca37f758488ba0997e37419a7d8c81def77698128307df97de26d4807ac78c34088f7a623f8d9e68 SHA512 14ab5397d28c369142b2ccf55a2ab4e678a3fe6e018541cfce46241f8226400bc169360bbef254fae4410a6e15024ae986f02298d3d324e3d3a8b88801bf76d7 DIST ldb-2.4.2.tar.gz 1720169 BLAKE2B d144218bf62dde57560df8b8a641e9f58bee001fdfa7b1527d9eb9a1a55e428662db81912173cbcdb9f993c0b316faab7d758a4878beeff1daadd487e9aa44a9 SHA512 77705ad284eed9105c9aba0459d2e48cd66ca19b657a55f7513e10281dd2e96540d24d1c8df53adc84109a918900687dc75b635cda05c4e788424ed71b5ff989 DIST ldb-2.5.0.tar.gz 1722847 BLAKE2B 880a5a516b0b423854f8a3f9c54da89e4640f8462ccc54a7b147c70c3a9eb073dc9e914d1906ab914a9ddd9b9aa0e7d177ef3ecb4c0b506f5417db931b017849 SHA512 f16a235f1409e06266c51735ac645cf2708d31dd731ee7b95d6778498b115f4252b0a528952e620767d1616a4e1e7c5f2cdc69f3fa32d79288cf14da2f52a010 -EBUILD ldb-2.3.1-r1.ebuild 2942 BLAKE2B d2495240018b7ecece8c88092c30ea64f411ea0f073f0ff2404ca6184fe931ada8342ea3beffd710fb0d3c137174cc01fba37d73d7884ad11edba84855f2ae08 SHA512 8711a2758689c818b66af5548af9881cf217839d5ea951cbcdbc83531ec602a9b39e1d2b12e8452e60691f09ef4e9db0d0d639e7d4a45d16cc7e75db583c714b EBUILD ldb-2.3.2-r1.ebuild 2942 BLAKE2B d2495240018b7ecece8c88092c30ea64f411ea0f073f0ff2404ca6184fe931ada8342ea3beffd710fb0d3c137174cc01fba37d73d7884ad11edba84855f2ae08 SHA512 8711a2758689c818b66af5548af9881cf217839d5ea951cbcdbc83531ec602a9b39e1d2b12e8452e60691f09ef4e9db0d0d639e7d4a45d16cc7e75db583c714b -EBUILD ldb-2.4.0-r2.ebuild 2949 BLAKE2B 119bd03399cb6851748acd19904afb7cb423bf77b58cb419169be64ef49a8d1461ab705f992529a726d5e00dd1977ea9d6f6b2e3009f61512f13c431b5d729fe SHA512 6ba869ee1b7c082a02ede9a78384fcd539c2482b44c46bed3afe8712541eabf169cf991c1bf65649ab1b4300b5fce7c3f0512a605e25d37a63f93d9b1a602377 +EBUILD ldb-2.3.3.ebuild 2949 BLAKE2B 5ee78f915254ca0ff1f5f107ec4caf24393022e5eeeac6b3bf5593b4da9c802e3f72965fcc023c81676a93e7ba21bfc255c175204f8497fc6031fdfe644d8af9 SHA512 b9441f83f2b078a7bb7492222acb04afb77238c78cb8c77ddf097a51b340c2ba7bc1f7c552a66d297baf825fc4020f3f77143199a6f4c0edd217deb980f911fb EBUILD ldb-2.4.1-r1.ebuild 2943 BLAKE2B e96f5909024e90dd48096bd1a80d123460cd86c6a1743372992cdab7ed758f0759f889f558ce999cd493b625a231f8185852e18cf678f086bc221a61f895e887 SHA512 60ffaadddc5007e6c3aa8cbad369b20e5691b26ed163e747196cc7c1fb40ee74477ea00e022cfd94ff69eb9c911aaa51945d793913aa3056321b8026bd38bb66 EBUILD ldb-2.4.2-r1.ebuild 3007 BLAKE2B 543d57e1e3e50a57fdde0a15003fbd04990b16300df7e38b0be8021549f57e2bbfc30417a81b8519ca47d236cfbf3be3bf10d8dbeeff2b5d06e575ab9acff22b SHA512 71027d7877c6af0db3b859aa3271aefb3e9bb0134d732393e5c7d6a2b14da9a55d255fac0e04de271caf269a9d627f4203a932ed13d74137558d1c7adfcccc51 EBUILD ldb-2.5.0-r1.ebuild 3007 BLAKE2B 0abb5aa964f1b945d2bddd1154421bf35d24e9fb78dde2b0ae34b4495326142dbda601c1aa2579bdfb81face8bf6072f0dafb676524d2aa3c1f2e9947c7a9cf7 SHA512 ff46752cb5c33374665b52eef69398821f7c463deaa1a5c8c05115b94fb97cc56c805df49826f09ded208adf91a50799fa9f43e878f36291676ff7e2c9f917a7 diff --git a/sys-libs/ldb/ldb-2.3.1-r1.ebuild b/sys-libs/ldb/ldb-2.3.1-r1.ebuild deleted file mode 100644 index 49ea629050ba..000000000000 --- a/sys-libs/ldb/ldb-2.3.1-r1.ebuild +++ /dev/null @@ -1,120 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{8..9} ) -PYTHON_REQ_USE="threads(+)" -inherit python-single-r1 waf-utils multilib-minimal - -DESCRIPTION="LDAP-like embedded database" -HOMEPAGE="https://ldb.samba.org" -SRC_URI="https://samba.org/ftp/pub/${PN}/${P}.tar.gz" - -LICENSE="LGPL-3" -SLOT="0/${PV}" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86" -IUSE="doc ldap +lmdb python test" - -REQUIRED_USE="${PYTHON_REQUIRED_USE} - test? ( python )" - -RESTRICT="!test? ( test )" - -RDEPEND=" - dev-libs/libbsd[${MULTILIB_USEDEP}] - dev-libs/popt[${MULTILIB_USEDEP}] - >=dev-util/cmocka-1.1.3[${MULTILIB_USEDEP}] - >=sys-libs/talloc-2.3.2[${MULTILIB_USEDEP}] - >=sys-libs/tdb-1.4.3[${MULTILIB_USEDEP}] - >=sys-libs/tevent-0.10.2[${MULTILIB_USEDEP}] - ldap? ( net-nds/openldap:= ) - lmdb? ( >=dev-db/lmdb-0.9.16:=[${MULTILIB_USEDEP}] ) - python? ( - ${PYTHON_DEPS} - sys-libs/talloc[python,${PYTHON_SINGLE_USEDEP}] - sys-libs/tdb[python,${PYTHON_SINGLE_USEDEP}] - sys-libs/tevent[python,${PYTHON_SINGLE_USEDEP}] - ) -" -DEPEND="${RDEPEND} - virtual/libcrypt -" -BDEPEND="${PYTHON_DEPS} - dev-libs/libxslt - virtual/pkgconfig - doc? ( app-doc/doxygen ) -" - -WAF_BINARY="${S}/buildtools/bin/waf" - -MULTILIB_WRAPPED_HEADERS=( /usr/include/pyldb.h ) - -PATCHES=( - "${FILESDIR}"/${PN}-1.5.2-optional_packages.patch - "${FILESDIR}"/${PN}-1.1.31-fix_PKGCONFIGDIR-when-python-disabled.patch -) - -pkg_setup() { - # Package fails to build with distcc - export DISTCC_DISABLE=1 - - # waf requires a python interpreter - python-single-r1_pkg_setup -} - -src_prepare() { - default - multilib_copy_sources -} - -multilib_src_configure() { - local myconf=( - $(usex ldap '' --disable-ldap) - $(usex lmdb '' --without-ldb-lmdb) - --disable-rpath - --disable-rpath-install --bundled-libraries=NONE - --with-modulesdir="${EPREFIX}"/usr/$(get_libdir)/samba - --builtin-libraries=NONE - ) - if ! multilib_is_native_abi; then - myconf+=( --disable-python ) - else - use python || myconf+=( --disable-python ) - fi - waf-utils_src_configure "${myconf[@]}" -} - -multilib_src_compile() { - waf-utils_src_compile - multilib_is_native_abi && use doc && doxygen Doxyfile -} - -multilib_src_test() { - if multilib_is_native_abi; then - WAF_MAKE=1 \ - PATH=buildtools/bin:../../../buildtools/bin:$PATH:"${BUILD_DIR}"/bin/shared/private/ \ - LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"${BUILD_DIR}"/bin/shared/private/:"${BUILD_DIR}"/bin/shared \ - waf test || die - fi -} - -multilib_src_install() { - waf-utils_src_install - - if multilib_is_native_abi && use doc; then - doman apidocs/man/man3/*.3 - docinto html - dodoc -r apidocs/html/. - fi - - use python && python_optimize #726454 -} - -pkg_postinst() { - if has_version sys-auth/sssd; then - ewarn "You have sssd installed. It is known to break after ldb upgrades," - ewarn "so please try to rebuild it before reporting bugs." - ewarn "See https://bugs.gentoo.org/404281" - fi -} diff --git a/sys-libs/ldb/ldb-2.3.3.ebuild b/sys-libs/ldb/ldb-2.3.3.ebuild new file mode 100644 index 000000000000..99aa75a74e34 --- /dev/null +++ b/sys-libs/ldb/ldb-2.3.3.ebuild @@ -0,0 +1,120 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{8..9} ) +PYTHON_REQ_USE="threads(+)" +inherit python-single-r1 waf-utils multilib-minimal + +DESCRIPTION="LDAP-like embedded database" +HOMEPAGE="https://ldb.samba.org" +SRC_URI="https://samba.org/ftp/pub/${PN}/${P}.tar.gz" + +LICENSE="LGPL-3" +SLOT="0/${PV}" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="doc ldap +lmdb python test" + +REQUIRED_USE="${PYTHON_REQUIRED_USE} + test? ( python )" + +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-libs/libbsd[${MULTILIB_USEDEP}] + dev-libs/popt[${MULTILIB_USEDEP}] + >=dev-util/cmocka-1.1.3[${MULTILIB_USEDEP}] + >=sys-libs/talloc-2.3.2[${MULTILIB_USEDEP}] + >=sys-libs/tdb-1.4.3[${MULTILIB_USEDEP}] + >=sys-libs/tevent-0.10.2[${MULTILIB_USEDEP}] + ldap? ( net-nds/openldap:= ) + lmdb? ( >=dev-db/lmdb-0.9.16:=[${MULTILIB_USEDEP}] ) + python? ( + ${PYTHON_DEPS} + sys-libs/talloc[python,${PYTHON_SINGLE_USEDEP}] + sys-libs/tdb[python,${PYTHON_SINGLE_USEDEP}] + sys-libs/tevent[python,${PYTHON_SINGLE_USEDEP}] + ) +" +DEPEND="${RDEPEND} + virtual/libcrypt +" +BDEPEND="${PYTHON_DEPS} + dev-libs/libxslt + virtual/pkgconfig + doc? ( app-doc/doxygen ) +" + +WAF_BINARY="${S}/buildtools/bin/waf" + +MULTILIB_WRAPPED_HEADERS=( /usr/include/pyldb.h ) + +PATCHES=( + "${FILESDIR}"/${PN}-1.5.2-optional_packages.patch + "${FILESDIR}"/${PN}-1.1.31-fix_PKGCONFIGDIR-when-python-disabled.patch +) + +pkg_setup() { + # Package fails to build with distcc + export DISTCC_DISABLE=1 + + # waf requires a python interpreter + python-single-r1_pkg_setup +} + +src_prepare() { + default + multilib_copy_sources +} + +multilib_src_configure() { + local myconf=( + $(usex ldap '' --disable-ldap) + $(usex lmdb '' --without-ldb-lmdb) + --disable-rpath + --disable-rpath-install --bundled-libraries=NONE + --with-modulesdir="${EPREFIX}"/usr/$(get_libdir)/samba + --builtin-libraries=NONE + ) + if ! multilib_is_native_abi; then + myconf+=( --disable-python ) + else + use python || myconf+=( --disable-python ) + fi + waf-utils_src_configure "${myconf[@]}" +} + +multilib_src_compile() { + waf-utils_src_compile + multilib_is_native_abi && use doc && doxygen Doxyfile +} + +multilib_src_test() { + if multilib_is_native_abi; then + WAF_MAKE=1 \ + PATH=buildtools/bin:../../../buildtools/bin:$PATH:"${BUILD_DIR}"/bin/shared/private/ \ + LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"${BUILD_DIR}"/bin/shared/private/:"${BUILD_DIR}"/bin/shared \ + waf test || die + fi +} + +multilib_src_install() { + waf-utils_src_install + + if multilib_is_native_abi && use doc; then + doman apidocs/man/man3/*.3 + docinto html + dodoc -r apidocs/html/. + fi + + use python && python_optimize #726454 +} + +pkg_postinst() { + if has_version sys-auth/sssd; then + ewarn "You have sssd installed. It is known to break after ldb upgrades," + ewarn "so please try to rebuild it before reporting bugs." + ewarn "See https://bugs.gentoo.org/404281" + fi +} diff --git a/sys-libs/ldb/ldb-2.4.0-r2.ebuild b/sys-libs/ldb/ldb-2.4.0-r2.ebuild deleted file mode 100644 index ebd2a0d0b0ea..000000000000 --- a/sys-libs/ldb/ldb-2.4.0-r2.ebuild +++ /dev/null @@ -1,120 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{7..9} ) -PYTHON_REQ_USE="threads(+)" -inherit python-single-r1 waf-utils multilib-minimal - -DESCRIPTION="LDAP-like embedded database" -HOMEPAGE="https://ldb.samba.org" -SRC_URI="https://samba.org/ftp/pub/${PN}/${P}.tar.gz" - -LICENSE="LGPL-3" -SLOT="0/${PV}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -IUSE="doc ldap +lmdb python test" - -REQUIRED_USE="${PYTHON_REQUIRED_USE} - test? ( python )" - -RESTRICT="!test? ( test )" - -RDEPEND=" - dev-libs/libbsd[${MULTILIB_USEDEP}] - dev-libs/popt[${MULTILIB_USEDEP}] - >=dev-util/cmocka-1.1.3[${MULTILIB_USEDEP}] - >=sys-libs/talloc-2.3.3[${MULTILIB_USEDEP}] - >=sys-libs/tdb-1.4.4[${MULTILIB_USEDEP}] - >=sys-libs/tevent-0.11.0[${MULTILIB_USEDEP}] - ldap? ( net-nds/openldap:= ) - lmdb? ( >=dev-db/lmdb-0.9.16:=[${MULTILIB_USEDEP}] ) - python? ( - ${PYTHON_DEPS} - sys-libs/talloc[python,${PYTHON_SINGLE_USEDEP}] - sys-libs/tdb[python,${PYTHON_SINGLE_USEDEP}] - sys-libs/tevent[python,${PYTHON_SINGLE_USEDEP}] - ) -" -DEPEND="${RDEPEND} - virtual/libcrypt -" -BDEPEND="${PYTHON_DEPS} - dev-libs/libxslt - virtual/pkgconfig - doc? ( app-doc/doxygen ) -" - -WAF_BINARY="${S}/buildtools/bin/waf" - -MULTILIB_WRAPPED_HEADERS=( /usr/include/pyldb.h ) - -PATCHES=( - "${FILESDIR}"/${PN}-1.5.2-optional_packages.patch - "${FILESDIR}"/${PN}-1.1.31-fix_PKGCONFIGDIR-when-python-disabled.patch -) - -pkg_setup() { - # Package fails to build with distcc - export DISTCC_DISABLE=1 - - # waf requires a python interpreter - python-single-r1_pkg_setup -} - -src_prepare() { - default - multilib_copy_sources -} - -multilib_src_configure() { - local myconf=( - $(usex ldap '' --disable-ldap) - $(usex lmdb '' --without-ldb-lmdb) - --disable-rpath - --disable-rpath-install --bundled-libraries=NONE - --with-modulesdir="${EPREFIX}"/usr/$(get_libdir)/samba - --builtin-libraries=NONE - ) - if ! multilib_is_native_abi; then - myconf+=( --disable-python ) - else - use python || myconf+=( --disable-python ) - fi - waf-utils_src_configure "${myconf[@]}" -} - -multilib_src_compile() { - waf-utils_src_compile - multilib_is_native_abi && use doc && doxygen Doxyfile -} - -multilib_src_test() { - if multilib_is_native_abi; then - WAF_MAKE=1 \ - PATH=buildtools/bin:../../../buildtools/bin:$PATH:"${BUILD_DIR}"/bin/shared/private/ \ - LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"${BUILD_DIR}"/bin/shared/private/:"${BUILD_DIR}"/bin/shared \ - waf test || die - fi -} - -multilib_src_install() { - waf-utils_src_install - - if multilib_is_native_abi && use doc; then - doman apidocs/man/man3/*.3 - docinto html - dodoc -r apidocs/html/. - fi - - use python && python_optimize #726454 -} - -pkg_postinst() { - if has_version sys-auth/sssd; then - ewarn "You have sssd installed. It is known to break after ldb upgrades," - ewarn "so please try to rebuild it before reporting bugs." - ewarn "See https://bugs.gentoo.org/404281" - fi -} diff --git a/sys-libs/libaal/Manifest b/sys-libs/libaal/Manifest index abee092c8292..5cd45c3eaf55 100644 --- a/sys-libs/libaal/Manifest +++ b/sys-libs/libaal/Manifest @@ -1,3 +1,3 @@ DIST libaal-1.0.7.tar.gz 376068 BLAKE2B 2fb7802401721a64b17c0409f3ff668524399efc03b4bda4b4523af2cce204fdb5cf41bb2b2a6af5cbda34ee88cbb4703eec9bb76774d705b1759c91a33b1e34 SHA512 9b39a8cd3f49257ea912bb0e463c0c63ad06914e8a310deb4d4dce544d3ee34f492203c7321f971af71dddc1eb85f207082a4791b19bd4fad3f7dab516513b3d -EBUILD libaal-1.0.7-r2.ebuild 893 BLAKE2B 857f04ac3c66445447a663eea012c42bce415b58278480437514eec5a4fdf931381cb237a2e63661b3ccba28512d0b6fa612aba2527463c901675b72aa8fb6db SHA512 e4a690f993a16acba6289921091d65858e5c7a9a8509f7822aaee823d82cc0fb72b66c3a4fcd3409e3031d900dee0034608ce571526eee0a910ec0698caad3b4 +EBUILD libaal-1.0.7-r2.ebuild 900 BLAKE2B 99b2e94b901e1d6a70b808213d101cdbabcd7833d11418c10b6bc2dd6e8d3bfd1ee0bf64908bf4b882f21a506733255fd419bd698b271a868f1ffe42d98f92b1 SHA512 4d39df137ce2b24327067ba199f5b0234c0aba771494c6544fa36a9959e44dbe9545471bb4b7589ed5887aa816be7841dfdea79295b9afb41b5380559270dad2 MISC metadata.xml 407 BLAKE2B 86af1cbf6e229e1cad21aa8ad5ad8ac29eb5fed43a3df646cbcac34614acd0665b7f903dd7f1734a4e4bfe239da49e8b2c875da75ab66dcc377d711fa2ff48b8 SHA512 a0c6fbba6d5dfb54f836a7cdc95d8317fbd126a871883711a03856dc183ddfdefed285ecc3d199588c8ef45c8e70d328b33cd21fdcfed786ed9011e52818a731 diff --git a/sys-libs/libaal/libaal-1.0.7-r2.ebuild b/sys-libs/libaal/libaal-1.0.7-r2.ebuild index 7994ee19251f..32c17e6921af 100644 --- a/sys-libs/libaal/libaal-1.0.7-r2.ebuild +++ b/sys-libs/libaal/libaal-1.0.7-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -11,7 +11,7 @@ SRC_URI="mirror://sourceforge/reiser4/${P}.tar.gz" LICENSE="GPL-2" SLOT="0/7" -KEYWORDS="amd64 arm ~arm64 ppc ppc64 -sparc x86" +KEYWORDS="amd64 arm ~arm64 ~loong ppc ppc64 -sparc x86" IUSE="static-libs" BDEPEND="virtual/os-headers" diff --git a/sys-libs/libblockdev/Manifest b/sys-libs/libblockdev/Manifest index 4838efc018fe..8492c143fe79 100644 --- a/sys-libs/libblockdev/Manifest +++ b/sys-libs/libblockdev/Manifest @@ -1,6 +1,4 @@ -DIST libblockdev-2.25.tar.gz 930238 BLAKE2B ae28c40b5e114826baf4a8ba9012267b297dbc4abee52669cf39c886d2c9989291f41937ec742c7457049a6a30e674f9c89ad6478923f393ae1773db3afcf621 SHA512 628d05f3a257b44208a9d0b5d84ae248fefd415812d9a93d132c03039b09fefc4d6110beb9aa0d3072e3f0c992e642d7867d0241209056538f132f86a748e195 DIST libblockdev-2.26.tar.gz 932129 BLAKE2B 39d95db69de917449e6009fa0160b6288327b2c49b64309d17a1e4e028756d1ce170779ce1c4df926c8796d8a8ed7b9131b5d4b51115a3ea901dacdaa971961a SHA512 ddd4e9c22135bd7dad0bb9bc254ac0c63e3bacc592e7c5a0c846e367da3fc248bf6187f1c81407c3bce599d3b0ceeec9a8a0030ad8e981e245f715b35eaec523 -EBUILD libblockdev-2.25.ebuild 2613 BLAKE2B 848c426ed0dc619799901680eb16d5d00d94c36894adf29c9b8338edb711a090d57ebadd94d6dc720217902fda2390f1d45f46c41febe3dee89333b42fd845f8 SHA512 781c02b20d97d28430ba2834998c62aff5721e6b9f36f7e2325285dbaab4eaa7adf5b2511caf6accf48d0935c9bdff455c976c7f0b4a9bebc36c31c71fd919ad -EBUILD libblockdev-2.26.ebuild 2886 BLAKE2B 42732b4d5822bb2c5f512064dc4367d46a310a9a68eb4f3ee693b94c220a87cbbe666a8c850e3623be5db260bb3839f0b3965b8c354733c22221ee54d9b5827b SHA512 01b97554ec2e6870bbb0e3e8cd0636daacbc3b1636c75e18765273656668c572e2cb39ac68b0c228808208dd74ea5d8aeb5c709a0a8e45fcc15c828720a6d8b3 -EBUILD libblockdev-9999.ebuild 2886 BLAKE2B 42732b4d5822bb2c5f512064dc4367d46a310a9a68eb4f3ee693b94c220a87cbbe666a8c850e3623be5db260bb3839f0b3965b8c354733c22221ee54d9b5827b SHA512 01b97554ec2e6870bbb0e3e8cd0636daacbc3b1636c75e18765273656668c572e2cb39ac68b0c228808208dd74ea5d8aeb5c709a0a8e45fcc15c828720a6d8b3 -MISC metadata.xml 1080 BLAKE2B e959d07886b20d615c369d2a9dd621f7b4af9cb3a93c425cf9ac1c64179eeb09f9b78d95bfc5b8deabe50e9d6bc6f5364eb4ace76c1b8f7f5aab2f01f83e1c08 SHA512 7f6fe7ab61119dcd024bc8a6fd62d2b60ac59e5eb70244d13e62c8e35279db8690717e67381ae05eb10b4b7e6cdeedb8c5b423ddd7fb8e750a77e2d254e6162d +EBUILD libblockdev-2.26.ebuild 2879 BLAKE2B f916a130ae27de31deb7564e25517733305dc07a00df358ac0b328e35cda81cfa4af9d5d3cb61c25146accccc3df6a318854ca7e4d2c6c35728e1520cbf6000f SHA512 b966334e28a29a979f4bad47c92e4efb2b6bd869ad3408ba9a9f6e4450c2797d1bac3544945991705526b767e67f16e41bd5dc67d66e255e5c7db3622ef1abcf +EBUILD libblockdev-9999.ebuild 2871 BLAKE2B 91afe84f6a72beef76cdd364203333d56640ec79addd425628bf194407fc1ccd0f73e3e76be89eb2b6229936ccc7ad9f106cce66a9439bf01a786a98bc6a6897 SHA512 dbd469752e2c6e6316b4844957cf95b5b4a82a40a33ed95a1aa0a29ebd6d0fbfddd4e83a11854c24e3b9620823fd1b97569c8d67fd0d9b0f8e230672e1f060ac +MISC metadata.xml 1158 BLAKE2B 0ee231799be379354cf0ede12466e0d09277bde99687abca2fc8bebe47847fc042844e3909f76b0e3b219d361cf99fb6582e12cb79b862e00ae7a460ce1785bc SHA512 b81132d7617eac81f946c2878759a4dde7edd691514ca7800621bd89be4a4a965b7389efac40b7b9c85ab19fe9ab1e1c4e0977032405bef66984e4ef44bfaee4 diff --git a/sys-libs/libblockdev/libblockdev-2.25.ebuild b/sys-libs/libblockdev/libblockdev-2.25.ebuild deleted file mode 100644 index 542a3e9e88c6..000000000000 --- a/sys-libs/libblockdev/libblockdev-2.25.ebuild +++ /dev/null @@ -1,119 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{7..9} ) -inherit autotools python-single-r1 xdg-utils - -DESCRIPTION="A library for manipulating block devices" -HOMEPAGE="https://github.com/storaged-project/libblockdev" -if [[ "${PV}" == *9999 ]] ; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/storaged-project/libblockdev.git" - BDEPEND=" - sys-devel/autoconf-archive - " -else - MY_PV="${PV}-1" - #MY_P="${PN}-${MY_PV}" - #SRC_URI="https://github.com/storaged-project/${PN}/archive/${MY_PV}.tar.gz -> ${MY_P}.tar.gz" - SRC_URI="https://github.com/storaged-project/${PN}/releases/download/${MY_PV}/${P}.tar.gz" - KEYWORDS="~alpha amd64 arm arm64 ~ia64 ~mips ppc ppc64 ~riscv sparc x86" - #S="${WORKDIR}/${MY_P}" -fi -LICENSE="LGPL-2+" -SLOT="0" -IUSE="bcache +cryptsetup device-mapper dmraid escrow gtk-doc introspection lvm kbd test +tools vdo" -RESTRICT="!test? ( test )" - -RDEPEND=" - >=dev-libs/glib-2.42.2 - dev-libs/libbytesize - >=sys-apps/kmod-19 - >=sys-apps/util-linux-2.27 - >=sys-block/parted-3.1 - cryptsetup? ( - escrow? ( - >=dev-libs/nss-3.18.0 - dev-libs/volume_key - ) - >=sys-fs/cryptsetup-1.6.7:= - ) - device-mapper? ( sys-fs/lvm2 ) - dmraid? ( - sys-fs/dmraid - sys-fs/lvm2 - ) - lvm? ( - sys-fs/lvm2 - virtual/udev - ) - vdo? ( dev-libs/libyaml ) - ${PYTHON_DEPS} -" - -DEPEND=" - ${RDEPEND} -" - -BDEPEND+=" - dev-util/gtk-doc-am - gtk-doc? ( dev-util/gtk-doc ) - introspection? ( >=dev-libs/gobject-introspection-1.3.0 ) -" - -REQUIRED_USE="${PYTHON_REQUIRED_USE} - escrow? ( cryptsetup )" - -pkg_setup() { - python-single-r1_pkg_setup -} - -src_prepare() { - xdg_environment_reset #623992 - default - - # https://bugs.gentoo.org/744289 - find -type f \( -name "Makefile.am" -o -name "configure.ac" \) -print0 \ - | xargs --null sed "s@ -Werror@@" -i || die - - eautoreconf -} - -src_configure() { - local myeconfargs=( - --with-btrfs - --with-fs - --with-part - --without-mpath - --without-nvdimm - $(use_enable introspection) - $(use_enable test tests) - $(use_with bcache) - $(use_with cryptsetup crypto) - $(use_with device-mapper dm) - $(use_with dmraid) - $(use_with escrow) - $(use_with gtk-doc) - $(use_with kbd) - $(use_with lvm lvm) - $(use_with lvm lvm-dbus) - $(use_with tools) - $(use_with vdo) - --without-python2 - --with-python3 - ) - econf "${myeconfargs[@]}" -} - -src_install() { - default - find "${ED}" -type f -name "*.la" -delete || die - # This is installed even with USE=-lvm, but libbd_lvm are omitted so it - # doesn't work at all. - if ! use lvm; then - rm -f "${ED}"/usr/bin/lvm-cache-stats || die - fi - python_optimize #718576 -} diff --git a/sys-libs/libblockdev/libblockdev-2.26.ebuild b/sys-libs/libblockdev/libblockdev-2.26.ebuild index 0682b4b778eb..b7f75e8e7b48 100644 --- a/sys-libs/libblockdev/libblockdev-2.26.ebuild +++ b/sys-libs/libblockdev/libblockdev-2.26.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 -PYTHON_COMPAT=( python3_{7..10} ) +PYTHON_COMPAT=( python3_{8..10} ) inherit autotools python-single-r1 xdg-utils DESCRIPTION="A library for manipulating block devices" @@ -19,7 +19,7 @@ else #MY_P="${PN}-${MY_PV}" #SRC_URI="https://github.com/storaged-project/${PN}/archive/${MY_PV}.tar.gz -> ${MY_P}.tar.gz" SRC_URI="https://github.com/storaged-project/${PN}/releases/download/${MY_PV}/${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" + KEYWORDS="~alpha amd64 arm arm64 ~ia64 ~mips ppc ppc64 ~riscv sparc x86" #S="${WORKDIR}/${MY_P}" fi LICENSE="LGPL-2+" diff --git a/sys-libs/libblockdev/libblockdev-9999.ebuild b/sys-libs/libblockdev/libblockdev-9999.ebuild index 0682b4b778eb..caa2065daf93 100644 --- a/sys-libs/libblockdev/libblockdev-9999.ebuild +++ b/sys-libs/libblockdev/libblockdev-9999.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -PYTHON_COMPAT=( python3_{7..10} ) +PYTHON_COMPAT=( python3_{8..10} ) inherit autotools python-single-r1 xdg-utils DESCRIPTION="A library for manipulating block devices" @@ -24,7 +24,7 @@ else fi LICENSE="LGPL-2+" SLOT="0" -IUSE="bcache +cryptsetup device-mapper dmraid escrow gtk-doc introspection lvm kbd test +tools vdo" +IUSE="bcache +cryptsetup device-mapper dmraid escrow gtk-doc introspection lvm kbd +nvme test +tools" # Tests require root. In a future release, we may be able to run a smaller # subset with new run_tests.py arguments. RESTRICT="!test? ( test ) test" @@ -51,7 +51,7 @@ RDEPEND=" sys-fs/lvm2 virtual/udev ) - vdo? ( dev-libs/libyaml ) + nvme? ( sys-libs/libnvme ) ${PYTHON_DEPS} " @@ -88,6 +88,7 @@ src_configure() { --with-btrfs --with-fs --with-part + --with-python3 --without-mpath --without-nvdimm $(use_enable introspection) @@ -101,10 +102,8 @@ src_configure() { $(use_with kbd) $(use_with lvm lvm) $(use_with lvm lvm-dbus) + $(use_with nvme) $(use_with tools) - $(use_with vdo) - --without-python2 - --with-python3 ) econf "${myeconfargs[@]}" } @@ -121,7 +120,7 @@ src_install() { find "${ED}" -type f -name "*.la" -delete || die # This is installed even with USE=-lvm, but libbd_lvm are omitted so it # doesn't work at all. - if ! use lvm; then + if ! use lvm ; then rm -f "${ED}"/usr/bin/lvm-cache-stats || die fi python_optimize #718576 diff --git a/sys-libs/libblockdev/metadata.xml b/sys-libs/libblockdev/metadata.xml index 981e2c38015b..5d09531b8a88 100644 --- a/sys-libs/libblockdev/metadata.xml +++ b/sys-libs/libblockdev/metadata.xml @@ -13,6 +13,7 @@ Support for building crypto plugin with escrow device support Enable kernel block device support. Enable support for Logical Volume Management via sys-fs/lvm2. + Add nvme support via sys-libs/libnvme Build tools Enable Virtual Data Optimizer support. diff --git a/sys-libs/libcap-ng/Manifest b/sys-libs/libcap-ng/Manifest index 28af9218a47d..a40aaa876397 100644 --- a/sys-libs/libcap-ng/Manifest +++ b/sys-libs/libcap-ng/Manifest @@ -2,5 +2,5 @@ DIST libcap-ng-0.8.2-apply-disable.patch 723 BLAKE2B 70d9959c55119c02bbc4ea60525 DIST libcap-ng-0.8.2.tar.gz 456066 BLAKE2B 7e721d05b92fd3708b970527e76b1898daa91bde3ab6ed5d8f23b1435404fbe7d15731461c6d9d2c791738e5498d1f5eaba727413480d34b7edea13c8691c32b SHA512 0ac6e55c03b1fba3a849048b721e250951afb59190d9646704d4fd9938eccc3bd0767380fbddc42f186b4f55695475e31f34f537ae91c04a37662577a5b7a19b DIST libcap-ng-0.8.3.tar.gz 455383 BLAKE2B c54dd753e0ef6dd21bcf6af7b003f85ded9faf2fbf1ea834cda6b181b165ff4b11a0284c23c73d0e6f97a810b3e6a63fceeb57ff583a2b32f23924bdee597ef5 SHA512 0ef9bc7bc6b7b59991f43b79aa6cde3e8d2c22c4b9ced2af8deae501e01d51e893033d109cb8aa0fdcba190140110993089245346334d7b114d18f1bb1b55b97 EBUILD libcap-ng-0.8.2-r1.ebuild 2361 BLAKE2B 3cd7b240ded1eaf09ba19073704c49a0e4f3bea9ca86c430a5b3dd916cc5be51f482234918c16ff7b231f76ff0f789b43095cce2d2445653b1af67d93ea72ef0 SHA512 7a9f35ba259d9c39d054905ee95244d3fd265b4f1d0a1c93b9335ded988f349d2508d298e9c7a2c7a4d3062cc4c972033a2b1e1999c7d3a4d8f06984ad8af306 -EBUILD libcap-ng-0.8.3.ebuild 2786 BLAKE2B 099dc21ba5ac41831ff888da3cf3ef4f7e87b7bf8ce766d1ce56ee3c7d8039ab6bb1cbf9c605a7f704c747974ff7bd08f9f1659685af425aee70f4cb2f003b48 SHA512 805fba2a6db0d1ed69c937f322b96e548cdcb972edc8cfb86dccf0cf7b8e9e305e04fe9c8a1ad9c5bd5fd61ab112c6eaf907571ab89f9315d1efd0bddf37a09d +EBUILD libcap-ng-0.8.3.ebuild 2793 BLAKE2B e6390cd6919c1f3dce84f1a0d61b9446117fde7016939c2dfac7029ab3a769cfbf59b1b315b2dd96a46a92c2d0a51c7a04d81b950a038756acb36b1e1a08e194 SHA512 36143b8094e6df59ca786b00dfcaba3c5549a3885753cc35c9d6da89036f7d9604af4088e2529cb9a18eb6bc91b556ee368697016f01cf712d0000b1bd502ab1 MISC metadata.xml 674 BLAKE2B 3de3fabf1f2c58f226adaf783fc2261c23f30e9777c28d5df4bdd3bf998a491dad164c2aaa90aed6f6378ac3b6036f4ddb06163afda0cfe06c354d4607a7471a SHA512 00a18c626c465437ff1d83ddf0fef4f6caa1cdf144973e7150fd5b771418f3a6980b15a66b998b8d6dfc5032761f4523f04bc96644d55a9ba8f2c05e6bc8a943 diff --git a/sys-libs/libcap-ng/libcap-ng-0.8.3.ebuild b/sys-libs/libcap-ng/libcap-ng-0.8.3.ebuild index 9dbc035b5526..3e163b1e19cb 100644 --- a/sys-libs/libcap-ng/libcap-ng-0.8.3.ebuild +++ b/sys-libs/libcap-ng/libcap-ng-0.8.3.ebuild @@ -19,7 +19,7 @@ SRC_URI="https://people.redhat.com/sgrubb/${PN}/${P}.tar.gz LICENSE="LGPL-2.1" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x86-linux" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x86-linux" IUSE="python static-libs" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" diff --git a/sys-libs/libcap/Manifest b/sys-libs/libcap/Manifest index cc775d123583..54660379309e 100644 --- a/sys-libs/libcap/Manifest +++ b/sys-libs/libcap/Manifest @@ -2,6 +2,6 @@ AUX libcap-2.62-ignore-RAISE_SETFCAP-install-failures.patch 901 BLAKE2B 8b4795bf DIST libcap-2.63.tar.xz 175104 BLAKE2B a49a628f5b9ddf5a3d077428544a53b9cdedf62053ff296a0aa7d61e12ca05f9ba7597f20ee16a3843736bee2417a3d1585ad6b336651fcb3e4ee29b108cfa0f SHA512 832842b71ca32db8f53ca5f1a3010f14e7f42693f62f29632e9948c860f990899bb094165c37307ce8b9e5bc5eb1c833e780ebca98442df3e6d900e4b238834b DIST libcap-2.64.tar.xz 175704 BLAKE2B 078ce2505a79c1bd4ca0a8eaf3444178bc19a566f0505d28c6959f86fbbac2fe2fc88c06fd0d988087a6e20e8ec66a2633146cea957f0f3fd92eaff4f81d7c66 SHA512 3c5cf478cef249585ee1a0dfd75c6b41b0daf4e1ecb59dce894eac5523841aa79ca499be4161f73193dd8e7363edcd51063f3e281930cee939ebd50983eecbaf EBUILD libcap-2.63.ebuild 2239 BLAKE2B 180d54dbec5a1835050c7774ccb9d364e1daa66a60daa32874c3d4428a7f1e0a1e29c16d235eb7c70837266066c6fbbc57d8d006bd5b08394520a66f92df4513 SHA512 04101d0259bc4316366857129cf7ce5b4997ae63f7461451471aec8c52c8590e1fe295104b99a7d59dca766d0f7aaba3ced55315380cd9330af3e9414961aa9e -EBUILD libcap-2.64.ebuild 2247 BLAKE2B 2389e4b01003116fb6b24c1ce10311a6635dc2cb0f705f4cd46f5f45cc89a7a8576442f55d1aaf438a0f90d10c69933dbd2e53982aec7402756ab88762cf9592 SHA512 658f0ddf51fdbd3728c4641ff9b06718cae63b1423812975851a855dc663fc05a45d051235e80c1c91b3818742fc92c8ffc2a4fecd6e5e86ef522f824b00d4f0 -EBUILD libcap-9999.ebuild 2164 BLAKE2B 6d44b9aadf000c40c8dd9c77fb88623fd24f7ea5f14c13515b3a3c06b1d1f615f8cf33876c51a17e553f3c76c553e1f1387f7caa7dc1dc333926616972e4ccfe SHA512 701d3d42487dc00e88a9101846b0f59976dc6baba977c045806c7986c08700496e5596019c1b7de084125ec1380252219dce86b3cf9461a7350c75d779762a24 +EBUILD libcap-2.64.ebuild 2254 BLAKE2B 2a7bb8f1ef55c91aa400a344e32401c982b88e1efb272e120f358d04fdf73a2bab8d744a4919b8a6c2205954d9789d4910e70bd19df987572e59aaf825fea82a SHA512 59bab3761eac29d28b3bd776ec6256b745e8c65daf8c9dcbdc230d4ba2425bae7af1eead73b65c22e0eaf3969feca784192d0562f565da0c2a4cc5f92d147568 +EBUILD libcap-9999.ebuild 2171 BLAKE2B 8f0156d46c0da997b1204aacd200d2c7b249248af2bf96488f2fd5cb41c2bfe0a5c66fd21e6fb9a42c9a2fd3655721f782f1a944d912a74dcc1475bbfbd92df2 SHA512 163e96072426881e6db427d31e89d6c2c4d2d3b9488e4f10bae1910fd898a6c263e40c6ddca8404391ae0944508779845d06170632db9dace7b42068b9cd603c MISC metadata.xml 438 BLAKE2B b5260cc84a3fe6b992bb6218846c738af296522d7a467337c05a6240fd07fc9d6cece779bd9fcf24a11486a70874e17acae8182647d307a31cf43e1c19c3a2d3 SHA512 fa3713dcf6b7bb2ea6d4c2fdefc05e92ae345c76a6187ebcb40dab8c4ce0148650a8301f236efcb8cf53fff25730977a385578dbaa160b800159c6d6abbf37a9 diff --git a/sys-libs/libcap/libcap-2.64.ebuild b/sys-libs/libcap/libcap-2.64.ebuild index 041fc1239fb0..8e216f0ec4fe 100644 --- a/sys-libs/libcap/libcap-2.64.ebuild +++ b/sys-libs/libcap/libcap-2.64.ebuild @@ -11,7 +11,7 @@ if [[ ${PV} == *9999 ]]; then else SRC_URI="https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/${P}.tar.xz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" fi DESCRIPTION="POSIX 1003.1e capabilities" diff --git a/sys-libs/libcap/libcap-9999.ebuild b/sys-libs/libcap/libcap-9999.ebuild index 969f9d0aaacb..b155f3846415 100644 --- a/sys-libs/libcap/libcap-9999.ebuild +++ b/sys-libs/libcap/libcap-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -11,7 +11,7 @@ if [[ ${PV} == *9999 ]]; then else SRC_URI="https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/${P}.tar.xz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" fi DESCRIPTION="POSIX 1003.1e capabilities" diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest index 1a4a61ee604b..67a892955f1f 100644 --- a/sys-libs/libcxx/Manifest +++ b/sys-libs/libcxx/Manifest @@ -1,20 +1,15 @@ -DIST llvm-gentoo-patchset-11.1.0-1.tar.xz 4032 BLAKE2B e69138a422e315b31a3d9c11faa4ae1ddf1bf9092cee2db0de4d2adef81fd802973488293aab48b764402b51996893b17ca03249ef4620848a576d1f6cdb9698 SHA512 e1c5504dab6c5db9fdf4addfeb12316f22d0258717ba551a9b7b3ba37919491fb6011ac5cca1e793b7509d5c1c186bc6bc4213f7d6155d190612492b216f979b DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249 -DIST llvm-gentoo-patchset-13.0.0.tar.xz 5012 BLAKE2B 6760c78c086aaf6629143fd920b0a2c68cad9278628fbea8164dfeb59db95984a5b5d6b3505b510c697e8c95bf8d2be782c6b73c01622d52f2da9b07ecff39e0 SHA512 7764d49343b795b6bebae64f646ba27e3e6cc2a20b8a1aee645ce0d8474633c34acfbb73c08546fee415755dd4ea5a98c1d84db5e394cf5f4fc802eb61148ab6 DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01 -DIST llvm-gentoo-patchset-14.0.0.tar.xz 4076 BLAKE2B dc114e53fb878ca74489c420506b9dd9c417e2b97dff4d9441d78a0a256ca1e7243ea2ce38b8665d37b0f24436f9ea5771cd05d9b13887e7370a19ec5e05ba20 SHA512 7f7d08fc762d634692fb251a51c0d73a4a9098907f25451b9ca9453315b603331b65a454b2d631cfecbb3fbc11ab3a36f644c0d7b03e1bb8e96ce4aa08d60615 +DIST llvm-gentoo-patchset-14.0.1.tar.xz 4724 BLAKE2B 2689298c687fa8b5fa2545afccc248c00ff6778f1a14e3e7999e5d52a1b0b9c3b2e66e8c008e27c62c6c3c08009dc7d9d083ca53698138258ac972e4ad03c042 SHA512 a9f071ad0a792f558105a64790f9e470d8aaed05bd1baabbe86539760c881f772602a03265e0962d8599f991f7fd44d14a49e2ef9d74bb5eb283f473f4084d32 +DIST llvm-gentoo-patchset-14.0.3.tar.xz 5492 BLAKE2B 48a46d50a81c5572d1573c6923bc404b198f74ee8587a928e0858553dac37f7fa39cc969d72b938ef3d2f04f6872f9e2e2478821ab90c657ecbbacb3f7d99d7a SHA512 b917b549de6d46cd7aab3e59b888b5e5ffb955435b33d6538be2f31dc30217a24740a673cb6bb661087c245121edb079052b179badaf70b86b985ca69b3652a6 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc -DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1 -DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f -DIST llvmorg-14.0.0.tar.gz 158057350 BLAKE2B 7052684c620a5eaf52beeee4591adf58cfec9e64a5ee0b24f3d5849fd4df5b006e2906a839cb806ac69c33fab6013c58589b1d74e4fb8558758edcb7d5065064 SHA512 eb5acf96b5e2c59bd07579f7ebe73018b0dd6e2f2d9a5a3c7986320e88febd837d1084b9e5313a2264310342193044629d228337cc76dd2b8527dc0a8bdda999 DIST llvmorg-14.0.1.tar.gz 158074615 BLAKE2B bf80366461580058494eb101646efcd1a8b55a66818a710c2eb8c649bf88c02fe4552cecf4c1c8637a64e7cee8d644bca31aafc804765ed18f2b5e2975dd6c92 SHA512 0a15aa9cfc978a7b03a1659a2affad65ede66d280f5c12bf0beaaf194cd7bdd57ff438b5f40e64c1e1b88f368de99be349e9d30b544d2bbe4a50f0ebed3307f2 -EBUILD libcxx-11.1.0.ebuild 6638 BLAKE2B 1c141e7dc80e2e4a47d7619500626458c931903c7efc1d5b1f3173ff927ec682b277ed0a932af1681df1416f499d98fd1e8c024ddd14d839a543bf42f673e896 SHA512 4d37e1d3077908dd49fd55b8422f12547848d58dede2b6f9be58d993862d71e47a45c6ce383677b46c178dbfd6c22559beb7f7745f3b589039208d63585174e2 +DIST llvmorg-14.0.3.tar.gz 158092596 BLAKE2B ef901df510ec6bc1242595ec330e9c9ee76e696b077d67a8d62b53608c3d18b2f2d7ea3150864e13d9b37a8ce899ebca946ebe72cbc4538700176e20859ddec2 SHA512 511e93fd9b1c414c38fe9e2649679ac0b16cb04f7f7838569d187b04c542a185e364d6db73e96465026e3b2533649eb75ac95507d12514af32b28bdfb66f2646 EBUILD libcxx-12.0.1.ebuild 6677 BLAKE2B 32a2f3bbff395d3c129cd4d168a8cb0ee1074c3fc164bf9a33f3287852c07af3e7443018b3fa31036f851cf5544bf80db0579ba2dfa2a3420801a6aef0dd6b05 SHA512 3820b6a249a36cf12ba72b4c4a3847ec035265ce23388dcdbc0547c5708737eee4cf449b14370badc13be3f79ecda2f3c788ac6c7f2f8063c3dd53b1e7b1bf62 -EBUILD libcxx-13.0.0.ebuild 6756 BLAKE2B c27aba7517136e19bdebd4f864958922000fd9d59791c0ae0407afffa5c39db21c3cbf2655532453679a54beddd46ad90df2a9482fed99501340f6b0073e264b SHA512 0516aed74ebe4cb170c2b3a975005f054e1227cdd8ae4807c7f1e6796055b09abce148a44425ffd12dde88eb8f638559e3a3dd6c7e29b1fe2bdc86123783f941 -EBUILD libcxx-13.0.1.ebuild 6781 BLAKE2B 6ada751bfe1f8e1980e4c20b2a45f237c6630deb4fbb695701b596af17b78391e6a2db99101371a6577f4d414933cf4143d0b60d29fd62e6ec8d6ef3f563b77d SHA512 9d389d1323e866d9b66881b215a2625eee8263a6df790ef5027462b0c3de5421d4ae6077d5861fdfe8adad9d66e34a12de754149e1a1764a42fd824b900c03ac -EBUILD libcxx-14.0.0.ebuild 6937 BLAKE2B 04722fb717fcf971cfad08599681619a1f003ef487ba73dded68aa1661a8ad64369f30844379750045e81df0959d5d3b2416e9fbe4b2f7faf7043456ed913abe SHA512 ae21926685648e200c8ad649d7172c70962b17fc447a6c5b0d7979d31a7fd3428f54ed43efb24ee1af1868ef059d7519a886b427b5cd18ce0489d7b3dee3cd04 -EBUILD libcxx-14.0.1.ebuild 6934 BLAKE2B 1a31c9fbee3e7ada37bfde446b90ce0aad7a9b30445a094b2ff52886e16aaedb1a09799f0fdb7aa99e80e4c3ac46e2cc75acd6247f48ad428d59f48d93272415 SHA512 f3b27537fc2f8448f92d15cd3220273a2ecd9dd46efe3b5ab3afd43d78de17ce0f3fa02b082b1943b96894a448fbc296d0b61d495204ef372ef1da8e71ad346d -EBUILD libcxx-15.0.0.9999.ebuild 6893 BLAKE2B d45f14e1ecf594063281916fdd8d63bca9fe910e2c51b7d9ca03d363bb1fe9ec06504af44fc61be1f848094ef76ea752ffe479553e9b990544482c69211bea67 SHA512 814773f6731309b31e46636e6e3ed9b4508ed60154eda14826015bf0da75ff4a2cebdacbb1e1535958d3af1d1f10b1e552126eb6aebed945f3a034d36d1b9e1e +EBUILD libcxx-13.0.1.ebuild 6780 BLAKE2B 575c9089d74bddc871e97147c53f7c298cd1683b989eba6b50601b45693c11d0647e3bd6f70c0a75caaea7ee3fea2f88f1bbad444d7f1785a62175337659e2e3 SHA512 f0ff78e48acca25cb925aee5106fba0d547ab8522ccfd65e2198d4f481f83abbadc415ac3808e45387fc945980f9892fdbda3b6a26d54163cebfa4f12fa17172 +EBUILD libcxx-14.0.1.ebuild 6937 BLAKE2B 04722fb717fcf971cfad08599681619a1f003ef487ba73dded68aa1661a8ad64369f30844379750045e81df0959d5d3b2416e9fbe4b2f7faf7043456ed913abe SHA512 ae21926685648e200c8ad649d7172c70962b17fc447a6c5b0d7979d31a7fd3428f54ed43efb24ee1af1868ef059d7519a886b427b5cd18ce0489d7b3dee3cd04 +EBUILD libcxx-14.0.3.ebuild 6955 BLAKE2B ae137995613e1805f7ebbb2240e7b925ba8571c28a023294134e3609e7bb721839d96680bdff63ee7ae1ab03ca82b3bb19e291b33d16493fb73e490ba170ce79 SHA512 ef1a30de8f760b53f6aacc9f09a7bf69142868b5df59e095b728ca334c7153122be581bd9b0c96c2e36cedbdc6d017eb7ea4caee86c21cdf711aa37d929a2caf +EBUILD libcxx-15.0.0.9999.ebuild 6915 BLAKE2B 57856c3d8585b4661c87e41f73d033d6060ea8d9ee8adf6f0892bd88ed0d4aa5600f71fa59f4f4094103d8ed58a67ced6b245d11aefbc8c8d68b066fabde40c7 SHA512 c373d2052b681063a7939066866a2d52213626f588c022876dc8f36da5d37f0ddb87a31ae93708043d8a95b88a9e8f101e9c2a507a606b82fe507d1adc8f20ae MISC metadata.xml 622 BLAKE2B 33ff3f89844694f08cdcdb12d7098ad937041c31aa6f453fbd887bfebec688bc05552f9a39431daccd2b309a58c2fb75b04a6350410f90beb96f32c14ab3ca95 SHA512 8b3d12f8904c336cc35f31352014ffe247dd4475f143921cdd56e5396590ebd64fb700df64f76e83aece127d8ed39af5f45da086fa75fca841c9a5ad767cbed2 diff --git a/sys-libs/libcxx/libcxx-11.1.0.ebuild b/sys-libs/libcxx/libcxx-11.1.0.ebuild deleted file mode 100644 index a976ee77c535..000000000000 --- a/sys-libs/libcxx/libcxx-11.1.0.ebuild +++ /dev/null @@ -1,211 +0,0 @@ -# Copyright 1999-2022 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="amd64 arm arm64 ~riscv x86 ~x64-macos" -IUSE="+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_PATCHSET=11.1.0-1 -llvm.org_set_globals - -python_check_deps() { - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -pkg_setup() { - # Darwin Prefix builds do not have llvm installed yet, so rely on - # bootstrap-prefix to set the appropriate path vars to LLVM instead - # of using llvm_pkg_setup. - if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then - llvm_pkg_setup - fi - use test && python-any-r1_pkg_setup - - if ! use libcxxabi && ! tc-is-gcc ; then - eerror "To build ${PN} against libsupc++, you have to use gcc. Other" - eerror "compilers are not supported. Please set CC=gcc and CXX=g++" - eerror "and try again." - die - fi -} - -test_compiler() { - $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \ - <<<'int main() { return 0; }' &>/dev/null -} - -src_configure() { - # note: we need to do this before multilib kicks in since it will - # alter the CHOST - local cxxabi cxxabi_incs - if use libcxxabi; then - cxxabi=libcxxabi - cxxabi_incs="${EPREFIX}/usr/include/libcxxabi" - else - local gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)" - cxxabi=libsupc++ - cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}" - fi - - multilib-minimal_src_configure -} - -multilib_src_configure() { - # we want -lgcc_s for unwinder, and for compiler runtime when using - # gcc, clang with gcc runtime (or any unknown compiler) - local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF - if use libunwind; then - # work-around missing -lunwind upstream - extra_libs+=( -lunwind ) - # if we're using libunwind and clang with compiler-rt, we want - # to link to compiler-rt instead of -lgcc_s - if tc-is-clang; then - local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ - ${LDFLAGS} -print-libgcc-file-name) - if [[ ${compiler_rt} == *libclang_rt* ]]; then - want_gcc_s=OFF - want_compiler_rt=ON - extra_libs+=( "${compiler_rt}" ) - fi - fi - elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then - # clang-based darwin prefix disables libunwind useflag during - # bootstrap, because libunwind is not in the prefix yet. - # override the default, though, because clang based libcxx - # should never use gcc_s on Darwin. - want_gcc_s=OFF - # compiler_rt is not available in EPREFIX during bootstrap, - # so we cannot link to it yet anyway, so keep the defaults - # of want_compiler_rt=OFF and extra_libs=() - fi - - # bootstrap: cmake is unhappy if compiler can't link to stdlib - local nolib_flags=( -nodefaultlibs -lc ) - if ! test_compiler; then - if test_compiler "${nolib_flags[@]}"; then - local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" - ewarn "${CXX} seems to lack runtime, trying with ${nolib_flags[*]}" - fi - fi - - local libdir=$(get_libdir) - local mycmakeargs=( - -DLIBCXX_LIBDIR_SUFFIX=${libdir#lib} - -DLIBCXX_ENABLE_SHARED=ON - -DLIBCXX_ENABLE_STATIC=$(usex static-libs) - -DLIBCXX_CXX_ABI=${cxxabi} - -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi_incs} - # we're using our own mechanism for generating linker scripts - -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF - -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) - -DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s} - -DLIBCXX_INCLUDE_TESTS=$(usex test) - -DLIBCXX_USE_COMPILER_RT=${want_compiler_rt} - -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-13.0.0.ebuild b/sys-libs/libcxx/libcxx-13.0.0.ebuild deleted file mode 100644 index 74bdf451ab48..000000000000 --- a/sys-libs/libcxx/libcxx-13.0.0.ebuild +++ /dev/null @@ -1,214 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -CMAKE_ECLASS=cmake -PYTHON_COMPAT=( python3_{8..10} ) -inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs - -DESCRIPTION="New implementation of the C++ standard library, targeting C++11" -HOMEPAGE="https://libcxx.llvm.org/" - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="0" -KEYWORDS="amd64 arm arm64 ~riscv x86 ~x64-macos" -IUSE="+libcxxabi +libunwind static-libs test" -REQUIRED_USE="libunwind? ( libcxxabi )" -RESTRICT="!test? ( test )" - -RDEPEND=" - libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] ) - !libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )" -# llvm-6 for new lit options -# clang-3.9.0 installs necessary target symlinks unconditionally -# which removes the need for MULTILIB_USEDEP -DEPEND="${RDEPEND} - >=sys-devel/llvm-6" -BDEPEND=" - test? ( - >=dev-util/cmake-3.16 - >=sys-devel/clang-3.9.0 - $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') - )" - -DOCS=( CREDITS.TXT ) - -LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} ) -LLVM_PATCHSET=${PV/_/-} -llvm.org_set_globals - -python_check_deps() { - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -pkg_setup() { - # Darwin Prefix builds do not have llvm installed yet, so rely on - # bootstrap-prefix to set the appropriate path vars to LLVM instead - # of using llvm_pkg_setup. - if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then - llvm_pkg_setup - fi - use test && python-any-r1_pkg_setup - - if ! use libcxxabi && ! tc-is-gcc ; then - eerror "To build ${PN} against libsupc++, you have to use gcc. Other" - eerror "compilers are not supported. Please set CC=gcc and CXX=g++" - eerror "and try again." - die - fi -} - -test_compiler() { - $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \ - <<<'int main() { return 0; }' &>/dev/null -} - -src_configure() { - # note: we need to do this before multilib kicks in since it will - # alter the CHOST - local cxxabi cxxabi_incs - if use libcxxabi; then - cxxabi=libcxxabi - cxxabi_incs="${EPREFIX}/usr/include/libcxxabi" - else - local gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)" - cxxabi=libsupc++ - cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}" - fi - - multilib-minimal_src_configure -} - -multilib_src_configure() { - # we want -lgcc_s for unwinder, and for compiler runtime when using - # gcc, clang with gcc runtime (or any unknown compiler) - local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF - if use libunwind; then - # work-around missing -lunwind upstream - extra_libs+=( -lunwind ) - # if we're using libunwind and clang with compiler-rt, we want - # to link to compiler-rt instead of -lgcc_s - if tc-is-clang; then - local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ - ${LDFLAGS} -print-libgcc-file-name) - if [[ ${compiler_rt} == *libclang_rt* ]]; then - want_gcc_s=OFF - want_compiler_rt=ON - extra_libs+=( "${compiler_rt}" ) - fi - fi - elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then - # clang-based darwin prefix disables libunwind useflag during - # bootstrap, because libunwind is not in the prefix yet. - # override the default, though, because clang based libcxx - # should never use gcc_s on Darwin. - want_gcc_s=OFF - # compiler_rt is not available in EPREFIX during bootstrap, - # so we cannot link to it yet anyway, so keep the defaults - # of want_compiler_rt=OFF and extra_libs=() - fi - - # bootstrap: cmake is unhappy if compiler can't link to stdlib - local nolib_flags=( -nodefaultlibs -lc ) - if ! test_compiler; then - if test_compiler "${nolib_flags[@]}"; then - local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" - ewarn "${CXX} seems to lack runtime, trying with ${nolib_flags[*]}" - fi - fi - - local libdir=$(get_libdir) - local mycmakeargs=( - -DLIBCXX_LIBDIR_SUFFIX=${libdir#lib} - -DLIBCXX_ENABLE_SHARED=ON - -DLIBCXX_ENABLE_STATIC=$(usex static-libs) - -DLIBCXX_CXX_ABI=${cxxabi} - -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi_incs} - # we're using our own mechanism for generating linker scripts - -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF - -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) - -DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s} - -DLIBCXX_INCLUDE_TESTS=$(usex test) - -DLIBCXX_USE_COMPILER_RT=${want_compiler_rt} - -DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s} - -DLIBCXX_TARGET_TRIPLE="${CHOST}" - -DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}" - ) - - if use test; then - local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) - [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" - - mycmakeargs+=( - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}" - -DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON - -DPython3_EXECUTABLE="${PYTHON}" - ) - fi - cmake_src_configure -} - -multilib_src_test() { - local -x LIT_PRESERVES_TMP=1 - cmake_build check-cxx -} - -# Usage: deps -gen_ldscript() { - local output_format - output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p') - [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )" - - cat <<-END_LDSCRIPT -/* GNU ld script - Include missing dependencies -*/ -${output_format} -GROUP ( $@ ) -END_LDSCRIPT -} - -gen_static_ldscript() { - local libdir=$(get_libdir) - local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a") - - # Move it first. - mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${libdir}/libc++_static.a" || die - # Generate libc++.a ldscript for inclusion of its dependencies so that - # clang++ -stdlib=libc++ -static works out of the box. - local deps="libc++_static.a ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.a)" - # On Linux/glibc it does not link without libpthread or libdl. It is - # fine on FreeBSD. - use elibc_glibc && deps+=" libpthread.a libdl.a" - - gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.a" || die -} - -gen_shared_ldscript() { - local libdir=$(get_libdir) - # libsupc++ doesn't have a shared version - local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a") - - mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die - local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)" - - gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die -} - -multilib_src_install() { - cmake_src_install - if [[ ${CHOST} != *-darwin* ]] ; then - gen_shared_ldscript - use static-libs && gen_static_ldscript - fi -} - -pkg_postinst() { - elog "This package (${PN}) is mainly intended as a replacement for the C++" - elog "standard library when using clang." - elog "To use it, instead of libstdc++, use:" - elog " clang++ -stdlib=libc++" - elog "to compile your C++ programs." -} diff --git a/sys-libs/libcxx/libcxx-13.0.1.ebuild b/sys-libs/libcxx/libcxx-13.0.1.ebuild index 15d5fa2f2dfc..9720629f1aff 100644 --- a/sys-libs/libcxx/libcxx-13.0.1.ebuild +++ b/sys-libs/libcxx/libcxx-13.0.1.ebuild @@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" -KEYWORDS="amd64 arm arm64 ~riscv ~x86 ~x64-macos" +KEYWORDS="amd64 arm arm64 ~riscv x86 ~x64-macos" IUSE="+libcxxabi +libunwind static-libs test" REQUIRED_USE="libunwind? ( libcxxabi )" RESTRICT="!test? ( test )" diff --git a/sys-libs/libcxx/libcxx-14.0.0.ebuild b/sys-libs/libcxx/libcxx-14.0.0.ebuild deleted file mode 100644 index ddd39dc817b6..000000000000 --- a/sys-libs/libcxx/libcxx-14.0.0.ebuild +++ /dev/null @@ -1,220 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -CMAKE_ECLASS=cmake -PYTHON_COMPAT=( python3_{8..10} ) -inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs - -DESCRIPTION="New implementation of the C++ standard library, targeting C++11" -HOMEPAGE="https://libcxx.llvm.org/" - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos" -IUSE="+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=" - ${PYTHON_DEPS} - test? ( - >=dev-util/cmake-3.16 - >=sys-devel/clang-3.9.0 - sys-devel/gdb[python] - $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') - )" - -LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake ) -LLVM_PATCHSET=${PV/_/-} -llvm.org_set_globals - -python_check_deps() { - use test || return 0 - 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 - python-any-r1_pkg_setup - - if ! use libcxxabi && ! tc-is-gcc ; then - eerror "To build ${PN} against libsupc++, you have to use gcc. Other" - eerror "compilers are not supported. Please set CC=gcc and CXX=g++" - eerror "and try again." - die - fi -} - -test_compiler() { - $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \ - <<<'int main() { return 0; }' &>/dev/null -} - -src_configure() { - # note: we need to do this before multilib kicks in since it will - # alter the CHOST - local cxxabi cxxabi_incs - if use libcxxabi; then - cxxabi=system-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=( - -DPython3_EXECUTABLE="${PYTHON}" - -DLLVM_ENABLE_RUNTIMES=libcxx - -DLLVM_INCLUDE_TESTS=OFF - -DLLVM_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_BENCHMARKS=OFF - -DLIBCXX_INCLUDE_TESTS=$(usex test) - -DLIBCXX_USE_COMPILER_RT=${want_compiler_rt} - -DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s} - -DLIBCXX_TARGET_TRIPLE="${CHOST}" - -DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}" - ) - - if use test; then - local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) - [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" - - mycmakeargs+=( - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}" - -DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON - -DPython3_EXECUTABLE="${PYTHON}" - ) - fi - cmake_src_configure -} - -multilib_src_test() { - local -x LIT_PRESERVES_TMP=1 - cmake_build check-cxx -} - -# Usage: deps -gen_ldscript() { - local output_format - output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p') - [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )" - - cat <<-END_LDSCRIPT -/* GNU ld script - Include missing dependencies -*/ -${output_format} -GROUP ( $@ ) -END_LDSCRIPT -} - -gen_static_ldscript() { - local libdir=$(get_libdir) - local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a") - - # Move it first. - mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${libdir}/libc++_static.a" || die - # Generate libc++.a ldscript for inclusion of its dependencies so that - # clang++ -stdlib=libc++ -static works out of the box. - local deps="libc++_static.a ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.a)" - # On Linux/glibc it does not link without libpthread or libdl. It is - # fine on FreeBSD. - use elibc_glibc && deps+=" libpthread.a libdl.a" - - gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.a" || die -} - -gen_shared_ldscript() { - local libdir=$(get_libdir) - # libsupc++ doesn't have a shared version - local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a") - - mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die - local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)" - - gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die -} - -multilib_src_install() { - cmake_src_install - if [[ ${CHOST} != *-darwin* ]] ; then - gen_shared_ldscript - use static-libs && gen_static_ldscript - fi -} - -pkg_postinst() { - elog "This package (${PN}) is mainly intended as a replacement for the C++" - elog "standard library when using clang." - elog "To use it, instead of libstdc++, use:" - elog " clang++ -stdlib=libc++" - elog "to compile your C++ programs." -} diff --git a/sys-libs/libcxx/libcxx-14.0.1.ebuild b/sys-libs/libcxx/libcxx-14.0.1.ebuild index 60e533aec52c..ddd39dc817b6 100644 --- a/sys-libs/libcxx/libcxx-14.0.1.ebuild +++ b/sys-libs/libcxx/libcxx-14.0.1.ebuild @@ -35,7 +35,7 @@ BDEPEND=" )" LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake ) -LLVM_PATCHSET=9999-1 +LLVM_PATCHSET=${PV/_/-} llvm.org_set_globals python_check_deps() { diff --git a/sys-libs/libcxx/libcxx-14.0.3.ebuild b/sys-libs/libcxx/libcxx-14.0.3.ebuild new file mode 100644 index 000000000000..4d6be5bcc7f2 --- /dev/null +++ b/sys-libs/libcxx/libcxx-14.0.3.ebuild @@ -0,0 +1,228 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CMAKE_ECLASS=cmake +PYTHON_COMPAT=( python3_{8..10} ) +inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs + +DESCRIPTION="New implementation of the C++ standard library, targeting C++11" +HOMEPAGE="https://libcxx.llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos" +IUSE="+libcxxabi +libunwind static-libs test" +RESTRICT="!test? ( test )" +REQUIRED_USE="libunwind? ( libcxxabi )" + +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? ( + ${PYTHON_DEPS} + ) + test? ( + >=dev-util/cmake-3.16 + >=sys-devel/clang-3.9.0 + sys-devel/gdb[python] + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') + ) +" + +LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake ) +LLVM_PATCHSET=${PV} +llvm.org_set_globals + +python_check_deps() { + use test || return 0 + 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 + python-any-r1_pkg_setup + + if ! use libcxxabi && ! tc-is-gcc ; then + eerror "To build ${PN} against libsupc++, you have to use gcc. Other" + eerror "compilers are not supported. Please set CC=gcc and CXX=g++" + eerror "and try again." + die + fi +} + +test_compiler() { + $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \ + <<<'int main() { return 0; }' &>/dev/null +} + +src_configure() { + # note: we need to do this before multilib kicks in since it will + # alter the CHOST + local cxxabi cxxabi_incs + if use libcxxabi; then + cxxabi=system-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=( + -DPython3_EXECUTABLE="${PYTHON}" + -DLLVM_ENABLE_RUNTIMES=libcxx + -DLLVM_INCLUDE_TESTS=OFF + -DLLVM_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_BENCHMARKS=OFF + -DLIBCXX_INCLUDE_TESTS=$(usex test) + -DLIBCXX_USE_COMPILER_RT=${want_compiler_rt} + -DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s} + -DLIBCXX_TARGET_TRIPLE="${CHOST}" + -DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}" + ) + + if use test; then + local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) + [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" + + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}" + -DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON + -DPython3_EXECUTABLE="${PYTHON}" + ) + fi + cmake_src_configure +} + +multilib_src_test() { + local -x LIT_PRESERVES_TMP=1 + cmake_build check-cxx +} + +# Usage: deps +gen_ldscript() { + local output_format + output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p') + [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )" + + cat <<-END_LDSCRIPT +/* GNU ld script + Include missing dependencies +*/ +${output_format} +GROUP ( $@ ) +END_LDSCRIPT +} + +gen_static_ldscript() { + local libdir=$(get_libdir) + local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a") + + # Move it first. + mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${libdir}/libc++_static.a" || die + # Generate libc++.a ldscript for inclusion of its dependencies so that + # clang++ -stdlib=libc++ -static works out of the box. + local deps="libc++_static.a ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.a)" + # On Linux/glibc it does not link without libpthread or libdl. It is + # fine on FreeBSD. + use elibc_glibc && deps+=" libpthread.a libdl.a" + + gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.a" || die +} + +gen_shared_ldscript() { + local libdir=$(get_libdir) + # libsupc++ doesn't have a shared version + local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a") + + mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die + local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)" + + gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die +} + +multilib_src_install() { + cmake_src_install + if [[ ${CHOST} != *-darwin* ]] ; then + gen_shared_ldscript + use static-libs && gen_static_ldscript + fi +} + +pkg_postinst() { + elog "This package (${PN}) is mainly intended as a replacement for the C++" + elog "standard library when using clang." + elog "To use it, instead of libstdc++, use:" + elog " clang++ -stdlib=libc++" + elog "to compile your C++ programs." +} diff --git a/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild index 0562667b5a4b..dcdce79b90b2 100644 --- a/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild +++ b/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild @@ -1,7 +1,7 @@ # Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 CMAKE_ECLASS=cmake PYTHON_COMPAT=( python3_{8..10} ) @@ -14,25 +14,33 @@ LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="" IUSE="+libcxxabi +libunwind static-libs test" -REQUIRED_USE="libunwind? ( libcxxabi )" RESTRICT="!test? ( test )" +REQUIRED_USE="libunwind? ( libcxxabi )" RDEPEND=" - libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] ) - !libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )" + 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" +DEPEND=" + ${RDEPEND} + >=sys-devel/llvm-6 +" BDEPEND=" - ${PYTHON_DEPS} + !test? ( + ${PYTHON_DEPS} + ) test? ( >=dev-util/cmake-3.16 >=sys-devel/clang-3.9.0 sys-devel/gdb[python] $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') - )" + ) +" LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake ) LLVM_PATCHSET=9999-1 diff --git a/sys-libs/libcxxabi/Manifest b/sys-libs/libcxxabi/Manifest index b393215a0153..9104ad483782 100644 --- a/sys-libs/libcxxabi/Manifest +++ b/sys-libs/libcxxabi/Manifest @@ -1,14 +1,10 @@ -DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1 -DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f -DIST llvmorg-14.0.0.tar.gz 158057350 BLAKE2B 7052684c620a5eaf52beeee4591adf58cfec9e64a5ee0b24f3d5849fd4df5b006e2906a839cb806ac69c33fab6013c58589b1d74e4fb8558758edcb7d5065064 SHA512 eb5acf96b5e2c59bd07579f7ebe73018b0dd6e2f2d9a5a3c7986320e88febd837d1084b9e5313a2264310342193044629d228337cc76dd2b8527dc0a8bdda999 DIST llvmorg-14.0.1.tar.gz 158074615 BLAKE2B bf80366461580058494eb101646efcd1a8b55a66818a710c2eb8c649bf88c02fe4552cecf4c1c8637a64e7cee8d644bca31aafc804765ed18f2b5e2975dd6c92 SHA512 0a15aa9cfc978a7b03a1659a2affad65ede66d280f5c12bf0beaaf194cd7bdd57ff438b5f40e64c1e1b88f368de99be349e9d30b544d2bbe4a50f0ebed3307f2 -EBUILD libcxxabi-11.1.0.ebuild 3548 BLAKE2B 322a3306a33c720fd242b6dc69c233562f24c373c76b13d7a41332b26e668b7742c33550fd41fd3f2f0965390ed0cc3185b05d36908e434067f94f353b27e2e3 SHA512 40b2755e57c13a6473a53da14c257d73a4e9d13ea4ed08d23957d15892d3a702f705d294059f0dc13320930214da7793037cd94715f64ebfebbfc2da8f23321a +DIST llvmorg-14.0.3.tar.gz 158092596 BLAKE2B ef901df510ec6bc1242595ec330e9c9ee76e696b077d67a8d62b53608c3d18b2f2d7ea3150864e13d9b37a8ce899ebca946ebe72cbc4538700176e20859ddec2 SHA512 511e93fd9b1c414c38fe9e2649679ac0b16cb04f7f7838569d187b04c542a185e364d6db73e96465026e3b2533649eb75ac95507d12514af32b28bdfb66f2646 EBUILD libcxxabi-12.0.1.ebuild 3532 BLAKE2B 87f97e6d1d5c222b1a421bc7ee0fb1e9f0156c5f34888456dc265356fd2ae5e1b22343cd8970acf2820852f9be12d48006dee1d9493972b5761781156393735d SHA512 6369fbc69360eb0bb25e49d4fc554b897a86c7ac081c99cdc97bf61ddfa6cfe75c297afb91fa3c8fb6f24db67cc326a5ee3de74e10fdab1702d1894b3a5ba8a3 -EBUILD libcxxabi-13.0.0.ebuild 3605 BLAKE2B 7bdc8ecd9c35cdc247f08f9d5687d7362013be7c9c5afe006817cb5a384d4dd272bc686c6fe2ddf2a9bde5be8d1fa185ae60da940fded833a356f76e6105feb8 SHA512 69c4564fc68e3037620de0ce0cda29093bff9eb919f48f4760558edd1031c0d198991e6346774244701679aa0619d6afd814ec80d0d66265418408416621d9d0 -EBUILD libcxxabi-13.0.1.ebuild 3606 BLAKE2B e81a4b8b3f179d70f5e54b311c6298c427505945ba53ae7f9e42c0113e7dbd3e5178ff1e9f0bd2ba27e491ca252efdcc337e572cc722d27912231ca3eee45687 SHA512 36cca18b3f083205d486fe07d78ce8d0cc79b1af59f8289731d5615591fe98d67ae3f48012d8a19c2e87a3a38c7118feaed44a60d132323b90e376c76d0a14f2 -EBUILD libcxxabi-14.0.0.ebuild 3500 BLAKE2B ae2784bce2de92f63f5a0c30a74738ec77e80c69b59d976deca43442a70fa3b0c82eb1d3ea0ece17e317806c8a3f5a88729ed4fe8e7eb4af1602874d848e9400 SHA512 80b46ae415783bb1b64613d144530d0dda03114fb732ccbe3cce10996ca29fb11418f9c06912f64ba4657ff123ebe22d94acadf0628e6f19cb25a42b80b752b7 +EBUILD libcxxabi-13.0.1.ebuild 3605 BLAKE2B 7bdc8ecd9c35cdc247f08f9d5687d7362013be7c9c5afe006817cb5a384d4dd272bc686c6fe2ddf2a9bde5be8d1fa185ae60da940fded833a356f76e6105feb8 SHA512 69c4564fc68e3037620de0ce0cda29093bff9eb919f48f4760558edd1031c0d198991e6346774244701679aa0619d6afd814ec80d0d66265418408416621d9d0 EBUILD libcxxabi-14.0.1.ebuild 3500 BLAKE2B ae2784bce2de92f63f5a0c30a74738ec77e80c69b59d976deca43442a70fa3b0c82eb1d3ea0ece17e317806c8a3f5a88729ed4fe8e7eb4af1602874d848e9400 SHA512 80b46ae415783bb1b64613d144530d0dda03114fb732ccbe3cce10996ca29fb11418f9c06912f64ba4657ff123ebe22d94acadf0628e6f19cb25a42b80b752b7 -EBUILD libcxxabi-15.0.0.9999.ebuild 3459 BLAKE2B e154cf8ad9a7055fb941d4b2cdc78ce87286f3ae648f37170606775c791ff2b69b5b421a9cc716fa12aa86ec9b0a48643e78aab0a7b372d4f79cf362bc4b9a8b SHA512 79b43fd3cecec2393431df7d9a6720a4cff5ef24977b579dc815120262ba2a860df06ceb7e93f9c8df578fd5737a02abad4c737774cc7b9d4983567aa9ef6b3e +EBUILD libcxxabi-14.0.3.ebuild 3519 BLAKE2B a697541ba82ecf955b816ee75be0f1607cbe37d7cb8372aca749b0c42f6e3a247591cace54ab010de166a1167ba5448c5e3ae1f8d585a8b6080fa0adaaedd243 SHA512 0f296a7b432f6e5a657ad54b5062b8aeb9a814da36021a4b5a0b7455f3d5c2fd69dc854203a388d016bff89e063426fea7b81f6b5d0f57bfa1f09cf9d48c3665 +EBUILD libcxxabi-15.0.0.9999.ebuild 3478 BLAKE2B 4a9508f17dbf7f1587915b565d9a572b20762c75dd1d89472df2ff4c01cb06b02c9d48bfa0a636b187d943fce1cfe3c826445ebd34657dcbe3b2314287fafc2d SHA512 79d6e8b143d1d4f8e08634eea94c5c02f175aca3f330ef008a95377dc03dc33fe8a9c36a77e7e636f74a365954020a57853a241b52ee246681703ae61f4bcadb MISC metadata.xml 351 BLAKE2B 9071a2cbb0eee25e4396bd720f39cd09b011e70fa4a2a87bab63801fa54d307304219a6bddc9b6fb8d0e3b32b07ea09d0419b8ea74af25d601505c3b577c656a SHA512 096b95417b8cdaeed177108ac27e54cd44c4488e8dd3b6ca0aa07f2c70fc59d42343c926d44adf54349e3f9791b9151293383e471df1282678a3c60031184d13 diff --git a/sys-libs/libcxxabi/libcxxabi-11.1.0.ebuild b/sys-libs/libcxxabi/libcxxabi-11.1.0.ebuild deleted file mode 100644 index 60fed4fd01c8..000000000000 --- a/sys-libs/libcxxabi/libcxxabi-11.1.0.ebuild +++ /dev/null @@ -1,123 +0,0 @@ -# Copyright 1999-2022 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="amd64 arm arm64 ~riscv x86 ~x64-macos" -IUSE="+libunwind static-libs test" -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-13.0.0.ebuild b/sys-libs/libcxxabi/libcxxabi-13.0.0.ebuild deleted file mode 100644 index 690b4d4e2681..000000000000 --- a/sys-libs/libcxxabi/libcxxabi-13.0.0.ebuild +++ /dev/null @@ -1,125 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -CMAKE_ECLASS=cmake -PYTHON_COMPAT=( python3_{8..10} ) -inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs - -DESCRIPTION="Low level support for a standard C++ library" -HOMEPAGE="https://libcxxabi.llvm.org/" - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="0" -KEYWORDS="amd64 arm arm64 ~riscv x86 ~x64-macos" -IUSE="+libunwind static-libs test" -RESTRICT="!test? ( test )" - -RDEPEND=" - libunwind? ( - || ( - >=sys-libs/libunwind-1.0.1-r1[static-libs?,${MULTILIB_USEDEP}] - >=sys-libs/llvm-libunwind-3.9.0-r1[static-libs?,${MULTILIB_USEDEP}] - ) - )" -# llvm-6 for new lit options -DEPEND="${RDEPEND} - >=sys-devel/llvm-6" -BDEPEND=" - test? ( >=sys-devel/clang-3.9.0 - $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') - )" - -LLVM_COMPONENTS=( libcxx{abi,} llvm/cmake ) -llvm.org_set_globals - -python_check_deps() { - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -pkg_setup() { - # darwin prefix builds do not have llvm installed yet, so rely on bootstrap-prefix - # to set the appropriate path vars to LLVM instead of using llvm_pkg_setup. - if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then - llvm_pkg_setup - fi - use test && python-any-r1_pkg_setup -} - -multilib_src_configure() { - # we need a configured libc++ for __config_site - wrap_libcxx cmake_src_configure - wrap_libcxx cmake_build generate-cxx-headers - - # link against compiler-rt instead of libgcc if we are using clang with libunwind - local want_compiler_rt=OFF - if use libunwind && tc-is-clang; then - local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ - ${LDFLAGS} -print-libgcc-file-name) - if [[ ${compiler_rt} == *libclang_rt* ]]; then - want_compiler_rt=ON - fi - fi - - local libdir=$(get_libdir) - local mycmakeargs=( - -DLIBCXXABI_LIBDIR_SUFFIX=${libdir#lib} - -DLIBCXXABI_ENABLE_SHARED=ON - -DLIBCXXABI_ENABLE_STATIC=$(usex static-libs) - -DLIBCXXABI_USE_LLVM_UNWINDER=$(usex libunwind) - -DLIBCXXABI_INCLUDE_TESTS=$(usex test) - -DLIBCXXABI_USE_COMPILER_RT=${want_compiler_rt} - - -DLIBCXXABI_LIBCXX_INCLUDES="${BUILD_DIR}"/libcxx/include/c++/v1 - # upstream is omitting standard search path for this - # probably because gcc & clang are bundling their own unwind.h - -DLIBCXXABI_LIBUNWIND_INCLUDES="${EPREFIX}"/usr/include - -DLIBCXXABI_TARGET_TRIPLE="${CHOST}" - ) - if use test; then - local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) - [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" - - mycmakeargs+=( - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}" - -DPython3_EXECUTABLE="${PYTHON}" - ) - fi - cmake_src_configure -} - -wrap_libcxx() { - local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)" - local CMAKE_USE_DIR=${WORKDIR}/libcxx - local BUILD_DIR=${BUILD_DIR}/libcxx - local mycmakeargs=( - -DLIBCXX_LIBDIR_SUFFIX= - -DLIBCXX_ENABLE_SHARED=OFF - -DLIBCXX_ENABLE_STATIC=ON - -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF - -DLIBCXX_CXX_ABI=libcxxabi - -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${S}"/include - -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF - -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) - -DLIBCXX_HAS_GCC_S_LIB=OFF - -DLIBCXX_INCLUDE_TESTS=OFF - -DLIBCXX_TARGET_TRIPLE="${CHOST}" - ) - - "${@}" -} - -multilib_src_test() { - wrap_libcxx cmake_src_compile - mv "${BUILD_DIR}"/libcxx/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die - - local -x LIT_PRESERVES_TMP=1 - cmake_build check-cxxabi -} - -multilib_src_install_all() { - insinto /usr/include/libcxxabi - doins -r include/. -} diff --git a/sys-libs/libcxxabi/libcxxabi-13.0.1.ebuild b/sys-libs/libcxxabi/libcxxabi-13.0.1.ebuild index 804671c1526e..690b4d4e2681 100644 --- a/sys-libs/libcxxabi/libcxxabi-13.0.1.ebuild +++ b/sys-libs/libcxxabi/libcxxabi-13.0.1.ebuild @@ -12,7 +12,7 @@ HOMEPAGE="https://libcxxabi.llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" -KEYWORDS="amd64 arm arm64 ~riscv ~x86 ~x64-macos" +KEYWORDS="amd64 arm arm64 ~riscv x86 ~x64-macos" IUSE="+libunwind static-libs test" RESTRICT="!test? ( test )" diff --git a/sys-libs/libcxxabi/libcxxabi-14.0.0.ebuild b/sys-libs/libcxxabi/libcxxabi-14.0.0.ebuild deleted file mode 100644 index 1598ec8868a1..000000000000 --- a/sys-libs/libcxxabi/libcxxabi-14.0.0.ebuild +++ /dev/null @@ -1,124 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -CMAKE_ECLASS=cmake -PYTHON_COMPAT=( python3_{8..10} ) -inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs - -DESCRIPTION="Low level support for a standard C++ library" -HOMEPAGE="https://libcxxabi.llvm.org/" - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos" -IUSE="+libunwind static-libs test" -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=" - ${PYTHON_DEPS} - test? ( - >=sys-devel/clang-3.9.0 - $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') - )" - -LLVM_COMPONENTS=( runtimes libcxx{abi,} llvm/cmake cmake ) -LLVM_TEST_COMPONENTS=( llvm/utils/llvm-lit ) -llvm.org_set_globals - -python_check_deps() { - use test || return 0 - 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 - 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=( - -DPython3_EXECUTABLE="${PYTHON}" - -DLLVM_ENABLE_RUNTIMES="libcxxabi;libcxx" - -DLLVM_INCLUDE_TESTS=OFF - -DLLVM_LIBDIR_SUFFIX=${libdir#lib} - -DLIBCXXABI_ENABLE_SHARED=ON - -DLIBCXXABI_ENABLE_STATIC=$(usex static-libs) - -DLIBCXXABI_INCLUDE_TESTS=$(usex test) - -DLIBCXXABI_USE_LLVM_UNWINDER=$(usex libunwind) - -DLIBCXXABI_USE_COMPILER_RT=${want_compiler_rt} - - # upstream is omitting standard search path for this - # probably because gcc & clang are bundling their own unwind.h - -DLIBCXXABI_LIBUNWIND_INCLUDES="${EPREFIX}"/usr/include - -DLIBCXXABI_TARGET_TRIPLE="${CHOST}" - - -DLIBCXX_LIBDIR_SUFFIX= - -DLIBCXX_ENABLE_SHARED=ON - -DLIBCXX_ENABLE_STATIC=OFF - -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF - -DLIBCXX_CXX_ABI=libcxxabi - -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${WORKDIR}"/libcxxabi/include - -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF - -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) - -DLIBCXX_HAS_GCC_S_LIB=OFF - -DLIBCXX_INCLUDE_BENCHMARKS=OFF - -DLIBCXX_INCLUDE_TESTS=OFF - -DLIBCXX_TARGET_TRIPLE="${CHOST}" - ) - 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_compile() { - cmake_build cxxabi -} - -multilib_src_test() { - local -x LIT_PRESERVES_TMP=1 - cmake_build check-cxxabi -} - -multilib_src_install() { - DESTDIR="${D}" cmake_build install-cxxabi -} - -multilib_src_install_all() { - insinto /usr/include/libcxxabi - doins -r "${WORKDIR}"/libcxxabi/include/. -} diff --git a/sys-libs/libcxxabi/libcxxabi-14.0.3.ebuild b/sys-libs/libcxxabi/libcxxabi-14.0.3.ebuild new file mode 100644 index 000000000000..7d864cba3621 --- /dev/null +++ b/sys-libs/libcxxabi/libcxxabi-14.0.3.ebuild @@ -0,0 +1,130 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CMAKE_ECLASS=cmake +PYTHON_COMPAT=( python3_{8..10} ) +inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs + +DESCRIPTION="Low level support for a standard C++ library" +HOMEPAGE="https://libcxxabi.llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos" +IUSE="+libunwind static-libs test" +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? ( + ${PYTHON_DEPS} + ) + test? ( + >=sys-devel/clang-3.9.0 + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') + ) +" + +LLVM_COMPONENTS=( runtimes libcxx{abi,} llvm/cmake cmake ) +LLVM_TEST_COMPONENTS=( llvm/utils/llvm-lit ) +llvm.org_set_globals + +python_check_deps() { + use test || return 0 + 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 + 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=( + -DPython3_EXECUTABLE="${PYTHON}" + -DLLVM_ENABLE_RUNTIMES="libcxxabi;libcxx" + -DLLVM_INCLUDE_TESTS=OFF + -DLLVM_LIBDIR_SUFFIX=${libdir#lib} + -DLIBCXXABI_ENABLE_SHARED=ON + -DLIBCXXABI_ENABLE_STATIC=$(usex static-libs) + -DLIBCXXABI_INCLUDE_TESTS=$(usex test) + -DLIBCXXABI_USE_LLVM_UNWINDER=$(usex libunwind) + -DLIBCXXABI_USE_COMPILER_RT=${want_compiler_rt} + + # upstream is omitting standard search path for this + # probably because gcc & clang are bundling their own unwind.h + -DLIBCXXABI_LIBUNWIND_INCLUDES="${EPREFIX}"/usr/include + -DLIBCXXABI_TARGET_TRIPLE="${CHOST}" + + -DLIBCXX_LIBDIR_SUFFIX= + -DLIBCXX_ENABLE_SHARED=ON + -DLIBCXX_ENABLE_STATIC=OFF + -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF + -DLIBCXX_CXX_ABI=libcxxabi + -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${WORKDIR}"/libcxxabi/include + -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF + -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) + -DLIBCXX_HAS_GCC_S_LIB=OFF + -DLIBCXX_INCLUDE_BENCHMARKS=OFF + -DLIBCXX_INCLUDE_TESTS=OFF + -DLIBCXX_TARGET_TRIPLE="${CHOST}" + ) + 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_compile() { + cmake_build cxxabi +} + +multilib_src_test() { + local -x LIT_PRESERVES_TMP=1 + cmake_build check-cxxabi +} + +multilib_src_install() { + DESTDIR="${D}" cmake_build install-cxxabi +} + +multilib_src_install_all() { + insinto /usr/include/libcxxabi + doins -r "${WORKDIR}"/libcxxabi/include/. +} diff --git a/sys-libs/libcxxabi/libcxxabi-15.0.0.9999.ebuild b/sys-libs/libcxxabi/libcxxabi-15.0.0.9999.ebuild index 577953191e5d..15858fc7fc75 100644 --- a/sys-libs/libcxxabi/libcxxabi-15.0.0.9999.ebuild +++ b/sys-libs/libcxxabi/libcxxabi-15.0.0.9999.ebuild @@ -1,7 +1,7 @@ # Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 CMAKE_ECLASS=cmake PYTHON_COMPAT=( python3_{8..10} ) @@ -22,16 +22,22 @@ RDEPEND=" >=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" +DEPEND=" + ${RDEPEND} + >=sys-devel/llvm-6 +" BDEPEND=" - ${PYTHON_DEPS} + !test? ( + ${PYTHON_DEPS} + ) test? ( >=sys-devel/clang-3.9.0 $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') - )" + ) +" LLVM_COMPONENTS=( runtimes libcxx{abi,} llvm/cmake cmake ) LLVM_TEST_COMPONENTS=( llvm/utils/llvm-lit ) diff --git a/sys-libs/libhugetlbfs/Manifest b/sys-libs/libhugetlbfs/Manifest index 4fb4b9fbcbe5..e1d8b6a02139 100644 --- a/sys-libs/libhugetlbfs/Manifest +++ b/sys-libs/libhugetlbfs/Manifest @@ -2,5 +2,5 @@ AUX libhugetlbfs-2.23-allow-building-against-glibc-2.34.patch 10055 BLAKE2B 38b3 AUX libhugetlbfs-2.23-uncompressed-man-pages.patch 1515 BLAKE2B b43415a3059f1071f0fc04ec834cd51d87a8bd93f2df6b428a33296b1b55745f23861415a463d5899b12699c5f4a3e5bdd837a8ec2894d1fc89039924330d77d SHA512 ea3ef19a688866676315af59422233681a41338fd049cfa50ed91f660f0baf1950ba056b9fcd540e6694b8ec348c0d1fbb3aa6b8c1840e22a77634e26555c9bc AUX libhugetlbfs-2.6-fixup-testsuite.patch 1231 BLAKE2B e49ac448b4ac17a6ce9c32543e3ad7391bc8525e147d7a5100ef7ae15e4b0cf48b58ff1fe62d9a0fa61f142b7b8366228974c6628999edaa61d96114371bc09d SHA512 af9ee541ac4a30260e17baab1616cee13fdcc679ae3fdceed29ca6282c12a6b60d24b04bb61e3aa5f42092e017eb3bae59a56fd2b03954e40803f9f6f2cc4f80 DIST libhugetlbfs-2.23.tar.gz 175459 BLAKE2B f469ff9a65364e9f0e04c11c8010c958855ebd4d50e1dd719576cda7c280586623404304be64a794907a5fb1d97bd9c0620a91d7a2492577e04fa40ff432b4c7 SHA512 fc9a7d59bcda9d3ca9c9e43a3a348f989c9cbdbbb77f21a43a06e71eacd05bbe5a7b2b51e20ae9ea00da9f1c4d1130da529bbfb702e8c9d11cab6efadd3dc168 -EBUILD libhugetlbfs-2.23.ebuild 4291 BLAKE2B dd55d833b540fce08d40672ce2ec9f43dd3e94559b60d03835240818aa6a0b55d20a2e6c58de9d49c95d820e5044aa883350143276c132440afd2f2774849d32 SHA512 c556504423ad39891bdc4622bd93a0b3d08ccf1603f5292419f2c91a961d372352e4cd519205c2b31dda3e12232764128f58d78b829b3ab0342c8a27a7c5d338 +EBUILD libhugetlbfs-2.23.ebuild 4291 BLAKE2B 7fd9c794f8c8051db041246397bb26cbb6d1501f23e21837442164ef1dfdf705dbd41ec26455e305a6515fd5280c95fbe04a5888637220e36b6f349f761a09c8 SHA512 b40f615e1cde2caa08bcbb5f10a36f5031f132abf5145725524fe76051766b5f27dbe81d18dcdadb6c010356afaa6ba95f9b42a38844ee13cd477313b0de94d4 MISC metadata.xml 397 BLAKE2B 7b521a2822a494f6a2b7a85420a38edd396ca0e3856faeb682378c48eda3d1932788af7ac7bbb4e07cae37b2119afd386f75c5dc0ab1f69c8e4630be16cc549e SHA512 96065769a7893c1e05bc3ab9396eb01a60a293dac9b090419087a9bb5a152b2f291a950e8217ffcb7bed34262a5369119da469e22cc3171fdc0ad2b87ae6d698 diff --git a/sys-libs/libhugetlbfs/libhugetlbfs-2.23.ebuild b/sys-libs/libhugetlbfs/libhugetlbfs-2.23.ebuild index b20145724f82..f31724207108 100644 --- a/sys-libs/libhugetlbfs/libhugetlbfs-2.23.ebuild +++ b/sys-libs/libhugetlbfs/libhugetlbfs-2.23.ebuild @@ -3,7 +3,7 @@ EAPI=7 -PYTHON_COMPAT=( python3_{7,8,9} ) +PYTHON_COMPAT=( python3_{8..10} ) inherit toolchain-funcs python-any-r1 @@ -49,17 +49,6 @@ src_prepare() { [[ -f version ]] || echo "${PV}" > version } -src_compile() { - tc-export AR - emake CC="$(tc-getCC)" libs tools -} - -src_install() { - default - - use static-libs || rm -f "${ED}"/usr/$(get_libdir)/*.a -} - src_test_alloc_one() { hugeadm="${1}" sign="${2}" @@ -169,3 +158,14 @@ src_test() { return ${rc} } + +src_compile() { + tc-export AR + emake CC="$(tc-getCC)" libs tools +} + +src_install() { + default + + use static-libs || rm -f "${ED}"/usr/$(get_libdir)/*.a +} diff --git a/sys-libs/libomp/Manifest b/sys-libs/libomp/Manifest index e3c90d151c7f..d2d91badefba 100644 --- a/sys-libs/libomp/Manifest +++ b/sys-libs/libomp/Manifest @@ -1,17 +1,12 @@ DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249 -DIST llvm-gentoo-patchset-13.0.0-r2.tar.xz 6500 BLAKE2B 0ce8d0c4a5508f70c8ec49dbc03dfbfc6371ac224bc5dfc9a39f71def0f574405a06df5666baf6159afafd83a8028c5ea6cb369f22a06f927f3ce6795e96994d SHA512 800d44b382c03b673b43965d80d6ed1b7e8e4ced8d066183b9b8df722b2cc002a6aa54092e600f0d77611be581d312f8886ce8af25b23ff818115a209ec21312 DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01 -DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1 -DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f -DIST llvmorg-14.0.0.tar.gz 158057350 BLAKE2B 7052684c620a5eaf52beeee4591adf58cfec9e64a5ee0b24f3d5849fd4df5b006e2906a839cb806ac69c33fab6013c58589b1d74e4fb8558758edcb7d5065064 SHA512 eb5acf96b5e2c59bd07579f7ebe73018b0dd6e2f2d9a5a3c7986320e88febd837d1084b9e5313a2264310342193044629d228337cc76dd2b8527dc0a8bdda999 DIST llvmorg-14.0.1.tar.gz 158074615 BLAKE2B bf80366461580058494eb101646efcd1a8b55a66818a710c2eb8c649bf88c02fe4552cecf4c1c8637a64e7cee8d644bca31aafc804765ed18f2b5e2975dd6c92 SHA512 0a15aa9cfc978a7b03a1659a2affad65ede66d280f5c12bf0beaaf194cd7bdd57ff438b5f40e64c1e1b88f368de99be349e9d30b544d2bbe4a50f0ebed3307f2 -EBUILD libomp-11.1.0.ebuild 2888 BLAKE2B fa9005fa8b8d26e264ac7555ab755fe0402c93c82205dbcc1802ac0ae54b245f33ebef8aa7d17c125652acd08f59bcd1efaca169e28fd5e5fcf266c4cbf0d1ba SHA512 24e44ea53c7b6238f3de78088076b3c4d426cc6039dbac5c2bbb1694f9b1e4088b7bf8ada2ad51eca525c4f6fff772178511fe07f449c200e95206c828a2095a +DIST llvmorg-14.0.3.tar.gz 158092596 BLAKE2B ef901df510ec6bc1242595ec330e9c9ee76e696b077d67a8d62b53608c3d18b2f2d7ea3150864e13d9b37a8ce899ebca946ebe72cbc4538700176e20859ddec2 SHA512 511e93fd9b1c414c38fe9e2649679ac0b16cb04f7f7838569d187b04c542a185e364d6db73e96465026e3b2533649eb75ac95507d12514af32b28bdfb66f2646 EBUILD libomp-12.0.1.ebuild 2955 BLAKE2B 731a206c38d7c982b1b746517061de539c64e1d3bd5afd24c2e1d441bbcd7e91d80e6b20920d64eabaf0c3de85d5e269ef59c17ebdbe30c8808f1deeff495b88 SHA512 0d27c7374062a9831edcadbbea0787998184fca979637da1bab9b8848b3c7165e5e558fc9ef388a1f8d9e20e913b61e7fd19c3e9f2ecf885990a041a0f436156 -EBUILD libomp-13.0.0-r2.ebuild 3808 BLAKE2B a24b4436e0547b1f7d7becb8866288c19da6e345f0fd8b5ffb6c016634f3891833de79864bc85f0e310c48ab1eada3d3d59cc7658ef8c96995fd8340a0a1b179 SHA512 decaeeda70320eee804dd6d2320e464d3d4b744c4c5a8ee9bf9a191e80f72ca1e97a1251d0ef69a6608740da2706dc1eea8a379b1e3b0ef06858dc043a2529c7 -EBUILD libomp-13.0.1.ebuild 3837 BLAKE2B c18ab3b04b0fe3d04d28e71be8f53c4b3f0b8aca9d5632cbca832d4e42f78d8d7c145ad70f01eef5ce6b77b0f7ffe9d0821b39cc8f60c9690cceb5c44bd7a277 SHA512 9ce2f9f1f9c9a847945c72ff3a8f47ec5743d2e5cdc9f40dcdd66493450a6d30d7be39cd1e290793317c7395a8342d3380a9c05dcd43d7adb0a4df94f957c4be -EBUILD libomp-14.0.0.ebuild 3817 BLAKE2B 7f5c80c1a8e6995b58576911a3ab73a3dd1b66338889ab5b6396589aae574aae1cd85529ff9a5baa1dd565f2c260964445062a7575e3bfb8ff74b8f1b92a57e7 SHA512 2bc2897f6e6863d9a4d1e18d09b253d918fe8353e2af094995bef4d86880d1b85377d882782c6e84223ca19ebe93108f380ac602e3b6680d2927f6874bb3e1b5 +EBUILD libomp-13.0.1.ebuild 3836 BLAKE2B bfecc3ecb5928ba0c4f1e79baf7108705b33b654631ebc05a52bebab494eebefe6ec1f7403170f5e0b541942618a88ebad52f5ba80bf185a2544170df3c84bcc SHA512 97a257c4e40440c83dc72d76f67d5b4b49ea74b138e541163c3bc938a50052fae3ae988c60a290c1b0051efc623f9be464c1801b5b7569a8cbb446724fe8267b EBUILD libomp-14.0.1.ebuild 3817 BLAKE2B 7f5c80c1a8e6995b58576911a3ab73a3dd1b66338889ab5b6396589aae574aae1cd85529ff9a5baa1dd565f2c260964445062a7575e3bfb8ff74b8f1b92a57e7 SHA512 2bc2897f6e6863d9a4d1e18d09b253d918fe8353e2af094995bef4d86880d1b85377d882782c6e84223ca19ebe93108f380ac602e3b6680d2927f6874bb3e1b5 -EBUILD libomp-15.0.0.9999.ebuild 3751 BLAKE2B 849748f2a27549b150afbff92be3279dbf67c8d8e3d7fa1460c9693bc8ae9e684d737e6a1ae79ee4a351759b6c1523ebaab7a17889e58c7328180344492572c8 SHA512 bb4a8c5512249ad1553b0c849882865c98482859eab81f17702283b27253fdc079ee32864af617817c1e13e717b78df39814b4d7b48db0b208e2d8b55e18e216 +EBUILD libomp-14.0.3.ebuild 3828 BLAKE2B 0887d1ac8543821e06bb09a1c3b3331c7d727fc9101232893f19270a7bdc0092c9be0c85e5a9976450e7c131fff8918346515fbf880c700ebd113a5c399948a8 SHA512 d82f5e9129e7515cbf2d836519de4b7ddecc14ed9948584f3a49ea58d6dbd27a0b90a88d5329a9bc568e4063daf0c9ce8755c6c9ddcadad1a56a1f7142511721 +EBUILD libomp-15.0.0.9999.ebuild 3762 BLAKE2B ec449c1019da76ad9d1835e9a86f776e97a83740da240a2e98221d3f5d5eff7911b894584bb37da8fe2375670d5a6a67e41a5523f957694cd3e138543b5ba925 SHA512 643d3c43a9fba97ea44b94d3edd07ffbb487aa8260856fed8a158646873a7e45797c11aed020b224642db7e90da0fb705cd10f69fd0da5139d42b9560b9f2542 MISC metadata.xml 826 BLAKE2B 94bad2982b52156c2755f4fcdc534648e30b45b514f486028d7beba9af050c3c6847a33fdc11cbf26195794b8e8a7cbeb4e110b8b4398f784c7b7c3edeea02ca SHA512 60de2890b1edc3d60feb5b04dbce840b17e0812ff301f00fd7c12242d3b81cdb3b8ad7afeb3624d70526a93cf8285c96a65b5fcd0384dd093b722c1ae645fa2f diff --git a/sys-libs/libomp/libomp-11.1.0.ebuild b/sys-libs/libomp/libomp-11.1.0.ebuild deleted file mode 100644 index 5c983795cfff..000000000000 --- a/sys-libs/libomp/libomp-11.1.0.ebuild +++ /dev/null @@ -1,105 +0,0 @@ -# Copyright 1999-2022 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="amd64 arm arm64 ppc64 ~riscv x86 ~amd64-linux ~x64-macos" -IUSE="cuda hwloc 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/libomp/libomp-13.0.0-r2.ebuild b/sys-libs/libomp/libomp-13.0.0-r2.ebuild deleted file mode 100644 index 725187193ff6..000000000000 --- a/sys-libs/libomp/libomp-13.0.0-r2.ebuild +++ /dev/null @@ -1,131 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -CMAKE_ECLASS=cmake -PYTHON_COMPAT=( python3_{8..10} ) -inherit cmake-multilib linux-info llvm 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="amd64 arm arm64 ~ppc ppc64 ~riscv x86 ~amd64-linux ~x64-macos" -IUSE="cuda debug hwloc offload ompt test - llvm_targets_AMDGPU llvm_targets_NVPTX" -# CUDA works only with the x86_64 ABI -REQUIRED_USE=" - cuda? ( llvm_targets_NVPTX ) - offload? ( cuda? ( abi_x86_64 ) )" -RESTRICT="!test? ( test )" - -RDEPEND=" - hwloc? ( >=sys-apps/hwloc-2.5:0=[${MULTILIB_USEDEP}] ) - offload? ( - virtual/libelf:=[${MULTILIB_USEDEP}] - dev-libs/libffi:=[${MULTILIB_USEDEP}] - ~sys-devel/llvm-${PV}[${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? ( - llvm_targets_AMDGPU? ( sys-devel/clang ) - llvm_targets_NVPTX? ( sys-devel/clang ) - virtual/pkgconfig - ) - test? ( - $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') - sys-devel/clang - )" - -LLVM_COMPONENTS=( openmp llvm/include ) -LLVM_PATCHSET=${PV/_/-}-r2 -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 offload && LLVM_MAX_SLOT=${PV%%.*} llvm_pkg_setup - use test && python-any-r1_pkg_setup -} - -multilib_src_configure() { - # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" - - 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 - ) - if use offload && has "${CHOST%%-*}" aarch64 powerpc64le x86_64; then - mycmakeargs+=( - -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=$(usex !cuda) - -DLIBOMPTARGET_BUILD_AMDGCN_BCLIB=$(usex llvm_targets_AMDGPU) - -DLIBOMPTARGET_BUILD_NVPTX_BCLIB=$(usex llvm_targets_NVPTX) - # a cheap hack to force clang - -DLIBOMPTARGET_NVPTX_CUDA_COMPILER="$(type -P "${CHOST}-clang")" - # upstream defaults to looking for it in clang dir - # this fails when ccache is being used - -DLIBOMPTARGET_NVPTX_BC_LINKER="$(type -P llvm-link)" - ) - else - mycmakeargs+=( - -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=ON - -DLIBOMPTARGET_BUILD_AMDGCN_BCLIB=OFF - -DLIBOMPTARGET_BUILD_NVPTX_BCLIB=OFF - ) - fi - use test && mycmakeargs+=( - # this project does not use standard LLVM cmake macros - -DOPENMP_LLVM_LIT_EXECUTABLE="${EPREFIX}/usr/bin/lit" - -DOPENMP_LIT_ARGS="$(get_lit_flags)" - - -DOPENMP_TEST_C_COMPILER="$(type -P "${CHOST}-clang")" - -DOPENMP_TEST_CXX_COMPILER="$(type -P "${CHOST}-clang++")" - ) - addpredict /dev/nvidiactl - cmake_src_configure -} - -multilib_src_test() { - # respect TMPDIR! - local -x LIT_PRESERVES_TMP=1 - - cmake_build check-libomp -} diff --git a/sys-libs/libomp/libomp-13.0.1.ebuild b/sys-libs/libomp/libomp-13.0.1.ebuild index 082d9ba15a2b..f9268fab32f5 100644 --- a/sys-libs/libomp/libomp-13.0.1.ebuild +++ b/sys-libs/libomp/libomp-13.0.1.ebuild @@ -12,7 +12,7 @@ HOMEPAGE="https://openmp.llvm.org" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" -KEYWORDS="amd64 arm arm64 ~ppc ppc64 ~riscv ~x86 ~amd64-linux ~x64-macos" +KEYWORDS="amd64 arm arm64 ~ppc ppc64 ~riscv x86 ~amd64-linux ~x64-macos" IUSE="cuda debug hwloc offload ompt test llvm_targets_AMDGPU llvm_targets_NVPTX" # CUDA works only with the x86_64 ABI diff --git a/sys-libs/libomp/libomp-14.0.0.ebuild b/sys-libs/libomp/libomp-14.0.0.ebuild deleted file mode 100644 index eac03ceafd28..000000000000 --- a/sys-libs/libomp/libomp-14.0.0.ebuild +++ /dev/null @@ -1,134 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -CMAKE_ECLASS=cmake -PYTHON_COMPAT=( python3_{8..10} ) -inherit cmake-multilib linux-info llvm 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="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x64-macos" -IUSE="cuda debug hwloc offload ompt test - llvm_targets_AMDGPU llvm_targets_NVPTX" -# CUDA works only with the x86_64 ABI -REQUIRED_USE=" - cuda? ( llvm_targets_NVPTX ) - offload? ( cuda? ( abi_x86_64 ) )" -RESTRICT="!test? ( test )" - -RDEPEND=" - hwloc? ( >=sys-apps/hwloc-2.5:0=[${MULTILIB_USEDEP}] ) - offload? ( - virtual/libelf:=[${MULTILIB_USEDEP}] - dev-libs/libffi:=[${MULTILIB_USEDEP}] - ~sys-devel/llvm-${PV}[${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? ( - llvm_targets_AMDGPU? ( sys-devel/clang ) - llvm_targets_NVPTX? ( sys-devel/clang ) - virtual/pkgconfig - ) - test? ( - $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') - sys-devel/clang - )" - -LLVM_COMPONENTS=( openmp llvm/include ) -llvm.org_set_globals - -python_check_deps() { - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -kernel_pds_check() { - if use kernel_linux && kernel_is -lt 4 15 && kernel_is -ge 4 13; then - local CONFIG_CHECK="~!SCHED_PDS" - local ERROR_SCHED_PDS="\ -PDS scheduler versions >= 0.98c < 0.98i (e.g. used in kernels >= 4.13-pf11 -< 4.14-pf9) do not implement sched_yield() call which may result in horrible -performance problems with libomp. If you are using one of the specified -kernel versions, you may want to disable the PDS scheduler." - - check_extra_config - fi -} - -pkg_pretend() { - kernel_pds_check -} - -pkg_setup() { - use offload && LLVM_MAX_SLOT=${PV%%.*} llvm_pkg_setup - use test && python-any-r1_pkg_setup -} - -multilib_src_configure() { - # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" - - 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 - ) - - if use offload; then - if has "${CHOST%%-*}" aarch64 powerpc64le x86_64; then - mycmakeargs+=( - -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=$(usex !cuda) - -DLIBOMPTARGET_BUILD_AMDGCN_BCLIB=$(usex llvm_targets_AMDGPU) - -DLIBOMPTARGET_BUILD_NVPTX_BCLIB=$(usex llvm_targets_NVPTX) - # a cheap hack to force clang - -DLIBOMPTARGET_NVPTX_CUDA_COMPILER="$(type -P "${CHOST}-clang")" - # upstream defaults to looking for it in clang dir - # this fails when ccache is being used - -DLIBOMPTARGET_NVPTX_BC_LINKER="$(type -P llvm-link)" - ) - else - mycmakeargs+=( - -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=ON - -DLIBOMPTARGET_BUILD_AMDGCN_BCLIB=OFF - -DLIBOMPTARGET_BUILD_NVPTX_BCLIB=OFF - ) - fi - fi - - use test && mycmakeargs+=( - # this project does not use standard LLVM cmake macros - -DOPENMP_LLVM_LIT_EXECUTABLE="${EPREFIX}/usr/bin/lit" - -DOPENMP_LIT_ARGS="$(get_lit_flags)" - - -DOPENMP_TEST_C_COMPILER="$(type -P "${CHOST}-clang")" - -DOPENMP_TEST_CXX_COMPILER="$(type -P "${CHOST}-clang++")" - ) - addpredict /dev/nvidiactl - cmake_src_configure -} - -multilib_src_test() { - # respect TMPDIR! - local -x LIT_PRESERVES_TMP=1 - - cmake_build check-libomp -} diff --git a/sys-libs/libomp/libomp-14.0.3.ebuild b/sys-libs/libomp/libomp-14.0.3.ebuild new file mode 100644 index 000000000000..987d01113d97 --- /dev/null +++ b/sys-libs/libomp/libomp-14.0.3.ebuild @@ -0,0 +1,142 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CMAKE_ECLASS=cmake +PYTHON_COMPAT=( python3_{8..10} ) +inherit cmake-multilib linux-info llvm 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="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x64-macos" +IUSE=" + cuda debug hwloc offload ompt test + llvm_targets_AMDGPU llvm_targets_NVPTX +" +RESTRICT="!test? ( test )" +# CUDA works only with the x86_64 ABI +REQUIRED_USE=" + cuda? ( llvm_targets_NVPTX ) + offload? ( cuda? ( abi_x86_64 ) ) +" + +RDEPEND=" + hwloc? ( >=sys-apps/hwloc-2.5:0=[${MULTILIB_USEDEP}] ) + offload? ( + virtual/libelf:=[${MULTILIB_USEDEP}] + dev-libs/libffi:=[${MULTILIB_USEDEP}] + ~sys-devel/llvm-${PV}[${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? ( + llvm_targets_AMDGPU? ( sys-devel/clang ) + llvm_targets_NVPTX? ( sys-devel/clang ) + virtual/pkgconfig + ) + test? ( + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') + sys-devel/clang + ) +" + +LLVM_COMPONENTS=( openmp llvm/include ) +llvm.org_set_globals + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +kernel_pds_check() { + if use kernel_linux && kernel_is -lt 4 15 && kernel_is -ge 4 13; then + local CONFIG_CHECK="~!SCHED_PDS" + local ERROR_SCHED_PDS="\ +PDS scheduler versions >= 0.98c < 0.98i (e.g. used in kernels >= 4.13-pf11 +< 4.14-pf9) do not implement sched_yield() call which may result in horrible +performance problems with libomp. If you are using one of the specified +kernel versions, you may want to disable the PDS scheduler." + + check_extra_config + fi +} + +pkg_pretend() { + kernel_pds_check +} + +pkg_setup() { + use offload && LLVM_MAX_SLOT=${PV%%.*} llvm_pkg_setup + use test && python-any-r1_pkg_setup +} + +multilib_src_configure() { + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + + 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 + ) + + if use offload; then + if has "${CHOST%%-*}" aarch64 powerpc64le x86_64; then + mycmakeargs+=( + -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=$(usex !cuda) + -DLIBOMPTARGET_BUILD_AMDGCN_BCLIB=$(usex llvm_targets_AMDGPU) + -DLIBOMPTARGET_BUILD_NVPTX_BCLIB=$(usex llvm_targets_NVPTX) + # a cheap hack to force clang + -DLIBOMPTARGET_NVPTX_CUDA_COMPILER="$(type -P "${CHOST}-clang")" + # upstream defaults to looking for it in clang dir + # this fails when ccache is being used + -DLIBOMPTARGET_NVPTX_BC_LINKER="$(type -P llvm-link)" + ) + else + mycmakeargs+=( + -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=ON + -DLIBOMPTARGET_BUILD_AMDGCN_BCLIB=OFF + -DLIBOMPTARGET_BUILD_NVPTX_BCLIB=OFF + ) + fi + fi + + use test && mycmakeargs+=( + # this project does not use standard LLVM cmake macros + -DOPENMP_LLVM_LIT_EXECUTABLE="${EPREFIX}/usr/bin/lit" + -DOPENMP_LIT_ARGS="$(get_lit_flags)" + + -DOPENMP_TEST_C_COMPILER="$(type -P "${CHOST}-clang")" + -DOPENMP_TEST_CXX_COMPILER="$(type -P "${CHOST}-clang++")" + ) + addpredict /dev/nvidiactl + cmake_src_configure +} + +multilib_src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + + cmake_build check-libomp +} diff --git a/sys-libs/libomp/libomp-15.0.0.9999.ebuild b/sys-libs/libomp/libomp-15.0.0.9999.ebuild index dbee89f1997c..52f9f5285f11 100644 --- a/sys-libs/libomp/libomp-15.0.0.9999.ebuild +++ b/sys-libs/libomp/libomp-15.0.0.9999.ebuild @@ -1,7 +1,7 @@ # Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 CMAKE_ECLASS=cmake PYTHON_COMPAT=( python3_{8..10} ) @@ -13,13 +13,16 @@ HOMEPAGE="https://openmp.llvm.org" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" KEYWORDS="" -IUSE="cuda debug hwloc offload ompt test - llvm_targets_AMDGPU llvm_targets_NVPTX" +IUSE=" + cuda debug hwloc offload ompt test + llvm_targets_AMDGPU llvm_targets_NVPTX +" +RESTRICT="!test? ( test )" # CUDA works only with the x86_64 ABI REQUIRED_USE=" cuda? ( llvm_targets_NVPTX ) - offload? ( cuda? ( abi_x86_64 ) )" -RESTRICT="!test? ( test )" + offload? ( cuda? ( abi_x86_64 ) ) +" RDEPEND=" hwloc? ( >=sys-apps/hwloc-2.5:0=[${MULTILIB_USEDEP}] ) @@ -28,13 +31,17 @@ RDEPEND=" dev-libs/libffi:=[${MULTILIB_USEDEP}] ~sys-devel/llvm-${PV}[${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 +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + dev-lang/perl offload? ( llvm_targets_AMDGPU? ( sys-devel/clang ) llvm_targets_NVPTX? ( sys-devel/clang ) @@ -43,7 +50,8 @@ BDEPEND="dev-lang/perl test? ( $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') sys-devel/clang - )" + ) +" LLVM_COMPONENTS=( openmp llvm/include ) llvm.org_set_globals diff --git a/sys-libs/libseccomp/Manifest b/sys-libs/libseccomp/Manifest index fbf8d4f53afe..a7aa5dcfdf56 100644 --- a/sys-libs/libseccomp/Manifest +++ b/sys-libs/libseccomp/Manifest @@ -1,11 +1,11 @@ AUX libseccomp-2.5.3-skip-valgrind.patch 516 BLAKE2B d5dc87fcca8e20b7edd427c434d875c9c3c7aa130a651dbe06c2c648825312e330400f89177afcfe4985fa48e0f95de9937773deb6d3d83da9b2351e6e0488fc SHA512 96053f8ca6abc97ea7c5565c3c25563881e8c0363e9c38fa05836d59b5d9ea1a375f9e072bd5f89a67ddac159c1219be7ed829facd651b3fb8bd5071c89bddcb AUX libseccomp-python-shared.patch 759 BLAKE2B e2c42e18ca93fe5fddbc3a5b47ac0e6a29e566292fd62b87e6b45f6cb230570a2d1907a8b192e80b32c1900d069a4f10a866fa50bd9b88f5b78abff4206bd4cb SHA512 74548c7969869ff8f937a75eac720f1c654fad87dc17aed1c041bcb765586b4ee978a3ff7c6281be03277f6c74f2ec32624f91beb55afec3066a06a9e51483e2 DIST libseccomp-2.5.1.tar.gz 638811 BLAKE2B 683ae7536c0cba36f4d30640b42361171fc34b7cb04985ea56e64369df29c440361a0205385b14580cc0e481e0f9ffd0b0e8ebd4ac98817ed59298db6b274c35 SHA512 2be80a6323f9282dbeae8791724e5778b32e2382b2a3d1b0f77366371ec4072ea28128204f675cce101c091c0420d12c497e1a9ccbb7dc5bcbf61bfd777160af -DIST libseccomp-2.5.2.tar.gz 640305 BLAKE2B b61214cb9a9a793d1f04ae1de3f62c578cfaec54fcc355947b4c71efb75072bf60497db8c8a0fd34a46764952349027df3f025ddbd276d58be93209170950e89 SHA512 b2a95152cb274d6b35753596fd825406dae20c4a48b2f4076f835f977ecf324de38a3fe02e789dc20b49ecf6b4eb67f03e7733e92d40f5e20f25874307f1c2ac DIST libseccomp-2.5.3.tar.gz 637572 BLAKE2B cedf04b3a926f9fe5202e6169ddac6b983e755009c14fc1d645157b9c0bcdf65d4085f8ea7abad90f3a0c13ae4d66b5d8306e725168490863aad15976de1eae7 SHA512 00170fe2360f0c0b33293dccfcc33e98fabb99619f34ecefbcc92bfdaa249ba91e7433226545b842b71542a3b224b6e980ea2ae656c4addf07e84a0def1870a0 +DIST libseccomp-2.5.4-loongarch64-20220425.patch.xz 132768 BLAKE2B f3ab165b028b5f8b4c16574936b915595807ebeb49ef7365d6051f3dfafa7da46ef2a9de458e0a268298cb340152abe1f3c0c293446462a06696bc9ce92d2f72 SHA512 94f23c7a2cc2ea8acb01fef00ef184295c276b14b2b3ba0c65687fd72081df8478f3f04c51b0b391ba44529c4f914e6edbb4132af935e3be55902f641d478780 +DIST libseccomp-2.5.4.tar.gz 637228 BLAKE2B 38b134cb578f9355667546f92950ebcf8c53ccaf98db568db9aadfa9629c054136849e03d4bf9f09f73998fe66a5e8a9038573d19740b2bddf5518a8a0119229 SHA512 92650bd7d1d48b383f402a536b97a017fd0f6ad1234daf4b938d01c92e8d134a01d2f2dd45fd9e2d025d7556bd1386ec360402145a87f20580c85949d62cea0e EBUILD libseccomp-2.5.1-r1.ebuild 2301 BLAKE2B a4d466901b4a8175108e3c0cf8a14c3987e74ce3272f3fd60177a912a2eafb8bfd997f7aa7a90f68c05cfbebc17a4096b50f31bba57f44753659db6368d51656 SHA512 56bf4ebf83113cc8407bb8e8bdcc42ea90d041f2590fa53b320836b5538af03d130bb0092996abd6d20cefeaad4cecaf213845772a22c13efcf0754e1473171e -EBUILD libseccomp-2.5.1.ebuild 1987 BLAKE2B af2f16371d2053acc196f25e655e9ffc839114de5f3283128db57c36a04c528085502970b01cadf9434537c9e6a7d7dd869ef879cff321e352b0caea59b5962b SHA512 9b256b7f42bb28697edbd44613718c152d0f6bb4a6072748ecf873ce7ed4f44def744a465efbcdd6dd29f599a57ec3f13fe68b09357d92ac82525c798dbe4a74 -EBUILD libseccomp-2.5.2.ebuild 2308 BLAKE2B 22a4b45f0133337b26c6d10391a1276ef1ca06ea4f3d1e3573b9922ca80485c4e7e16f5174d62059c9f6979b6a1cc267b7f5e0a56a2206951ebee9f2f62dbd0b SHA512 21c514240acebb47e708d716627816b861bbbdc7cb1201f4234758db163cbfcfb96a14c317476ff2002c04f68c40f579ae4dcd6a21c0870a731fac40b1d7977b EBUILD libseccomp-2.5.3.ebuild 2401 BLAKE2B bf3340e3ad81d5e399ba8d30fc9c7c599794e63885199bb16105013de2ff3910d363806086778e22da54132f19fce06b90468ec9e4b4eeaf06fe469d82ddf6d6 SHA512 6ba4926dc3cd97ba46f33cf22d512ed084a72b360410e55ab1c746a75f3f7136dca13015bf6d5ab9d688b17b3828fd4b96f71cbea5b477ac0602e20ffaea3500 -EBUILD libseccomp-9999.ebuild 2408 BLAKE2B 26e9c336ef7d21c77e262afaa9c7068d432082d5e8367d86cef5405aca357f55dcb84a331e7dc87db0589d049d3ea5ba32aab373118ca09e0a93f2f5fbf986f1 SHA512 d20261580d5c7999fe220dda0f9f7f55fdd0acf81babd1919df6bd5d09aedd2047747c2aaff3cdd541245dc8fb94d27a290d90fb76c8048a201777e4330e5b43 -MISC metadata.xml 469 BLAKE2B 6dcc08de3598cce61438d1d0e6c35197159458a43a60c436d33a9f8a32acd3c132da2c76f8d79c5fbe1967b572759d21b5cd17d8e15c54528b5457e1e30aa3ac SHA512 153c1e0171b15997df762d353c1f5acae8f9c80e87a81d1fcd588ababa203279f08e4f82c5fab25e5e4c4ee28d4b208d40577b91749d57fc49dc557767d3ee92 +EBUILD libseccomp-2.5.4.ebuild 2876 BLAKE2B 957c42a44d162a6607b5fc555203b4f48cb56d725ef780d407c6843b052b266346c6072d0ed0fff473b7982b170fad4b7c40d0c1ef13b3948160e88659e24dcd SHA512 e48ccc952d97a7e94276aef32c23e6303cad4c2bbae9c525cd9e03a4332a45f266ee70887b8e0ebb2cc82199a4bf262d3e5bf9c94ca4966714393106fe79b9bd +EBUILD libseccomp-9999.ebuild 2382 BLAKE2B ecad29840736e18f35e0470a20674fe9aa0996bbf0a14c2297fda4b8873eaa028a8b0537bfd7cb64f67eeaa094ce7a4e981a94eb5a6008a771832931694cf1da SHA512 f41729b208db944ceddab46aba24d59a850a28379e11c1ac7405e82477bffe13050158c2bdf52ffc51f78d001f8ac320e4a27f1b876f9f3cc9c60c0f3513f2b3 +MISC metadata.xml 561 BLAKE2B 48e95fec426ff6123ed948660b9e88aa9e2ecd5f8cc51b6e13d0034c4f3fff988ce2bcb2a9b73557fe5c15065ee09d14c4c4b4bbce488bbf9bd54138b0d6750e SHA512 b45ed0989e466fc27998553f584fdcbd33a9a57c31774f062508eabc834848c7776e91d3ae854707523958282822499e030b785b018c356fdf3590a5a8dc6090 diff --git a/sys-libs/libseccomp/libseccomp-2.5.1.ebuild b/sys-libs/libseccomp/libseccomp-2.5.1.ebuild deleted file mode 100644 index bf83271b3fde..000000000000 --- a/sys-libs/libseccomp/libseccomp-2.5.1.ebuild +++ /dev/null @@ -1,84 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{8..9} ) -DISTUTILS_OPTIONAL=1 - -inherit distutils-r1 multilib-minimal - -DESCRIPTION="high level interface to Linux seccomp filter" -HOMEPAGE="https://github.com/seccomp/libseccomp" - -if [[ ${PV} == *9999 ]] ; then - EGIT_REPO_URI="https://github.com/seccomp/libseccomp.git" - PRERELEASE="2.6.0" - inherit autotools git-r3 -else - SRC_URI="https://github.com/seccomp/libseccomp/releases/download/v${PV}/${P}.tar.gz" - KEYWORDS="-* amd64 arm arm64 hppa ~mips ppc ppc64 ~riscv ~s390 x86 ~amd64-linux ~x86-linux" -fi - -LICENSE="LGPL-2.1" -SLOT="0" -IUSE="python static-libs" - -REQUIRED_USE=" - python? ( - static-libs - ${PYTHON_REQUIRED_USE} - )" - -DEPEND="python? ( ${PYTHON_DEPS} )" -RDEPEND="${DEPEND}" -BDEPEND="${DEPEND} - dev-util/gperf - python? ( dev-python/cython[${PYTHON_USEDEP}] ) -" -# We need newer kernel headers; we don't keep strict control of the exact -# version here, just be safe and pull in the latest stable ones. #551248 -DEPEND="${DEPEND} >=sys-kernel/linux-headers-4.3" - -src_prepare() { - default - if [[ "${PV}" == *9999 ]] ; then - sed -i -e "s/0.0.0/${PRERELEASE}/" configure.ac - eautoreconf - fi -} - -multilib_src_configure() { - local myeconfargs=( - $(use_enable static-libs static) - --disable-python - ) - ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" -} - -multilib_src_compile() { - emake - - if multilib_is_native_abi && use python ; then - cd "${S}/src/python" || die - sed -i -e "s/=.*VERSION_RELEASE.*,/=\"${PRERELEASE}\",/" \ - -e "/extra_objects/s,\.\.,${OLDPWD}/src," \ - setup.py || die - local -x CPPFLAGS="-I${OLDPWD}/include -I../../include" - distutils-r1_src_compile - fi -} - -multilib_src_install() { - emake DESTDIR="${D}" install - - if multilib_is_native_abi && use python ; then - cd "${S}/src/python" || die - distutils-r1_src_install - fi -} - -multilib_src_install_all() { - find "${ED}" -type f -name "${PN}.la" -delete || die - einstalldocs -} diff --git a/sys-libs/libseccomp/libseccomp-2.5.2.ebuild b/sys-libs/libseccomp/libseccomp-2.5.2.ebuild deleted file mode 100644 index eea16fa2bbf5..000000000000 --- a/sys-libs/libseccomp/libseccomp-2.5.2.ebuild +++ /dev/null @@ -1,90 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{8..9} ) -DISTUTILS_OPTIONAL=1 - -inherit distutils-r1 multilib-minimal - -DESCRIPTION="high level interface to Linux seccomp filter" -HOMEPAGE="https://github.com/seccomp/libseccomp" - -if [[ ${PV} == *9999 ]] ; then - EGIT_REPO_URI="https://github.com/seccomp/libseccomp.git" - PRERELEASE="2.6.0" - inherit autotools git-r3 -else - SRC_URI="https://github.com/seccomp/libseccomp/releases/download/v${PV}/${P}.tar.gz" - KEYWORDS="-* ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~x86 ~amd64-linux ~x86-linux" -fi - -LICENSE="LGPL-2.1" -SLOT="0" -IUSE="python static-libs" - -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - -DEPEND="python? ( ${PYTHON_DEPS} )" -RDEPEND="${DEPEND}" -BDEPEND="${DEPEND} - dev-util/gperf - python? ( dev-python/cython[${PYTHON_USEDEP}] ) -" -# We need newer kernel headers; we don't keep strict control of the exact -# version here, just be safe and pull in the latest stable ones. #551248 -DEPEND="${DEPEND} >=sys-kernel/linux-headers-4.3" - -src_prepare() { - local PATCHES=( - "${FILESDIR}/libseccomp-python-shared.patch" - ) - default - if [[ "${PV}" == *9999 ]] ; then - sed -i -e "s/0.0.0/${PRERELEASE}/" configure.ac - eautoreconf - fi -} - -multilib_src_configure() { - local myeconfargs=( - $(use_enable static-libs static) - --disable-python - ) - ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" -} - -do_python() { - # setup.py reads VERSION_RELEASE from the environment - local -x VERSION_RELEASE=${PRERELEASE-${PV}} - pushd "${BUILD_DIR}/src/python" >/dev/null || die - "$@" - popd >/dev/null || die -} - -multilib_src_compile() { - emake - - if multilib_is_native_abi && use python ; then - # setup.py expects libseccomp.so to live in "../.libs" - # Copy the python files to the right place for this. - rm -r "${BUILD_DIR}/src/python" || die - cp -r "${S}/src/python" "${BUILD_DIR}/src/python" || die - local -x CPPFLAGS="-I\"${BUILD_DIR}/include\" -I\"${S}/include\" ${CPPFLAGS}" - do_python distutils-r1_src_compile - fi -} - -multilib_src_install() { - emake DESTDIR="${D}" install - - if multilib_is_native_abi && use python ; then - do_python distutils-r1_src_install - fi -} - -multilib_src_install_all() { - find "${ED}" -type f -name "${PN}.la" -delete || die - einstalldocs -} diff --git a/sys-libs/libseccomp/libseccomp-2.5.4.ebuild b/sys-libs/libseccomp/libseccomp-2.5.4.ebuild new file mode 100644 index 000000000000..09258b43b977 --- /dev/null +++ b/sys-libs/libseccomp/libseccomp-2.5.4.ebuild @@ -0,0 +1,110 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{8..10} ) +DISTUTILS_OPTIONAL=1 + +inherit distutils-r1 multilib-minimal + +DESCRIPTION="high level interface to Linux seccomp filter" +HOMEPAGE="https://github.com/seccomp/libseccomp" + +if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI="https://github.com/seccomp/libseccomp.git" + PRERELEASE="2.6.0" + inherit autotools git-r3 +else + SRC_URI="https://github.com/seccomp/libseccomp/releases/download/v${PV}/${P}.tar.gz + experimental-loong? ( https://dev.gentoo.org/~xen0n/distfiles/${P}-loongarch64-20220425.patch.xz )" + KEYWORDS="-* ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~x86 ~amd64-linux ~x86-linux" +fi + +LICENSE="LGPL-2.1" +SLOT="0" +IUSE="experimental-loong python static-libs test" +RESTRICT="!test? ( test )" + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +# We need newer kernel headers; we don't keep strict control of the exact +# version here, just be safe and pull in the latest stable ones. bug #551248 +DEPEND=">=sys-kernel/linux-headers-5.15 + python? ( ${PYTHON_DEPS} )" +RDEPEND="${DEPEND}" +BDEPEND="${DEPEND} + dev-util/gperf + python? ( dev-python/cython[${PYTHON_USEDEP}] )" + +PATCHES=( + "${FILESDIR}"/libseccomp-python-shared.patch + "${FILESDIR}"/libseccomp-2.5.3-skip-valgrind.patch +) + +src_prepare() { + if use experimental-loong; then + PATCHES+=( "${WORKDIR}/${P}-loongarch64-20220425.patch" ) + fi + + default + + if use experimental-loong; then + # touch generated files to avoid activating maintainer mode + # remove when loong-fix-build.patch is no longer necessary + touch ./aclocal.m4 ./configure ./configure.h.in || die + find . -name Makefile.in -exec touch {} + || die + fi + + if [[ ${PV} == *9999 ]] ; then + sed -i -e "s/0.0.0/${PRERELEASE}/" configure.ac || die + + eautoreconf + fi +} + +multilib_src_configure() { + local myeconfargs=( + $(use_enable static-libs static) + --disable-python + ) + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" +} + +do_python() { + # setup.py reads VERSION_RELEASE from the environment + local -x VERSION_RELEASE=${PRERELEASE-${PV}} + + pushd "${BUILD_DIR}/src/python" >/dev/null || die + "$@" + popd >/dev/null || die +} + +multilib_src_compile() { + emake + + if multilib_is_native_abi && use python ; then + # setup.py expects libseccomp.so to live in "../.libs" + # Copy the python files to the right place for this. + rm -r "${BUILD_DIR}"/src/python || die + cp -r "${S}"/src/python "${BUILD_DIR}"/src/python || die + local -x CPPFLAGS="-I\"${BUILD_DIR}/include\" -I\"${S}/include\" ${CPPFLAGS}" + + do_python distutils-r1_src_compile + fi +} + +multilib_src_install() { + emake DESTDIR="${D}" install + + if multilib_is_native_abi && use python ; then + do_python distutils-r1_src_install + fi +} + +multilib_src_install_all() { + find "${ED}" -type f -name "${PN}.la" -delete || die + + einstalldocs +} diff --git a/sys-libs/libseccomp/libseccomp-9999.ebuild b/sys-libs/libseccomp/libseccomp-9999.ebuild index 847d2ce335b0..fed0b3c8f425 100644 --- a/sys-libs/libseccomp/libseccomp-9999.ebuild +++ b/sys-libs/libseccomp/libseccomp-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -27,25 +27,24 @@ RESTRICT="!test? ( test )" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" -DEPEND="python? ( ${PYTHON_DEPS} )" +# We need newer kernel headers; we don't keep strict control of the exact +# version here, just be safe and pull in the latest stable ones. bug #551248 +DEPEND=">=sys-kernel/linux-headers-5.15 + python? ( ${PYTHON_DEPS} )" RDEPEND="${DEPEND}" BDEPEND="${DEPEND} dev-util/gperf - python? ( dev-python/cython[${PYTHON_USEDEP}] ) -" -# We need newer kernel headers; we don't keep strict control of the exact -# version here, just be safe and pull in the latest stable ones. #551248 -DEPEND="${DEPEND} >=sys-kernel/linux-headers-4.3" + python? ( dev-python/cython[${PYTHON_USEDEP}] )" -src_prepare() { - local PATCHES=( - "${FILESDIR}/libseccomp-python-shared.patch" - "${FILESDIR}/libseccomp-2.5.3-skip-valgrind.patch" - ) +PATCHES=( + "${FILESDIR}"/libseccomp-python-shared.patch + "${FILESDIR}"/libseccomp-2.5.3-skip-valgrind.patch +) +src_prepare() { default - if [[ "${PV}" == *9999 ]] ; then + if [[ ${PV} == *9999 ]] ; then sed -i -e "s/0.0.0/${PRERELEASE}/" configure.ac || die eautoreconf @@ -76,8 +75,8 @@ multilib_src_compile() { if multilib_is_native_abi && use python ; then # setup.py expects libseccomp.so to live in "../.libs" # Copy the python files to the right place for this. - rm -r "${BUILD_DIR}/src/python" || die - cp -r "${S}/src/python" "${BUILD_DIR}/src/python" || die + rm -r "${BUILD_DIR}"/src/python || die + cp -r "${S}"/src/python "${BUILD_DIR}"/src/python || die local -x CPPFLAGS="-I\"${BUILD_DIR}/include\" -I\"${S}/include\" ${CPPFLAGS}" do_python distutils-r1_src_compile diff --git a/sys-libs/libseccomp/metadata.xml b/sys-libs/libseccomp/metadata.xml index dd20dd0473ec..75b652d43244 100644 --- a/sys-libs/libseccomp/metadata.xml +++ b/sys-libs/libseccomp/metadata.xml @@ -5,6 +5,9 @@ base-system@gentoo.org Gentoo Base System + + Add experimental LoongArch patchset + seccomp/libseccomp libseccomp diff --git a/sys-libs/libsmbios/Manifest b/sys-libs/libsmbios/Manifest index 7c82f012113f..9b2cd1f99bcf 100644 --- a/sys-libs/libsmbios/Manifest +++ b/sys-libs/libsmbios/Manifest @@ -1,5 +1,5 @@ AUX libsmbios-2.2.28-cppunit-tests.patch 350 BLAKE2B c735096c5fe0e33eec728e280097f9d1e97aca8942cda80d0d574f24f71f25245714dc4bf99d5b53a9613cbbf4b33d5a50cfa9482be5a2dd601b9b9a03be3940 SHA512 51cfb62fce69afaf73659a2c4c819aa3554831b48d69bc35c1b299cd2e0b4d3be7f156a2cb57912cf10f21182e49fd5ce17aad0205a25d151f55ab3e0e58ddd7 AUX libsmbios-2.4.3-avoid_bashisms.patch 2909 BLAKE2B 426ca128f142307ea89cc5003c298518115805a518b348345f154094e34be932721aa6c880612fa7fe3473bc1156bf7c2dc1ce085dd9511ddeaf58e54d2464e1 SHA512 d2199481d87527ce7e90ca355cdfaf48a859982e67090e248034139b19ce2d61717e9887d246c7bd6b1e46f3f97cf6ec6bbdf04e3091c513221cb42d0f1431b3 DIST libsmbios-2.4.3.tar.gz 644140 BLAKE2B 684bff4f6cf755796f785e9a93d4ddbe2a1af52082cdebc27d203772a6a2a0259edb4b9d19921f90fc78b48d54700223fbc2628665b963ebcb601010ff4340ab SHA512 7f6fb36fa9653e123b416b275953fb5652025e76dac3b4ec5600168e193ea56f8ac3ea1a3b5db29d2770e73d88152d712a35bf77a9b3fc5596570fae885585ad -EBUILD libsmbios-2.4.3.ebuild 1795 BLAKE2B 0a0f2e53325888c4db7adcdab9cca25b91088987ab07055c882d82ba70e233c05d342f918a3a748a802ee4546ff3dd7bf35422318e65107e41cba4afda7198a9 SHA512 6b5a69e5f43a4adff45b67a3d4e4d738a4ab8462f76bf987d98bda9e5b3519cfa0cb373073fde0c0910c7ac19270a6f66945b977476e9cb54ce1c3e8c7b3dcf2 +EBUILD libsmbios-2.4.3.ebuild 1795 BLAKE2B 2bed26164e37fa3d2ea31b22df2740cf76580e90c615ab4fe6dd3f1487cec01225880dbefe9c1b462be33a04a1e51fcf06bea32624142ade712c980fb96d53f9 SHA512 a7a7f8399dec2c3b9158d13b0213e32ec9e3c16de53824d9e8d14d1543b2c1f6fa549e9452708c5bfa3aa537b1dda360b8a4e0ff30a983f11e7c50ac80a84605 MISC metadata.xml 683 BLAKE2B c1ce05b96d532d18aa93942f30d9f499c0196ab42510c196a73d8b0ce4d7d05920e9b5cb8d6b343b8a29fc3813d33e110233303ad17594ea1f729e210576c72b SHA512 e6adf717c5ecfaf17d88ff77afbcf6f3c93ee018dd3a07edc057d1009f39422f89de47eb9252c8363005de3fc8297abe342e8b652af5a90e044c0c378dd1e365 diff --git a/sys-libs/libsmbios/libsmbios-2.4.3.ebuild b/sys-libs/libsmbios/libsmbios-2.4.3.ebuild index 56a475848ec4..f982ee3c0391 100644 --- a/sys-libs/libsmbios/libsmbios-2.4.3.ebuild +++ b/sys-libs/libsmbios/libsmbios-2.4.3.ebuild @@ -1,8 +1,8 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 -PYTHON_COMPAT=( python3_{7,8,9} ) +PYTHON_COMPAT=( python3_{8..10} ) inherit autotools flag-o-matic python-single-r1 diff --git a/sys-libs/libstdc++-v3/Manifest b/sys-libs/libstdc++-v3/Manifest index eb5e7631add0..626d62ad5293 100644 --- a/sys-libs/libstdc++-v3/Manifest +++ b/sys-libs/libstdc++-v3/Manifest @@ -1,6 +1,4 @@ -DIST gcc-3.3.6-patches-1.10.tar.bz2 53739 BLAKE2B d22772d30c432669299e3e6df350920408c510a241a20e6795dcc680227342a16c3b6d2e477a17d6c49794005b42972ed30b4efe5b2d69398d283f50efdeb459 SHA512 be6cc8fae217f789982e324e0d3ad12d527e43ca4c168bce613397aaf3d86219b125e7b39c2b236638a68112cfee0e06c1b297fead712d92b3923b7195299d0a DIST gcc-3.3.6-patches-4.tar.bz2 53437 BLAKE2B 372ff1fcfcfacca43b420d2cda7fccb2ede4917408e1fcceb6c094694de8ae21148fa9c5ab8663cf6fb9ad858e3d0cbb3f20c91020db7b627828403444c2fd66 SHA512 1ff4563956d2f3af1240a14cd1ec126ff75dcf24e1cec39d32a17d6be92b94aeb081605ceb04b138ba905cea8ccbe204dce4b42a02ef55383fcfa91643f73faf DIST gcc-3.3.6.tar.bz2 23972413 BLAKE2B e7b33edcdbbb13b0be41a41156bf6fb6dcfe4f5ad75c41de86cb37f854be6b7a6a8dda0e65d331461469848cd912e25920e8aa2dcb142cb661731ba571cb5de1 SHA512 576b88e2fa675314a79a85f180684fe5af370c596476a0bf02e33e8ae0e2be838417ea80675ce4194a8213792cf7ada50cae5131149e4b890ab61e0b8d50d0ed -EBUILD libstdc++-v3-3.3.6-r3.ebuild 5062 BLAKE2B 149fc4eb76a0e3e3c163e21fd09bd375cc53232f05f039e4dd005d833f2f7b47b03652dea58574cf77db38d7013aa329858d0ef694362ffa891fe71095527714 SHA512 4dbf4e4ffda9ee85ec09ccce5888600aa6c07f78b189c55d97b5f1f2b8d2032a69a2b315bb242d4bfeb32895111e7fc9d74337a706726a1a57016ca16b95c4d5 EBUILD libstdc++-v3-3.3.6-r4.ebuild 5074 BLAKE2B dba892d8d6b5b417fbee033157f33f491c4843685b3a97d815858aa45770cad2eb9348b2c9c5a347cb055a6bc8ef3034a38f9d49706d162a93ca07fa2d8b683c SHA512 0ebb18227f908002f4baf9e8bceab5a3bb4812839b0186b0d5f0b7acf9cfe3d5dfd087fac124698cbada78fc32931720ad2e5ffb693e1c39a8b965000e3dbb07 MISC metadata.xml 258 BLAKE2B f45bf60ab247635720461e6f8028b41d748c2c0fecea4d5b6eb29a9f532de573e8054773a084b99b2a6a040e980cfc41c8839b13bdeb8ebe6e1de12a1492873b SHA512 2cd16eedd80ae476d1611112f620d3d5eee88fd181fe635d9f9235ac312e24bf8eac5b44f54ff55806ee7a03aaf1d1382a734f7b3496814853d238b9a7b6ee1e diff --git a/sys-libs/libstdc++-v3/libstdc++-v3-3.3.6-r3.ebuild b/sys-libs/libstdc++-v3/libstdc++-v3-3.3.6-r3.ebuild deleted file mode 100644 index 0bf6a4ade8c8..000000000000 --- a/sys-libs/libstdc++-v3/libstdc++-v3-3.3.6-r3.ebuild +++ /dev/null @@ -1,201 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit epatch flag-o-matic libtool multilib toolchain-funcs - -PATCH_VER="1.10" - -DESCRIPTION="Compatibility package for binaries linked against a pre gcc 3.4 libstdc++" -HOMEPAGE="https://gcc.gnu.org/libstdc++/" -SRC_URI="ftp://gcc.gnu.org/pub/gcc/releases/gcc-${PV}/gcc-${PV}.tar.bz2 - mirror://gentoo/gcc-${PV}-patches-${PATCH_VER}.tar.bz2" - -LICENSE="GPL-2 LGPL-2.1" -SLOT="5" -KEYWORDS="~amd64 ~x86" -IUSE="multilib nls" - -RDEPEND="sys-libs/zlib" -DEPEND=" - ${RDEPEND} - sys-devel/bison" - -transform_known_flags() { - declare setting - - # and on x86, we just need to filter the 3.4 specific amd64 -marchs - replace-cpu-flags k8 athlon64 opteron x86-64 - - # gcc 3.3 doesn't support -march=pentium-m - replace-cpu-flags pentium-m pentium3m pentium3 - - #GCC 3.3 does not understand G3, G4, G5 on ppc - replace-cpu-flags G3 750 - replace-cpu-flags G4 7400 - replace-cpu-flags G5 7400 - - filter-flags -fdiagnostics-show-option -} - -is_arch_allowed() { - i386_processor_table="i386 i486 i586 pentium pentium-mmx winchip-c6 \ - winchip2 c3 i686 pentiumpro pentium2 pentium3 pentium4 prescott \ - nocona k6 k6-2 k6-3 athlon athlon-tbird x86-64 athlon-4 athlon-xp \ - athlon-mp" - - for proc in ${i386_processor_table} ; do - [ "${proc}" == "${1}" ] && return 0 - done - - mips_processor_table="mips1 mips2 mips3 mips4 mips32 mips64 r3000 r2000 \ - r3900 r6000 r4000 vr4100 vr4111 vr4120 vr4300 r4400 r4600 orion \ - r4650 r8000 vr5000 vr5400 vr5500 4kc 4kp 5kc 20kc sr71000 sb1" - - for proc in ${mips_processor_table} ; do - [ "${proc}" == "${1}" ] && return 0 - done - - rs6000_processor_table="common power power2 power3 power4 powerpc \ - powerpc64 rios rios1 rsc rsc1 rios2 rs64a 401 403 405 505 601 602 \ - 603 603e ec603e 604 604e 620 630 740 750 7400 7450 8540 801 821 823 \ - 860" - - for proc in ${rs6000_processor_table} ; do - [ "${proc}" == "${1}" ] && return 0 - done - - return 1 -} - -do_filter_flags() { - declare setting - - # In general gcc does not like optimization, and add -O2 where - # it is safe. This is especially true for gcc 3.3 + 3.4 - replace-flags -O? -O2 - - # gcc 3.3 doesn't support -mtune on numerous archs, so xgcc will fail - setting="`get-flag mtune`" - [ ! -z "${setting}" ] && filter-flags -mtune="${setting}" - - # in gcc 3.3 there is a bug on ppc64 where if -mcpu is used - # the compiler incorrectly assumes the code you are about to build - # is 32 bit - use ppc64 && setting="`get-flag mcpu`" - [ ! -z "${setting}" ] && filter-flags -mcpu="${setting}" - - # only allow the flags that we -know- are supported - transform_known_flags - setting="`get-flag march`" - if [ ! -z "${setting}" ] ; then - is_arch_allowed "${setting}" || filter-flags -march="${setting}" - fi - setting="`get-flag mcpu`" - if [ ! -z "${setting}" ] ; then - is_arch_allowed "${setting}" || filter-flags -mcpu="${setting}" - fi - - # xgcc wont understand gcc 3.4 flags... - filter-flags -fno-unit-at-a-time - filter-flags -funit-at-a-time - filter-flags -fweb - filter-flags -fno-web - filter-flags -mno-tls-direct-seg-refs - - # xgcc isnt patched with propolice - filter-flags -fstack-protector-all - filter-flags -fno-stack-protector-all - filter-flags -fstack-protector - filter-flags -fno-stack-protector - - # xgcc isnt patched with the gcc symbol visibility patch - filter-flags -fvisibility-inlines-hidden - filter-flags -fvisibility=hidden - - # Bug #269433 & #290202 - filter-flags -fno-strict-overflow - filter-flags -fstrict-overflow - - # Bug #442784 - filter-flags '-W*' - - filter-flags -frecord-gcc-switches - filter-flags '-fdiagnostics-color*' - - # Bug #610064 - filter-flags '-fstack-check*' - - # ...sure, why not? - strip-unsupported-flags - - strip-flags -} - -S=${WORKDIR}/gcc-${PV} - -src_prepare() { - EPATCH_SUFFIX="patch" epatch "${WORKDIR}"/patch - - default - - elibtoolize --portage --shallow - ./contrib/gcc_update --touch - - if use multilib && [[ ${SYMLINK_LIB} == "yes" ]] ; then - # ugh, this shit has to match the way we've hacked gcc else - # the build falls apart #259215 - sed -i \ - -e 's:\(MULTILIB_OSDIRNAMES = \).*:\1../lib64 ../lib32:' \ - "${S}"/gcc/config/i386/t-linux64 \ - || die "sed failed!" - fi - - tc-export AR CC RANLIB NM -} - -src_configure() { - mkdir -p "${WORKDIR}"/build - cd "${WORKDIR}"/build - do_filter_flags - ECONF_SOURCE=${S} \ - econf \ - --enable-shared \ - --with-system-zlib \ - --enable-languages=c++ \ - --enable-threads=posix \ - --enable-long-long \ - --disable-checking \ - --enable-cstdio=stdio \ - --enable-__cxa_atexit \ - $(use_enable multilib) \ - $(use_enable nls) \ - $(use_with !nls included-gettext) - - touch "${S}"/gcc/c-gperf.h -} - -src_compile() { - emake \ - -C "${WORKDIR}"/build all-target-libstdc++-v3 \ - AR="$(tc-getAR)" \ - NM="$(tc-getNM)" -} - -src_install() { - emake -j1 \ - -C "${WORKDIR}"/build \ - AR="$(tc-getAR)" \ - NM="$(tc-getNM)" \ - DESTDIR="${D}" \ - install-target-libstdc++-v3 - - # scrub everything but the library we care about - pushd "${D}" >/dev/null - mv usr/lib* . || die - rm -rf usr - rm -f lib*/*.{a,la,so} || die - dodir /usr - mv lib* usr/ || die -} diff --git a/sys-libs/libucontext/Manifest b/sys-libs/libucontext/Manifest index 62aef2d8e282..271d66958c40 100644 --- a/sys-libs/libucontext/Manifest +++ b/sys-libs/libucontext/Manifest @@ -1,4 +1,6 @@ AUX libucontext-1.1-respect-CFLAGS.patch 368 BLAKE2B b04163e9e75ad3f8704d85d78091a41957cb072edd3ecbe58dbf45bf59c5ffb3662b5f96bf413eaaa5e328c964cbe99a70c6f8f23f4f8bc74bfdda7a0e45c54d SHA512 889b67269066ccdf84221dd1a636d4f6782f4c5f6800828f4068f3764b7e9d1797614d9f07f81864bc720f415c475c1b78aba38dd35355a54fcbf2f7a64a57ff DIST libucontext-1.1.tar.gz 25261 BLAKE2B 269b3899657779bc2c6a2f1c365242f0ee936afeb0acf74e48af5c1e6b96918bbaa239039508e7b1b1f7b358679fb4a222311b761223b69b9a3e7a9be2d0bc40 SHA512 05aed6f82a2b3d9dba896423335a7fc2fc5eddc87ed725f05e14488c6ddfcef10b835c928619439c7783e052baff7ef2dc162b6e06aa78992f6f611ca13c2e39 +DIST libucontext-1.2.tar.gz 29073 BLAKE2B 378816376877729776c41515ad1c3da36c24528bcdcf5272c4df2029b5273cf90228c163e87bd1af558129b1274d0b22632c4fa8ad2a0f37ac7014dae527a48e SHA512 f47b776517fa9e3fe48b762b11ae580c28bd7646f9e3ab843141d3e203f886326e68dd8040852ab1cb92dbd09d821161660c4be44e3025448d90131e74a4cf51 EBUILD libucontext-1.1-r1.ebuild 1227 BLAKE2B 80165906c3525c3a1d8cd1079a509ff11cb8ec92833ea493e03103c775f99c4f303d86c33ee4fb921cb9c1dcdfc9e06b031e2c6158c1547a99a86edf7b4ff9ab SHA512 accd79cbc600ca4f02dcdc76f6ed7a964b8714238dfe2d5d44734ef3be472a998a6d04afa196c9a086e58ca18138c80b64973b4caa870ffe7e1ba5e579220ede +EBUILD libucontext-1.2.ebuild 1370 BLAKE2B b7a8af9afd2dec3988699e500395a206eb628994d9f7bf50547ae44ae9204850ef1cba637c87a9235a0896a5ebe0785350fa573e0615ba781723d2a7fcd7b739 SHA512 966f7bf60091d9af0d7bb8bed9fabf0fba82087a3d091da79c0b19983d8d2b80ffe67381baab2de3f4dc9c113865ed157377007c9cc85f5c23f331417ae1a31c MISC metadata.xml 329 BLAKE2B 8958a3567263e9f2fc2409c2cd5858ca3e68659a45f67e5132fca640c6ffe05cac8810436f334b5c775ed049709f43aaf366cfecc97bc732a0917bb47aa5c34d SHA512 7b5d5832b22828f6a0600e3be45ff1da8ff340481a3602db6f5b8540373ff0ac3c72f0de64f00a1691598bbd9cea0128eb869cda67d8ac4894e3a51a7009a730 diff --git a/sys-libs/libucontext/libucontext-1.2.ebuild b/sys-libs/libucontext/libucontext-1.2.ebuild new file mode 100644 index 000000000000..7120a14d92cb --- /dev/null +++ b/sys-libs/libucontext/libucontext-1.2.ebuild @@ -0,0 +1,69 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +DESCRIPTION="ucontext implementation featuring glibc-compatible ABI" +HOMEPAGE="https://github.com/kaniini/libucontext" +SRC_URI="https://github.com/kaniini/libucontext/archive/refs/tags/${P}.tar.gz" +S="${WORKDIR}"/${PN}-${P} + +LICENSE="ISC" +SLOT="0" +KEYWORDS="~amd64" +IUSE="+man" + +BDEPEND="man? ( app-text/scdoc )" + +# segfault needs investigation +# 1.2 eems ok? +#RESTRICT="test" + +src_compile() { + tc-export AR CC + + arch= + + # Override arch detection + # https://github.com/kaniini/libucontext/blob/master/Makefile#L3 + if use x86 ; then + arch="x86" + elif use arm ; then + arch="arm" + elif use arm64 ; then + arch="aarch64" + elif use ppc64 ; then + arch="ppc64" + else + arch="$(uname -m)" + fi + + emake \ + ARCH="${arch}" \ + LDFLAGS="${LDFLAGS}" \ + LIBDIR="/usr/$(get_libdir)" \ + PKGCONFIGDIR="/usr/$(get_libdir)/pkgconfig" \ + all $(usev man 'docs') +} + +src_test() { + emake \ + ARCH="${arch}" \ + LDFLAGS="${LDFLAGS}" \ + LIBDIR="/usr/$(get_libdir)" \ + PKGCONFIGDIR="/usr/$(get_libdir)/pkgconfig" \ + check +} + +src_install() { + emake \ + ARCH="${arch}" \ + DESTDIR="${ED}" \ + LIBDIR="/usr/$(get_libdir)" \ + PKGCONFIGDIR="/usr/$(get_libdir)/pkgconfig" \ + install $(usev man 'install_docs') + + find "${ED}" -name '*.a' -delete || die +} diff --git a/sys-libs/libunwind/Manifest b/sys-libs/libunwind/Manifest index f3ab7cbcb568..d1d9f9f29efd 100644 --- a/sys-libs/libunwind/Manifest +++ b/sys-libs/libunwind/Manifest @@ -1,10 +1,3 @@ -AUX libunwind-1.2-coredump-regs.patch 619 BLAKE2B b901d50cb7fa4ab372da26120e512da0ca506322130583623eebe31548a65f5a53249b632d71409d77a6dc00eb002beddd44f8a5d11dc82bf8450b812770a023 SHA512 48536ef54590221b42a3ca568ec781e526807b3d8aed3e33e19e6efacfa05a428a6101d3a51e79ea5d3e1d783bcba9acb92f7623c121d3e00cd3e1a17d13e282 -AUX libunwind-1.2-ia64-missing.patch 3863 BLAKE2B 384d2afd7d725f0730207b5b32ff4ffcedd852043af83b1884c7dc95116298eff41bd7f997e0ad51c9912b59e36b439eb524d3d4786f2a0a19dff32437e62003 SHA512 e8f65d706839770d993f9801371e1e294a0231c4bfe29b497e4a859567b7f5b6561b0a15d59b1626311e549fe57149046f5a76424a2ad69c521610aaa3019c17 -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 1378 BLAKE2B f343464943d1689e379b702baa63f7c0f198421c124354af035b100a25d8bf1a2c493e09517c27a1abbdc6064cbf1d6ecf8cbb88bb377921277e8c9979c40921 SHA512 7de66bc7a107ada353cc50992fc141bc87b927d55d8df113d5ecea90b27f5518cc6f6aafa19ea7f7f85719a6b48610f9029ba88c2a84d4950c05e1fa37f9ef57 -AUX libunwind-1.5.0-x32.patch 596 BLAKE2B dc032ca1b2c3e21595239954252a41676c07451e1b8a4759b64a0341e0392bd7ff0046cfde53bbd9bffc4f044221d6172b127a8cffa50dfd137930ea7b2b0ec5 SHA512 e3ccd5458ec4247d4d162bd730823483711dc958a51eaf4062b2385c67205c7998255eee33fbeb2cdc32bcc34f5ab27bbdcfb9f66b0a2144650e4a84893a652f -DIST libunwind-1.5.0.tar.gz 878355 BLAKE2B ee35441289926ac22a58bedb9f831d8e13bacd663a99b3ce25eed229f25f0423bbbd90e09e3d62b003518d7a620aa6d15b0dd5b93632736a89fa0667b35d5fc2 SHA512 1df20ca7a8cee2f2e61294fa9b677e88fec52e9d5a329f88d05c2671c69fa462f6c18808c97ca9ff664ef57292537a844f00b18d142b1938c9da701ca95a4bab DIST libunwind-1.6.2.tar.gz 901392 BLAKE2B 3d0313f7e92cbc3e1a84ad3831a5170f21cdf772f1697ca0a59dea63cdd47da382e9f1fd77325d9ff8bcd47559a425dc883a820c646c628cd00faed82cb0f83f SHA512 1d17dfb14f99a894a6cda256caf9ec481c14068aaf8f3a85fa3befa7c7cca7fca0f544a91a3a7c2f2fc55bab19b06a67ca79f55ac9081151d94478c7f611f8f7 -EBUILD libunwind-1.5.0-r1.ebuild 3276 BLAKE2B 0a0ab57f71c05521de552b6a9e7530258e6390e64a33bb09f1751ede229abf5ec0d70537321ff77a80946abb1d3d8b6b5517fe17648231e7a5f4b14032870636 SHA512 48aa9c88e5d535bff85cad52fe7ef2b9d854d4adbdb9249430932458cbf5918ce7d4cd29330882577a1acfc85f06efe6adfe669093c8a7cdc3b0ec61f1459a04 -EBUILD libunwind-1.6.2.ebuild 2704 BLAKE2B 9aeabebd03199541b2923c87fa0f5268b5a7e4472f62e59ed3b777d7e29ed6403d533dd76323e27bd291fe75fd07893c32d0fed6ba2a7f27039cd5042428217c SHA512 245400b0698b1675de30bb2ce28f7bb4ca4262aeac303a09878c7a7f41b3fefcb44a72d6cb9a7d7756d655ac2032ea6dbb3a93bb0c39110acc8d49d7941add10 +EBUILD libunwind-1.6.2.ebuild 2680 BLAKE2B 686f5fa9f0362c6669e9195e84f5f35546da5a6d8f66bdf0e9b91a580e1e20b9da4025718ed2f960dff7cbd66d325cb5aec6868b1147bed013486d9ebf4d6b16 SHA512 c44f75111e3a5f97aa85e6124c007c6216445d9ee3cff8418153229a2d97b83b5d97895576993a9c91a457e67f47d74ea50ac755fbbd55f7492a1cbf690ac263 MISC metadata.xml 574 BLAKE2B cf49536a68a838e39d6c67191eff496d8910f1d58cd7830546e519af38972db7cf7add177a6e5902202d2a66bc6b3dadcd261505b3bb61f285f0be10a0db42e7 SHA512 bf5fd787ae0b233c7fe5e8f4b987c472a03b93c07adebf35ce27c7b6759b9ac239296d5ede6725ac11f5030365199533389e51ced10dc6a20bb5aa74baf34ab0 diff --git a/sys-libs/libunwind/files/libunwind-1.2-coredump-regs.patch b/sys-libs/libunwind/files/libunwind-1.2-coredump-regs.patch deleted file mode 100644 index 3ddc610d4afc..000000000000 --- a/sys-libs/libunwind/files/libunwind-1.2-coredump-regs.patch +++ /dev/null @@ -1,16 +0,0 @@ -https://bugs.gentoo.org/586092 - -this might not be correct, but at least it builds, and doesn't crash - ---- a/src/coredump/_UCD_access_reg_linux.c -+++ b/src/coredump/_UCD_access_reg_linux.c -@@ -51,6 +51,9 @@ _UCD_access_reg (unw_addr_space_t as, - #elif defined(UNW_TARGET_TILEGX) - if (regnum < 0 || regnum > UNW_TILEGX_CFA) - goto badreg; -+#elif defined(UNW_TARGET_IA64) || defined(UNW_TARGET_HPPA) || defined(UNW_TARGET_PPC32) || defined(UNW_TARGET_PPC64) -+ if (regnum < 0 || regnum >= ARRAY_SIZE(ui->prstatus->pr_reg)) -+ goto badreg; - #else - #if defined(UNW_TARGET_MIPS) - static const uint8_t remap_regs[] = diff --git a/sys-libs/libunwind/files/libunwind-1.2-ia64-missing.patch b/sys-libs/libunwind/files/libunwind-1.2-ia64-missing.patch deleted file mode 100644 index e15250b4c61f..000000000000 --- a/sys-libs/libunwind/files/libunwind-1.2-ia64-missing.patch +++ /dev/null @@ -1,93 +0,0 @@ -Original libunwind release is missing a few ia64-specific files in tarball. -diff --git a/src/ia64/mk_Gcursor_i.c b/src/ia64/mk_Gcursor_i.c -new file mode 100644 -index 0000000..67b14d5 ---- /dev/null -+++ b/src/ia64/mk_Gcursor_i.c -@@ -0,0 +1,65 @@ -+/* libunwind - a platform-independent unwind library -+ Copyright (C) 2003 Hewlett-Packard Co -+ Contributed by David Mosberger-Tang -+ -+This file is part of libunwind. -+ -+Permission is hereby granted, free of charge, to any person obtaining -+a copy of this software and associated documentation files (the -+"Software"), to deal in the Software without restriction, including -+without limitation the rights to use, copy, modify, merge, publish, -+distribute, sublicense, and/or sell copies of the Software, and to -+permit persons to whom the Software is furnished to do so, subject to -+the following conditions: -+ -+The above copyright notice and this permission notice shall be -+included in all copies or substantial portions of the Software. -+ -+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -+ -+/* Utility to generate cursor_i.h. */ -+ -+#include "libunwind_i.h" -+ -+#ifdef offsetof -+# undef offsetof -+#endif -+ -+#define offsetof(type,field) ((char *) &((type *) 0)->field - (char *) 0) -+ -+#define OFFSET(sym, offset) \ -+ asm volatile("\n->" #sym " %0" : : "i" (offset)) -+ -+int -+main (void) -+{ -+ OFFSET("IP_OFF", offsetof (struct cursor, ip)); -+ OFFSET("PR_OFF", offsetof (struct cursor, pr)); -+ OFFSET("BSP_OFF", offsetof (struct cursor, bsp)); -+ OFFSET("PSP_OFF", offsetof (struct cursor, psp)); -+ OFFSET("PFS_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_PFS])); -+ OFFSET("RNAT_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_RNAT])); -+ OFFSET("UNAT_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_UNAT])); -+ OFFSET("LC_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_LC])); -+ OFFSET("FPSR_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_FPSR])); -+ OFFSET("B1_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_B1])); -+ OFFSET("B2_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_B2])); -+ OFFSET("B3_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_B3])); -+ OFFSET("B4_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_B4])); -+ OFFSET("B5_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_B5])); -+ OFFSET("F2_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_F2])); -+ OFFSET("F3_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_F3])); -+ OFFSET("F4_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_F4])); -+ OFFSET("F5_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_F5])); -+ OFFSET("FR_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_F16])); -+ OFFSET("LOC_SIZE", -+ (offsetof (struct cursor, loc[1]) - offsetof (struct cursor, loc[0]))); -+ OFFSET("SIGCONTEXT_ADDR_OFF", offsetof (struct cursor, sigcontext_addr)); -+ return 0; -+} -diff --git a/src/ia64/mk_Lcursor_i.c b/src/ia64/mk_Lcursor_i.c -new file mode 100644 -index 0000000..aee2e7e ---- /dev/null -+++ b/src/ia64/mk_Lcursor_i.c -@@ -0,0 +1,2 @@ -+#define UNW_LOCAL_ONLY -+#include "mk_Gcursor_i.c" -diff --git a/src/ia64/mk_cursor_i b/src/ia64/mk_cursor_i -new file mode 100755 -index 0000000..9211f91 ---- /dev/null -+++ b/src/ia64/mk_cursor_i -@@ -0,0 +1,7 @@ -+#!/bin/sh -+test -z "$1" && exit 1 -+echo "/* GENERATED */" -+echo "#ifndef cursor_i_h" -+echo "#define cursor_i_h" -+sed -ne 's/^->"\(\S*\)" \(\d*\)/#define \1 \2/p' < $1 || exit $? -+echo "#endif" diff --git a/sys-libs/libunwind/files/libunwind-1.2-ia64-ptrace-coredump.patch b/sys-libs/libunwind/files/libunwind-1.2-ia64-ptrace-coredump.patch deleted file mode 100644 index 3785d8820cd9..000000000000 --- a/sys-libs/libunwind/files/libunwind-1.2-ia64-ptrace-coredump.patch +++ /dev/null @@ -1,34 +0,0 @@ -Fix build failure on ia64. - coredump/_UPT_get_dyn_info_list_addr.c -is almost identical to - ptrace/_UPT_get_dyn_info_list_addr.c -It's clearly an __ia64 implementation copy. -diff --git a/src/coredump/_UPT_get_dyn_info_list_addr.c b/src/coredump/_UPT_get_dyn_info_list_addr.c -index 0d11905..176b146 100644 ---- a/src/coredump/_UPT_get_dyn_info_list_addr.c -+++ b/src/coredump/_UPT_get_dyn_info_list_addr.c -@@ -31,2 +31,3 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - # include "os-linux.h" -+# include "../ptrace/_UPT_internal.h" - -@@ -40,3 +41,2 @@ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg, - char path[PATH_MAX]; -- unw_dyn_info_t *di; - unw_word_t res; -@@ -50,5 +50,5 @@ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg, - -- invalidate_edi (&ui->edi); -+ invalidate_edi(&ui->edi); - -- if (elf_map_image (&ui->ei, path) < 0) -+ if (elf_map_image (&ui->edi.ei, path) < 0) - /* ignore unmappable stuff like "/SYSV00001b58 (deleted)" */ -@@ -58,6 +58,5 @@ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg, - -- di = tdep_find_unwind_table (&ui->edi, as, path, lo, off); -- if (di) -+ if (tdep_find_unwind_table (&ui->edi, as, path, lo, off, 0) > 0) - { -- res = _Uia64_find_dyn_list (as, di, arg); -+ res = _Uia64_find_dyn_list (as, &ui->edi.di_cache, arg); - if (res && count++ == 0) diff --git a/sys-libs/libunwind/files/libunwind-1.2.1-only-include-execinfo_h-if-avaliable.patch b/sys-libs/libunwind/files/libunwind-1.2.1-only-include-execinfo_h-if-avaliable.patch deleted file mode 100644 index b6ba0028c80f..000000000000 --- a/sys-libs/libunwind/files/libunwind-1.2.1-only-include-execinfo_h-if-avaliable.patch +++ /dev/null @@ -1,53 +0,0 @@ -https://github.com/libunwind/libunwind/commit/6382d6f5c9d4d149989e47b20446f794365137c1 - -From 0f3f41a86842f2b19aa07af5242cb775ef9b20d3 Mon Sep 17 00:00:00 2001 -From: "Jory A. Pratt" -Date: Sat, 30 Jun 2018 22:44:22 -0500 -Subject: [PATCH] Only include execinfo.h where avaliable - -Signed-off-by: Jory A. Pratt ---- - tests/test-coredump-unwind.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/tests/test-coredump-unwind.c b/tests/test-coredump-unwind.c -index 5254708..33f92b0 100644 ---- a/tests/test-coredump-unwind.c -+++ b/tests/test-coredump-unwind.c -@@ -57,7 +57,9 @@ - #include - - /* For SIGSEGV handler code */ -+#if HAVE_EXECINFO_H - #include -+#endif - #include - - #include -@@ -202,7 +204,7 @@ void die_out_of_memory(void) - /* End of utility logging functions */ - - -- -+#if HAVE_EXECINFO_H - static - void handle_sigsegv(int sig, siginfo_t *info, void *ucontext) - { -@@ -249,12 +251,14 @@ void handle_sigsegv(int sig, siginfo_t *info, void *ucontext) - - _exit(1); - } -- -+#endif - static void install_sigsegv_handler(void) - { - struct sigaction sa; - memset(&sa, 0, sizeof(sa)); -+#if HAVE_EXECINFO_H - sa.sa_sigaction = handle_sigsegv; -+#endif - sa.sa_flags = SA_SIGINFO; - sigaction(SIGSEGV, &sa, NULL); - sigaction(SIGILL, &sa, NULL); --- -2.18.0 diff --git a/sys-libs/libunwind/files/libunwind-1.5.0-x32.patch b/sys-libs/libunwind/files/libunwind-1.5.0-x32.patch deleted file mode 100644 index a3bbc81f45b5..000000000000 --- a/sys-libs/libunwind/files/libunwind-1.5.0-x32.patch +++ /dev/null @@ -1,17 +0,0 @@ -https://bugs.gentoo.org/614374 - -From: kasperk81 <83082615+kasperk81@users.noreply.github.com> -Date: Wed, 30 Jun 2021 23:23:22 +0000 -Subject: [PATCH] Fix -mx32 compilation error - ---- a/src/x86_64/Gos-linux.c -+++ b/src/x86_64/Gos-linux.c -@@ -149,7 +149,7 @@ x86_64_sigreturn (unw_cursor_t *cursor) - __asm__ __volatile__ ("mov %0, %%rsp;" - "mov %1, %%rax;" - "syscall" -- :: "r"(sc), "i"(SYS_rt_sigreturn) -+ :: "r"((uint64_t)sc), "i"(SYS_rt_sigreturn) - : "memory"); - abort(); - } diff --git a/sys-libs/libunwind/libunwind-1.5.0-r1.ebuild b/sys-libs/libunwind/libunwind-1.5.0-r1.ebuild deleted file mode 100644 index 082fdab6ed88..000000000000 --- a/sys-libs/libunwind/libunwind-1.5.0-r1.ebuild +++ /dev/null @@ -1,108 +0,0 @@ -# Copyright 2005-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -MY_PV=${PV/_/-} -MY_P=${PN}-${MY_PV} -inherit autotools flag-o-matic libtool multilib-minimal - -DESCRIPTION="Portable and efficient API to determine the call-chain of a program" -HOMEPAGE="https://savannah.nongnu.org/projects/libunwind" -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 -riscv -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) - -# We just use the header from libatomic. -RDEPEND=" - lzma? ( app-arch/xz-utils[static-libs?,${MULTILIB_USEDEP}] ) - zlib? ( sys-libs/zlib[static-libs?,${MULTILIB_USEDEP}] ) -" -DEPEND="${RDEPEND} - libatomic? ( dev-libs/libatomic_ops[${MULTILIB_USEDEP}] )" - -S="${WORKDIR}/${MY_P}" - -MULTILIB_WRAPPED_HEADERS=( - /usr/include/libunwind.h - - # see libunwind.h for the full list of arch-specific headers - /usr/include/libunwind-aarch64.h - /usr/include/libunwind-arm.h - /usr/include/libunwind-hppa.h - /usr/include/libunwind-ia64.h - /usr/include/libunwind-mips.h - /usr/include/libunwind-ppc32.h - /usr/include/libunwind-ppc64.h - /usr/include/libunwind-sh.h - /usr/include/libunwind-tilegx.h - /usr/include/libunwind-x86.h - /usr/include/libunwind-x86_64.h -) - -PATCHES=( - "${FILESDIR}"/${PN}-1.2-coredump-regs.patch #586092 - "${FILESDIR}"/${PN}-1.2-ia64-ptrace-coredump.patch - "${FILESDIR}"/${PN}-1.2-ia64-missing.patch - "${FILESDIR}"/${PN}-1.5.0-x32.patch - # needs refresh: - #"${FILESDIR}"/${PN}-1.2.1-only-include-execinfo_h-if-avaliable.patch -) - -src_prepare() { - default - chmod +x src/ia64/mk_cursor_i || die - # Since we have tests disabled via RESTRICT, disable building in the subdir - # entirely. This works around some build errors too. #484846 - sed -i -e '/^SUBDIRS/s:tests::' Makefile.in || die - - elibtoolize - eautoreconf - - # Let's wait for proper fix upstream in https://github.com/libunwind/libunwind/issues/154 - # Meanwhile workaround for gcc-10 with -fcommon, bug #706560 - append-cflags -fcommon -} - -multilib_src_configure() { - # --enable-cxx-exceptions: always enable it, headers provide the interface - # and on some archs it is disabled by default causing a mismatch between the - # API and the ABI, bug #418253 - # conservative-checks: validate memory addresses before use; as of 1.0.1, - # only x86_64 supports this, yet may be useful for debugging, couple it with - # debug useflag. - ECONF_SOURCE="${S}" \ - ac_cv_header_atomic_ops_h=$(usex libatomic) \ - econf \ - --enable-cxx-exceptions \ - --enable-coredump \ - --enable-ptrace \ - --enable-setjmp \ - $(use_enable debug-frame) \ - $(use_enable doc documentation) \ - $(use_enable lzma minidebuginfo) \ - $(use_enable static-libs static) \ - $(use_enable zlib zlibdebuginfo) \ - $(use_enable debug conservative_checks) \ - $(use_enable debug) -} - -multilib_src_compile() { - # Bug 586208 - CCACHE_NODIRECT=1 default -} - -multilib_src_test() { - # Explicitly allow parallel build of tests. - # Sandbox causes some tests to freak out. - SANDBOX_ON=0 emake check -} - -multilib_src_install_all() { - find "${D}" -name "*.la" -type f -delete || die -} diff --git a/sys-libs/libunwind/libunwind-1.6.2.ebuild b/sys-libs/libunwind/libunwind-1.6.2.ebuild index f67ca2db225d..3c8d7610772f 100644 --- a/sys-libs/libunwind/libunwind-1.6.2.ebuild +++ b/sys-libs/libunwind/libunwind-1.6.2.ebuild @@ -5,7 +5,7 @@ EAPI=7 MY_PV=${PV/_/-} MY_P=${PN}-${MY_PV} -inherit autotools multilib-minimal +inherit multilib-minimal DESCRIPTION="Portable and efficient API to determine the call-chain of a program" HOMEPAGE="https://savannah.nongnu.org/projects/libunwind" @@ -49,8 +49,6 @@ src_prepare() { default chmod +x src/ia64/mk_cursor_i || die - - eautoreconf } multilib_src_configure() { diff --git a/sys-libs/libutempter/Manifest b/sys-libs/libutempter/Manifest index 1ddd948d4d3f..0ea557d3a39b 100644 --- a/sys-libs/libutempter/Manifest +++ b/sys-libs/libutempter/Manifest @@ -1,3 +1,3 @@ DIST libutempter-1.2.1.tar.gz 17429 BLAKE2B 88ae0a03a8a614b960082ce4d4006ec4e3eb8148b319ae964ac3ba3f684f08f5dd670e693f25d52d04a280f7b2aed6d2894cbbc0e2db3f71ab68e6910ffb58d1 SHA512 d3a3bab7d2c2a68534c5ad41dd02bde849eb08df5dbb895a79b50b74d269c48c4cfcd12c4654941ccb7cdd43f486cfdc19148fa470870562f5cd324ce9782429 -EBUILD libutempter-1.2.1.ebuild 1506 BLAKE2B 385cc330aafa7e66addd3310d515e212e3a1a3bc6d9c8ec9c174eace2dc1248b2b90a1009544357d8fa2026f229ed69605d0aa527976721dce9d34f1e2fa1db2 SHA512 8df583c0ca496cbfdb8cf53524e81330d873473dc2aed0d6a52f1c55ddc1acd8fd0159033f2a6e7481e3fd4ae51c3f8af7e8034b4c7fe923b004e3fa999e85cc +EBUILD libutempter-1.2.1.ebuild 1513 BLAKE2B ff05b6ac70a441e46d0e0824b62fcd576e6762c22cfcc000f6339e6b6d93de338335d1aee5bec1ceb2e520fc514d4af2ff954c1baefca7162120882e945c7a8b SHA512 fe198624e34027f92c0b7c9ee0ac131ec6015f6195efbc74f0c1bd73810d9e5b53b4302fb583305b887501fdc8c46774f50e97019a990c6c048ceddee1e4ea4f MISC metadata.xml 254 BLAKE2B f3a9f843cf94243d1129711770df727fcdc8808bca829ef784819cab6f5410dfa463cfed85182f8228c7de796a674dd602653ad3ef817a62c0c3e7198b23befe SHA512 b9fcd3084a7e197f6138e1ce8b0eff99c4c203c37a7d5c40de207040ba1501ef0e5b2f4e00216a567037bcd6d3394fdec6ff587484c9ba2fca9d04f431733b7c diff --git a/sys-libs/libutempter/libutempter-1.2.1.ebuild b/sys-libs/libutempter/libutempter-1.2.1.ebuild index 1fcbf2b7f88b..953cc42fcc2d 100644 --- a/sys-libs/libutempter/libutempter-1.2.1.ebuild +++ b/sys-libs/libutempter/libutempter-1.2.1.ebuild @@ -11,7 +11,7 @@ SRC_URI="ftp://ftp.altlinux.org/pub/people/ldv/${PN}/${P}.tar.gz" LICENSE="LGPL-2.1" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux" IUSE="static-libs" RDEPEND=" diff --git a/sys-libs/libxcrypt/Manifest b/sys-libs/libxcrypt/Manifest index 7004e3b6c94c..726c91142a7f 100644 --- a/sys-libs/libxcrypt/Manifest +++ b/sys-libs/libxcrypt/Manifest @@ -1,12 +1,8 @@ AUX libxcrypt-4.4.19-multibuild.patch 303 BLAKE2B cd342eef2a8ce3e305e544d37373370748690878b4171709028b7b894ad2c76c9188496ab089a46645ad6f9fca09fa4f89cdcb444e1400747ee358c079441661 SHA512 3cbd4bbd0827801faaaa2198eccccb285100cdfc43525b70816121aa70b32dc2c8479c53e16b9e99920926b1b11014dcc19909c4f72a09d9d19fcdb0fa6350cd DIST libxcrypt-4.4.20-autotools.tar.xz 628688 BLAKE2B 4c23af2a765495758e52c8e95d53d1c1d911fea011375160c4f10e468939734fcc7198cc327fafa4d5c90afa6d4c56dfe6d1b56c2c17bbc015b44cffcd7bcc8b SHA512 5b7504e9d83df12af7d11864e88d1034ed9ce0a837ef061044c5c7fe603d7f3e5613ddf20b30613a7943735120cd058f2117401d59879afcba34ce0e48ae62ee -DIST libxcrypt-4.4.25-autotools.tar.xz 614652 BLAKE2B f0f4fbf92585fdd8d328aaa68811ea15bdf75778363ea4bc46a75fb76bb065f044708446d655356ebbf2834f8b14bac40fbe700b510b09ce101f750667a04298 SHA512 30f38a54c8e5cbd31c463223913079f9869d38ed38a2f64c57778ac4cf1b6f557caa527073df54ca8396bb7220807b84afcae2f9790f6604af1561a4b277874e -DIST libxcrypt-4.4.26-autotools.tar.xz 617808 BLAKE2B 9fb8e31b22a085c0d0d5ab2ee3fb69fbebaccee2281e9be7d745218b5b92d949ffd3aa9c385671d58c93a654e16b943a33284b0b4737d52d26e43e2f7840fe74 SHA512 22c72cacd87c5751c4160413738fdf52c8fee300dcad01b289a6eaf892439883b9478103f791f5f53c8e5e2f2dd81057e5fda45e7cf7fdfd3ba93dd811bc01e3 DIST libxcrypt-4.4.27-autotools.tar.xz 619240 BLAKE2B 13dd5730fded0684c8e7321fee8a786663ff1080a6ca248bd718c4f6c9f6bd2853689c347be9f9ae51ebc1281aaa2143dfc020149382d259e7eefe66ac8b675e SHA512 f13ae1e69bf5850abb47a28f9ac3e3b0a8b3123adc53d39fd39a26d53847bf6e3fdca751e086cd80ce4e5d9ee419b09148c247cbe5f663b3019b66f82cdc5f5c DIST libxcrypt-4.4.28-autotools.tar.xz 618560 BLAKE2B c56d510201651e36cbd950b5a0a32273fdbce1f053109aa5867b2c6a57e2a896c34c981c1a2e732a8f34539b754ebe7f50d1b5bf59f9549a75ad6420921f3e1d SHA512 3c60fd32dea308152c4272522c29668c83e88bea47c98b9fe796ed70f5460ad2a9616ffbe789c03e417b28d3c792361b16031bda3d8bc5b6c06f0ebdc66c8217 EBUILD libxcrypt-4.4.20.ebuild 5797 BLAKE2B 888564715e7df7e8d19461ec5e9654ec6b0423148bfd6c9169d61cd12ebe30a6c8384092748bc5459be370b7bad0d615883dbfc51a5dff28abbd43ad57e79199 SHA512 dde0ff01e886294442779aea22148a8ccf17c47357b379f7d3c93ea49412233536a61972197909759b4957deac66afd703056a8c658f6b40fe78b85b85d0c930 -EBUILD libxcrypt-4.4.25-r1.ebuild 6394 BLAKE2B eb7f84bae0267f33a4f3ea17af79891802395eb361cf04565de6d9fafd31f8ca58bada24cb9c54bbae5ef171b822f4a63c94d777a8f81b69369faf40cc1ae2d0 SHA512 415b9151344e36ea65262fcdf51e3dd37c6e3ab11a2ecf15a575b2cf18740aee168c61f4502409d5d7617b8bc17f38c5decacc013125018ec72841f094b63fc6 -EBUILD libxcrypt-4.4.26-r1.ebuild 6402 BLAKE2B 72b434330bc6e591fb053fa472a64e40c45fa34a5c8c355fd3236f62a024c36bd49bb7420239f559cd3fce87931551d2c5340c705e91a6219d0e0c9f3e976041 SHA512 01fced1a1a1cf6838cd8b57ed141a1df3c30843e29b6b4b93bc1656cb729d79882a2d28916e917aa8c0b687bd6c8d6aab51cfc5e3d0b744a74ba59430049fba3 EBUILD libxcrypt-4.4.27.ebuild 6394 BLAKE2B eb7f84bae0267f33a4f3ea17af79891802395eb361cf04565de6d9fafd31f8ca58bada24cb9c54bbae5ef171b822f4a63c94d777a8f81b69369faf40cc1ae2d0 SHA512 415b9151344e36ea65262fcdf51e3dd37c6e3ab11a2ecf15a575b2cf18740aee168c61f4502409d5d7617b8bc17f38c5decacc013125018ec72841f094b63fc6 -EBUILD libxcrypt-4.4.28.ebuild 6402 BLAKE2B 72b434330bc6e591fb053fa472a64e40c45fa34a5c8c355fd3236f62a024c36bd49bb7420239f559cd3fce87931551d2c5340c705e91a6219d0e0c9f3e976041 SHA512 01fced1a1a1cf6838cd8b57ed141a1df3c30843e29b6b4b93bc1656cb729d79882a2d28916e917aa8c0b687bd6c8d6aab51cfc5e3d0b744a74ba59430049fba3 +EBUILD libxcrypt-4.4.28.ebuild 7323 BLAKE2B f8732eb91bbc1dad9592e7440acac3e47ac18521fd39bfe47a6addde931fda3062cacb78a0993e7c1048b811b59f2f65055dbff9840b29e20ac40a6934fc1658 SHA512 4d68220f64b061a51644f7f35f2be09857d5ece5e2a0a4e18d2a35a270feb59b7794b7d161d7241d826ad7abeff1ca12ad03d73b827fc5c9fcfd2ec9cc70cbb1 MISC metadata.xml 831 BLAKE2B f8761f3758acf79afea36926a6488afb73c433a8faa599aa09a3bbc01b6c733d7264d7b584606158312825f099a1176623c70625a317a837de5bb20501f5ed22 SHA512 826ea578d9d3e651767e8f670d2bbb918c11e26ca5dc1c52ff7fbd513c39bee2d9423ecf16e47e2603f5a8c7b6979fd27eacde84182deb5a67004c9a3be281cb diff --git a/sys-libs/libxcrypt/libxcrypt-4.4.25-r1.ebuild b/sys-libs/libxcrypt/libxcrypt-4.4.25-r1.ebuild deleted file mode 100644 index c9559428437e..000000000000 --- a/sys-libs/libxcrypt/libxcrypt-4.4.25-r1.ebuild +++ /dev/null @@ -1,225 +0,0 @@ -# Copyright 2004-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{8..10} ) -# NEED_BOOTSTRAP is for developers to quickly generate a tarball -# for publishing to the tree. -NEED_BOOTSTRAP="no" -inherit multibuild multilib python-any-r1 toolchain-funcs multilib-minimal - -DESCRIPTION="Extended crypt library for descrypt, md5crypt, bcrypt, and others" -HOMEPAGE="https://github.com/besser82/libxcrypt" -if [[ ${NEED_BOOTSTRAP} == "yes" ]] ; then - inherit autotools - SRC_URI="https://github.com/besser82/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" -else - SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-autotools.tar.xz" -fi - -LICENSE="LGPL-2.1+ public-domain BSD BSD-2" -SLOT="0/1" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" -IUSE="+compat split-usr static-libs system test" -REQUIRED_USE="split-usr? ( system )" -RESTRICT="!test? ( test )" - -DEPEND="system? ( - elibc_glibc? ( - sys-libs/glibc[-crypt(+)] - !sys-libs/glibc[crypt(+)] - ) - !sys-libs/musl - ) -" -RDEPEND="${DEPEND}" -BDEPEND="dev-lang/perl - test? ( $(python_gen_any_dep 'dev-python/passlib[${PYTHON_USEDEP}]') )" - -python_check_deps() { - has_version -b "dev-python/passlib[${PYTHON_USEDEP}]" -} - -pkg_pretend() { - if has "distcc" ${FEATURES} ; then - ewarn "Please verify all distcc nodes are using the same versions of GCC (>= 10) and Binutils!" - ewarn "Older/mismatched versions of GCC may lead to a misbehaving library: bug #823179." - - if [[ ${BUILD_TYPE} != "binary" ]] && tc-is-gcc && [[ $(gcc-major-version) -lt 10 ]] ; then - die "libxcrypt is known to fail to build or be broken at runtime with < GCC 10 (bug #823179)!" - fi - fi -} - -pkg_setup() { - MULTIBUILD_VARIANTS=( - $(usex compat 'xcrypt_compat' '') - xcrypt_nocompat - ) - - use test && python-any-r1_pkg_setup -} - -src_prepare() { - default - - # WARNING: Please read on bumping or applying patches! - # - # There are two circular dependencies to be aware of: - # 1) - # if we're bootstrapping configure and makefiles: - # libxcrypt -> automake -> perl -> libxcrypt - # - # mitigation: - # toolchain@ manually runs `make dist` after running autoconf + `./configure` - # and the ebuild uses that. - # (Don't include the pre-generated Perl artefacts.) - # - # solution for future: - # Upstream are working on producing `make dist` tarballs. - # https://github.com/besser82/libxcrypt/issues/134#issuecomment-871833573 - # - # 2) - # configure *unconditionally* needs Perl at build time to generate - # a list of enabled algorithms based on the set passed to `configure`: - # libxcrypt -> perl -> libxcrypt - # - # mitigation: - # None at the moment. - # - # solution for future: - # Not possible right now. Upstream intend on depending on Perl for further - # configuration options. - # https://github.com/besser82/libxcrypt/issues/134#issuecomment-871833573 - # - # Therefore, on changes (inc. bumps): - # * You must check whether upstream have started providing tarballs with bootstrapped - # auto{conf,make}; - # - # * diff the build system changes! - # - if [[ ${NEED_BOOTSTRAP} == "yes" ]] ; then - # Facilitate our split variant build for compat + non-compat - eapply "${FILESDIR}"/${PN}-4.4.19-multibuild.patch - eautoreconf - fi -} - -src_configure() { - # Avoid possible "illegal instruction" errors with gold - # bug #821496 - tc-ld-disable-gold - - multibuild_foreach_variant multilib-minimal_src_configure -} - -get_xclibdir() { - printf -- "%s/%s/%s\n" \ - "$(usex split-usr '' '/usr')" \ - "$(get_libdir)" \ - "$(usex system '' 'xcrypt')" -} - -multilib_src_configure() { - local -a myconf=( - --disable-werror - --libdir="${EPREFIX}"$(get_xclibdir) - --with-pkgconfigdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig" - --includedir="${EPREFIX}/usr/include/$(usex system '' 'xcrypt')" - ) - - case "${MULTIBUILD_ID}" in - xcrypt_compat-*) - myconf+=( - --disable-static - --disable-xcrypt-compat-files - --enable-obsolete-api=yes - ) - ;; - xcrypt_nocompat-*) - myconf+=( - --enable-obsolete-api=no - $(use_enable static-libs static) - ) - ;; - *) die "Unexpected MULTIBUILD_ID: ${MULTIBUILD_ID}";; - esac - - ECONF_SOURCE="${S}" econf "${myconf[@]}" -} - -src_compile() { - multibuild_foreach_variant multilib-minimal_src_compile -} - -multilib_src_test() { - emake check -} - -src_test() { - multibuild_foreach_variant multilib-minimal_src_test -} - -src_install() { - multibuild_foreach_variant multilib-minimal_src_install - - ( - shopt -s failglob || die "failglob failed" - - # Make sure our man pages do not collide with glibc or man-pages. - for manpage in "${ED}"/usr/share/man/man3/crypt{,_r}.?*; do - mv -n "${manpage}" "$(dirname "${manpage}")/xcrypt_$(basename "${manpage}")" \ - || die "mv failed" - done - ) || die "failglob error" - - # Remove useless stuff from installation - find "${ED}"/usr/share/doc/${PF} -type l -delete || die - find "${ED}" -name '*.la' -delete || die -} - -multilib_src_install() { - emake DESTDIR="${D}" install - - # Don't install the libcrypt.so symlink for the "compat" version - case "${MULTIBUILD_ID}" in - xcrypt_compat-*) - rm "${ED}"$(get_xclibdir)/libcrypt$(get_libname) \ - || die "failed to remove extra compat libraries" - ;; - xcrypt_nocompat-*) - if use split-usr; then - ( - if use static-libs; then - # .a files are installed to /$(get_libdir) by default - # Move static libraries to /usr prefix or portage will abort - shopt -s nullglob || die "failglob failed" - static_libs=( "${ED}"/$(get_xclibdir)/*.a ) - - if [[ -n ${static_libs[*]} ]]; then - dodir "/usr/$(get_xclibdir)" - mv "${static_libs[@]}" "${ED}/usr/$(get_xclibdir)" \ - || die "Moving static libs failed" - fi - fi - - if use system; then - # Move versionless .so symlinks from /$(get_libdir) to /usr/$(get_libdir) - # to allow linker to correctly find shared libraries. - shopt -s failglob || die "failglob failed" - - for lib_file in "${ED}"$(get_xclibdir)/*$(get_libname); do - lib_file_basename="$(basename "${lib_file}")" - lib_file_target="$(basename "$(readlink -f "${lib_file}")")" - dosym "../../$(get_libdir)/${lib_file_target}" "/usr/$(get_xclibdir)/${lib_file_basename}" - done - - rm "${ED}"$(get_xclibdir)/*$(get_libname) || die "Removing symlinks in incorrect location failed" - fi - ) - fi - ;; - *) die "Unexpected MULTIBUILD_ID: ${MULTIBUILD_ID}";; - esac -} diff --git a/sys-libs/libxcrypt/libxcrypt-4.4.26-r1.ebuild b/sys-libs/libxcrypt/libxcrypt-4.4.26-r1.ebuild deleted file mode 100644 index 9bebb1243fee..000000000000 --- a/sys-libs/libxcrypt/libxcrypt-4.4.26-r1.ebuild +++ /dev/null @@ -1,225 +0,0 @@ -# Copyright 2004-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{8..10} ) -# NEED_BOOTSTRAP is for developers to quickly generate a tarball -# for publishing to the tree. -NEED_BOOTSTRAP="no" -inherit multibuild multilib python-any-r1 toolchain-funcs multilib-minimal - -DESCRIPTION="Extended crypt library for descrypt, md5crypt, bcrypt, and others" -HOMEPAGE="https://github.com/besser82/libxcrypt" -if [[ ${NEED_BOOTSTRAP} == "yes" ]] ; then - inherit autotools - SRC_URI="https://github.com/besser82/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" -else - SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-autotools.tar.xz" -fi - -LICENSE="LGPL-2.1+ public-domain BSD BSD-2" -SLOT="0/1" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -IUSE="+compat split-usr static-libs system test" -REQUIRED_USE="split-usr? ( system )" -RESTRICT="!test? ( test )" - -DEPEND="system? ( - elibc_glibc? ( - sys-libs/glibc[-crypt(+)] - !sys-libs/glibc[crypt(+)] - ) - !sys-libs/musl - ) -" -RDEPEND="${DEPEND}" -BDEPEND="dev-lang/perl - test? ( $(python_gen_any_dep 'dev-python/passlib[${PYTHON_USEDEP}]') )" - -python_check_deps() { - has_version -b "dev-python/passlib[${PYTHON_USEDEP}]" -} - -pkg_pretend() { - if has "distcc" ${FEATURES} ; then - ewarn "Please verify all distcc nodes are using the same versions of GCC (>= 10) and Binutils!" - ewarn "Older/mismatched versions of GCC may lead to a misbehaving library: bug #823179." - - if [[ ${BUILD_TYPE} != "binary" ]] && tc-is-gcc && [[ $(gcc-major-version) -lt 10 ]] ; then - die "libxcrypt is known to fail to build or be broken at runtime with < GCC 10 (bug #823179)!" - fi - fi -} - -pkg_setup() { - MULTIBUILD_VARIANTS=( - $(usex compat 'xcrypt_compat' '') - xcrypt_nocompat - ) - - use test && python-any-r1_pkg_setup -} - -src_prepare() { - default - - # WARNING: Please read on bumping or applying patches! - # - # There are two circular dependencies to be aware of: - # 1) - # if we're bootstrapping configure and makefiles: - # libxcrypt -> automake -> perl -> libxcrypt - # - # mitigation: - # toolchain@ manually runs `make dist` after running autoconf + `./configure` - # and the ebuild uses that. - # (Don't include the pre-generated Perl artefacts.) - # - # solution for future: - # Upstream are working on producing `make dist` tarballs. - # https://github.com/besser82/libxcrypt/issues/134#issuecomment-871833573 - # - # 2) - # configure *unconditionally* needs Perl at build time to generate - # a list of enabled algorithms based on the set passed to `configure`: - # libxcrypt -> perl -> libxcrypt - # - # mitigation: - # None at the moment. - # - # solution for future: - # Not possible right now. Upstream intend on depending on Perl for further - # configuration options. - # https://github.com/besser82/libxcrypt/issues/134#issuecomment-871833573 - # - # Therefore, on changes (inc. bumps): - # * You must check whether upstream have started providing tarballs with bootstrapped - # auto{conf,make}; - # - # * diff the build system changes! - # - if [[ ${NEED_BOOTSTRAP} == "yes" ]] ; then - # Facilitate our split variant build for compat + non-compat - eapply "${FILESDIR}"/${PN}-4.4.19-multibuild.patch - eautoreconf - fi -} - -src_configure() { - # Avoid possible "illegal instruction" errors with gold - # bug #821496 - tc-ld-disable-gold - - multibuild_foreach_variant multilib-minimal_src_configure -} - -get_xclibdir() { - printf -- "%s/%s/%s\n" \ - "$(usex split-usr '' '/usr')" \ - "$(get_libdir)" \ - "$(usex system '' 'xcrypt')" -} - -multilib_src_configure() { - local -a myconf=( - --disable-werror - --libdir="${EPREFIX}"$(get_xclibdir) - --with-pkgconfigdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig" - --includedir="${EPREFIX}/usr/include/$(usex system '' 'xcrypt')" - ) - - case "${MULTIBUILD_ID}" in - xcrypt_compat-*) - myconf+=( - --disable-static - --disable-xcrypt-compat-files - --enable-obsolete-api=yes - ) - ;; - xcrypt_nocompat-*) - myconf+=( - --enable-obsolete-api=no - $(use_enable static-libs static) - ) - ;; - *) die "Unexpected MULTIBUILD_ID: ${MULTIBUILD_ID}";; - esac - - ECONF_SOURCE="${S}" econf "${myconf[@]}" -} - -src_compile() { - multibuild_foreach_variant multilib-minimal_src_compile -} - -multilib_src_test() { - emake check -} - -src_test() { - multibuild_foreach_variant multilib-minimal_src_test -} - -src_install() { - multibuild_foreach_variant multilib-minimal_src_install - - ( - shopt -s failglob || die "failglob failed" - - # Make sure our man pages do not collide with glibc or man-pages. - for manpage in "${ED}"/usr/share/man/man3/crypt{,_r}.?*; do - mv -n "${manpage}" "$(dirname "${manpage}")/xcrypt_$(basename "${manpage}")" \ - || die "mv failed" - done - ) || die "failglob error" - - # Remove useless stuff from installation - find "${ED}"/usr/share/doc/${PF} -type l -delete || die - find "${ED}" -name '*.la' -delete || die -} - -multilib_src_install() { - emake DESTDIR="${D}" install - - # Don't install the libcrypt.so symlink for the "compat" version - case "${MULTIBUILD_ID}" in - xcrypt_compat-*) - rm "${ED}"$(get_xclibdir)/libcrypt$(get_libname) \ - || die "failed to remove extra compat libraries" - ;; - xcrypt_nocompat-*) - if use split-usr; then - ( - if use static-libs; then - # .a files are installed to /$(get_libdir) by default - # Move static libraries to /usr prefix or portage will abort - shopt -s nullglob || die "failglob failed" - static_libs=( "${ED}"/$(get_xclibdir)/*.a ) - - if [[ -n ${static_libs[*]} ]]; then - dodir "/usr/$(get_xclibdir)" - mv "${static_libs[@]}" "${ED}/usr/$(get_xclibdir)" \ - || die "Moving static libs failed" - fi - fi - - if use system; then - # Move versionless .so symlinks from /$(get_libdir) to /usr/$(get_libdir) - # to allow linker to correctly find shared libraries. - shopt -s failglob || die "failglob failed" - - for lib_file in "${ED}"$(get_xclibdir)/*$(get_libname); do - lib_file_basename="$(basename "${lib_file}")" - lib_file_target="$(basename "$(readlink -f "${lib_file}")")" - dosym "../../$(get_libdir)/${lib_file_target}" "/usr/$(get_xclibdir)/${lib_file_basename}" - done - - rm "${ED}"$(get_xclibdir)/*$(get_libname) || die "Removing symlinks in incorrect location failed" - fi - ) - fi - ;; - *) die "Unexpected MULTIBUILD_ID: ${MULTIBUILD_ID}";; - esac -} diff --git a/sys-libs/libxcrypt/libxcrypt-4.4.28.ebuild b/sys-libs/libxcrypt/libxcrypt-4.4.28.ebuild index 9bebb1243fee..50aec10c1952 100644 --- a/sys-libs/libxcrypt/libxcrypt-4.4.28.ebuild +++ b/sys-libs/libxcrypt/libxcrypt-4.4.28.ebuild @@ -20,17 +20,29 @@ fi LICENSE="LGPL-2.1+ public-domain BSD BSD-2" SLOT="0/1" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" IUSE="+compat split-usr static-libs system test" REQUIRED_USE="split-usr? ( system )" RESTRICT="!test? ( test )" +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then + export CTARGET=${CATEGORY/cross-} + fi +fi + +is_cross() { + local enabled_abis=( $(multilib_get_enabled_abis) ) + [[ "${#enabled_abis[@]}" -le 1 ]] && [[ ${CHOST} != ${CTARGET} ]] +} + DEPEND="system? ( elibc_glibc? ( - sys-libs/glibc[-crypt(+)] - !sys-libs/glibc[crypt(+)] + ${CATEGORY}/glibc[-crypt(+)] + !${CATEGORY}/glibc[crypt(+)] ) - !sys-libs/musl + !${CATEGORY}/musl ) " RDEPEND="${DEPEND}" @@ -114,19 +126,46 @@ src_configure() { multibuild_foreach_variant multilib-minimal_src_configure } +get_xcprefix() { + if is_cross; then + echo "${EPREFIX}/usr/${CTARGET}" + else + echo "${EPREFIX}" + fi +} + get_xclibdir() { - printf -- "%s/%s/%s\n" \ + printf -- "%s/%s/%s/%s\n" \ + "$(get_xcprefix)" \ "$(usex split-usr '' '/usr')" \ "$(get_libdir)" \ "$(usex system '' 'xcrypt')" } +get_xcincludedir() { + printf -- "%s/usr/include/%s\n" \ + "$(get_xcprefix)" \ + "$(usex system '' 'xcrypt')" +} + +get_xcmandir() { + printf -- "%s/usr/share/man\n" \ + "$(get_xcprefix)" +} + +get_xcpkgconfigdir() { + printf -- "%s/usr/%s/pkgconfig\n" \ + "$(get_xcprefix)" \ + "$(get_libdir)" +} + multilib_src_configure() { local -a myconf=( --disable-werror - --libdir="${EPREFIX}"$(get_xclibdir) - --with-pkgconfigdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig" - --includedir="${EPREFIX}/usr/include/$(usex system '' 'xcrypt')" + --libdir=$(get_xclibdir) + --with-pkgconfigdir=$(get_xcpkgconfigdir) + --includedir=$(get_xcincludedir) + --mandir="$(get_xcmandir)" ) case "${MULTIBUILD_ID}" in @@ -168,7 +207,7 @@ src_install() { shopt -s failglob || die "failglob failed" # Make sure our man pages do not collide with glibc or man-pages. - for manpage in "${ED}"/usr/share/man/man3/crypt{,_r}.?*; do + for manpage in "${D}$(get_xcmandir)"/man3/crypt{,_r}.?*; do mv -n "${manpage}" "$(dirname "${manpage}")/xcrypt_$(basename "${manpage}")" \ || die "mv failed" done @@ -177,6 +216,13 @@ src_install() { # Remove useless stuff from installation find "${ED}"/usr/share/doc/${PF} -type l -delete || die find "${ED}" -name '*.la' -delete || die + + # workaround broken upstream cross-* --docdir by installing files in proper locations + if is_cross; then + insinto "$(get_xcprefix)"/usr/share + doins -r "${ED}"/usr/share/doc + rm -r "${ED}"/usr/share/doc || die + fi } multilib_src_install() { @@ -185,7 +231,7 @@ multilib_src_install() { # Don't install the libcrypt.so symlink for the "compat" version case "${MULTIBUILD_ID}" in xcrypt_compat-*) - rm "${ED}"$(get_xclibdir)/libcrypt$(get_libname) \ + rm "${D}"$(get_xclibdir)/libcrypt$(get_libname) \ || die "failed to remove extra compat libraries" ;; xcrypt_nocompat-*) @@ -195,7 +241,7 @@ multilib_src_install() { # .a files are installed to /$(get_libdir) by default # Move static libraries to /usr prefix or portage will abort shopt -s nullglob || die "failglob failed" - static_libs=( "${ED}"/$(get_xclibdir)/*.a ) + static_libs=( "${D}"/$(get_xclibdir)/*.a ) if [[ -n ${static_libs[*]} ]]; then dodir "/usr/$(get_xclibdir)" @@ -209,13 +255,13 @@ multilib_src_install() { # to allow linker to correctly find shared libraries. shopt -s failglob || die "failglob failed" - for lib_file in "${ED}"$(get_xclibdir)/*$(get_libname); do + for lib_file in "${D}"$(get_xclibdir)/*$(get_libname); do lib_file_basename="$(basename "${lib_file}")" lib_file_target="$(basename "$(readlink -f "${lib_file}")")" dosym "../../$(get_libdir)/${lib_file_target}" "/usr/$(get_xclibdir)/${lib_file_basename}" done - rm "${ED}"$(get_xclibdir)/*$(get_libname) || die "Removing symlinks in incorrect location failed" + rm "${D}"$(get_xclibdir)/*$(get_libname) || die "Removing symlinks in incorrect location failed" fi ) fi diff --git a/sys-libs/llvm-libunwind/Manifest b/sys-libs/llvm-libunwind/Manifest index dee8fc546cd9..6315cf0cdab4 100644 --- a/sys-libs/llvm-libunwind/Manifest +++ b/sys-libs/llvm-libunwind/Manifest @@ -1,15 +1,11 @@ DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01 -DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1 -DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f -DIST llvmorg-14.0.0.tar.gz 158057350 BLAKE2B 7052684c620a5eaf52beeee4591adf58cfec9e64a5ee0b24f3d5849fd4df5b006e2906a839cb806ac69c33fab6013c58589b1d74e4fb8558758edcb7d5065064 SHA512 eb5acf96b5e2c59bd07579f7ebe73018b0dd6e2f2d9a5a3c7986320e88febd837d1084b9e5313a2264310342193044629d228337cc76dd2b8527dc0a8bdda999 DIST llvmorg-14.0.1.tar.gz 158074615 BLAKE2B bf80366461580058494eb101646efcd1a8b55a66818a710c2eb8c649bf88c02fe4552cecf4c1c8637a64e7cee8d644bca31aafc804765ed18f2b5e2975dd6c92 SHA512 0a15aa9cfc978a7b03a1659a2affad65ede66d280f5c12bf0beaaf194cd7bdd57ff438b5f40e64c1e1b88f368de99be349e9d30b544d2bbe4a50f0ebed3307f2 -EBUILD llvm-libunwind-11.1.0.ebuild 3222 BLAKE2B e9f47dd9859691d9c629b0eee62cf4e6d9a41e6f74b991410ee4cb1c647c828388a2ea7c1806df7350dcefff9a8178021956f85c7ec2aeb11d702a17e3b32132 SHA512 fc85afa5f560b2e7ad28c1e7d7b0d36b7bc0be408817b66f0d9afb3a811b94c24a282cbb13400685a2ffb00dbf620eb0c94d66fddfe27c9cffc2108f71c11a32 +DIST llvmorg-14.0.3.tar.gz 158092596 BLAKE2B ef901df510ec6bc1242595ec330e9c9ee76e696b077d67a8d62b53608c3d18b2f2d7ea3150864e13d9b37a8ce899ebca946ebe72cbc4538700176e20859ddec2 SHA512 511e93fd9b1c414c38fe9e2649679ac0b16cb04f7f7838569d187b04c542a185e364d6db73e96465026e3b2533649eb75ac95507d12514af32b28bdfb66f2646 EBUILD llvm-libunwind-12.0.1.ebuild 3656 BLAKE2B cdf5e4e4f39ce47ac57ac43f287b5d6a42a61a79d988cdcd52823aadb0c1950abc85f5c1ba8276198e46357fc27f3ab7d06c0e7e9279a9a40e4dc7f4b936aac5 SHA512 c6477d4837e8e0d3ee6c035e0462e0a817752af214ff20ace3b8c3e377c749351cf78bf2ffec3d95085334f6b9a0a23e311f5a50109c390ad5bec60a0bef2dd5 -EBUILD llvm-libunwind-13.0.0.ebuild 3781 BLAKE2B 08d2c7ea77679aa9ea06997ce86d8c8c6c073ae3b8a1ff94be33c6dd5904425ae75632bf8ea3bd00825941e6c7a6fb4879693f33a94b54b9fe054a8ec61eeaec SHA512 b83af0f0a6d45e618d70fd59c7e4ff7dfa815c8eca650a65a4c892756197bc34ea389150bd65f01c6243ea54b0cfac476d5095f657f6a34e72d92967af600aeb -EBUILD llvm-libunwind-13.0.1.ebuild 3811 BLAKE2B e26f6847c6366294a28924e456cb4a0a23955d71f2351e6a05e8784e830f4c76a1313b83c89cdac20c857218a71848eb85438d261d573b2b3aa9f7955a0e36ba SHA512 58510628813825e4dd9dd75f6a49095636085be26ae77d84b3a418f7412c4a03049891a33e5ae319225a5218f49eb07483a1646b115c0cea0d46d53cfdefb9c5 -EBUILD llvm-libunwind-14.0.0.ebuild 3179 BLAKE2B 5e7cf67a48f80e4b7faae2095063d76865892e1547b76488d9f127f51e8407950842ee156fc7ed132f01b9b3b918b0d450b475a725daf70addc832ba61740449 SHA512 fe6efe833c3f7c5482aa8238393f94803344c67d28927b26946eefa6ad53dd5ebdfd23280d56f531c1821e4f9bb259d831c97ad3f269c8a194da3332d67e7083 -EBUILD llvm-libunwind-14.0.1.ebuild 3179 BLAKE2B 5e7cf67a48f80e4b7faae2095063d76865892e1547b76488d9f127f51e8407950842ee156fc7ed132f01b9b3b918b0d450b475a725daf70addc832ba61740449 SHA512 fe6efe833c3f7c5482aa8238393f94803344c67d28927b26946eefa6ad53dd5ebdfd23280d56f531c1821e4f9bb259d831c97ad3f269c8a194da3332d67e7083 -EBUILD llvm-libunwind-15.0.0.9999.ebuild 3126 BLAKE2B c5f745f265c39e9d4686ac99fe5893b27d2e156208c92d127ddbcfb93aad9e12ed596d5d29774722db6117b3db4962be9a9d355cd2cc7d3f04efe78b2a2ed891 SHA512 dfe17e8eb6fb8b03e25c1662a209530cc4bf6c3d31adeb5dc1a57cc0bead836c60babb027809f5d1b3119d7a7bbcf538ec449b0f766763806c17c351fd775807 +EBUILD llvm-libunwind-13.0.1.ebuild 3810 BLAKE2B c215ba47340bda6a466f6ffcdf978d0d3ab4f4f1f456114f854f53dd3dd04d197ee235c4623d0a3d6e0f26022fef909be2ad04e93679ce357c396c94dc7d3a49 SHA512 96827c5f5838898ac368b79677b6e17fb0545a6a5239f8262622034843777ad4f071f9f80e3c33e0e1a2df334abcefbd7e867c5957d2bf72a1b8416b5b7ac714 +EBUILD llvm-libunwind-14.0.1.ebuild 3186 BLAKE2B e5412e6d38ce37d72640805ee3befc88ea3c0f8ae58e5f2dd2a779ac02cd51e55efe2392d3f7fc9ff1f9b2f135018527fa8e24504910c42e47d2186fa70375fb SHA512 7dc577c803526d2b6180bd1e2364789cf8ace3a7c121be1c38053f8505372b76ede20b97649aafd7ad1ebbc06c0dea405c40b0e39cb5dab139a045e047959e5d +EBUILD llvm-libunwind-14.0.3.ebuild 3205 BLAKE2B 94ee3640bf57770f52d8bf0adb53ac5eec90884af970ad72e23d0208986a3801bb327a8cf791bd97c2e9414710201e7b61cc5d1d5aef16233b015bf9c4630b4a SHA512 46e2f37981fb1e6e454da41fdeba5d9c3a97173631caf4b619756a1b3bed6b3f4904a73d799ec5fc21a96b4cd46a92033d5fdc113a9be9707c2e1dbc2237b8c6 +EBUILD llvm-libunwind-15.0.0.9999.ebuild 3145 BLAKE2B 37362f37ade47d59ebee5c65337768677a280379541c8468fdd7b31927b4eb93c2576a46838bb320bd526aa2191828cd8f7ae502adafec594b172065f5b90c35 SHA512 132b91d72b419267ef51ef5be15393a882897587f6190d62a3c39b091ef97eaef06e8f1fe62e3d8303c0f23581604357a10bc7b958b5b71ec3316c1a1dcc5e54 MISC metadata.xml 303 BLAKE2B ed0dbe1165e30ee5c3556aaf467abf212e198590a06c70f0de4e2c12060644df928c8f388fadfe776249a77dc000b40881d7254cfdc30f7a41209e2524136adb SHA512 5a69c07b9b1b37646d29a7287f1ba1c9150a5fae60df644266232871b5e4db41c0e8d102e8b873af2bdbf814935e8f8479e1534b8aa47d0ee31e971e2fa4dc50 diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-11.1.0.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-11.1.0.ebuild deleted file mode 100644 index 98002383aafb..000000000000 --- a/sys-libs/llvm-libunwind/llvm-libunwind-11.1.0.ebuild +++ /dev/null @@ -1,124 +0,0 @@ -# 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="amd64 arm arm64 ~ppc64 ~riscv x86 ~x64-macos" -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=ON - -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-13.0.0.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-13.0.0.ebuild deleted file mode 100644 index 607404341462..000000000000 --- a/sys-libs/llvm-libunwind/llvm-libunwind-13.0.0.ebuild +++ /dev/null @@ -1,142 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -CMAKE_ECLASS=cmake -PYTHON_COMPAT=( python3_{8..10} ) -inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs - -DESCRIPTION="C++ runtime stack unwinder from LLVM" -HOMEPAGE="https://github.com/llvm-mirror/libunwind" - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="0" -KEYWORDS="amd64 arm arm64 ppc64 ~riscv x86 ~x64-macos" -IUSE="debug static-libs test" -RESTRICT="!test? ( test )" - -RDEPEND="!sys-libs/libunwind" -# llvm-6 for new lit options -DEPEND=" - >=sys-devel/llvm-6" -BDEPEND=" - test? ( >=sys-devel/clang-3.9.0 - $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') - )" - -LLVM_COMPONENTS=( libunwind libcxx llvm/cmake ) -LLVM_TEST_COMPONENTS=( libcxxabi ) -llvm.org_set_globals - -python_check_deps() { - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -pkg_setup() { - use test && python-any-r1_pkg_setup -} - -multilib_src_configure() { - local use_compiler_rt=OFF - local libdir=$(get_libdir) - - # link to compiler-rt - # https://github.com/gentoo/gentoo/pull/21516 - if tc-is-clang; then - local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ - ${LD_FLAGS} -print-libgcc-file-name) - if [[ ${compiler_rt} == *libclang_rt* ]]; then - use_compiler_rt=ON - fi - fi - - local mycmakeargs=( - -DLLVM_LIBDIR_SUFFIX=${libdir#lib} - -DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug) - -DLIBUNWIND_ENABLE_STATIC=$(usex static-libs) - -DLIBUNWIND_TARGET_TRIPLE="${CHOST}" - -DLLVM_INCLUDE_TESTS=$(usex test) - - # support non-native unwinding; given it's small enough, - # enable it unconditionally - -DLIBUNWIND_ENABLE_CROSS_UNWINDING=ON - - # avoid dependency on libgcc_s if compiler-rt is used - -DLIBUNWIND_USE_COMPILER_RT=${use_compiler_rt} - ) - if use test; then - local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) - [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" - - mycmakeargs+=( - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}" - -DLIBUNWIND_LIBCXX_PATH="${WORKDIR}/libcxx" - ) - fi - - cmake_src_configure -} - -wrap_libcxxabi() { - local mycmakeargs=( - -DLIBCXXABI_LIBDIR_SUFFIX= - -DLIBCXXABI_ENABLE_SHARED=OFF - -DLIBCXXABI_ENABLE_STATIC=ON - -DLIBCXXABI_USE_LLVM_UNWINDER=ON - -DLIBCXXABI_INCLUDE_TESTS=OFF - - -DLIBCXXABI_LIBCXX_INCLUDES="${BUILD_DIR}"/libcxx/include/c++/v1 - -DLIBCXXABI_LIBUNWIND_INCLUDES="${S}"/include - ) - - local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)" - local CMAKE_USE_DIR=${WORKDIR}/libcxxabi - local BUILD_DIR=${BUILD_DIR}/libcxxabi - - "${@}" -} - -wrap_libcxx() { - local mycmakeargs=( - -DLIBCXX_LIBDIR_SUFFIX= - -DLIBCXX_ENABLE_SHARED=OFF - -DLIBCXX_ENABLE_STATIC=ON - -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF - -DLIBCXXABI_USE_LLVM_UNWINDER=ON - -DLIBCXX_CXX_ABI=libcxxabi - -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${WORKDIR}"/libcxxabi/include - -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF - -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) - -DLIBCXX_HAS_GCC_S_LIB=OFF - -DLIBCXX_INCLUDE_TESTS=OFF - ) - - local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/libcxxabi/lib -L${BUILD_DIR}/$(get_libdir)" - local CMAKE_USE_DIR=${WORKDIR}/libcxx - local BUILD_DIR=${BUILD_DIR}/libcxx - - "${@}" -} - -multilib_src_test() { - # build local copies of libc++ & libc++abi for testing to avoid - # circular deps - wrap_libcxx cmake_src_configure - wrap_libcxx cmake_build generate-cxx-headers - wrap_libcxxabi cmake_src_configure - wrap_libcxxabi cmake_src_compile - wrap_libcxx cmake_src_compile - mv "${BUILD_DIR}"/libcxx*/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die - - local -x LIT_PRESERVES_TMP=1 - cmake_build check-unwind -} - -multilib_src_install() { - cmake_src_install - - # install headers like sys-libs/libunwind - doheader "${S}"/include/*.h -} diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-13.0.1.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-13.0.1.ebuild index 94f7700fd9ca..56489f0dfe52 100644 --- a/sys-libs/llvm-libunwind/llvm-libunwind-13.0.1.ebuild +++ b/sys-libs/llvm-libunwind/llvm-libunwind-13.0.1.ebuild @@ -12,7 +12,7 @@ HOMEPAGE="https://github.com/llvm-mirror/libunwind" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" -KEYWORDS="amd64 arm arm64 ~ppc ppc64 ~riscv ~x86 ~x64-macos" +KEYWORDS="amd64 arm arm64 ~ppc ppc64 ~riscv x86 ~x64-macos" IUSE="debug static-libs test" RESTRICT="!test? ( test )" diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-14.0.0.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-14.0.0.ebuild deleted file mode 100644 index 5c46a2ae1249..000000000000 --- a/sys-libs/llvm-libunwind/llvm-libunwind-14.0.0.ebuild +++ /dev/null @@ -1,116 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -CMAKE_ECLASS=cmake -PYTHON_COMPAT=( python3_{8..10} ) -inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs - -DESCRIPTION="C++ runtime stack unwinder from LLVM" -HOMEPAGE="https://github.com/llvm-mirror/libunwind" - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86 ~x64-macos" -IUSE="debug static-libs test" -RESTRICT="!test? ( test )" - -RDEPEND="!sys-libs/libunwind" -# llvm-6 for new lit options -DEPEND=" - >=sys-devel/llvm-6" -BDEPEND=" - ${PYTHON_DEPS} - test? ( - >=sys-devel/clang-3.9.0 - $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') - )" - -LLVM_COMPONENTS=( runtimes libunwind libcxx llvm/cmake cmake ) -LLVM_TEST_COMPONENTS=( libcxxabi llvm/utils/llvm-lit ) -llvm.org_set_globals - -python_check_deps() { - use test || return 0 - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -multilib_src_configure() { - local use_compiler_rt=OFF - local libdir=$(get_libdir) - - # link to compiler-rt - # https://github.com/gentoo/gentoo/pull/21516 - if tc-is-clang; then - local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ - ${LD_FLAGS} -print-libgcc-file-name) - if [[ ${compiler_rt} == *libclang_rt* ]]; then - use_compiler_rt=ON - fi - fi - - local mycmakeargs=( - -DPython3_EXECUTABLE="${PYTHON}" - -DLLVM_ENABLE_RUNTIMES="libunwind" - -DLLVM_LIBDIR_SUFFIX=${libdir#lib} - -DLLVM_INCLUDE_TESTS=OFF - -DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug) - -DLIBUNWIND_ENABLE_STATIC=$(usex static-libs) - -DLIBUNWIND_INCLUDE_TESTS=$(usex test) - -DLIBUNWIND_INSTALL_HEADERS=ON - -DLIBUNWIND_TARGET_TRIPLE="${CHOST}" - - # support non-native unwinding; given it's small enough, - # enable it unconditionally - -DLIBUNWIND_ENABLE_CROSS_UNWINDING=ON - - # avoid dependency on libgcc_s if compiler-rt is used - -DLIBUNWIND_USE_COMPILER_RT=${use_compiler_rt} - ) - if use test; then - mycmakeargs+=( - -DLLVM_ENABLE_RUNTIMES="libunwind;libcxxabi;libcxx" - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="$(get_lit_flags)" - -DLIBUNWIND_LIBCXX_PATH="${WORKDIR}/libcxx" - - -DLIBCXXABI_LIBDIR_SUFFIX= - -DLIBCXXABI_ENABLE_SHARED=OFF - -DLIBCXXABI_ENABLE_STATIC=ON - -DLIBCXXABI_USE_LLVM_UNWINDER=ON - -DLIBCXXABI_INCLUDE_TESTS=OFF - - -DLIBCXX_LIBDIR_SUFFIX= - -DLIBCXX_ENABLE_SHARED=OFF - -DLIBCXX_ENABLE_STATIC=ON - -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF - -DLIBCXX_CXX_ABI=libcxxabi - -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF - -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) - -DLIBCXX_HAS_GCC_S_LIB=OFF - -DLIBCXX_INCLUDE_TESTS=OFF - -DLIBCXX_INCLUDE_BENCHMARKS=OFF - ) - fi - - cmake_src_configure - - 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" - - # meh, we need to override the compiler explicitly - sed -e "/%{cxx}/s@, '.*'@, '${clang_path}'@" \ - -i "${BUILD_DIR}"/libunwind/test/lit.site.cfg || die - fi -} - -multilib_src_test() { - local -x LIT_PRESERVES_TMP=1 - cmake_build check-unwind -} - -multilib_src_install() { - DESTDIR=${D} cmake_build install-unwind -} diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-14.0.1.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-14.0.1.ebuild index 5c46a2ae1249..ad5504a093ce 100644 --- a/sys-libs/llvm-libunwind/llvm-libunwind-14.0.1.ebuild +++ b/sys-libs/llvm-libunwind/llvm-libunwind-14.0.1.ebuild @@ -12,7 +12,7 @@ HOMEPAGE="https://github.com/llvm-mirror/libunwind" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86 ~x64-macos" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos" IUSE="debug static-libs test" RESTRICT="!test? ( test )" diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-14.0.3.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-14.0.3.ebuild new file mode 100644 index 000000000000..b1b3c2dc140d --- /dev/null +++ b/sys-libs/llvm-libunwind/llvm-libunwind-14.0.3.ebuild @@ -0,0 +1,122 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CMAKE_ECLASS=cmake +PYTHON_COMPAT=( python3_{8..10} ) +inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs + +DESCRIPTION="C++ runtime stack unwinder from LLVM" +HOMEPAGE="https://github.com/llvm-mirror/libunwind" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos" +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? ( + ${PYTHON_DEPS} + ) + test? ( + >=sys-devel/clang-3.9.0 + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') + ) +" + +LLVM_COMPONENTS=( runtimes libunwind libcxx llvm/cmake cmake ) +LLVM_TEST_COMPONENTS=( libcxxabi llvm/utils/llvm-lit ) +llvm.org_set_globals + +python_check_deps() { + use test || return 0 + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +multilib_src_configure() { + local use_compiler_rt=OFF + local libdir=$(get_libdir) + + # link to compiler-rt + # https://github.com/gentoo/gentoo/pull/21516 + if tc-is-clang; then + local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ + ${LD_FLAGS} -print-libgcc-file-name) + if [[ ${compiler_rt} == *libclang_rt* ]]; then + use_compiler_rt=ON + fi + fi + + local mycmakeargs=( + -DPython3_EXECUTABLE="${PYTHON}" + -DLLVM_ENABLE_RUNTIMES="libunwind" + -DLLVM_LIBDIR_SUFFIX=${libdir#lib} + -DLLVM_INCLUDE_TESTS=OFF + -DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug) + -DLIBUNWIND_ENABLE_STATIC=$(usex static-libs) + -DLIBUNWIND_INCLUDE_TESTS=$(usex test) + -DLIBUNWIND_INSTALL_HEADERS=ON + -DLIBUNWIND_TARGET_TRIPLE="${CHOST}" + + # support non-native unwinding; given it's small enough, + # enable it unconditionally + -DLIBUNWIND_ENABLE_CROSS_UNWINDING=ON + + # avoid dependency on libgcc_s if compiler-rt is used + -DLIBUNWIND_USE_COMPILER_RT=${use_compiler_rt} + ) + if use test; then + mycmakeargs+=( + -DLLVM_ENABLE_RUNTIMES="libunwind;libcxxabi;libcxx" + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags)" + -DLIBUNWIND_LIBCXX_PATH="${WORKDIR}/libcxx" + + -DLIBCXXABI_LIBDIR_SUFFIX= + -DLIBCXXABI_ENABLE_SHARED=OFF + -DLIBCXXABI_ENABLE_STATIC=ON + -DLIBCXXABI_USE_LLVM_UNWINDER=ON + -DLIBCXXABI_INCLUDE_TESTS=OFF + + -DLIBCXX_LIBDIR_SUFFIX= + -DLIBCXX_ENABLE_SHARED=OFF + -DLIBCXX_ENABLE_STATIC=ON + -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF + -DLIBCXX_CXX_ABI=libcxxabi + -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF + -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) + -DLIBCXX_HAS_GCC_S_LIB=OFF + -DLIBCXX_INCLUDE_TESTS=OFF + -DLIBCXX_INCLUDE_BENCHMARKS=OFF + ) + fi + + cmake_src_configure + + 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" + + # meh, we need to override the compiler explicitly + sed -e "/%{cxx}/s@, '.*'@, '${clang_path}'@" \ + -i "${BUILD_DIR}"/libunwind/test/lit.site.cfg || die + fi +} + +multilib_src_test() { + local -x LIT_PRESERVES_TMP=1 + cmake_build check-unwind +} + +multilib_src_install() { + DESTDIR=${D} cmake_build install-unwind +} diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-15.0.0.9999.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-15.0.0.9999.ebuild index 377022eb4033..6d871c89b6b1 100644 --- a/sys-libs/llvm-libunwind/llvm-libunwind-15.0.0.9999.ebuild +++ b/sys-libs/llvm-libunwind/llvm-libunwind-15.0.0.9999.ebuild @@ -1,7 +1,7 @@ # Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 CMAKE_ECLASS=cmake PYTHON_COMPAT=( python3_{8..10} ) @@ -16,16 +16,22 @@ KEYWORDS="" IUSE="debug static-libs test" RESTRICT="!test? ( test )" -RDEPEND="!sys-libs/libunwind" +RDEPEND=" + !sys-libs/libunwind +" # llvm-6 for new lit options DEPEND=" - >=sys-devel/llvm-6" + >=sys-devel/llvm-6 +" BDEPEND=" - ${PYTHON_DEPS} + !test? ( + ${PYTHON_DEPS} + ) test? ( >=sys-devel/clang-3.9.0 $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') - )" + ) +" LLVM_COMPONENTS=( runtimes libunwind libcxx llvm/cmake cmake ) LLVM_TEST_COMPONENTS=( libcxxabi llvm/utils/llvm-lit ) diff --git a/sys-libs/mtdev/Manifest b/sys-libs/mtdev/Manifest index 7796d08b38c4..24ad454a8199 100644 --- a/sys-libs/mtdev/Manifest +++ b/sys-libs/mtdev/Manifest @@ -1,3 +1,3 @@ DIST mtdev-1.1.6.tar.bz2 295965 BLAKE2B 212cf0f0bea0fc295528c90c6685770e88cb135a714cbf21e53b75ab2eaedd210269d073520e44c5bffafe8a5ecca521221061193725cba916bc2cf703fd5166 SHA512 859fb0803f330ecaae69f80713ff5a5235c0cb00de6d5ac2717ad82cea856a92b866f0c272ecfe743186abcf925f95585149ba4828b4c91555cfeb2f2a1c98f1 -EBUILD mtdev-1.1.6.ebuild 539 BLAKE2B ed8b6f9a950a7cdc582608e278d4e9f7466913be22f898bbfc6220ce75fe284807b4883d67302bf537240c8913fc0b1640dba48d666f44eb47f6a6ffe2e5cac5 SHA512 ad853de1913e8e9746f29f4d97bcf3e9b5a50a6f99ede232d7987a876cb2c934b13d27f38b2abb99c4bba55fe0210b74b4f56dfe54c6a5f8ffb60086208c076d +EBUILD mtdev-1.1.6.ebuild 546 BLAKE2B 8a6c844e3c94bd879a155c4c3f5807bb304cf52d0e5bbd8bb9d343e6873bd9423c895d357bdc9cc616be68a9b5c6f057722eeab3af28b4d64dd51d0ea686fa07 SHA512 479c9824f71fc5b21c82a7fe025a9cc62376cac9b7ee86bae185edca06e1e1580cebcf6c6a09adb3f4799b505bdb26703139cb2dc55bb545859df6701feb6dde MISC metadata.xml 340 BLAKE2B ae387fc6a24b33ac775c764ad49e0989d359142010160bb61838392ee2995f994ec33db4c7952e02eb2df135cbf77e4b1fa1c1314668f07d0451234508103586 SHA512 e5b0a64cefc456ffc0403751f70a97761c8de396430256d168ab946788de18edb1bb4bb23a8d529b12d7246562b03f6ea73a618d9d136c0002f3ff7c54ef9a74 diff --git a/sys-libs/mtdev/mtdev-1.1.6.ebuild b/sys-libs/mtdev/mtdev-1.1.6.ebuild index abbd8dd4b15f..e427325f3747 100644 --- a/sys-libs/mtdev/mtdev-1.1.6.ebuild +++ b/sys-libs/mtdev/mtdev-1.1.6.ebuild @@ -9,7 +9,7 @@ SRC_URI="https://bitmath.org/code/mtdev/${P}.tar.bz2" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" IUSE="" DEPEND=">=sys-kernel/linux-headers-2.6.31" diff --git a/sys-libs/musl/Manifest b/sys-libs/musl/Manifest index b0c202750245..8352de4eb2b5 100644 --- a/sys-libs/musl/Manifest +++ b/sys-libs/musl/Manifest @@ -1,5 +1,3 @@ -AUX ldconfig.in 2552 BLAKE2B c94f9900e8582d707519171c4b61079c801b60c555677b1740b04adbdec9645578b9a8fc91f11413072568f316c795e46a332970f3d2dde5272b0c49a5d60a78 SHA512 59f1b57361196363d3f127366764f05d26c23dbe3d3dbcdba9bd3c8ca26a671fd713b96d31c509d22805c57ada2b596d979a3f5795bcf0a4d3ac7d168f3bf377 -AUX ldconfig.in-r1 2930 BLAKE2B a0b0d4715d9b4c83c4e7036d466dae854c2da1e2393a48cf1c05789a59426f6809118d5ac266a7eb558010c8c47d344b93c8c86847d9d0158d3885b6076e3bf6 SHA512 7e5b5e396965c7e677168f0974460565dd0302639835ca7b0fbf1198e911dc2818dd64424e0e217a710545cbeeb4c31877f05034f16737a822eb02520c258c4e AUX ldconfig.in-r2 2970 BLAKE2B a6b93ebbbe0caa07a1d32af07d810e1d95d47f2246573e77dfd14edba4403a9d90fd92a7428754c68036ffdbc7e82b926d95538f6617a76a247ab5c9a3c3ba1b SHA512 5b97f473ead0def43656b42511af77c427237e6c36f8d2afad8241ef4e948ed5f0a58dc9e65205c393b530ac810ee1e9f2db008534707283bca0fac2951fe4f9 AUX ldconfig.in-r3 3093 BLAKE2B 146374fe711c660a61e4a23f89ae066e78b8bca6884719c058981069ab92833d7f660b7bd78e7c8b86112944706823f0260d7c63f19d64960f27f44b4e95a6a3 SHA512 ba021cf7d52c001d6ef9a54a91de93240cd7eef9f7a6d7a48ae0c58f934aaea6796979ce80e1cfa9bdc6008023108f3c226440360f8e3134fc23f7fdac0e55b1 AUX musl-1.2.2-gethostid.patch 1028 BLAKE2B fbe554e681c8f0e4bff6ec6fe97c88fd3c7f84ac07580b5f6cfef13b6b27c985f4f0e1d7722f397c59e655b8cd864fa845f9af2aa0eaa9287349f41e71f7a257 SHA512 d2959ef272e3a2742efec3983a41705cfa6424110dbc1eb53a912492cf067881cdbcb8cd864757e6450dda9b47e0cca7dbe3a86d3e6e74e7f33fb7d1723edfde @@ -11,11 +9,8 @@ DIST musl-1.2.2.tar.gz.asc 490 BLAKE2B 8eb21bcfcbaf9d567c0a2bba468055d4ed86a9fb3 DIST musl-1.2.3.tar.gz 1058642 BLAKE2B b7f667eeb6b9f612c086cb44e69b34da4361b8cb76819fb65f10ef7dd55f48d2f37a32d698dcada965c7c76c3c1cd5621447c4240b6ab2e5b39b2d214e7e302b SHA512 9332f713d3eb7de4369bc0327d99252275ee52abf523ee34b894b24a387f67579787f7c72a46cf652e090cffdb0bc3719a4e7b84dca66890b6a37f12e8ad089c DIST musl-1.2.3.tar.gz.asc 490 BLAKE2B 4de3d2b2f4e748795b71e144df3ac073c68b0b1b5d40c7a4c3507cc3700c1f47a4ec745f644fa78d82de4cd1915b80be7ac1071fdfd6d468e01361c49ded065d SHA512 01a857dbc3981c90244d4d1d883efe51986652ca5734a741c9d1a4d06c5a22831e85520ac67212268b70c22049317a8f39b3219be182e7e67741add428ac5bc6 DIST musl-getent-93a08815f8598db442d8b766b463d0150ed8e2ab.c 11656 BLAKE2B 1b7bf7102a1eb91a8cb881ed8ca65eb8eed911dd50238e97dc2952d89d4c6ebed6bfd046a2b38776c550b2872ab54ced8cb452fcc2ad56e5616f722debda761f SHA512 7f5b9d934d82deb5f8b23e16169a5d9b99ccab3a4708df06a95d685e1b24a3a3e69b3dcf4942f2f66c12a3d4bf0c5827e2ee2e8c4d7b1997359fccc2ac212dee -EBUILD musl-1.2.2-r3.ebuild 3814 BLAKE2B 037af7d810ace77441369b4dc9a8513298167bbe7af7a010ad22f6ff7e99aba2cac0b6b8befd51f080fb3c695452ec7a3cecbdeb46cbfd06d2aef2415a96c28e SHA512 48cb68039a1cc61b230d2c9b549f01c40607ef2a0726589e558e412311f7e1ae988c7328f86b61b148ba88f2f107c72b2829ccd8ba16567a52a3840f2286d477 -EBUILD musl-1.2.2-r4.ebuild 4442 BLAKE2B 1cfdf66f7c975e164161cb90d98f20187c2d3ae0a24914206222c7255714a2cd10c4034a6b34018e3c79a2ec6385012c29f39d525ab83ab9b737a04453232e65 SHA512 340f60f7f73702510251a1df1af6a38af715678bad3606aab1e29c132bf5bb5805c39d916a1ff95c5e492a38b1d9a2ba3ae24560287d2fca647aa338eede2de7 -EBUILD musl-1.2.2-r6.ebuild 4457 BLAKE2B 9fde176fc9b78c29480eb8aa85a1b9decd777976c6c44ca298762fb1dd71ee8144a6dede69d82b69eebad48990b8da4522df2818370aac5dc8c7a1436172154c SHA512 fedb1929ffd0f6282c9103567b1f7813b4da523fdfe678cdce3792c8bdb2b866decccb57c4850eb92e6161894ad9409fb3b9b0fe477f8520cefecb3844bbc5b3 -EBUILD musl-1.2.2-r7.ebuild 4457 BLAKE2B 377ee3688dcd2d84bc6d3fc951e5cf158db7a90199a539ecabfc3a5e74294251903ee0097473ad778578bf9e4157e1339dd6955934f78e99b638049380b5cd92 SHA512 95c9be188d0bdb1a550d0b99b36075d67d989211a4890486a60b88becbe30f03cf45102d3e5172a38246c12c9878b90e145438f9f2cddc8a0e61e535935488ca -EBUILD musl-1.2.2-r8.ebuild 4770 BLAKE2B 9370f99e4dd0a9269787e2daa1749cb1d39b1d2833887d9b69909185f378e8ef5f04f436103e22e3d93b0c233634f479f7530735cdd01c21ac49807c78e59b22 SHA512 3cb5199c935725f56f8a4425114ab766514d61a9c37d5043fe9474e2bc8e5f2ab52a84c8ea0b229059227df8f0bb0e0700ea2b0f2810f4df7f1c461b6fdd5ed7 -EBUILD musl-1.2.3.ebuild 4771 BLAKE2B d6fd446c557bd0e5c776a45aecbca6ad7f290138ad7cc55c93e6beab24fbe01b6ba78294ad94a8f70bc8e72400b79fc292547da8c3c8b7637f25ef5367b1de18 SHA512 e9843b04a7b02d0bc1ed0dcc25d5fe20da15ba3d5165ea7603e187945a6a334a4201c11bfc0e5889723f427efad3910e75bc3ece7f993f292c225306a10d042c -EBUILD musl-9999.ebuild 4771 BLAKE2B d6fd446c557bd0e5c776a45aecbca6ad7f290138ad7cc55c93e6beab24fbe01b6ba78294ad94a8f70bc8e72400b79fc292547da8c3c8b7637f25ef5367b1de18 SHA512 e9843b04a7b02d0bc1ed0dcc25d5fe20da15ba3d5165ea7603e187945a6a334a4201c11bfc0e5889723f427efad3910e75bc3ece7f993f292c225306a10d042c +EBUILD musl-1.2.2-r7.ebuild 4453 BLAKE2B 83ec6285f4249b59c69527d09366a7d64a92b571f81a414867ec3693a6901b9bd8a3bb0f7bdfac176c02447836e5ad18dc5ee7a2baa89cc66848bfb8db26dab1 SHA512 ab2f45a6990f29df081136e2dd16da78e9b96a6382daab9743448537ec7039b86f9c720364aefacc82675751147d5cb568ac1e3320c08555202561dfda65b481 +EBUILD musl-1.2.2-r8.ebuild 4766 BLAKE2B 1e9150602dc0a85f6315f4a3590ab18ecb71eeb970dfa5eb586f4922923ca119a9096fdd72bb758cf7d66bcdf7e0df3b2f6d3278a254c452d82e76a4446db59f SHA512 a92051a1bfde9f45b593d4651927255a42f85af4f5271359b933eba46317c0edd5744b63e1c0b1f775c00008979e7473ea029895d1c11ec9a683a2f45a89e389 +EBUILD musl-1.2.3.ebuild 4767 BLAKE2B d4de42b424cf647216c05f629b2aa5958ddfbb9d03c70b7b41277d4879d3e13b8e3a740d1fa30c4ecc773f5084a35868b0e938877497864080bb5e6e3dcee12c SHA512 2bc3fe1994254d28219f32ce96be8ac1f26e8f837569f98ea6a3f414cd1eb07aae4dec41c796374c1e12a262e377129668d47e32351d6ada89aa0e263cba9dd7 +EBUILD musl-9999.ebuild 4767 BLAKE2B d4de42b424cf647216c05f629b2aa5958ddfbb9d03c70b7b41277d4879d3e13b8e3a740d1fa30c4ecc773f5084a35868b0e938877497864080bb5e6e3dcee12c SHA512 2bc3fe1994254d28219f32ce96be8ac1f26e8f837569f98ea6a3f414cd1eb07aae4dec41c796374c1e12a262e377129668d47e32351d6ada89aa0e263cba9dd7 MISC metadata.xml 559 BLAKE2B 8b1093a5278f716b8e21467b325e373a790f54c8ab71b92adc4c87dd569a92b20e08009372065f0f27ced39e3361c9e5e5a2e1bff271753d280439fabbddd3a4 SHA512 a35c13ea32ac8f26984bdb0d70d28a4285f34e32a2b0b17ad98fe3f357fb46c87a1e853377630d4da58fd5953de3fdeb02ee89181394e1815f5e0bbba4cd9f92 diff --git a/sys-libs/musl/files/ldconfig.in b/sys-libs/musl/files/ldconfig.in deleted file mode 100644 index 19c94d85353a..000000000000 --- a/sys-libs/musl/files/ldconfig.in +++ /dev/null @@ -1,144 +0,0 @@ -#!/bin/bash -e -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -ROOT="/" - -LDSO_CONF="/etc/ld.so.conf" -if [[ ! -e $LDSO_CONF ]]; then - echo "$LDSO_CONF not found" >&2 - exit 1 -fi - -LDSO_CONF_DIR=$(dirname $LDSO_CONF) - -VERBOSE=0 - -UPDATE_LINKS=1 - -get_options() { - while getopts "vnNXf:C:r:p" opt "$@"; do - case $opt in - v) - echo "ldconfig for musl in Gentoo" - VERBOSE=1 - ;; - r) - ROOT=$OPTARG - ;; - f) - LDSO_CONF=$OPTARG - ;; - X) - UPDATE_LINKS=0 - ;; - \?) - echo "Invalid option: -$opt" >&2 - exit 1 - ;; - n|N|C|p) - echo "Unimplemented option: -$opt" >&2 - exit 1 - ;; - esac - done - - if [[ $UPDATE_LINKS == 1 ]]; then - echo "Updating links is not implemented." - fi -} - - -repeated() { - local l=$1 - local drs="${@:2}" - for m in $drs; do - [[ $m == $l ]] && return 0 - done - return 1 -} - -expand() { - # We are assuming the ld.so.conf's 'include' is not recursive - local f line l - local glob="$LDSO_CONF_DIR/$1" - local drs="${@:2} " - - for f in $glob; do - [[ ! -f $f ]] && continue - while read line; do - line=${line%%#*} - line=${line//:/ } - line=${line//,/ } - for l in $line; do - #We must add this whether or not the directory exists - repeated $l $drs && continue - drs+=" $l " - done - done < $f - done - - echo $drs -} - -read_ldso_conf() { - local drs=" " - - while read line; do - # Sanitize the line - see ldconfig(8) for delimiters - # Note: bash read turns tabs into spaces and read already - # delimits on newlines with the default $IFS - line=${line%%#*} # Remove comments - line=${line//:/ } # Change colon delimiter to space - line=${line//,/ } # Change comma delimiter to space - - next=0 - for l in $line; do - if [[ $next == 1 ]]; then - next=0 - drs=$(expand $l $drs) - elif [[ $l == "include" ]]; then - next=1 - else - # glibc's ldconfig silently skips non directories - if [[ -d $l ]]; then - repeated $l $drs && continue - drs+=" $l " - fi - fi - done - done < $1 - - echo $drs -} - -sanitize() { - local drs=$@ - - repeated "/lib" $drs || drs="/lib $drs" - repeated "/usr/lib" $drs || drs="/usr/lib $drs" - - echo $drs -} - -get_options "$@" -drs=$(read_ldso_conf "$LDSO_CONF") -drs=$(sanitize $drs) - -ARCH=@@ARCH@@ -LDSO_PATH="/lib/ld-musl-${ARCH}.so.1" -if [[ ! -e $LDSO_PATH ]]; then - echo "$LDSO_PATH not found" >&2 - exit 1 -fi - -LDSO_ARCH=$(basename $LDSO_PATH) -LDSO_NAME=${LDSO_ARCH%.so.1} -ETC_LDSO_PATH=/etc/${LDSO_NAME}.path - -X=$(mktemp -p /tmp ${LDSO_NAME}.XXXXXX) -for d in $drs; do - echo $d >> $X -done -chmod 644 $X -mv $X $ETC_LDSO_PATH diff --git a/sys-libs/musl/files/ldconfig.in-r1 b/sys-libs/musl/files/ldconfig.in-r1 deleted file mode 100644 index 7bf254dfd91c..000000000000 --- a/sys-libs/musl/files/ldconfig.in-r1 +++ /dev/null @@ -1,155 +0,0 @@ -#!/bin/bash -e -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -ROOT="/" -LDSO_CONF="/etc/ld.so.conf" - -VERBOSE=0 - -UPDATE_LINKS=1 - -get_options() { - while getopts "vnNXf:C:r:p" opt "$@"; do - case $opt in - v) - echo "ldconfig for musl in Gentoo" - VERBOSE=1 - ;; - r) - ROOT=${OPTARG} - LDSO_CONF=${ROOT}${LDSO_CONF} - LDSO_CONF_DIR=$(dirname ${LDSO_CONF}) - ;; - f) - LDSO_CONF=${OPTARG} - ;; - X) - UPDATE_LINKS=0 - ;; - \?) - echo "Invalid option: -${opt}" >&2 - exit 1 - ;; - n|N|C|p) - echo "Unimplemented option: -${opt}" >&2 - exit 1 - ;; - esac - done - - if [[ ${UPDATE_LINKS} == 1 ]]; then - echo "Updating links is not implemented." - fi -} - - -repeated() { - local l=${1} - local drs="${@:2}" - for m in ${drs}; do - [[ ${m} == ${l} ]] && return 0 - done - return 1 -} - -expand() { - # We are assuming the ld.so.conf's 'include' is not recursive - local f line l - local glob="${LDSO_CONF_DIR}/${1}" - local drs="${@:2} " - - for f in ${glob}; do - [[ ! -f ${f} ]] && continue - while read line; do - line=${line%%#*} - line=${line//:/ } - line=${line//,/ } - for l in ${line}; do - # We must add this whether or not the directory exists - repeated ${l} ${drs} && continue - drs+=" ${l} " - done - done < ${f} - done - - echo ${drs} -} - -read_ldso_conf() { - local drs=" " - - while read line; do - # Sanitize the line - see ldconfig(8) for delimiters - # Note: bash read turns tabs into spaces and read already - # delimits on newlines with the default $IFS - line=${line%%#*} # Remove comments - line=${line//:/ } # Change colon delimiter to space - line=${line//,/ } # Change comma delimiter to space - - next=0 - for l in ${line}; do - if [[ ${next} == 1 ]]; then - next=0 - drs=$(expand ${l} ${drs}) - elif [[ ${l} == "include" ]]; then - next=1 - else - # glibc's ldconfig silently skips non directories - if [[ -d ${l} ]]; then - repeated ${l} ${drs} && continue - drs+=" ${l} " - fi - fi - done - done < ${1} - - echo ${drs} -} - -sanitize() { - local drs=$@ - - repeated "/lib" ${drs} || drs="/lib ${drs}" - repeated "/usr/lib" ${drs} || drs="/usr/lib ${drs}" - - echo ${drs} -} - -changed() { - [[ -f ${ETC_LDSO_PATH} ]] || return 0 - local current=$(<${ETC_LDSO_PATH}) - current=${current//$'\n'/ } - [[ ${current} != ${drs} ]] || return 1 -} - -get_options "$@" - -if [[ ! -e ${LDSO_CONF} ]]; then - echo "${LDSO_CONF} not found" >&2 - exit 1 -fi - -LDSO_CONF_DIR=$(dirname ${LDSO_CONF}) - -drs=$(read_ldso_conf "${LDSO_CONF}") -drs=$(sanitize ${drs}) - -ARCH=@@ARCH@@ -LDSO_PATH="${ROOT}/lib/ld-musl-${ARCH}.so.1" -if [[ ! -e ${LDSO_PATH} ]]; then - echo "${LDSO_PATH} not found" >&2 - exit 1 -fi - -LDSO_ARCH=$(basename ${LDSO_PATH}) -LDSO_NAME=${LDSO_ARCH%.so.1} -ETC_LDSO_PATH="${ROOT}/etc/${LDSO_NAME}.path" - -changed || exit 0 -X=$(mktemp -p /tmp ${LDSO_NAME}.XXXXXX) -for d in ${drs}; do - echo ${d} >> ${X} -done -chmod 644 ${X} -mv ${X} ${ETC_LDSO_PATH} diff --git a/sys-libs/musl/musl-1.2.2-r3.ebuild b/sys-libs/musl/musl-1.2.2-r3.ebuild deleted file mode 100644 index 5d2851eac250..000000000000 --- a/sys-libs/musl/musl-1.2.2-r3.ebuild +++ /dev/null @@ -1,151 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit flag-o-matic toolchain-funcs -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="git://git.musl-libc.org/musl" - inherit git-r3 -else - SRC_URI="http://www.musl-libc.org/releases/${P}.tar.gz" - KEYWORDS="-* amd64 arm arm64 ~mips ppc ppc64 x86" -fi -GETENT_COMMIT="93a08815f8598db442d8b766b463d0150ed8e2ab" -GETENT_FILE="musl-getent-${GETENT_COMMIT}.c" -SRC_URI+=" - https://dev.gentoo.org/~blueness/musl-misc/getconf.c - https://gitlab.alpinelinux.org/alpine/aports/-/raw/${GETENT_COMMIT}/main/musl/getent.c -> ${GETENT_FILE} - https://dev.gentoo.org/~blueness/musl-misc/iconv.c -" - -export CBUILD=${CBUILD:-${CHOST}} -export CTARGET=${CTARGET:-${CHOST}} -if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi -fi - -DESCRIPTION="Light, fast and simple C library focused on standards-conformance and safety" -HOMEPAGE="https://musl.libc.org" -LICENSE="MIT LGPL-2 GPL-2" -SLOT="0" -IUSE="headers-only" - -QA_SONAME="/usr/lib/libc.so" -QA_DT_NEEDED="/usr/lib/libc.so" - -is_crosscompile() { - [[ ${CHOST} != ${CTARGET} ]] -} - -just_headers() { - use headers-only && is_crosscompile -} - -pkg_setup() { - if [ ${CTARGET} == ${CHOST} ] ; then - case ${CHOST} in - *-musl*) ;; - *) die "Use sys-devel/crossdev to build a musl toolchain" ;; - esac - fi - - # fix for #667126, copied from glibc ebuild - # make sure host make.conf doesn't pollute us - if is_crosscompile || tc-is-cross-compiler ; then - CHOST=${CTARGET} strip-unsupported-flags - fi -} - -src_unpack() { - if [[ ${PV} == 9999 ]]; then - git-r3_src_unpack - else - unpack "${P}.tar.gz" - fi - mkdir misc || die - cp "${DISTDIR}"/getconf.c misc/getconf.c || die - cp "${DISTDIR}/${GETENT_FILE}" misc/getent.c || die - cp "${DISTDIR}"/iconv.c misc/iconv.c || die -} - -src_prepare() { - default - - # Expand gethostid instead of being just a stub - eapply "${FILESDIR}/${PN}-1.2.2-gethostid.patch" -} - -src_configure() { - tc-getCC ${CTARGET} - just_headers && export CC=true - - local sysroot - is_crosscompile && sysroot="${EPREFIX}"/usr/${CTARGET} - ./configure \ - --target=${CTARGET} \ - --prefix=${sysroot}/usr \ - --syslibdir=${sysroot}/lib \ - --disable-gcc-wrapper || die -} - -src_compile() { - emake obj/include/bits/alltypes.h - just_headers && return 0 - - emake - if [[ ${CATEGORY} != cross-* ]] ; then - emake -C "${T}" getconf getent iconv \ - CC="$(tc-getCC)" \ - CFLAGS="${CFLAGS}" \ - CPPFLAGS="${CPPFLAGS}" \ - LDFLAGS="${LDFLAGS}" \ - VPATH="${WORKDIR}/misc" - fi - - $(tc-getCC) ${CFLAGS} -c -o libssp_nonshared.o "${FILESDIR}"/stack_chk_fail_local.c || die - $(tc-getAR) -rcs libssp_nonshared.a libssp_nonshared.o || die -} - -src_install() { - local target="install" - just_headers && target="install-headers" - emake DESTDIR="${D}" ${target} - just_headers && return 0 - - # musl provides ldd via a sym link to its ld.so - local sysroot - is_crosscompile && sysroot=/usr/${CTARGET} - local ldso=$(basename "${D}"${sysroot}/lib/ld-musl-*) - dosym ${sysroot}/lib/${ldso} ${sysroot}/usr/bin/ldd - - if [[ ${CATEGORY} != cross-* ]] ; then - # Fish out of config: - # ARCH = ... - # SUBARCH = ... - # and print $(ARCH)$(SUBARCH). - local arch=$(awk '{ k[$1] = $3 } END { printf("%s%s", k["ARCH"], k["SUBARCH"]); }' config.mak) - [[ -e "${D}"/lib/ld-musl-${arch}.so.1 ]] || die - cp "${FILESDIR}"/ldconfig.in "${T}" || die - sed -e "s|@@ARCH@@|${arch}|" "${T}"/ldconfig.in > "${T}"/ldconfig || die - into / - dosbin "${T}"/ldconfig - into /usr - dobin "${T}"/getconf - dobin "${T}"/getent - dobin "${T}"/iconv - echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00musl || die - doenvd "${T}"/00musl - dolib.a libssp_nonshared.a - fi -} - -pkg_postinst() { - is_crosscompile && return 0 - - [ "${ROOT}" != "/" ] && return 0 - - ldconfig || die -} diff --git a/sys-libs/musl/musl-1.2.2-r4.ebuild b/sys-libs/musl/musl-1.2.2-r4.ebuild deleted file mode 100644 index 868577f61ad2..000000000000 --- a/sys-libs/musl/musl-1.2.2-r4.ebuild +++ /dev/null @@ -1,167 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit eapi8-dosym flag-o-matic toolchain-funcs -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="git://git.musl-libc.org/musl" - inherit git-r3 -else - SRC_URI="http://www.musl-libc.org/releases/${P}.tar.gz" - KEYWORDS="-* amd64 arm arm64 ~mips ppc ppc64 x86" -fi -GETENT_COMMIT="93a08815f8598db442d8b766b463d0150ed8e2ab" -GETENT_FILE="musl-getent-${GETENT_COMMIT}.c" -SRC_URI+=" - https://dev.gentoo.org/~blueness/musl-misc/getconf.c - https://gitlab.alpinelinux.org/alpine/aports/-/raw/${GETENT_COMMIT}/main/musl/getent.c -> ${GETENT_FILE} - https://dev.gentoo.org/~blueness/musl-misc/iconv.c -" - -export CBUILD=${CBUILD:-${CHOST}} -export CTARGET=${CTARGET:-${CHOST}} -if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi -fi - -DESCRIPTION="Light, fast and simple C library focused on standards-conformance and safety" -HOMEPAGE="https://musl.libc.org" -LICENSE="MIT LGPL-2 GPL-2" -SLOT="0" -IUSE="headers-only" - -QA_SONAME="/usr/lib/libc.so" -QA_DT_NEEDED="/usr/lib/libc.so" - -is_crosscompile() { - [[ ${CHOST} != ${CTARGET} ]] -} - -just_headers() { - use headers-only && is_crosscompile -} - -pkg_setup() { - if [ ${CTARGET} == ${CHOST} ] ; then - case ${CHOST} in - *-musl*) ;; - *) die "Use sys-devel/crossdev to build a musl toolchain" ;; - esac - fi - - # fix for #667126, copied from glibc ebuild - # make sure host make.conf doesn't pollute us - if is_crosscompile || tc-is-cross-compiler ; then - CHOST=${CTARGET} strip-unsupported-flags - fi -} - -src_unpack() { - if [[ ${PV} == 9999 ]]; then - git-r3_src_unpack - else - unpack "${P}.tar.gz" - fi - mkdir misc || die - cp "${DISTDIR}"/getconf.c misc/getconf.c || die - cp "${DISTDIR}/${GETENT_FILE}" misc/getent.c || die - cp "${DISTDIR}"/iconv.c misc/iconv.c || die -} - -src_prepare() { - default - - # Expand gethostid instead of being just a stub - eapply "${FILESDIR}/${PN}-1.2.2-gethostid.patch" -} - -src_configure() { - tc-getCC ${CTARGET} - just_headers && export CC=true - - local sysroot - is_crosscompile && sysroot="${EPREFIX}"/usr/${CTARGET} - ./configure \ - --target=${CTARGET} \ - --prefix=${sysroot}/usr \ - --syslibdir=${sysroot}/lib \ - --disable-gcc-wrapper || die -} - -src_compile() { - emake obj/include/bits/alltypes.h - just_headers && return 0 - - emake - if [[ ${CATEGORY} != cross-* ]] ; then - emake -C "${T}" getconf getent iconv \ - CC="$(tc-getCC)" \ - CFLAGS="${CFLAGS}" \ - CPPFLAGS="${CPPFLAGS}" \ - LDFLAGS="${LDFLAGS}" \ - VPATH="${WORKDIR}/misc" - fi - - $(tc-getCC) ${CFLAGS} -c -o libssp_nonshared.o "${FILESDIR}"/stack_chk_fail_local.c || die - $(tc-getAR) -rcs libssp_nonshared.a libssp_nonshared.o || die -} - -src_install() { - local target="install" - just_headers && target="install-headers" - emake DESTDIR="${D}" ${target} - just_headers && return 0 - - # musl provides ldd via a sym link to its ld.so - local sysroot - is_crosscompile && sysroot=/usr/${CTARGET} - local ldso=$(basename "${D}"${sysroot}/lib/ld-musl-*) - dosym ${sysroot}/lib/${ldso} ${sysroot}/usr/bin/ldd - - if [[ ${CATEGORY} != cross-* ]] ; then - # Fish out of config: - # ARCH = ... - # SUBARCH = ... - # and print $(ARCH)$(SUBARCH). - local arch=$(awk '{ k[$1] = $3 } END { printf("%s%s", k["ARCH"], k["SUBARCH"]); }' config.mak) - - if [[ ! -e "${ED}"/lib/ld-musl-${arch}.so.1 ]] ; then - # During cross (using crossdev), when emerging sys-libs/musl, - # if /usr/lib/libc.so.1 doesn't exist on the system, installation - # would fail. - # - # The musl build system seems to create a symlink: - # ${D}/lib/ld-musl-${arch}.so.1 -> /usr/lib/libc.so.1 (absolute) - # During cross, there's no guarantee that the host is using musl - # so that file may not exist. Use a relative symlink within ${D} - # instead. - dosym8 -r /usr/lib/libc.so /lib/ld-musl-${arch}.so.1 - - # If it's still a dead symlnk, OK, we really do need to abort. - [[ -e "${ED}"/lib/ld-musl-${arch}.so.1 ]] || die - fi - - cp "${FILESDIR}"/ldconfig.in "${T}" || die - sed -e "s|@@ARCH@@|${arch}|" "${T}"/ldconfig.in > "${T}"/ldconfig || die - into / - dosbin "${T}"/ldconfig - into /usr - dobin "${T}"/getconf - dobin "${T}"/getent - dobin "${T}"/iconv - echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00musl || die - doenvd "${T}"/00musl - dolib.a libssp_nonshared.a - fi -} - -pkg_postinst() { - is_crosscompile && return 0 - - [ "${ROOT}" != "/" ] && return 0 - - ldconfig || die -} diff --git a/sys-libs/musl/musl-1.2.2-r6.ebuild b/sys-libs/musl/musl-1.2.2-r6.ebuild deleted file mode 100644 index 79a60682c79f..000000000000 --- a/sys-libs/musl/musl-1.2.2-r6.ebuild +++ /dev/null @@ -1,167 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit eapi8-dosym flag-o-matic toolchain-funcs -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="git://git.musl-libc.org/musl" - inherit git-r3 -else - SRC_URI="http://www.musl-libc.org/releases/${P}.tar.gz" - KEYWORDS="-* amd64 arm arm64 ~mips ppc ppc64 x86" -fi -GETENT_COMMIT="93a08815f8598db442d8b766b463d0150ed8e2ab" -GETENT_FILE="musl-getent-${GETENT_COMMIT}.c" -SRC_URI+=" - https://dev.gentoo.org/~blueness/musl-misc/getconf.c - https://gitlab.alpinelinux.org/alpine/aports/-/raw/${GETENT_COMMIT}/main/musl/getent.c -> ${GETENT_FILE} - https://dev.gentoo.org/~blueness/musl-misc/iconv.c -" - -export CBUILD=${CBUILD:-${CHOST}} -export CTARGET=${CTARGET:-${CHOST}} -if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi -fi - -DESCRIPTION="Light, fast and simple C library focused on standards-conformance and safety" -HOMEPAGE="https://musl.libc.org" -LICENSE="MIT LGPL-2 GPL-2" -SLOT="0" -IUSE="headers-only" - -QA_SONAME="/usr/lib/libc.so" -QA_DT_NEEDED="/usr/lib/libc.so" - -is_crosscompile() { - [[ ${CHOST} != ${CTARGET} ]] -} - -just_headers() { - use headers-only && is_crosscompile -} - -pkg_setup() { - if [ ${CTARGET} == ${CHOST} ] ; then - case ${CHOST} in - *-musl*) ;; - *) die "Use sys-devel/crossdev to build a musl toolchain" ;; - esac - fi - - # fix for #667126, copied from glibc ebuild - # make sure host make.conf doesn't pollute us - if is_crosscompile || tc-is-cross-compiler ; then - CHOST=${CTARGET} strip-unsupported-flags - fi -} - -src_unpack() { - if [[ ${PV} == 9999 ]]; then - git-r3_src_unpack - else - unpack "${P}.tar.gz" - fi - mkdir misc || die - cp "${DISTDIR}"/getconf.c misc/getconf.c || die - cp "${DISTDIR}/${GETENT_FILE}" misc/getent.c || die - cp "${DISTDIR}"/iconv.c misc/iconv.c || die -} - -src_prepare() { - default - - # Expand gethostid instead of being just a stub - eapply "${FILESDIR}/${PN}-1.2.2-gethostid.patch" -} - -src_configure() { - tc-getCC ${CTARGET} - just_headers && export CC=true - - local sysroot - is_crosscompile && sysroot="${EPREFIX}"/usr/${CTARGET} - ./configure \ - --target=${CTARGET} \ - --prefix=${sysroot}/usr \ - --syslibdir=${sysroot}/lib \ - --disable-gcc-wrapper || die -} - -src_compile() { - emake obj/include/bits/alltypes.h - just_headers && return 0 - - emake - if [[ ${CATEGORY} != cross-* ]] ; then - emake -C "${T}" getconf getent iconv \ - CC="$(tc-getCC)" \ - CFLAGS="${CFLAGS}" \ - CPPFLAGS="${CPPFLAGS}" \ - LDFLAGS="${LDFLAGS}" \ - VPATH="${WORKDIR}/misc" - fi - - $(tc-getCC) ${CFLAGS} -c -o libssp_nonshared.o "${FILESDIR}"/stack_chk_fail_local.c || die - $(tc-getAR) -rcs libssp_nonshared.a libssp_nonshared.o || die -} - -src_install() { - local target="install" - just_headers && target="install-headers" - emake DESTDIR="${D}" ${target} - just_headers && return 0 - - # musl provides ldd via a sym link to its ld.so - local sysroot - is_crosscompile && sysroot=/usr/${CTARGET} - local ldso=$(basename "${D}"${sysroot}/lib/ld-musl-*) - dosym ${sysroot}/lib/${ldso} ${sysroot}/usr/bin/ldd - - if [[ ${CATEGORY} != cross-* ]] ; then - # Fish out of config: - # ARCH = ... - # SUBARCH = ... - # and print $(ARCH)$(SUBARCH). - local arch=$(awk '{ k[$1] = $3 } END { printf("%s%s", k["ARCH"], k["SUBARCH"]); }' config.mak) - - if [[ ! -e "${ED}"/lib/ld-musl-${arch}.so.1 ]] ; then - # During cross (using crossdev), when emerging sys-libs/musl, - # if /usr/lib/libc.so.1 doesn't exist on the system, installation - # would fail. - # - # The musl build system seems to create a symlink: - # ${D}/lib/ld-musl-${arch}.so.1 -> /usr/lib/libc.so.1 (absolute) - # During cross, there's no guarantee that the host is using musl - # so that file may not exist. Use a relative symlink within ${D} - # instead. - dosym8 -r /usr/lib/libc.so /lib/ld-musl-${arch}.so.1 - - # If it's still a dead symlnk, OK, we really do need to abort. - [[ -e "${ED}"/lib/ld-musl-${arch}.so.1 ]] || die - fi - - cp "${FILESDIR}"/ldconfig.in-r1 "${T}"/ldconfig.in || die - sed -e "s|@@ARCH@@|${arch}|" "${T}"/ldconfig.in > "${T}"/ldconfig || die - into / - dosbin "${T}"/ldconfig - into /usr - dobin "${T}"/getconf - dobin "${T}"/getent - dobin "${T}"/iconv - echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00musl || die - doenvd "${T}"/00musl - dolib.a libssp_nonshared.a - fi -} - -pkg_postinst() { - is_crosscompile && return 0 - - [ "${ROOT}" != "/" ] && return 0 - - ldconfig || die -} diff --git a/sys-libs/musl/musl-1.2.2-r7.ebuild b/sys-libs/musl/musl-1.2.2-r7.ebuild index e03ad57480ff..de91db9af87b 100644 --- a/sys-libs/musl/musl-1.2.2-r7.ebuild +++ b/sys-libs/musl/musl-1.2.2-r7.ebuild @@ -161,7 +161,7 @@ src_install() { pkg_postinst() { is_crosscompile && return 0 - [ "${ROOT}" != "/" ] && return 0 + [ -n "${ROOT}" ] && return 0 ldconfig || die } diff --git a/sys-libs/musl/musl-1.2.2-r8.ebuild b/sys-libs/musl/musl-1.2.2-r8.ebuild index c83d3cbb6c04..ee20a7659de3 100644 --- a/sys-libs/musl/musl-1.2.2-r8.ebuild +++ b/sys-libs/musl/musl-1.2.2-r8.ebuild @@ -167,7 +167,7 @@ src_install() { pkg_postinst() { is_crosscompile && return 0 - [ "${ROOT}" != "/" ] && return 0 + [ -n "${ROOT}" ] && return 0 ldconfig || die } diff --git a/sys-libs/musl/musl-1.2.3.ebuild b/sys-libs/musl/musl-1.2.3.ebuild index 26ac4bb3ec3b..07ab1388cef8 100644 --- a/sys-libs/musl/musl-1.2.3.ebuild +++ b/sys-libs/musl/musl-1.2.3.ebuild @@ -167,7 +167,7 @@ src_install() { pkg_postinst() { is_crosscompile && return 0 - [ "${ROOT}" != "/" ] && return 0 + [ -n "${ROOT}" ] && return 0 ldconfig || die } diff --git a/sys-libs/musl/musl-9999.ebuild b/sys-libs/musl/musl-9999.ebuild index 26ac4bb3ec3b..07ab1388cef8 100644 --- a/sys-libs/musl/musl-9999.ebuild +++ b/sys-libs/musl/musl-9999.ebuild @@ -167,7 +167,7 @@ src_install() { pkg_postinst() { is_crosscompile && return 0 - [ "${ROOT}" != "/" ] && return 0 + [ -n "${ROOT}" ] && return 0 ldconfig || die } diff --git a/sys-libs/ncurses/Manifest b/sys-libs/ncurses/Manifest index f38467f98052..33bdfaa809e2 100644 --- a/sys-libs/ncurses/Manifest +++ b/sys-libs/ncurses/Manifest @@ -6,11 +6,65 @@ AUX ncurses-6.2_p20210123-cppflags-cross.patch 1246 BLAKE2B f2e6d5b3f106639435f1 DIST ncurses-6.2-20210619-patch.sh.bz2 836967 BLAKE2B f210bf25c33f11d67e54a6f416aae75f0a976880ea543408780fd3a8dc992ee8d9999bf15c925c79504be0f30ade4bbfaed763abedd2b2d6b35de65b353a6314 SHA512 b8392bf6c0b7570766ae31a043df311660201265dfe3e2e49425b1e2aa08c72030b5f5b6c7871532897596262c88a7192e3ff2adfdc618f1b9c13c22c373eeb3 DIST ncurses-6.2.tar.gz 3425862 BLAKE2B 6680cd7a369a4cb8234442a70869c283f0db6db9d7da1da2a7a5c519eb862a2c9b9411957d99f9ebb5089cad00b42e1ca6bc0784327461113df2eeaec695913c SHA512 4c1333dcc30e858e8a9525d4b9aefb60000cfc727bc4a1062bace06ffc4639ad9f6e54f6bdda0e3a0e5ea14de995f96b52b3327d9ec633608792c99a1e8d840d DIST ncurses-6.3-20211026.patch.gz 117363 BLAKE2B 74c6c80271edc3b69d17c891436e48ee0579b3d16dd1bbd42f953be5b6ef07596343abd34f4d508b0cb371c1c0febfec12d65e938739892a617c8b141f599753 SHA512 25a99bc9cb7a18eb8fd16a0f887bae90c2551e0228b077d28f7217e58190f4b19a526350c999922f7394a1b749e834643c1bf5f339248b842717c146a3ec1df4 +DIST ncurses-6.3-20211026.patch.gz.asc 729 BLAKE2B 470aa4aad00d0dfa9924ca3247d720b720563bfe5a3b5c9571acb4c74a7b3fb55adbae6b0aa854eb0e29c56d7949fa1e3b6d959c25681f1b46c23c96a3c0e054 SHA512 276e8a09ee6fddf20be38b9d8a6f93cbafcec51ed17de375b9d2f4f6c34ff546fdbd81083f54aba1a5aaea5c2c691c25754dfca47568c5b70197437420dd2581 DIST ncurses-6.3-20211030.patch.gz 46304 BLAKE2B 6fa0f5223c97dc045117c208b92e75aad61638585506aeed0fa5cd6b215f67d212fc780e527f1281ae77063edb1ef9b3a3671b00d306fe322c3ca1b34c1d4d81 SHA512 90440af3959a17388999f07a3b40f770c5511bceda6a39d4c56f867dc5ae8494e49cfb700eb79e31422ebfd1b1990f6d7912083c688963139446f1e43e9d08c8 +DIST ncurses-6.3-20211030.patch.gz.asc 729 BLAKE2B af1715038a877ebe10660872bed82d536df410f8987508aca7ffed6d19fcdc95a2f5bd8f527b5a30580b07d7c770fade7bac2cfce3e20315faf472eaeb075d5f SHA512 526ff0ff7030cef711e92150fe0f2be7076bf8fe8c7b5fff9ee709c202e747c921479bf3efc2c3da8df2f0d7926de6b1571d03270e49bf64bc539193b0a3020d DIST ncurses-6.3-20211106.patch.gz 3995 BLAKE2B fbacfd6bfbf64b2935d47f648bd74c93136ea8d17b51e218b80a24695b52246ce8ec01704a0636692bae72815c8b93dec8573570dfd126b19645ec90926e818a SHA512 799819ed01967387fdca4755ab44401f0dc90306f6f771c894ce6702c929e2ff87f45d3e1c2e683cc32bb01553f3332c3a7591a00b7a4bdff93da25307379bdc +DIST ncurses-6.3-20211106.patch.gz.asc 729 BLAKE2B a60360000338be6f19e9769d901b03917a632d2da961523ea81191b44b04430d757ba0dea30a6b02e29b324dffdc447cf1fe729428138e0e71b138d84aed26b4 SHA512 3902c88633078ccfebda4ce67dbf6e4ccf0e8be296a0193d07ccf51b56dd75c34f326f885330c90d81aa0d487aad513eb797c3916aba682a8ed6673b51483c84 +DIST ncurses-6.3-20211113.patch.gz 116573 BLAKE2B 5c0926fa97628e1e15f10f47e3c668d5867c066b03b80ec1be2cada6a48ec02aca81dbf997718fc1d9bbdd36016de62981eb19e875aac4b4c531c90c0a2f1c48 SHA512 2225859cb6770d31cd5d147f1b767c61ad28534542b64e3e22a9630977f2cabcdad11313d533c0c462f53a6e0dc17cd80985ca759d796658775676720e50998a +DIST ncurses-6.3-20211113.patch.gz.asc 729 BLAKE2B 16e9645ea71db7afa7b3a52831b04920e9d7d960bfef074361ac77264a28b9bd95a6240e1e3e2e96373615f2915a35acf6d3c21b63a6c4130fd35bf3c65dbbe2 SHA512 7d5b8740512b31bc5b6ace1cc9ebbdf36f2092bc88aa3994f757085ac2add814648daa70c18410a4433fb6327115d9b1762eaf93f9d337de3e10a9707f411f1f +DIST ncurses-6.3-20211115.patch.gz 2259 BLAKE2B bf3ecd64919707bdf25b1db20d99c68d47d122406bcc4884c370d9b13c3df4bd8fd5e913d3f5ac7dcfbec58f4910d2d42176c32d879095c45e2513cc4c933a22 SHA512 7571da910f51152200d2fa76659d1a253ceb7022c00bfa587188c7ad1f6896ed836eafa3e724933fe3c4bfc03aaf6ac1d51102c5db1a3e37f944f3b15d50f9db +DIST ncurses-6.3-20211115.patch.gz.asc 729 BLAKE2B 8b853439790674b22029d4d71a65b29019bfc1d2109b44cc2d08a08cc396bd5b784ca8169e4a8edc1fc4e9a08611b89c50f9e3a18781aef0b5a56ea20b335117 SHA512 5427ac588426bba6e9b579faa6c1e1b17839fe2e3327dcd76ac187a46792693da327b279eef35c43e39b08f755cf930e7efe03a753d8b8ba326c039408131d60 +DIST ncurses-6.3-20211120.patch.gz 122226 BLAKE2B 390bb1bee13b83d282ce31a26327bf46000d74851f5d2a363e04915ef73ca5ffaf365255d6696b0c4d10fbb1fb124baa07fa0b841f378b018a37ac1a741aa579 SHA512 37eca2eb6478332e095c139eaa0ff740b8bdf82da4a1c0e990010ffaa3385b38a1c6956ff3f1dc182894384d9face8c265d35faa3ffd0a517c404890b51d177e +DIST ncurses-6.3-20211120.patch.gz.asc 729 BLAKE2B dd03ec2ae80bfb83ebce5b55410914ce3d5015da2933984b04d2e4d6170b42cccf109bbe2312b4d77c83933f9bad9af7f19e8b1ff23f3791b99238c2d0834891 SHA512 5693a92e631718c6f2bc791e994f5e225a70cd6eab9df5b5da2c180b96480e77c0e5485f48653cffdfe267048175523b7dc42414083500310fb87554043dd19c +DIST ncurses-6.3-20211127.patch.gz 38780 BLAKE2B b9e6e1c065c7aa97809e65a0af2bb398e7d2ed17c95c35bc4320451ad47efd1a292dfb74d2ff53ff12a68c9cabd6464fe7be40e389c35c4f99ebdc66ec7ad77f SHA512 e2971c8606173da0e044630622506fdef4b83e968b2c501c4e1db9b0b4e54cf93d76570fdacf0edeff986d9cdd728471050c9365881092817b54bd83917fdb25 +DIST ncurses-6.3-20211127.patch.gz.asc 729 BLAKE2B 11ccba2a3310a70b228d0df1b088501ba30f159878662791ce3a294b48e0819c6619dff8763590cdfd74d6e2dc24a5897705808e6da64510d49eea7889e3b1a0 SHA512 8949ab4d8e6b124769bac40becf2853bc0f370814fdd013c7b0c638b9008c1628e5b7cc372f95731549a5cb184ac6d80172f985e114d186a30cebd67268dae61 +DIST ncurses-6.3-20211204.patch.gz 29875 BLAKE2B ce2c8ada23ea01d22baa8d68bb34bfebd3913ce8dd787f1a3825eb07c7a8d83dfe4317e755fc2a16469f6936022a2c45155ea5e3aaf9d01a5caaf124cf1eede2 SHA512 30454d917631cfad474191dbb7e1318e5370e829cab4b63470f51e9c13c953975d999a41cb10a35dfabcf038fe666247d32659f597a6e8a8bac572a4fe6b3fd6 +DIST ncurses-6.3-20211204.patch.gz.asc 729 BLAKE2B b6cc88dd5ac8edc1afa60baccb8af84daf00d8806822f04284c78f0ed132f7fcd839f4d39bc62ff58d48bd3fbf504baab9bb9815a4c236f0bbdbcf23798be71e SHA512 5dbbd09311d4f5bcf1697373945db190925c0d7d1e0aa3d65f83608e34a9c407a74df8553581ec5a49d634e94261ba8f5fac26dbe9718177df173fc4e52543e2 +DIST ncurses-6.3-20211211.patch.gz 5277 BLAKE2B be82f85d49e28a25ef8c26dda4355ac111fab68917d157af05289b518a669e7e42a1f6bf65a813bb3d0747e56cd2723ee1dfa28dc02501ae8350ac74e01c1b39 SHA512 c57157bc401190867aad64f4503e438777606786814de32b38e44df6d73733b91b5c5ca4e173035dd5ccfddbdca2814fdad7a1781f6a144adae4d96d2c6e7e78 +DIST ncurses-6.3-20211211.patch.gz.asc 729 BLAKE2B 01ba5f095250a316fdf30f3f15032804db351c5995dda85820e67cacbb62a0d8a750c4bdfbe6deb9654f01ef124a78ef89b9fe41e4b494561ffa5a79f243c72e SHA512 17973f01a765d121597b3cff6fed2feffe5ff895c4589ea08a86134ba3b9913742f740deba9369d2e7aa89aa033c1925b4d49518d188cae57ba83ff5a3668225 +DIST ncurses-6.3-20211219.patch.gz 6874 BLAKE2B a5b98f1a0fc7b31340713f5aa2a0106184e270ac2312851a5a92ff6947d70d86e9af849a3830f5306c17bad58fbda4640b4cc15715b23cb6e2411b7f86ba0282 SHA512 c38b31e133d336fb50936cc176a04fa076c197c6e6fe56beb840002d6ac65c76c4a3d1f2506122b1095d680ce254a886b52c56194f2fe586edf69355d68f2a45 +DIST ncurses-6.3-20211219.patch.gz.asc 729 BLAKE2B 2ff431a67bf8ac671ec330c8ea7c61e6467cf2c7acb7760ebe035b72a05e675b1945e891d55943f1dfe0fed0c29f91731094ae5d198e11af6d9d0a21534282ed SHA512 7d6a3a0e4a51c885fa2ef37c71f089b7493daa57a59cb02188bef64597657fabb7dc20fce1d55bbd4c368987becdc1dcb89cdce14b45576ce7657522046d8b2b +DIST ncurses-6.3-20211225.patch.gz 205972 BLAKE2B 34ea7243f7f8ecff69e60a90fc1a0a9b9d69b4e87227714d7ae8f603c3b16f82466c96987e7696fbb45005dbaa2c732f85a79b4fc39a61f8555bac661f27ba53 SHA512 1c2c1687233cfc72cf050883bbee60d88ed179e0fa865dd752985e83add68b5278e498b2e9bd2658b00ef7791e04fc456f43e82fcbb8cb4ed46365bff3c336d8 +DIST ncurses-6.3-20211225.patch.gz.asc 729 BLAKE2B efc0b1a5cf93c71912ab6a7232ddc7c50d2369a955992e6e60f8d86e56aee3cf539c82e082951d5b6215bbde835219588619ae95525b08a54486d3c75ffe3658 SHA512 f2bb524f604883858015a23fbeb698db8483afb88012b3271bfa10935fc71845088b7b5c9fcf950ea9fc2aaa0e2baa4147a8d9f4e42902d3be9f424ce01f7ad4 +DIST ncurses-6.3-20220101.patch.gz 11576 BLAKE2B 76b2ff3bb028bd6ebbcfd0f79e20aa5fd06806279c569e2640e9b6de83899913ef8755c37888a65cdce3ee701db2ef704181de6d36417abfc158fe651d5c0e68 SHA512 07dbf0def9d21a6b701f4f3d18a8f82d5115f8e4d826a57bf5914534029c79aad2b539f60ab5b1795886894f490a9f604acddce3a77cdd474d80db5428568b97 +DIST ncurses-6.3-20220101.patch.gz.asc 729 BLAKE2B c86a9999b42fb312c1452f619269bdc5c1293c19cb8adb2436b5670acf706800a951d266f2c1b78caf1ab10608933e99fc49e761eaef1a658b0ed35fc4816ea9 SHA512 1ddbcdef1e7b5a04dbf0a7b371cd775337ca3ac39247f5215e5c6d099d4758367b98c28a6d5568a08bdcdcb7ff29a7ef2936b12b431d9a0e00eaad2cc78976d4 +DIST ncurses-6.3-20220115.patch.gz 294400 BLAKE2B 97293251ae0c6322df5e4663fca4991e5a1978ad63f1d7d015027dfd6e5dc5e1a52d46683199da2efb5f7f18e7b5424ff7702d34d0dba5eb4ba83dbd85039078 SHA512 0e42e298fa22bf2a463870576ac697ae71320eacfd3ee41bc4b41a229f05603cbdf52bd4e7b724de83c41c2587469deb1e2f876a5e6eabe1df1799263f5c1a87 +DIST ncurses-6.3-20220115.patch.gz.asc 729 BLAKE2B d1288c86c4fdd9890dc8654f81e2e8c956412173a03f26f0018234d6bad6fae6043df8f65d1bf1942c8ea8de68f631d6cd6e8741c932277b85fe9735ec9414a7 SHA512 cf3aafd09105362d8c896d3de73a49ed1f19818a78bd2f2a9f1f8ece218dc01159e65793ef4010d5f5a850fa9057f4f2723d745e6fbca7530a4e8c468005bd41 +DIST ncurses-6.3-20220122.patch.gz 106624 BLAKE2B 33d12cec7df1553cd2c4c3e09152f53ef5b8e86a4cf9bb5afadcc92065f93bd0734f761be088f13f150ec9e8e4d7d8159ea22b2c2bf0bec824e25078d2ea9251 SHA512 c585ba9f3c27314cfb9097d8cf9feb1653014d676670f1644cefffb347ef70a7172ca56c20015531c7117eb23909d55815a295850738499e58c4d5306ec5d747 +DIST ncurses-6.3-20220122.patch.gz.asc 729 BLAKE2B fb8f0e236ec7582b1adfa9c7facb959fe1b88ffcee494308dec6fb4ece6e518d1aae3af5c52e0b82f59660e60c3c01dd56037e1b107e25240a12a03f4300f91a SHA512 609c55b3028a89d4ff09774279435bad58d8d0e179042dafe2c61092f32b5edcad2397cdd8a6eeb7ab61322064fd1b24d8b6b960adc6ede0b7254c3b12284fe1 +DIST ncurses-6.3-20220129.patch.gz 117854 BLAKE2B 1dce0288609407e6bc803ffc8f61b0c33f8a1dcf1c6c4303cd4c730741e4f0b68b7fb7e7b79c1a29dc1c7cde7f2e5aa7b615402b13ee3af7a7c28cae1ce804d0 SHA512 3f573b645f67279e0394352456d844d289be89e2ca70d832d24fe945ce2e6b017273eb305171e5a704492ac3d600de05e5e6c1e268a939bea4b5cfd74b292753 +DIST ncurses-6.3-20220129.patch.gz.asc 729 BLAKE2B a6b8fa01d3a5c8c3f4055757ac23a2700e5b8627214f8606f25c82f560f1637ff2db70a872f43a9aa25b64e3efb3c98bb9980b0673a35ca13073c4f9d5063fa4 SHA512 b2906c5d27312df3c6e79ab486753420ab83e9562d1b3d35971b5ed7f6d15a1ad7f8a3b18bafe3e5e8c6ef9b09d32dade373269ebfbbe9ce5d2b417e0848a5d9 +DIST ncurses-6.3-20220205.patch.gz 48085 BLAKE2B 1d1bd94138379e1947941c87c1ef6cb76e1e5dcf49e04985b59f1d111a524976629f94ece79f9ec93a2c773f8dda9bde0b90b1d34ed1ec51a573d4f1587cad86 SHA512 166f3f6687f52c18169d67e5cd7338aee7ec283898c522e964a4d9f59b20a5754d6865e0268c5297ef7c4b7fc34b8607f00129aecb5b7ab616788a0b98f674b2 +DIST ncurses-6.3-20220205.patch.gz.asc 729 BLAKE2B cace085a89847d3d19eab5049c64afb187b1419dd7ea6ac1e9cd8c037aa83897788cbddc3e97ebe15d32f09e1c5156664e5d3af5727edf6ba6b739025582f984 SHA512 c2176c35fe7044ba82869a928c614faec3a894521b3becbe37277ab95cc5615fb1b33b935d6394a4f75dad15015e5203bcb29001f68fa05420289145729638b3 +DIST ncurses-6.3-20220212.patch.gz 41501 BLAKE2B a0257b9a740a14090e46e85b67a59e754018e77d6484b30eec6f5a3fa84dddf329078b94d4425800ee45a85a31a9c47b1ccc25ed32fdc2f433465c3238e3c8e7 SHA512 1f596ad2f806411a2e89ebc8b74e9d44754fcdd3baa0c727fe610121fe64eb27e1c35871545dd7ab743930e1c49c2d96581aed0a0b37d0a33d2ee7c590c0c42e +DIST ncurses-6.3-20220212.patch.gz.asc 729 BLAKE2B ed7466b3294baeda59fdd56df93583662a257efb3434ff2817d31994cd5218605ccd535e95ce668f741693fec9fcc5f39223dd67884668aee777bfc9eeff55ce SHA512 3394f9c37a0a1d7e19becb023542534c734f15f030ff725ba54ae010417898be2935d6820f7f7f6d76a0abc3663a9a7f4ccf98a9571c03123f4ba8321ea5c9c1 +DIST ncurses-6.3-20220219.patch.gz 6845 BLAKE2B 660191d5561af0ca763ba8377899ae5793a48e73fec27ef5d9ae00e28cb53edbe96c6ee0480bc1de321ec19cbc8c02f7330861811f3a000b603ce6bdd9921070 SHA512 41d9e29f4f673a6c930f8637dbbf7c55f427aad28088f96ddab824b560b462015dcc21a371551a087adb44dde4797abe9cde2ea07e2537e81216b17b330a14e7 +DIST ncurses-6.3-20220219.patch.gz.asc 729 BLAKE2B e216aa89dbe7d7ea0bafa6d91aca090ac316844ec6d1b1d36da8452bc623e3897722f19b3fb1cc89174ad1aa41a6e8fab4d1b761081090c2bbf338fa027a534d SHA512 555f22dfb585e7b93727f20e46fb6fa77cb633bafdfe6ca3cf3bfabd462a4761f23bb341fbb25c1518b8d9652388f23d671e15f7acecd01755c55d5fa48d3e67 +DIST ncurses-6.3-20220226.patch.gz 5429 BLAKE2B fd0b50218992daf8e5228cf77fe72db651bba494d9699d0057e0e676fc01b699ff4d8f0fb9636faac5ea3fc1936d59d27403a5a5e89f6aa3c42f7c101d9dcb35 SHA512 0d77a955c1f24b7ba58d830cf5c256bcf5946f535b29077484e4ce4ae871a0803fc0db70c66d177ad427da797f7ae30b9a08ff56cd6d0b5f37dd3f231bd67b35 +DIST ncurses-6.3-20220226.patch.gz.asc 729 BLAKE2B e1b83208bf9e9ca9558b3e93f824766765159fcf3b5b4c7a4d92415229a8ef653eb1503446cc5fc8088a354e08cf6fbefb5fcc28e995c8c1718dc77b59552267 SHA512 972f65a645490ef425a6f7314f859cbf8d1aefe5ce6b0847adad3a457d8fd5634af64becb6542e477d14bdacc72aca00fef213c3d5b51f68258ebaef876aec86 +DIST ncurses-6.3-20220305.patch.gz 3732 BLAKE2B b756ad0d8831c2f0eff78dabf1b45adec7888dedc846a91a94cef739c10057f87bbbe7984a4758aa82a8c146d7cc9eeb356b7321bf529fd54480fe334e0ec608 SHA512 4ced572ac32afc2676896e79acac9145c7b138dafa8ebe0c29b2355bf65169a68df3be8fd273b7b957931f98f39ab0f20ada6081be5e11045d32f91f055116c6 +DIST ncurses-6.3-20220305.patch.gz.asc 729 BLAKE2B ef22a7429cffe8dcfebdbd6e339684b7a96c437e3d0bc3ba3eb02c4e8a537909f14306a4d7ce2d0f0752e1a02975b11ad04aabf27a6ba0aa99f4f486b1fe4826 SHA512 68a73ba690722ecca38099521fd9396e7c46dfab9c1a090f0cb7d1a18480bf027a6b7a5e3f1b0ab92a7ad29b05df1c9f7d4c197e13b9e916b6fcb0c54a472e4e +DIST ncurses-6.3-20220312.patch.gz 3659 BLAKE2B 8ec667f1a615b7fdaf7aeef1c14145ce4c90ad75c8acc474d160c61bf85b13a10fbb6c248a2659dba94db50a9db866c002c2ff429a3bdab8124b1d9b28031364 SHA512 1565f364fa694e2b84f73e9d6ad716b18cdde4f18aeb9bcee8d78d59ed9e995968f7ecea7d307e6738943208ed17bcd459b6b30cc85fa0f7e8ff2c64e2a7b385 +DIST ncurses-6.3-20220312.patch.gz.asc 729 BLAKE2B e5b4cd10b313c7d7f61e3251fddc2c85fbd920b2855d8b9ecb585a1d3acbd5b1bb3a1dcf5043bcb807ab9ecb03c9e711e1625a86ae6adcf6f41b37f8b71b0d21 SHA512 ca819f78d6b5b4c9bfd9e536c6e8ec4ccd9d6c3ad3f00e1e85f5e646e2e5d2b30e8c72ffe91f789a9b8f2268b89f4fbc07798b433a202b263673a187c74774c9 +DIST ncurses-6.3-20220319.patch.gz 3975 BLAKE2B eb9a9896704463e64c0b46721322190cdaaf1bf6d30f3a8b4ef2d815a5cba5dc0ca84674404ef720d0d861cf724b265988e187fec94096f6926633da62933829 SHA512 f642180bc13bc26d8befa48145a66d36f064cd5a4c5891e0eb5e9e463cd7a446280040ce04aa8d7bedacb06d060916fc32ca7f6f66010ee6fbf95c4a367e2c1f +DIST ncurses-6.3-20220319.patch.gz.asc 729 BLAKE2B e6f763a035db48bdfb1bb7c05aa30f91c0e693efebb0f74eebc696a0f5b4acba3655112af6bf9b0d5bb502a5d67dd3416b4f26dc3be5cb775692f1c958aaa911 SHA512 e07dce52dc16d73dcddfcb982b40cb9fb4ff60097e704e9dc56604262cb30eabf2283a4b436e78a8ddf6abca69cc3fef5a2d93d9145658ad4a36022e2b053406 +DIST ncurses-6.3-20220326.patch.gz 4163 BLAKE2B 20f83d6491dfe4c6833c72582dbddc5f69f4356f78251989afc7e689a2f261f477a8db17cea7c084ab798d3ead34dd1204a595e4718255a6c4a3a9735c36b217 SHA512 62210e6bdf5577fea31e2d793d15ba55bf1c89a855e02ebfe82bc918dec3423f70c49756b08a8fbf1a7cd4311ff09a2751f76a4bb7b2924a3eacc96c2ea25634 +DIST ncurses-6.3-20220326.patch.gz.asc 729 BLAKE2B 65254b2f56dd831be92fa8e89359bd52252dc7959a16d99888c372722bf533a7c2cc3b285452af5bc33f0478bb2f143ed74b5f0b57ad9cc74626b4902f0ccdbc SHA512 a60b780f39424b3f712e5fd81fe397b1eaa476026b497c50edd5c6e460eaf320ea9412a0d0ce122bb7bb3cdfe2f473bad5a0bbf923a22cc1bcd04c621aa5c023 +DIST ncurses-6.3-20220402.patch.gz 11483 BLAKE2B 3210094fb4be4d7c2b751ce3d7b4efee71db0c420f0159db846efcd0ae6e85673069b7c39b943346a3b1a1aeda247493aba6bf832eb192fd3729a9585d0c9a66 SHA512 f8ce6ab6ef5df746ecbc6286c5b46ec53ab0f3fed831878f693c8afe49b34f3f2769f2d3078b81799952f7905bf18217069fce7dd52d3126b7e4dc2ae84f5443 +DIST ncurses-6.3-20220402.patch.gz.asc 729 BLAKE2B 0ab44b4bbf10aa0c67dc1022012b1e156c9ce9c57214c5f92e7b3714cdccead69e0a869b9247b799797680f896dd8e86b3a2ca2e9587f5cc11250711ab36006f SHA512 299b5b7c337f95b0621571261b23d3110c963ed0f584f145238049caad52ba325d6982e138545d02041e297cf78f3f1a0f8d08f9162bb7b61885870382df2e06 +DIST ncurses-6.3-20220409.patch.gz 22728 BLAKE2B 7b8514a9fc8b8ddbf5cbf1f6b0cb45895808f6226db726c206ed8490c3abccbf8a8d49e6bcfdcad806414d8aa0d4fce89faac43c60a38ecf71e613ff01f67224 SHA512 1dde730b7fa12efeb2bc7b98012f3e5529630f0aabde2d877046ef85d541dafb5d64488747ddb559f97a3f25d1ec5f716815f9e6c1ce100f4f308bfa86501d20 +DIST ncurses-6.3-20220409.patch.gz.asc 729 BLAKE2B 9d5321cd1990c68ac812691713d941d467dcd2f95c93f2488cf212d4162415b615397546bc397a2907f1b6ae38907dea6f72e3012ecdafa0054a91d59a94ca64 SHA512 8db2631d35ee1d7d07d906fa194e499ed8239acfbfd215e192a2382b1cd998a9ee3d0ad971aab43edb5e91cdbb2a772835a42cf0645b2541c5c7dab9bf4adf74 +DIST ncurses-6.3-20220416.patch.gz 67896 BLAKE2B c95a993f51beb87bb9891bd0eee08729795a583df50c66df8265cdd5c4adbef83b9fc0339c71aa5137408fe10fa15b0ba4028d5539a0ac66df06c0c1d72e8359 SHA512 2686ed16f5103d76c92cfa4943a8f82d8bc414db074c1c7fb73810b49c6d1d0103988611edf36715d5be24891d0bb2c97ceb08dc4111d0900b5dba6fac12af0a +DIST ncurses-6.3-20220416.patch.gz.asc 729 BLAKE2B 52ab1bfcac4b5d7b3733c399509ba4c0a6b9531c02a05846d39344488ba3a9196326a8126db225845a3ff1ca3fdd609fa1d9264583e7e57e28d2f4e3b58b4389 SHA512 c5a60d2ef9996c02264e6656a966f4be910a3acbee777a4ff2a5131efd156bdf1d32418a39d6e3c07fcbb59c75554d4cc1e7e9f84f5b59f69e7e4c17fafc749f +DIST ncurses-6.3-20220423.patch.gz 3394 BLAKE2B ac93810f1e826fc82de72a85effe5479576af14fa86e0dd08b8823b6f4652922f79242e9c867b1c864f0049c9e6d9864d6efc9282ab1e734dc316cac05655f4c SHA512 5dc87f70793d8319c5ee2f07c7f9432b1128e05f3aa2841a74deeaf294e46859f4198483dc783bb80e5e98f81f05cfef148df75a5abc5acfa69a9d6ad3abb702 +DIST ncurses-6.3-20220423.patch.gz.asc 729 BLAKE2B 7225d28f7e61ae584183e98d8c93c7d470e96984aea4e462333f115c329a8c187927196447b8368949986d4b8c96086f5839fde5b442936e76ac797685ee109b SHA512 b0eecbdad448f193fb255bec2fa458d3fea972c181891882d8dc1e09cc325ecda38e98f2d410993f768f513f3a48b9be4b36dbb2919d82a778496b8ef2051565 DIST ncurses-6.3.tar.gz 3583550 BLAKE2B b2c174ac48d587b4d3aa054f04e4ec8bffd8a657a4aff5f090104965c741901e600712c8f8e5e98f3b8a26bc558996a1e14a746f113854832853b855e9d406c3 SHA512 5373f228cba6b7869210384a607a2d7faecfcbfef6dbfcd7c513f4e84fbd8bcad53ac7db2e7e84b95582248c1039dcfc7c4db205a618f7da22a166db482f0105 +DIST ncurses-6.3.tar.gz.sig 438 BLAKE2B d7f9852292110fe7a048a9e38611ea06564b5142cb4cbeb8d99bba752d5df8eeffa3b57e5ca315c14024520bc008b30650e99669c995dca05a798399a0c85d39 SHA512 b9a2a25e0b1854c272bf89c610c81fc0ba061f0296eca5c0079a79cfe310e44eb16c46eb5a0dd018f1ca9114d569c9d5087a2b8e60b0344f1eb97f7c5addafc6 EBUILD ncurses-6.2_p20210619.ebuild 9938 BLAKE2B e051c20b6dc781586bbb7de7986983c33c1c74df8599148b23bf7e82754c696bd814b5e95e77e4cf346dcd08c507fa9d2e90898f4f77921379bfa155f9a2d9aa SHA512 dec3574e7afc360b2bb165c923b8ea27edd30269dbab96027ad4966b16f2a80aca8d677afbac01cbd0c215459d84d9c239fb03a684771485d3d9e0be0430cc45 EBUILD ncurses-6.3.ebuild 10059 BLAKE2B 49d54b5c55b66745ad0cb6467a59cad1f3774378ee42cd655d0a94627c5500ea5f045db81f7e774b0afcb966cfaaf8ef106fd081af5a0f83b90ee029ebe2a998 SHA512 5c2388851eb130dcaae8db6f411bfe441a46dc7ca8a5849978edb8d8ea47fb2aa55354ed600c17c01b59acb36c3027bb1c8cb622c8b43e118848de855f3bade6 EBUILD ncurses-6.3_p20211106-r1.ebuild 10864 BLAKE2B bf3eccc36c80765fbaa165ff7c954b4632a1ac48abb0abff29a20d3caa81a69659205930a3d97b1fa78157799918db2bb4fb2f404a613931ac12fc5b8c1d253d SHA512 2a99d0674be5e8b0f2316857ae0abeb1a98ce3d718ffb0e04a2b61eb5733d4d5b0c3b20e806df8cbe0eb7cc8fb6ec8a5817225b3896846dc3c2f801b1b8255e4 -EBUILD ncurses-6.3_p20211106.ebuild 10921 BLAKE2B 0ce736bbe7a3d2a11fcca2be97a0fe04167098b95ddb9529487338cb81370e2b171f49e8c850a6ee9e1a0a80ec84fb854eeddaf0904d6eb97b81868474c44bd4 SHA512 15272a24a0dc190b7be5290412f1bd3c009327ca18f41eac281fb5ebe5923482040fc425a7a58b367e3988bdb448a56886e387bb8e00e1d1a61ff333112245cd +EBUILD ncurses-6.3_p20211106.ebuild 10920 BLAKE2B 582eaa0726501b6b5f6e16e7e2281d773629171c21b137923b29dd4a22aa19044ab637857d1b136fc05264d0782107eee6913ba9b5c72c2ac52e2250fed9a8c3 SHA512 18e7458493d49ccbeb70f63118e673a876f77d64b4ac91dc88f7759861eb8821de658e2fed6a22ec3e21d82238efde2cf00710185ecf9356845256e020d3f158 +EBUILD ncurses-6.3_p20220423-r1.ebuild 11761 BLAKE2B 7329164aed9f787b2d3b09c371285b9f4b547f2376b9117e69b32345cfa4f8c66298efdbdf0e50b0ffe317d0de57c733b6ca6b9208f5f0cd54f2b1b419a30c43 SHA512 5a1be1411093eee58defd01c76a221d96000a26c99f97ffe6097560f1fbe0718c2611fe3c0e6655883aae62163cd2955f7d73191ee25a9579de8c828c63a7b24 +EBUILD ncurses-6.3_p20220423.ebuild 11635 BLAKE2B f5fd585e7e8dc204f553bb96328ca328ec5fac45b3284868a97c0278676326427c88387078c08ad16d066860816f89b37d84adf1316bda1fbdb378c6bbbb49f2 SHA512 424abb69383d9c46d1ac2dcdebfaddc2fa6ee298b5133f273eca7ec04d3bb26594c7b027db97a32b35814f5d41fdfa64e462f2ac555487c4e9dad66eb695d16a MISC metadata.xml 785 BLAKE2B e8c25458707dab787caf921aaa2fc4a6f66a1cc2c7bf23a6dda74bb9d990f92de7507fc81c83858fc55937d044e45523b2c22b65f86a4bb74ae463ead9781493 SHA512 ac0255fbb20bab036908eab351bf6798856e1b97c02258df158650e732d8b367df20bd1e0674b427cb4d9832662cb2cc02b4e77e124388e470b2dd116245cfaf diff --git a/sys-libs/ncurses/ncurses-6.3_p20211106.ebuild b/sys-libs/ncurses/ncurses-6.3_p20211106.ebuild index 6c1bee312825..5794b0aceb63 100644 --- a/sys-libs/ncurses/ncurses-6.3_p20211106.ebuild +++ b/sys-libs/ncurses/ncurses-6.3_p20211106.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -48,7 +48,7 @@ fi LICENSE="MIT" # The subslot reflects the SONAME. SLOT="0/6" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~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 ~loong ~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 tinfo trace" RESTRICT="!test? ( test )" diff --git a/sys-libs/ncurses/ncurses-6.3_p20220423-r1.ebuild b/sys-libs/ncurses/ncurses-6.3_p20220423-r1.ebuild new file mode 100644 index 000000000000..8ef705fe2b52 --- /dev/null +++ b/sys-libs/ncurses/ncurses-6.3_p20220423-r1.ebuild @@ -0,0 +1,395 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/thomasdickey.asc +inherit toolchain-funcs multilib multilib-minimal preserve-libs usr-ldscript verify-sig + +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 + https://invisible-island.net/archives/${PN}/${MY_P}.tar.gz + verify-sig? ( mirror://gnu/ncurses/${MY_P}.tar.gz.sig )" + +if [[ ${PV} == *_p* ]] ; then + # Sometimes, after releases, there's no megapatch available yet. + # + # From upstream README at e.g. https://invisible-island.net/archives/ncurses/6.3/: + # + # "At times (generally to mark a relatively stable point), I create a rollup + # patch, which consists of all changes from the release through the current date." + # + # This array should contain a list of all the snapshots since the last + # release if there's no megapatch available yet. + PATCH_DATES=( + 20211026 + 20211030 + 20211106 + 20211113 + 20211115 + 20211120 + 20211127 + 20211204 + 20211211 + 20211219 + 20211225 + 20220101 + 20220115 + 20220122 + 20220129 + 20220205 + 20220212 + 20220219 + 20220226 + 20220305 + 20220312 + 20220319 + 20220326 + 20220402 + 20220409 + 20220416 + + # Latest patch is just _pN = $(ver_cut 4) + $(ver_cut 4) + ) + + if [[ -z ${PATCH_DATES[@]} ]] ; then + SRC_URI+=" https://invisible-island.net/archives/${PN}/${PV/_p*}/${P/_p/-}.patch.sh.gz" + SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${PV/_p*}/${P/_p/-}.patch.sh.gz.asc" + else + patch_url= + my_patch_index= + for ((my_patch_index=0; my_patch_index < "${#PATCH_DATES[@]}"; my_patch_index++)); do + patch_url="$(printf "https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}-%s" ${PATCH_DATES[${my_patch_index}]}.patch.gz)" + SRC_URI+=" ${patch_url}" + SRC_URI+=" verify-sig? ( ${patch_url}.asc )" + done + unset patch_url + unset my_patch_index + fi +fi + +LICENSE="MIT" +# The subslot reflects the SONAME. +SLOT="0/6" +#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~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 tinfo trace" +RESTRICT="!test? ( test )" + +DEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )" +# Block the older ncurses that installed all files w/SLOT=5, bug #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}" \ + CC=${BUILD_CC} \ + CHOST=${CBUILD} \ + CFLAGS=${BUILD_CFLAGS} \ + CXXFLAGS=${BUILD_CXXFLAGS} \ + CPPFLAGS=${BUILD_CPPFLAGS} \ + LDFLAGS="${BUILD_LDFLAGS} ${lbuildflags}" \ + do_configure cross --without-shared --with-normal --with-progs + 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" + + # 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 + # (Originally disabled until bug #245417 is sorted out, but now + # just keeping it off for good, given nobody needed it until now + # (2022) and we're trying to phase out bdb.) + --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. bug #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[@]}" \ + $(usex tinfo 'tinfow tinfo' '') + fi + + # Don't delete '*.dll.a', needed for linking, bug #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 (bug #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 + + # Remove obsolete libcurses symlink that is created by the build + # system. Technically, this could be also achieved + # via --disable-overwrite but it also moves headers implicitly, + # and we do not want to do this yet. + # bug #836696 + rm "${ED}"/usr/$(get_libdir)/libcurses* || die +} + +multilib_src_install_all() { + # We need the basic terminfo files in /etc for embedded/recovery, bug #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 + + 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 + # bug #245374 + keepdir /usr/share/terminfo + + 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 + preserve_old_lib /$(get_libdir)/libncursesw.so.5 +} + +pkg_postinst() { + preserve_old_lib_notify /$(get_libdir)/libncurses.so.5 + preserve_old_lib_notify /$(get_libdir)/libncursesw.so.5 +} diff --git a/sys-libs/ncurses/ncurses-6.3_p20220423.ebuild b/sys-libs/ncurses/ncurses-6.3_p20220423.ebuild new file mode 100644 index 000000000000..d8a998fbddf9 --- /dev/null +++ b/sys-libs/ncurses/ncurses-6.3_p20220423.ebuild @@ -0,0 +1,393 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/thomasdickey.asc +inherit toolchain-funcs multilib multilib-minimal preserve-libs usr-ldscript verify-sig + +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 + https://invisible-island.net/archives/${PN}/${MY_P}.tar.gz + verify-sig? ( mirror://gnu/ncurses/${MY_P}.tar.gz.sig )" + +if [[ ${PV} == *_p* ]] ; then + # Sometimes, after releases, there's no megapatch available yet. + # + # From upstream README at e.g. https://invisible-island.net/archives/ncurses/6.3/: + # + # "At times (generally to mark a relatively stable point), I create a rollup + # patch, which consists of all changes from the release through the current date." + # + # This array should contain a list of all the snapshots since the last + # release if there's no megapatch available yet. + PATCH_DATES=( + 20211026 + 20211030 + 20211106 + 20211113 + 20211115 + 20211120 + 20211127 + 20211204 + 20211211 + 20211219 + 20211225 + 20220101 + 20220115 + 20220122 + 20220129 + 20220205 + 20220212 + 20220219 + 20220226 + 20220305 + 20220312 + 20220319 + 20220326 + 20220402 + 20220409 + 20220416 + + # Latest patch is just _pN = $(ver_cut 4) + $(ver_cut 4) + ) + + if [[ -z ${PATCH_DATES[@]} ]] ; then + SRC_URI+=" https://invisible-island.net/archives/${PN}/${PV/_p*}/${P/_p/-}.patch.sh.gz" + SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${PV/_p*}/${P/_p/-}.patch.sh.gz.asc" + else + patch_url= + my_patch_index= + for ((my_patch_index=0; my_patch_index < "${#PATCH_DATES[@]}"; my_patch_index++)); do + patch_url="$(printf "https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}-%s" ${PATCH_DATES[${my_patch_index}]}.patch.gz)" + SRC_URI+=" ${patch_url}" + SRC_URI+=" verify-sig? ( ${patch_url}.asc )" + done + unset patch_url + unset my_patch_index + fi +fi + +LICENSE="MIT" +# The subslot reflects the SONAME. +SLOT="0/6" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~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 tinfo trace" +RESTRICT="!test? ( test )" + +DEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )" +# Block the older ncurses that installed all files w/SLOT=5, bug #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}" \ + CC=${BUILD_CC} \ + CHOST=${CBUILD} \ + CFLAGS=${BUILD_CFLAGS} \ + CXXFLAGS=${BUILD_CXXFLAGS} \ + CPPFLAGS=${BUILD_CPPFLAGS} \ + LDFLAGS="${BUILD_LDFLAGS} ${lbuildflags}" \ + do_configure cross --without-shared --with-normal --with-progs + 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" + + # 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 + # (Originally disabled until bug #245417 is sorted out, but now + # just keeping it off for good, given nobody needed it until now + # (2022) and we're trying to phase out bdb.) + --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. bug #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[@]}" \ + $(usex tinfo 'tinfow 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, bug #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 (bug #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() { + # We need the basic terminfo files in /etc for embedded/recovery, bug #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 + + 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 + # bug #245374 + keepdir /usr/share/terminfo + + 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 + preserve_old_lib /$(get_libdir)/libncursesw.so.5 +} + +pkg_postinst() { + preserve_old_lib_notify /$(get_libdir)/libncurses.so.5 + preserve_old_lib_notify /$(get_libdir)/libncursesw.so.5 +} diff --git a/sys-libs/obstack-standalone/Manifest b/sys-libs/obstack-standalone/Manifest index ec75f1d30ed6..b8ef5093899d 100644 --- a/sys-libs/obstack-standalone/Manifest +++ b/sys-libs/obstack-standalone/Manifest @@ -1,3 +1,5 @@ DIST obstack-standalone-1.1.tar.gz 11561 BLAKE2B c6eba8ed7e235dcdefcfa7244d6318c6ac4d4b6d12a8f4778753bbc762ec98439724e1e8bbba4b1a04fbbafe56a1634bbb1c604c4d5f30574da39c82d52ca1c1 SHA512 e3a9956133d72a00663cf8d9720e62002142e113e7d67e2338a2bce1bdfac9eefd4290db8add15eabafdf01065f7fe9bb6754faa36b88df819c53d44fa140757 +DIST obstack-standalone-1.2.3.tar.gz 11483 BLAKE2B fa8322c680fed9f876c90e3182271ec0cf45319ae46c5139613ed1c2f1f268c3361654b55a7a28c2043a7365ea89cefcf3eab2190dadbc1f36c20c203fe97945 SHA512 b2bbed19c4ab2714ca794bdcb1a84fad1af964e884d4f3bbe91c9937ca089d92b8472cb05ebe998a9f5c85cb922b9b458db91eff29077bd099942e1ce18e16cc EBUILD obstack-standalone-1.1.ebuild 755 BLAKE2B 2829d3715a8bbd68076e49b602a95d372d6f776db496d4b5c0266ff926edd5debc1bec8d16493537eff311577c3dedde295249d7202399a28eca3f18f836817d SHA512 402294f0f49d9d57ec9e1c0e43445843ed7f66a557d5825a92d94b9ff007e7669e5bf286f75be558ebcf73eb88d5d827e2c8e852e51d002e57e54c8ca6128a7b +EBUILD obstack-standalone-1.2.3.ebuild 789 BLAKE2B 5b45a95c93724cf1a3d1f7945af316a14c4a7290d03b00cbf7a968c87060f4431ea3ce37e0a7cf621368028683019a08e79580a1c373ae732e6f767c4e4e0e3d SHA512 ee71929b63374e5fd8310c069036b344539897c140044787c8aaea18156e555a0b389218f1de8cca4d5a35556969f8123ec376958fa3f6e025e44b58963925bb MISC metadata.xml 339 BLAKE2B c0445ede4840838b57a628ef630bd048863c0e3be6c35587c2e4588d89c972adad634d16db774aff79d01d3f633a8d2831d15a2e32fe8f0d91622250720a98ee SHA512 ed6999db981738a7bd3801e063d403a7149deb67fc09fd7e84c9f126510df7c4c2e2eaa1a237515dca1bd618c773b510ba2f3789c4e2a7415bb186f0c1e0b08a diff --git a/sys-libs/obstack-standalone/obstack-standalone-1.2.3.ebuild b/sys-libs/obstack-standalone/obstack-standalone-1.2.3.ebuild new file mode 100644 index 000000000000..25d82f7cdffc --- /dev/null +++ b/sys-libs/obstack-standalone/obstack-standalone-1.2.3.ebuild @@ -0,0 +1,36 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools + +DESCRIPTION="A standalone library to implement GNU libc's obstack" +HOMEPAGE="https://github.com/void-linux/musl-obstack" +SRC_URI="https://github.com/void-linux/musl-obstack/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}"/musl-obstack-${PV} + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~x86" +IUSE="static-libs" + +DEPEND="!sys-libs/glibc" +RDEPEND="${DEPEND}" + +src_prepare() { + default + + eautoreconf +} + +src_configure() { + econf $(use_enable static-libs static) +} + +src_install() { + default + + find "${ED}" -name '*.la' -delete || die + mv "${ED}"/usr/$(get_libdir)/pkgconfig/{musl-obstack,obstack-standalone}.pc || die +} diff --git a/sys-libs/pam/Manifest b/sys-libs/pam/Manifest index 8bfb16be5f3c..fd5ab3bf459f 100644 --- a/sys-libs/pam/Manifest +++ b/sys-libs/pam/Manifest @@ -4,5 +4,5 @@ DIST Linux-PAM-1.5.2.tar.xz 988784 BLAKE2B a835034cd239bc9377419c13dda45276e8e64 DIST pam-1.5.1_p20210622.tar.gz 783068 BLAKE2B c8f13c2ccef73ad367d4fac9a7d1d0d3f3d0e4f1c8eea877d2ab467411cf17cc32c6c9c89e98d94090481d7d7746723175031ba8713a8fb0c3e1976e2854e58b SHA512 5b7a84b9de2d0b0c39cb33e9b8d24aeedca670b998536d74dc497eb7af31cb1f3157f196a01712c4ae273634b51ddad2062f207534b35b1d1a1e790816c8dc1b DIST pam-doc-1.5.1_p20210610.tar.xz 62308 BLAKE2B b3311e704ddc840b7fd28ea7764e8a0d3fdf508e2e37405acbfa26462a188c480859b3b21bd4a4b4acea70928e68650c216e8fb2d2b6f11ba33f54c6692cf3a2 SHA512 89b88f8ebf0c46f6b25dc0c5f39383ecbef0b12d6ffab388d92026066ee986f9068819cdbf38baaa1e341cd6cc84b1e8d3ad02db121aaf0ddad27e4e6efe26e7 EBUILD pam-1.5.1_p20210622-r1.ebuild 3657 BLAKE2B 4d7a89405ec69b2d1fbf1adf7b53ed35ffe0b8dc5b596fe3cbe32105ed796a78889a52745cb63c452a4016498121dc8946f2e43f105de53e367fbdf0f78718e7 SHA512 51712d3efa358e5b95ce697093242b43b7a262164151d3625adebaae0bb68ec871930285bdfb9f8fabaa007f8b1e9a4ca8b22168259c0d3635d4db05d8bb946e -EBUILD pam-1.5.2-r1.ebuild 3528 BLAKE2B d289b4b882a814fa43b632c0495a278508f33389c3f76e046ba0dcdabbaf83a857d97da59539589df35bade49cfad21b7f19990225856941a447e5b7c52304c9 SHA512 e59be7b16afd4ccf0ee5745921b3b8cbfc1be2f4fd2c7c032bea60c2dd60facf6b40a6bc26e202fe2d61b6a890b66788c7a21587248e69223232265d081c3d58 +EBUILD pam-1.5.2-r1.ebuild 3535 BLAKE2B 3ad71741e26c68aa88d4603186107bb2ea51a243351e1b9eeed2cd82b83e2c9bf6ec645f7ea046e4b5e6a733ef46403208f306f20006b9aafca9e26aa6d15156 SHA512 95c68bc34697df3f84a60ebbc3f8555f89201f9dc00fe54d2f51a6bf19cd0d440024df7f02f71c3305db732694ea9053d6ebfc6f921e51b5dc58963418c55c7d MISC metadata.xml 754 BLAKE2B 366be10dfcad98d08ea3e307312b9a84804efa6f097f1505907e03fcb5fd0f4a6067d1d85d8dc5fec82c54c2e1fdf76d716d09a45571b0994d96130a2506e1f5 SHA512 b453a62fc3cdc6c0e7cd9c15d1bf72f8641a8eefc3971304ae5f0db3c93b69ca5f9c059e70b94ce799b15b640831c8832707fc1740f1361aca3a28c30ae8f366 diff --git a/sys-libs/pam/pam-1.5.2-r1.ebuild b/sys-libs/pam/pam-1.5.2-r1.ebuild index 41f8b3081e5a..f9e430139fd8 100644 --- a/sys-libs/pam/pam-1.5.2-r1.ebuild +++ b/sys-libs/pam/pam-1.5.2-r1.ebuild @@ -19,7 +19,7 @@ SRC_URI="https://github.com/linux-pam/linux-pam/releases/download/v${PV}/${MY_P} LICENSE="|| ( BSD GPL-2 )" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" IUSE="audit berkdb debug nis selinux" BDEPEND=" diff --git a/sys-libs/pam_wrapper/Manifest b/sys-libs/pam_wrapper/Manifest index 68512bd4f558..c67f180fbbe7 100644 --- a/sys-libs/pam_wrapper/Manifest +++ b/sys-libs/pam_wrapper/Manifest @@ -1,6 +1,6 @@ DIST pam_wrapper-1.1.3.tar.gz 118034 BLAKE2B 3c05e74959f3c6dfd35575cc5f9187f4a328bfd7ce002e327fc135c82a4ff1513add87678360992d2010c124f7fd95e4bdb3c0a4d63418d9711069cbc200e417 SHA512 3b7cbd25ae7dd73f4a0c64a7762cdeb38cc7ba6e8b4e18e79aceffea09241d520aa884de88e4105b5957b2b18ec682be6568a6bfccf82b9354a3510cd2cd98eb DIST pam_wrapper-1.1.4.tar.gz 170882 BLAKE2B fa0a789f6fd6f809c7ef80e354e886b5f1f0b4212060dc0e388a44701e4a1f49635b8f47344156ad65cd273660e3b0a806480c37875a830e2f5d8e56c4ec0818 SHA512 3b68dc6d7815707d74d1340facd9c2de4dff3934402ac2c2632371b39c41a75744434744ed7308e157be03a03a941405638cadb6f34995de56fb1f5f45d37de2 -EBUILD pam_wrapper-1.1.3-r3.ebuild 1553 BLAKE2B a32635c0f16be69ee7dc64470175bae8ff793af6ce2a712e6d81b3d7d81d81ab0ec32eab24b0630b191c51d648fafa22db7e2758a15622d7652d203cf9b633b2 SHA512 7ac097214afb444942597508b80083d6e45f04efed76aa0fb7b36434cab6cf8e6347d61ece14ee3046c050942d81f3e0a3ec38371cc7e72819aaa008def4ee8a +EBUILD pam_wrapper-1.1.3-r3.ebuild 1550 BLAKE2B ad42d928558d3d0a0cd8c55bc4cde8e61440f338b6d2de4156d9f17d8966fc0646f16ce2e3bb088fc2aa3fdb627aa05678f872761bca8d5c954b088331bf2bef SHA512 217fd515e1c8794e985d8c33a508267699daeccc687daafc7fea90b7e091d5c423b2f73eb846f9e6d433e59b15329224625e4514705dc2955c41fda2c2c56d13 EBUILD pam_wrapper-1.1.3.ebuild 1107 BLAKE2B c7c5c853f9a1afb50dbf13cb3ffbce7cf53e8c8dba0bcf18e58ea54357c8e4a34e464e6d920d4d86e28a76b345f350067f7a9392f20f4d07be2fc354a6fb9928 SHA512 565455f3861d0b67f6cf68962816f9059002b37bc66221903f4b5e5555db0d3351323b2de3e5bb372b92ba0c4095a4ab1daf1209234243d93b5c3e8905a8855a EBUILD pam_wrapper-1.1.4-r1.ebuild 1622 BLAKE2B aa09ef9ccb37c088a82f99fb63830f79ae72ac3c4f6237e05e56213bbe2cfa2872ddb1002cf93e556205c81b70a601dfe4d2b5a2b8d812b9df18abcec184d7e7 SHA512 6116461461c5ff46323f712d54718129e466896476f91e5ef339a64294686366d9146b7fb16b5e0ae7d6126907c54e4997008c822d7bb703534acd973628c2fa MISC metadata.xml 250 BLAKE2B e398673dd1a3522ccddb89a82a53fc2578d8e0777ec46f889d01d618609a22958d91699beef513c7912799e0e8ff985200f7c67bba941235da25c24cd4b48f09 SHA512 16834c3cbecd0dd5a9c8c311d2b8ebc63d8cd72c5891498f4f0048988993c104aadd4e24e632bf54071c11f810716432e89e4afab029555875f9f52794daa6e9 diff --git a/sys-libs/pam_wrapper/pam_wrapper-1.1.3-r3.ebuild b/sys-libs/pam_wrapper/pam_wrapper-1.1.3-r3.ebuild index fe217064fb7f..027e3ad09a9b 100644 --- a/sys-libs/pam_wrapper/pam_wrapper-1.1.3-r3.ebuild +++ b/sys-libs/pam_wrapper/pam_wrapper-1.1.3-r3.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -17,7 +17,7 @@ SRC_URI=" LICENSE="GPL-3" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc x86" +KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ppc ~ppc64 ~riscv sparc x86" IUSE="test" RESTRICT="!test? ( test )" REQUIRED_USE="${PYTHON_REQUIRED_USE}" diff --git a/sys-libs/readline/Manifest b/sys-libs/readline/Manifest index 7cf033a65fac..2c8602e69ad3 100644 --- a/sys-libs/readline/Manifest +++ b/sys-libs/readline/Manifest @@ -13,6 +13,7 @@ DIST readline81-001.sig 95 BLAKE2B 7d523d0fc21772cb03aa4b5d66ea58c1a99a6c0e4a862 DIST readline81-002 1242 BLAKE2B 4ef0404561bd8fc5559e8e5f675ae3f12c467178a8954f54f3204c2d09b88ccec960e807c7af0ec3514b489b676e3be51f98351e377fb18e3d7a14d33d4da69d SHA512 e47c029b82cf3a4d44e85c4348f7e059c56726694c190d84186822e1c893e1c006e7ec75f33c36791112f81abd792a2e2fdae9a65cd128f3c89ff4ffd9a9a1ff DIST readline81-002.sig 95 BLAKE2B f85d8a65a7326d6e18b32a603c8082952e4b81c53b6a1bd1668c7b0064ecce6ef04a41e2a042f100424dbf152e4db32c0e07ff166d528aa4ac4a9bd7daf4c7a9 SHA512 9ffb6cc697499f57df133f5ebaa5e43e24d33df5eb450d94a02144e94c833424218594c366f21101bc63331c1d532299c9327bd447d0a9849b0bbedce206a5b7 EBUILD readline-8.1_p1-r1.ebuild 5901 BLAKE2B 4819d05f4e9fd9d9b737eeabf14cedb8e9879f554b5bb3cf2d1635ca2f3e07382e16dec40693aa183d51cd2d362f77942614f5129392363ce5097fd401b59795 SHA512 54c1365e53e218e3a404fffe2343627218b4230db5be183ce7c79c417ae8c083ac00cf5f619c7344284635155ff2dbf6071ba631283c0f3c2ace8aa1cd7b2581 -EBUILD readline-8.1_p2.ebuild 6259 BLAKE2B 98f2c75e62d01f475e327824904d25ee5ae4c0c2641bd9d147198126eb5dd6622b762168a009e3e8030f42e36bcee48a0c5cf47c9a750b2c1d882e4dbe5ce72a SHA512 48d5b71c391211434283fd5dad5330f506464d22f2b3bb6e64a29e0ec63c9469a6e790e2e9e6c8fc0bedb1f9fcbedf99b961aa8f724dbbdae4d16f8ff5af9850 -EBUILD readline-8.2_beta.ebuild 6501 BLAKE2B 87e9dab1a27e47c589d4ff9bc861720fbc74c5f730f43ff4f06569e7d7745faf84cf09eec4251a774ab8cdcae937d2992a691612f10fa9452f961259c419bfd0 SHA512 e5ac37aebbdae6d1d652df580c8ebe2779e6f2da9f92e125e0d701154879567f4df18d905f6d9ebd7424a9a0c1de5228276fa616713fcce126652dbd06589c1e +EBUILD readline-8.1_p2.ebuild 6266 BLAKE2B df1a758c63118e9f8b23bbc6831cc2d3fb975e332fd4212d5b94cb6b43885d4d3713a664d4b11729d6a447b5c57808b07d40a426d1738b85874da7c7d7880006 SHA512 e8a21619d26dd11d4fa0b2d8accb9ba89405a9ae66f6ef7c73a3122bb25b769f013691ff1688583a560911da303c15bd85f2a7863b41ec802607ec5f7df444ae +EBUILD readline-8.2_beta.ebuild 6642 BLAKE2B 641918ea6d996069d0e6e4b88cfedf4e18d5163246933cbbefa0b4cdf175fa268b056d2a5929176894611fd5943a32669466073aad696a117bc7e7a70da691bc SHA512 e2a5aa925cb3d40015d69f501d27a37652752cf57c764a41be5d26193eacdba735be63cddf6701478105258ead8d9df989f43e5f4358082468c90002b230725e +EBUILD readline-9999.ebuild 6642 BLAKE2B 641918ea6d996069d0e6e4b88cfedf4e18d5163246933cbbefa0b4cdf175fa268b056d2a5929176894611fd5943a32669466073aad696a117bc7e7a70da691bc SHA512 e2a5aa925cb3d40015d69f501d27a37652752cf57c764a41be5d26193eacdba735be63cddf6701478105258ead8d9df989f43e5f4358082468c90002b230725e MISC metadata.xml 473 BLAKE2B 95401399d6edc2a1a28f9c0f42123b07568d5c517c49be38eff09e1f23a9b5df4d5b302495db8880c8ed65081ea2920f194e6b32402ab0d6049221e9ee6a4eed SHA512 e54e4ce57f3178aa8646acb6798f46074eb33173ab63d61f62bc9ab1d35ef823ce9ee3e173234f8866e2cb635519869c76a449f5073c3a5b7cfd29cd23c16462 diff --git a/sys-libs/readline/readline-8.1_p2.ebuild b/sys-libs/readline/readline-8.1_p2.ebuild index b611b10b52ad..72ba36ee3ea8 100644 --- a/sys-libs/readline/readline-8.1_p2.ebuild +++ b/sys-libs/readline/readline-8.1_p2.ebuild @@ -46,7 +46,7 @@ esac LICENSE="GPL-3" SLOT="0/8" # subslot matches SONAME major [[ "${PV}" == *_rc* ]] || \ -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 ~loong ~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="static-libs +unicode utils" RDEPEND=">=sys-libs/ncurses-5.9-r3:=[static-libs?,unicode(+)?,${MULTILIB_USEDEP}]" diff --git a/sys-libs/readline/readline-8.2_beta.ebuild b/sys-libs/readline/readline-8.2_beta.ebuild index 82ba899affea..90c2837bb864 100644 --- a/sys-libs/readline/readline-8.2_beta.ebuild +++ b/sys-libs/readline/readline-8.2_beta.ebuild @@ -12,6 +12,12 @@ PLEVEL="${PV##*_p}" MY_PV="${PV/_p*}" MY_PV="${MY_PV/_/-}" MY_P="${PN}-${MY_PV}" +is_release() { + case ${PV} in + 9999|*_alpha*|*_beta*|*_rc*) return 1 ;; + *) return 0 ;; + esac +} [[ ${PV} != *_p* ]] && PLEVEL=0 patches() { [[ ${PLEVEL} -eq 0 ]] && return 1 @@ -32,23 +38,25 @@ patches() { DESCRIPTION="Another cute console display library" HOMEPAGE="https://tiswww.case.edu/php/chet/readline/rltop.html" -case ${PV} in - *_alpha*|*_beta*|*_rc*) - # TODO: check if needed on next alpha/beta - inherit autotools +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://git.savannah.gnu.org/git/readline.git" + EGIT_BRANCH=devel + inherit git-r3 +elif is_release ; then + SRC_URI="mirror://gnu/${PN}/${MY_P}.tar.gz $(patches)" + SRC_URI+=" verify-sig? ( mirror://gnu/${PN}/${MY_P}.tar.gz.sig )" +else + SRC_URI="mirror://gnu/${PN}/${MY_P}.tar.gz ftp://ftp.cwru.edu/pub/bash/${MY_P}.tar.gz" + SRC_URI+=" verify-sig? ( mirror://gnu/${PN}/${MY_P}.tar.gz.sig ftp://ftp.cwru.edu/pub/bash/${MY_P}.tar.gz.sig )" +fi - SRC_URI="mirror://gnu/${PN}/${MY_P}.tar.gz ftp://ftp.cwru.edu/pub/bash/${MY_P}.tar.gz" - SRC_URI+=" verify-sig? ( mirror://gnu/${PN}/${MY_P}.tar.gz.sig ftp://ftp.cwru.edu/pub/bash/${MY_P}.tar.gz.sig )" - ;; - *) - SRC_URI="mirror://gnu/${PN}/${MY_P}.tar.gz $(patches)" - SRC_URI+=" verify-sig? ( mirror://gnu/${PN}/${MY_P}.tar.gz.sig )" - ;; -esac +if ! is_release ; then + inherit autotools +fi LICENSE="GPL-3" SLOT="0/8" # subslot matches SONAME major -if [[ ${PV} != *_alpha* && ${PV} != *_beta* && ${PV} != *_rc* ]] ; then +if is_release ; then 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" fi IUSE="static-libs +unicode utils" @@ -70,19 +78,22 @@ PATCHES=( #"${FILESDIR}"/${PN}-8.0-darwin-shlib-versioning.patch ) -# Needed because we don't want the patches being unpacked -# (which emits annoying and useless error messages) src_unpack() { - verify-sig_src_unpack - - unpack ${MY_P}.tar.gz + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + else + # Needed because we don't want the patches being unpacked + # (which emits annoying and useless error messages) + verify-sig_src_unpack + unpack ${MY_P}.tar.gz + fi } src_prepare() { [[ ${PLEVEL} -gt 0 ]] && eapply -p0 $(patches -s) default - [[ ${PV} == *_alpha* || ${PV} == *_beta* || ${PV} == *_rc* ]] && eautoreconf + is_release || eautoreconf if use prefix && [[ ! -x "${BROOT}"/usr/bin/pkg-config ]] ; then # If we're bootstrapping, make a guess. We don't have pkg-config diff --git a/sys-libs/readline/readline-9999.ebuild b/sys-libs/readline/readline-9999.ebuild new file mode 100644 index 000000000000..90c2837bb864 --- /dev/null +++ b/sys-libs/readline/readline-9999.ebuild @@ -0,0 +1,224 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/chetramey.asc +inherit flag-o-matic multilib multilib-minimal preserve-libs toolchain-funcs usr-ldscript verify-sig + +# Official patches +# See ftp://ftp.cwru.edu/pub/bash/readline-8.1-patches/ +PLEVEL="${PV##*_p}" +MY_PV="${PV/_p*}" +MY_PV="${MY_PV/_/-}" +MY_P="${PN}-${MY_PV}" +is_release() { + case ${PV} in + 9999|*_alpha*|*_beta*|*_rc*) return 1 ;; + *) return 0 ;; + esac +} +[[ ${PV} != *_p* ]] && PLEVEL=0 +patches() { + [[ ${PLEVEL} -eq 0 ]] && return 1 + local opt=$1 + eval set -- {1..${PLEVEL}} + set -- $(printf "${PN}${MY_PV/\.}-%03d " "$@") + if [[ ${opt} == -s ]] ; then + echo "${@/#/${DISTDIR}/}" + else + local u + for u in mirror://gnu/${PN} ftp://ftp.cwru.edu/pub/bash ; do + printf "${u}/${PN}-${MY_PV}-patches/%s " "$@" + printf "${u}/${PN}-${MY_PV}-patches/%s.sig " "$@" + done + fi +} + +DESCRIPTION="Another cute console display library" +HOMEPAGE="https://tiswww.case.edu/php/chet/readline/rltop.html" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://git.savannah.gnu.org/git/readline.git" + EGIT_BRANCH=devel + inherit git-r3 +elif is_release ; then + SRC_URI="mirror://gnu/${PN}/${MY_P}.tar.gz $(patches)" + SRC_URI+=" verify-sig? ( mirror://gnu/${PN}/${MY_P}.tar.gz.sig )" +else + SRC_URI="mirror://gnu/${PN}/${MY_P}.tar.gz ftp://ftp.cwru.edu/pub/bash/${MY_P}.tar.gz" + SRC_URI+=" verify-sig? ( mirror://gnu/${PN}/${MY_P}.tar.gz.sig ftp://ftp.cwru.edu/pub/bash/${MY_P}.tar.gz.sig )" +fi + +if ! is_release ; then + inherit autotools +fi + +LICENSE="GPL-3" +SLOT="0/8" # subslot matches SONAME major +if is_release ; then + 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" +fi +IUSE="static-libs +unicode utils" + +RDEPEND=">=sys-libs/ncurses-5.9-r3:=[static-libs?,unicode(+)?,${MULTILIB_USEDEP}]" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig + verify-sig? ( sec-keys/openpgp-keys-chetramey )" + +S="${WORKDIR}/${MY_P}" + +PATCHES=( + "${FILESDIR}"/${PN}-5.0-no_rpath.patch + "${FILESDIR}"/${PN}-6.2-rlfe-tgoto.patch #385091 + "${FILESDIR}"/${PN}-7.0-headers.patch + "${FILESDIR}"/${PN}-8.0-headers.patch + + # TODO: rebase + #"${FILESDIR}"/${PN}-8.0-darwin-shlib-versioning.patch +) + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + else + # Needed because we don't want the patches being unpacked + # (which emits annoying and useless error messages) + verify-sig_src_unpack + unpack ${MY_P}.tar.gz + fi +} + +src_prepare() { + [[ ${PLEVEL} -gt 0 ]] && eapply -p0 $(patches -s) + default + + is_release || eautoreconf + + if use prefix && [[ ! -x "${BROOT}"/usr/bin/pkg-config ]] ; then + # If we're bootstrapping, make a guess. We don't have pkg-config + # around yet. bug #818103. + # Incorrectly populating this leads to underlinked libreadline. + local ncurses_libs + local ncurses_libs_suffix=$(usex unicode w '') + + ncurses_libs="-lncurses${ncurses_libs_suffix}" + + if has_version "sys-libs/ncurses[tinfo(+)]" ; then + ncurses_libs+=" -ltinfo${ncurses_libs_suffix}" + fi + else + # Force ncurses linking. #71420 + # Use pkg-config to get the right values. #457558 + local ncurses_libs=$($(tc-getPKG_CONFIG) ncurses$(usex unicode w '') --libs) + fi + + sed -i \ + -e "/^SHLIB_LIBS=/s:=.*:='${ncurses_libs}':" \ + support/shobj-conf || die + sed -i \ + -e "/^[[:space:]]*LIBS=.-lncurses/s:-lncurses:${ncurses_libs}:" \ + examples/rlfe/configure || die + + # fix building under Gentoo/FreeBSD; upstream FreeBSD deprecated + # objformat for years, so we don't want to rely on that. + sed -i -e '/objformat/s:if .*; then:if true; then:' support/shobj-conf || die + + ln -s ../.. examples/rlfe/readline || die # for local readline headers +} + +src_configure() { + # fix implicit decls with widechar funcs + append-cppflags -D_GNU_SOURCE + # https://lists.gnu.org/archive/html/bug-readline/2010-07/msg00013.html + append-cppflags -Dxrealloc=_rl_realloc -Dxmalloc=_rl_malloc -Dxfree=_rl_free + + # Make sure configure picks a better ar than `ar`. #484866 + export ac_cv_prog_AR=$(tc-getAR) + + # Force the test since we used sed above to force it. + export bash_cv_termcap_lib=ncurses + + # Control cross-compiling cases when we know the right answer. + # In cases where the C library doesn't support wide characters, readline + # itself won't work correctly, so forcing the answer below should be OK. + if tc-is-cross-compiler ; then + use kernel_Winnt || export bash_cv_func_sigsetjmp='present' + export bash_cv_func_ctype_nonascii='yes' + export bash_cv_wcwidth_broken='no' #503312 + fi + + # This is for rlfe, but we need to make sure LDFLAGS doesn't change + # so we can re-use the config cache file between the two. + append-ldflags -L. + + multilib-minimal_src_configure +} + +multilib_src_configure() { + local myeconfargs=( + --cache-file="${BUILD_DIR}"/config.cache + --with-curses + $(use_enable static-libs static) + ) + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" + + if use utils && multilib_is_native_abi && ! tc-is-cross-compiler ; then + # code is full of AC_TRY_RUN() + mkdir -p examples/rlfe || die + cd examples/rlfe || die + ECONF_SOURCE="${S}"/examples/rlfe \ + econf --cache-file="${BUILD_DIR}"/config.cache + fi +} + +multilib_src_compile() { + emake + + if use utils && multilib_is_native_abi && ! tc-is-cross-compiler ; then + # code is full of AC_TRY_RUN() + cd examples/rlfe || die + local l + for l in readline history ; do + ln -s ../../shlib/lib${l}$(get_libname)* lib${l}$(get_libname) || die + ln -s ../../lib${l}.a lib${l}.a || die + done + emake + fi +} + +multilib_src_install() { + default + + if multilib_is_native_abi ; then + gen_usr_ldscript -a readline history #4411 + + if use utils && ! tc-is-cross-compiler; then + dobin examples/rlfe/rlfe + fi + fi +} + +multilib_src_install_all() { + HTML_DOCS="doc/history.html doc/readline.html doc/rluserman.html" einstalldocs + dodoc USAGE + docinto ps + dodoc doc/*.ps +} +pkg_preinst() { + # bug #29865 + # Reappeared in #595324 with paludis so keeping this for now... + preserve_old_lib \ + /$(get_libdir)/lib{history,readline}$(get_libname 4) \ + /$(get_libdir)/lib{history,readline}$(get_libname 5) \ + /$(get_libdir)/lib{history,readline}$(get_libname 6) \ + /$(get_libdir)/lib{history,readline}$(get_libname 7) +} + +pkg_postinst() { + preserve_old_lib_notify \ + /$(get_libdir)/lib{history,readline}$(get_libname 4) \ + /$(get_libdir)/lib{history,readline}$(get_libname 5) \ + /$(get_libdir)/lib{history,readline}$(get_libname 6) \ + /$(get_libdir)/lib{history,readline}$(get_libname 7) +} diff --git a/sys-libs/slang/Manifest b/sys-libs/slang/Manifest index a2ca1704d6ed..c498da5322ab 100644 --- a/sys-libs/slang/Manifest +++ b/sys-libs/slang/Manifest @@ -1,4 +1,4 @@ AUX slang-2.3.1-slsh-libs.patch 761 BLAKE2B a0bc1a573fa1031e44c998bb75c80113ccd86be47f7d0b80da0ba53c7fa066d780ebb86b9cc5ff503e0d4c99b49fe75cb4c916088cc7b18a5a6c1670cbca4ba3 SHA512 77516f0b0373a08fbf61765e4eb83cbfa91b29a58a41e0006d1041672c6107dc5a2410056d65dd64fe68de40e01c211feb9f748a8238473cd5c98dfe2125f7b2 DIST slang-2.3.2.tar.bz2 1586720 BLAKE2B e923a431e6273f1783c40dc09b2e324ace22e41a163fd46dcb8ab16c9ef27f190651df8da24432edc75890b83cd95051a835d5e582385bb23e36cd8ae18e6d24 SHA512 35cdfe8af66dac62ee89cca60fa87ddbd02cae63b30d5c0e3786e77b1893c45697ace4ac7e82d9832b8a9ac342560bc35997674846c5022341481013e76f74b5 -EBUILD slang-2.3.2.ebuild 2238 BLAKE2B 5fca4f3c84f9a756f22021deb6607eaaec399573da56a0be746254fa852f5616fe804d5737573c26f4b061678106bbaf4843d8f35393b344ad75873ac82ae475 SHA512 e5a79e7165b72310c6fa26db3811d0622d06b2206df9387ba6e0f8ff315df120f49fc0cec0a6fb541956fb2960a092eb7bc2eb2718740910efbf690579b68ee9 +EBUILD slang-2.3.2.ebuild 2245 BLAKE2B ce75e58672dc3e44bf8bbc8e98293bf8903f4b7063f40cb08a7b38bfc17515b76826185ddb1e8e3bf56fcfc013e3da3f846ab700e437e6e420f752daca8304c4 SHA512 226e5e32b38e6328540853fbcf38f00540a7be72bf50353f0be635f3c3d39c845286794479226e565902b265013a473096835f6a92c9d4e146eef199abb6268c MISC metadata.xml 235 BLAKE2B a3e5a3109b59e3f97ef14f8d55ba13b16dc5371a1b7d6f238230aa4494db32dd4a42e3ee012ec8b18fae394feb2b1b56882bc70504aa7c6b969c1b20140f0ece SHA512 7c4e5f5dea465e45c662f5f53513626088aff514e1326593426af227d77e63d8a00d8af05aa208881a399f83dd41e73cd2ef81c8b7f275a2fa891f295231d67c diff --git a/sys-libs/slang/slang-2.3.2.ebuild b/sys-libs/slang/slang-2.3.2.ebuild index 1d8efbe42904..7363d14e688b 100644 --- a/sys-libs/slang/slang-2.3.2.ebuild +++ b/sys-libs/slang/slang-2.3.2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -14,7 +14,7 @@ if [[ "${PV}" = *_pre* ]] ; then else SRC_URI="http://www.jedsoft.org/releases/${PN}/${P}.tar.bz2 http://www.jedsoft.org/releases/${PN}/old/${P}.tar.bz2" - KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris" + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris" fi LICENSE="GPL-2" SLOT="0" diff --git a/sys-libs/tevent/Manifest b/sys-libs/tevent/Manifest index 863c7a0eaa33..7a4111a83610 100644 --- a/sys-libs/tevent/Manifest +++ b/sys-libs/tevent/Manifest @@ -1,6 +1,8 @@ AUX tevent-0.11.0-missing-include.patch 310 BLAKE2B b6c54840d64cec798968e58ee7665a984a948bd0fe4842224229c0650a4a0cd798bda2ac30bb842fabf3e7a0d433ca39ae1209da88eb31f0074361f01daccfce SHA512 53941507bc7852f5b1f5133f10d64927d8ec3a5886f51701f191502bd08bcf16fec1950a7ae6446c67981e8d1dd2e5260d95acb6d44572486f28ec8379dd5fc6 DIST tevent-0.10.2.tar.gz 800731 BLAKE2B 5ea6b83378b04dbe1666432db0dbd4c0df2e6b0bf5ebcc8ec4ec9bdeb834efec75c87b2019dc78c691aba6c4f6467394101febd6010f106046a1fb8848e27405 SHA512 1da8f28898f35daab515892b880d1de601062cc3e2b2570cd62e6913df17b0195a05acb7b484c628cddc0eb8b0cde893105ede3feb32bc5764e7d25684f332ba DIST tevent-0.11.0.tar.gz 866327 BLAKE2B 9e6e958597e21c0d228346aa102987f89bb6630a5661cef21b908735469a59e7b4f46bc4473e9c25fe636913a1eebc1f26234448c09739ad812cd3ce97bf5048 SHA512 740346b19bf290ff31b0c1b36e232021b8ad107c3ce27e0e8b1ec1a77485214b07a9b7837ba57f3650a50e4c04f530674e486b5fa4d118a1778259be63b49790 +DIST tevent-0.12.0.tar.gz 877767 BLAKE2B cbfb823f9a8ce8a9a88964c9daa15643c077163c03a792468836e5bbc7e7500c745e1fc1203063ed01f899cf598794764c6d465afc3ed31cd711f420ebc6ce55 SHA512 ae955b64a683bc6aaba66592ca5d205eb48f62a70bd2674b5b3a0e3b0f4de30c93f400bf183d3bef5993845a3281716584b24cf8a93c849ba4fa7d1fcfb9cc99 EBUILD tevent-0.10.2.ebuild 1591 BLAKE2B 63043bf0d721a46e303bc72f1166470068f57582ea529f8cdcf0dae3228b681c0649d20dab279f0e3a46c85c9ba755ba95bdf3944abd951899715f1c46a504ae SHA512 768d207948ac5a27d1ca62b108e3ee4d91f849b2f887596b469e5338e9e00050d34d518b8adc4e1283f1db9f88e519813dc7aced6df94449b784965fe72c5992 EBUILD tevent-0.11.0.ebuild 1672 BLAKE2B 876840924440fc319c04b0ff51d9cc50fedeaefea973d3117da5ea039e817f61a42f8f4fd1b986594b026ee485927375047c16bf53be0098f1b6133b43ecd7f3 SHA512 f01a7ccb816617fbdd4ea46ee7d99a40b02dadca8759c9c36985cdadce309adec81a1ae47b8cc019a58e661983ecaa179805941e637bc04262401e68fc15040b +EBUILD tevent-0.12.0.ebuild 1650 BLAKE2B e97a67eb78b6ab05e6acf102b037c517abcaed134eb2d94101f0c5b32047ff26f282d998cec379176ab1b7269692c59afd24fb1516e176729e7d317a4eb3fd54 SHA512 460fd4d48232642732f1401dfd78a04517378f5809f596a4a5f34d3e8b5f28bfb833dd299a7522602b884c19accaa6a8e4a5ffb0a67eac1b2a44e34a49735f20 MISC metadata.xml 239 BLAKE2B 7127a2a67e79dc98a78fcaca706fd348389c7f08465112215855afe5978d2932ecbee93944efb1df528fbb6d09e884b277cb1d55a8b3926487b6ca07f9330b8a SHA512 4ea42efe4d083d013b85796ca25a132678bcefe6e3687fd6dd371814fd307118fbc8da8c15ce7f4d956e5f824cd0202f49d3469406c88008e84ff9f4d360f424 diff --git a/sys-libs/tevent/tevent-0.12.0.ebuild b/sys-libs/tevent/tevent-0.12.0.ebuild new file mode 100644 index 000000000000..b56018d2eb11 --- /dev/null +++ b/sys-libs/tevent/tevent-0.12.0.ebuild @@ -0,0 +1,78 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{8..10} ) +PYTHON_REQ_USE="threads(+)" +inherit waf-utils multilib-minimal python-single-r1 + +DESCRIPTION="Samba tevent library" +HOMEPAGE="https://tevent.samba.org/" +SRC_URI="https://samba.org/ftp/tevent/${P}.tar.gz" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x86-linux" +IUSE="python" + +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +RESTRICT="test" + +RDEPEND=" + dev-libs/libbsd[${MULTILIB_USEDEP}] + >=sys-libs/talloc-2.3.3[${MULTILIB_USEDEP}] + python? ( + ${PYTHON_DEPS} + sys-libs/talloc[python,${PYTHON_SINGLE_USEDEP}] + ) +" +DEPEND="${RDEPEND} + >=dev-util/cmocka-1.1.3 + elibc_glibc? ( + net-libs/libtirpc[${MULTILIB_USEDEP}] + || ( + net-libs/rpcsvc-proto + ${PN}-1.2.11-cygwin-gzopen_w.patch" - "https://github.com/cygwinports/zlib/raw/22a3462cae33a82ad966ea0a7d6cbe8fc1368fec/1.2.7-minizip-cygwin.patch -> ${PN}-1.2.7-cygwin-minizip.patch" -) - -DESCRIPTION="Standard (de)compression library" -HOMEPAGE="https://zlib.net/" -SRC_URI="https://zlib.net/${P}.tar.gz - https://zlib.net/fossils/${P}.tar.gz - https://www.gzip.org/zlib/${P}.tar.gz - https://www.zlib.net/current/beta/${P}.tar.gz - verify-sig? ( https://zlib.net/${P}.tar.gz.asc ) - elibc_Cygwin? ( ${CYGWINPATCHES[*]} )" - -LICENSE="ZLIB" -SLOT="0/1" # subslot = SONAME -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 ~x86-winnt" -IUSE="minizip static-libs" - -RDEPEND="!sys-libs/zlib-ng[compat]" -DEPEND="${RDEPEND}" -BDEPEND="minizip? ( ${AUTOTOOLS_DEPEND} ) - verify-sig? ( sec-keys/openpgp-keys-madler )" - -PATCHES=( - # bug #658536 - "${FILESDIR}"/${PN}-1.2.11-minizip-drop-crypt-header.patch - - # bug #831628 - "${FILESDIR}"/${PN}-1.2.11-configure-fix-AR-RANLIB-NM-detection.patch - - # Fix broken CC logic - "${FILESDIR}"/${PN}-1.2.12-fix-CC-logic-in-configure.patch -) - -src_prepare() { - default - - if use elibc_Cygwin ; then - local p - for p in "${CYGWINPATCHES[@]}" ; do - # Strip out the "... -> " from the array - eapply -p2 "${DISTDIR}/${p#*> }" - done - fi - - if use minizip ; then - cd contrib/minizip || die - eautoreconf - fi - - case ${CHOST} in - *-cygwin*) - # Do not use _wopen, it's a mingw-only symbol - sed -i -e '/define WIDECHAR/d' "${S}"/gzguts.h || die - - # zlib1.dll is the mingw name, need cygz.dll - # cygz.dll is loaded by toolchain, put into subdir - sed -i -e 's|zlib1.dll|win32/cygz.dll|' win32/Makefile.gcc || die - - ;; - esac - - case ${CHOST} in - *-mingw*|mingw*|*-cygwin*) - # Uses preconfigured Makefile rather than configure script - multilib_copy_sources - - ;; - esac -} - -echoit() { echo "$@"; "$@"; } - -multilib_src_configure() { - case ${CHOST} in - *-mingw*|mingw*|*-cygwin*) - ;; - - *) - # bug #347167 - local uname=$("${BROOT}"/usr/share/gnuconfig/config.sub "${CHOST}" | cut -d- -f3) - - local myconf=( - --shared - --prefix="${EPREFIX}/usr" - --libdir="${EPREFIX}/usr/$(get_libdir)" - ${uname:+--uname=${uname}} - ) - - # Not an autoconf script, so can't use econf - echoit "${S}"/configure "${myconf[@]}" || die - - ;; - esac - - if use minizip ; then - local minizipdir="contrib/minizip" - mkdir -p "${BUILD_DIR}/${minizipdir}" || die - - cd ${minizipdir} || die - ECONF_SOURCE="${S}/${minizipdir}" econf $(use_enable static-libs static) - fi -} - -multilib_src_compile() { - case ${CHOST} in - *-mingw*|mingw*|*-cygwin*) - emake -f win32/Makefile.gcc STRIP=true PREFIX=${CHOST}- - sed \ - -e 's|@prefix@|'"${EPREFIX}"'/usr|g' \ - -e 's|@exec_prefix@|${prefix}|g' \ - -e 's|@libdir@|${exec_prefix}/'$(get_libdir)'|g' \ - -e 's|@sharedlibdir@|${exec_prefix}/'$(get_libdir)'|g' \ - -e 's|@includedir@|${prefix}/include|g' \ - -e 's|@VERSION@|'${PV}'|g' \ - zlib.pc.in > zlib.pc || die - ;; - - *) - emake - - ;; - esac - - use minizip && emake -C contrib/minizip -} - -sed_macros() { - # Clean up namespace a little, bug #383179 - # We do it here so we only have to tweak 2 files - sed -i -r 's:\<(O[FN])\>:_Z_\1:g' "$@" || die -} - -multilib_src_install() { - case ${CHOST} in - *-mingw*|mingw*|*-cygwin*) - emake -f win32/Makefile.gcc install \ - BINARY_PATH="${ED}/usr/bin" \ - LIBRARY_PATH="${ED}/usr/$(get_libdir)" \ - INCLUDE_PATH="${ED}/usr/include" \ - SHARED_MODE=1 - - # Overwrites zlib.pc created from win32/Makefile.gcc, bug #620136 - insinto /usr/$(get_libdir)/pkgconfig - doins zlib.pc - - ;; - - *) - emake install DESTDIR="${D}" LDCONFIG=: - gen_usr_ldscript -a z - - ;; - esac - - sed_macros "${ED}"/usr/include/*.h - - if use minizip ; then - emake -C contrib/minizip install DESTDIR="${D}" - sed_macros "${ED}"/usr/include/minizip/*.h - fi - - if use minizip; then - # This might not exist if slibtool is used. - # bug #816756 - rm -f "${ED}"/usr/$(get_libdir)/libminizip.la || die - fi - - if ! use static-libs ; then - # bug #419645 - rm "${ED}"/usr/$(get_libdir)/libz.a || die - fi -} - -multilib_src_install_all() { - dodoc FAQ README ChangeLog doc/*.txt - use minizip && dodoc contrib/minizip/*.txt -} diff --git a/sys-libs/zlib/zlib-1.2.12-r2.ebuild b/sys-libs/zlib/zlib-1.2.12-r2.ebuild index 166bfbad0465..403a4bf6074b 100644 --- a/sys-libs/zlib/zlib-1.2.12-r2.ebuild +++ b/sys-libs/zlib/zlib-1.2.12-r2.ebuild @@ -24,7 +24,7 @@ SRC_URI="https://zlib.net/${P}.tar.gz LICENSE="ZLIB" SLOT="0/1" # subslot = SONAME -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 ~x86-winnt" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~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 ~x86-winnt" IUSE="minizip static-libs" RDEPEND="!sys-libs/zlib-ng[compat]" -- cgit v1.2.3