diff options
Diffstat (limited to 'sys-devel')
224 files changed, 9719 insertions, 1914 deletions
diff --git a/sys-devel/autoconf-archive/Manifest b/sys-devel/autoconf-archive/Manifest index 61f502f3c838..68e2e8aa48f7 100644 --- a/sys-devel/autoconf-archive/Manifest +++ b/sys-devel/autoconf-archive/Manifest @@ -1 +1,2 @@ DIST autoconf-archive-2022.09.03.tar.xz 676144 BLAKE2B 9511b1bd2afee78209261d9757c3fc6bf079eb6ea82bc039530532cfaaea8a7d977f6310265c0af2fde377edc9bddfcabf1e81c426a9716d5bf4b4eb7bb64a4a SHA512 157b5b6a979d5ec5bfab6ddf34422da620fec1e95f4c901821abbb7361544af77747b4a449029b84750d75679d6130a591e98da8772de2c121ecdea163f0340b +DIST autoconf-archive-2023.02.20.tar.xz 678184 BLAKE2B a72469e61a6ef702cbf4e30712c7dbe36369da7dad6e2312eb7026af41a989a47ded0a27975349486b69155f9e8199f89720dc57f98440b2766294a0f8755ee6 SHA512 a744f5aa0c1a813b81ad1528aebf7511bde7f470f34626d2057ed6664127120182e031fec5d22027d4a204544266135f202b8ef453bff70a3b0315c506c82528 diff --git a/sys-devel/autoconf-archive/autoconf-archive-2022.09.03.ebuild b/sys-devel/autoconf-archive/autoconf-archive-2022.09.03.ebuild index 03257458af52..332c779840f6 100644 --- a/sys-devel/autoconf-archive/autoconf-archive-2022.09.03.ebuild +++ b/sys-devel/autoconf-archive/autoconf-archive-2022.09.03.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -9,7 +9,7 @@ SRC_URI="mirror://gnu/${PN}/${P}.tar.xz" LICENSE="GPL-3" SLOT="0" -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" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" # File collisions, bug #540246 RDEPEND=" diff --git a/sys-devel/autoconf-archive/autoconf-archive-2023.02.20.ebuild b/sys-devel/autoconf-archive/autoconf-archive-2023.02.20.ebuild new file mode 100644 index 000000000000..332c779840f6 --- /dev/null +++ b/sys-devel/autoconf-archive/autoconf-archive-2023.02.20.ebuild @@ -0,0 +1,18 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="GNU Autoconf Macro Archive" +HOMEPAGE="https://www.gnu.org/software/autoconf-archive/" +SRC_URI="mirror://gnu/${PN}/${P}.tar.xz" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + +# File collisions, bug #540246 +RDEPEND=" + !=gnome-base/gnome-common-3.14.0-r0 + !>=gnome-base/gnome-common-3.14.0-r1[-autoconf-archive(+)] +" diff --git a/sys-devel/autoconf-dickey/Manifest b/sys-devel/autoconf-dickey/Manifest index db6ee2c323ab..7d87d6a06ce7 100644 --- a/sys-devel/autoconf-dickey/Manifest +++ b/sys-devel/autoconf-dickey/Manifest @@ -1,3 +1,5 @@ DIST autoconf-2.52-20210509.tgz 874991 BLAKE2B bf8ff6496887f23cce167dfcc5177117ab5514996884998b3237c21e355b34301aabb71dacbff1e171ef21530d745345e584d876b3b5571f4faf863135b4269f SHA512 0203bbe096a2ecbee6bf012fec10a8f90e0b391d5988e202d2a1c718aa856d6c4953fb5e2be215ae635cd6b876b0229d6de1ffc7e2b35cd14684ef7c8294e546 DIST autoconf-2.52-20221202.tgz 877960 BLAKE2B 52ef77d98f5d6e64e4c13e09ef92b3141703238953ad27b6e232cb62407cd56b07a1cad79f4405606f400246e85650925a7035b73119cda70d7faf049b61105c SHA512 8becd8791dbdbcf0801bbed8cbdf70666db10e3c6882b3f8e63e1cf04163818345be573018d96a2e0a28770e13cc452126fb9cb23b223df598c50f59e69c2d1a DIST autoconf-2.52-20221202.tgz.asc 729 BLAKE2B 64a528da36243271d1ae1e95e4182c663c571021e617554076bed78e5c12a3f16a2554e3b41ad6372751090ac05770bc59f090ca1e5226aa2c7c5fda48026bbf SHA512 dadf6805072cc072bbd16a939b285c7ab378e23aa0b9e6c808eb11bf40b679cc97cc748c524ac7255a0b47a4815dcd2796c606f963dbbce52a93956ccc8814fd +DIST autoconf-2.52-20230114.tgz 878069 BLAKE2B 96e93585088b87acf0c3336e390ef098e9aa5569e2aab2d05e4c963894e076c991b65d93476fc671395d399a7078f8b618166e39052933352f366f8d2ab849d7 SHA512 41427e45b6b9c36dfd65f9b00792e6edc135e3b5fe06b2a0870f9380d96d567036fb3f30e8be28c9443c7557fadf66d1409f59def127a824478db89b5f29f517 +DIST autoconf-2.52-20230114.tgz.asc 729 BLAKE2B 9bcafe59763d2fb169e498ee5542500184974697838497dcd722d43c14e90475e004c0c7ae9fe2bdac523cb9d14ebe82a19d10c3369fe2a035c2f44b60c4d676 SHA512 d60d0155fa20f4808cc49ae06e76a969b82e2b2e5ea4ecd08182b34ca224401eab012659d2519072ca8afdf1ddc2febf8af090cff28990e2b4f2372da13635a8 diff --git a/sys-devel/autoconf-dickey/autoconf-dickey-2.52_p20210509-r1.ebuild b/sys-devel/autoconf-dickey/autoconf-dickey-2.52_p20210509-r1.ebuild index e0389543c326..37d275bbfbfd 100644 --- a/sys-devel/autoconf-dickey/autoconf-dickey-2.52_p20210509-r1.ebuild +++ b/sys-devel/autoconf-dickey/autoconf-dickey-2.52_p20210509-r1.ebuild @@ -14,7 +14,7 @@ S="${WORKDIR}"/${MY_P} LICENSE="GPL-2" SLOT="$(ver_cut 1-2)" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" BDEPEND=" >=sys-devel/m4-1.4.16 diff --git a/sys-devel/autoconf-dickey/autoconf-dickey-2.52_p20221202.ebuild b/sys-devel/autoconf-dickey/autoconf-dickey-2.52_p20221202.ebuild index e1ebff9a61c1..c01d0cd056fa 100644 --- a/sys-devel/autoconf-dickey/autoconf-dickey-2.52_p20221202.ebuild +++ b/sys-devel/autoconf-dickey/autoconf-dickey-2.52_p20221202.ebuild @@ -18,7 +18,7 @@ S="${WORKDIR}"/${MY_P} LICENSE="GPL-2" SLOT="$(ver_cut 1-2)" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" RDEPEND=" >=sys-devel/m4-1.4.16 diff --git a/sys-devel/autoconf-dickey/autoconf-dickey-2.52_p20230114.ebuild b/sys-devel/autoconf-dickey/autoconf-dickey-2.52_p20230114.ebuild new file mode 100644 index 000000000000..47f594eced11 --- /dev/null +++ b/sys-devel/autoconf-dickey/autoconf-dickey-2.52_p20230114.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# TODO: adapt toolchain-autoconf to take econf args? +# TODO: review our old autoconf-2.52 patches? + +VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/thomasdickey.asc +inherit verify-sig + +MY_P=${PN/-dickey}-${PV/_p/-} +DESCRIPTION="Fork of sys-devel/autoconf for Thomas Dickey's packages" +HOMEPAGE="https://invisible-island.net/autoconf/autoconf.html" +SRC_URI="https://invisible-island.net/archives/autoconf/${MY_P}.tgz" +SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/autoconf/${MY_P}.tgz.asc )" +S="${WORKDIR}"/${MY_P} + +LICENSE="GPL-2" +SLOT="$(ver_cut 1-2)" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" + +RDEPEND=" + >=sys-devel/m4-1.4.16 + >=dev-lang/perl-5.6 +" +BDEPEND=" + ${RDEPEND} + verify-sig? ( sec-keys/openpgp-keys-thomasdickey ) +" + +src_prepare() { + # usr/bin/libtool is provided by binutils-apple, need gnu libtool + #if [[ ${CHOST} == *-darwin* ]] ; then + # PATCHES+=( "${FILESDIR}"/${PN}-2.61-darwin.patch ) + #fi + + default +} + +src_configure() { + local myeconfargs=( + --datadir="${EPREFIX}"/usr/share/${PN} + --program-suffix=-dickey + ) + + econf "${myeconfargs[@]}" +} + +src_test() { + # -j1 for bug #869278 + emake -j1 check +} diff --git a/sys-devel/autoconf-wrapper/Manifest b/sys-devel/autoconf-wrapper/Manifest index 1f689e9a86bc..5a292895ab23 100644 --- a/sys-devel/autoconf-wrapper/Manifest +++ b/sys-devel/autoconf-wrapper/Manifest @@ -1,2 +1 @@ -DIST autotools-wrappers-at-20220130.tar.gz 3625 BLAKE2B c587d778a0c3331d14498308ae720dabdbcf27349ef0a3a2d5db56bb0ef597a5b1ab43388f1456e7888b40f043d68b0d89b420ac7404008f9a813ef78ae7e96f SHA512 700204b6024636dc808339aac15fb19bb645b654d4777ba8bf0febded5eb6af98659d04ed23819a8a638b6ee905e62292995bf2f838c30dedacb1a6bc0d04f1a DIST autotools-wrappers-at-20221207.tar.gz 3646 BLAKE2B 82bec40e03ae5ec133252fd3c05c3fed537bb415e800918df9c9d783d48a9d76cbe60c53dd7daf6d94653d79fc52be8c089183dda996e8a72dd03ffa83098613 SHA512 12ea99721e6fc60a3ed7351d6c228aaf6e4eef0bd0444eda8cd742f74fa91150ef07bb52f6bcad4a350269e8032f5d4e204d2f2108b0d9c441ddd7f9755862b7 diff --git a/sys-devel/autoconf-wrapper/autoconf-wrapper-20220130.ebuild b/sys-devel/autoconf-wrapper/autoconf-wrapper-20220130.ebuild deleted file mode 100644 index 7b58c31e8bd1..000000000000 --- a/sys-devel/autoconf-wrapper/autoconf-wrapper-20220130.ebuild +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -MY_P="autotools-wrappers-at-${PV}" - -DESCRIPTION="wrapper for autoconf to manage multiple autoconf versions" -HOMEPAGE="https://gitweb.gentoo.org/proj/autotools-wrappers.git" -#SRC_URI="https://gitweb.gentoo.org/proj/autotools-wrappers.git/snapshot/${MY_P}.tar.gz" -SRC_URI="https://dev.gentoo.org/~vapier/dist/${MY_P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -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" - -S="${WORKDIR}/${MY_P}" - -src_install() { - exeinto /usr/$(get_libdir)/misc - newexe ac-wrapper.sh ac-wrapper.sh - - dodir /usr/bin - local x= - for x in auto{conf,header,m4te,reconf,scan,update} ifnames ; do - dosym ../$(get_libdir)/misc/ac-wrapper.sh /usr/bin/${x} - done -} diff --git a/sys-devel/autoconf-wrapper/autoconf-wrapper-20221207-r1.ebuild b/sys-devel/autoconf-wrapper/autoconf-wrapper-20221207-r1.ebuild new file mode 100644 index 000000000000..91dc59284670 --- /dev/null +++ b/sys-devel/autoconf-wrapper/autoconf-wrapper-20221207-r1.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_P="autotools-wrappers-at-${PV}" + +DESCRIPTION="Wrapper for autoconf to manage multiple autoconf versions" +HOMEPAGE="https://gitweb.gentoo.org/proj/autotools-wrappers.git" + +if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI=" + https://anongit.gentoo.org/git/proj/autotools-wrappers.git + https://github.com/gentoo/autotools-wrappers + " + inherit git-r3 +else + SRC_URI="https://gitweb.gentoo.org/proj/autotools-wrappers.git/snapshot/${MY_P}.tar.gz" + S="${WORKDIR}/${MY_P}" + + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +fi + +LICENSE="GPL-2" +SLOT="0" + +src_prepare() { + default + + # usr/bin/aclocal: bad substitution -> /bin/sh != POSIX shell + if use prefix ; then + sed -i -e '1c\#!'"${EPREFIX}"'/bin/sh' ac-wrapper.sh || die + fi +} + +src_install() { + exeinto /usr/$(get_libdir)/misc + doexe ac-wrapper.sh + + dodir /usr/bin + local x= + for x in auto{conf,header,m4te,reconf,scan,update} ifnames ; do + dosym -r /usr/$(get_libdir)/misc/ac-wrapper.sh /usr/bin/${x} + done +} diff --git a/sys-devel/autoconf-wrapper/autoconf-wrapper-20221207.ebuild b/sys-devel/autoconf-wrapper/autoconf-wrapper-20221207.ebuild index 9788b3e841eb..b5b2431a9ce7 100644 --- a/sys-devel/autoconf-wrapper/autoconf-wrapper-20221207.ebuild +++ b/sys-devel/autoconf-wrapper/autoconf-wrapper-20221207.ebuild @@ -9,14 +9,16 @@ DESCRIPTION="Wrapper for autoconf to manage multiple autoconf versions" HOMEPAGE="https://gitweb.gentoo.org/proj/autotools-wrappers.git" if [[ ${PV} == *9999 ]] ; then - EGIT_REPO_URI=" https://anongit.gentoo.org/git/proj/autotools-wrappers.git" + EGIT_REPO_URI=" + https://anongit.gentoo.org/git/proj/autotools-wrappers.git + https://github.com/gentoo/autotools-wrappers + " inherit git-r3 else SRC_URI="https://gitweb.gentoo.org/proj/autotools-wrappers.git/snapshot/${MY_P}.tar.gz" - #SRC_URI="https://dev.gentoo.org/~vapier/dist/${MY_P}.tar.gz" S="${WORKDIR}/${MY_P}" - 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" + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi LICENSE="GPL-2" diff --git a/sys-devel/autoconf-wrapper/autoconf-wrapper-99999999.ebuild b/sys-devel/autoconf-wrapper/autoconf-wrapper-99999999.ebuild index 00ae3761530d..91dc59284670 100644 --- a/sys-devel/autoconf-wrapper/autoconf-wrapper-99999999.ebuild +++ b/sys-devel/autoconf-wrapper/autoconf-wrapper-99999999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -9,25 +9,35 @@ DESCRIPTION="Wrapper for autoconf to manage multiple autoconf versions" HOMEPAGE="https://gitweb.gentoo.org/proj/autotools-wrappers.git" if [[ ${PV} == *9999 ]] ; then - EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/autotools-wrappers.git" + EGIT_REPO_URI=" + https://anongit.gentoo.org/git/proj/autotools-wrappers.git + https://github.com/gentoo/autotools-wrappers + " inherit git-r3 else SRC_URI="https://gitweb.gentoo.org/proj/autotools-wrappers.git/snapshot/${MY_P}.tar.gz" - #SRC_URI="https://dev.gentoo.org/~vapier/dist/${MY_P}.tar.gz" S="${WORKDIR}/${MY_P}" - 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" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi LICENSE="GPL-2" SLOT="0" +src_prepare() { + default + + # usr/bin/aclocal: bad substitution -> /bin/sh != POSIX shell + if use prefix ; then + sed -i -e '1c\#!'"${EPREFIX}"'/bin/sh' ac-wrapper.sh || die + fi +} + src_install() { exeinto /usr/$(get_libdir)/misc doexe ac-wrapper.sh dodir /usr/bin - local x= for x in auto{conf,header,m4te,reconf,scan,update} ifnames ; do dosym -r /usr/$(get_libdir)/misc/ac-wrapper.sh /usr/bin/${x} diff --git a/sys-devel/autoconf/Manifest b/sys-devel/autoconf/Manifest index e7e8a8d234f7..17182635f127 100644 --- a/sys-devel/autoconf/Manifest +++ b/sys-devel/autoconf/Manifest @@ -2,3 +2,4 @@ DIST autoconf-2.13.tar.gz 443844 BLAKE2B ade10f9d4a0b1a0e8b752eee817cfe100d77b07 DIST autoconf-2.69-runstatedir_patches.tar.xz 257096 BLAKE2B ae765e0ca7fe8261117f6f6b75611c232fc3d4016c22c86346afa72f2b7e6c3b7ccc1f9dfe134b2443f8bde6d578b503d79cf88472f76ce75b6c2e843ef55b8e SHA512 55f93299fe5243151f6bb782986a7935270f06d5065929f4d365a37aba05703e3ce66ecf7981d30413db50ee6b4f77d81d10a71b539c8a366c5c5a156c5443da DIST autoconf-2.69.tar.xz 1214744 BLAKE2B 71d33d72a06e9a05fbed0eda73bc9d8a3805c7c90bf082959862f93f3c5f01192114176e84d84ecb58fa99512eafbc0ab21ad1407be18c8c63bb3dc1117c482d SHA512 995d3e5a8eb1eb37e2b7fae53c6ec7a9b4df997286b7d643344818f94636756b1bf5ff5ea9155e755cb9461149a853dfbf2886fc6bd7132e5afa9c168e306e9b DIST autoconf-2.71.tar.xz 1292296 BLAKE2B 7fd4b98b4cfff10720e8da6ee91045637991643b50fcb3e47a0ecfcc01600f7b7b36fd1c0a5f08b68a418f1bdbd8d5a98de1008157595dd37cc3a31facb61416 SHA512 73d32b4adcbe24e3bafa9f43f59ed3b6efbd3de0f194e5ec90375f35da1199c583f5d3e89139b7edbad35171403709270e339ffa56a2ecb9b3123e9285021ff0 +DIST autoconf-2.72c.tar.xz 1374524 BLAKE2B 066a1687d66f22f31dfc889c89e618b3b8f3887162639d5349e95517fba7784d88355310f6ec22b3f85838be5e1dbf27b27e618e079e1fefd0358d835e718443 SHA512 7baa0af656879ef446ffca75763cde3a2391851fcc2dc08ddd00846fa474bb7a6beccc694a5ccb72fc5e0261a90f14b4aa72b6b91a8689ff8c651aa7706b55d5 diff --git a/sys-devel/autoconf/autoconf-2.13-r2.ebuild b/sys-devel/autoconf/autoconf-2.13-r2.ebuild index f26c02ae862c..f71a4f702f9d 100644 --- a/sys-devel/autoconf/autoconf-2.13-r2.ebuild +++ b/sys-devel/autoconf/autoconf-2.13-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -11,7 +11,7 @@ SRC_URI="mirror://gnu/${PN}/${P}.tar.gz" LICENSE="GPL-2" SLOT="${PV:0:3}" -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 ~x64-solaris ~x86-solaris" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="test" RESTRICT="!test? ( test )" @@ -33,6 +33,8 @@ PATCHES=( "${FILESDIR}"/${PN}-2.13-perl-5.26.patch ) +TC_AUTOCONF_BREAK_INFOS=yes + src_configure() { # make sure configure is newer than configure.in touch configure || die diff --git a/sys-devel/autoconf/autoconf-2.13-r7.ebuild b/sys-devel/autoconf/autoconf-2.13-r7.ebuild index 055d8286769d..0c634973f305 100644 --- a/sys-devel/autoconf/autoconf-2.13-r7.ebuild +++ b/sys-devel/autoconf/autoconf-2.13-r7.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -11,7 +11,7 @@ SRC_URI="mirror://gnu/${PN}/${P}.tar.gz" LICENSE="GPL-2" SLOT="${PV:0:3}" -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 ~x64-solaris ~x86-solaris" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="test" RESTRICT="!test? ( test )" @@ -35,6 +35,8 @@ PATCHES=( "${FILESDIR}"/${P}-Clang-16-fixes-for-various-tests.patch ) +TC_AUTOCONF_BREAK_INFOS=yes + src_configure() { # make sure configure is newer than configure.in touch configure || die diff --git a/sys-devel/autoconf/autoconf-2.13-r8.ebuild b/sys-devel/autoconf/autoconf-2.13-r8.ebuild new file mode 100644 index 000000000000..5abbe2fc96a3 --- /dev/null +++ b/sys-devel/autoconf/autoconf-2.13-r8.ebuild @@ -0,0 +1,59 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit toolchain-autoconf + +DESCRIPTION="Used to create autoconfiguration files" +HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html" +SRC_URI="mirror://gnu/${PN}/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="${PV:0:3}" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="test" +RESTRICT="!test? ( test )" + +BDEPEND=" + dev-lang/perl + sys-devel/m4 + test? ( dev-util/dejagnu ) +" +RDEPEND=" + ${BDEPEND} + sys-apps/texinfo + >=sys-devel/autoconf-wrapper-13 +" + +PATCHES=( + "${FILESDIR}"/${P}-gentoo.patch + "${FILESDIR}"/${P}-destdir.patch + "${FILESDIR}"/${P}-test-fixes.patch #146592 + "${FILESDIR}"/${P}-perl-5.26.patch + "${FILESDIR}"/${P}-K-R-decls-clang.patch + "${FILESDIR}"/${P}-Clang-16-fixes-for-various-tests.patch +) + +src_configure() { + # make sure configure is newer than configure.in + touch configure || die + + # need to include --exec-prefix and --bindir or our + # DESTDIR patch will trigger sandbox hate :( + # + # need to force locale to C to avoid bugs in the old + # configure script breaking the install paths #351982 + # + # force to `awk` so that we don't encode another awk that + # happens to currently be installed, but might later be + # uninstalled (like mawk). same for m4. + ac_cv_path_M4="m4" \ + ac_cv_prog_AWK="awk" \ + LC_ALL=C \ + econf \ + --exec-prefix="${EPREFIX}"/usr \ + --bindir="${EPREFIX}"/usr/bin \ + --program-suffix="-${PV}" \ + --infodir="${TC_AUTOCONF_INFOPATH}" +} diff --git a/sys-devel/autoconf/autoconf-2.69-r5.ebuild b/sys-devel/autoconf/autoconf-2.69-r5.ebuild index f51aa71c2d0a..7928a63bb524 100644 --- a/sys-devel/autoconf/autoconf-2.69-r5.ebuild +++ b/sys-devel/autoconf/autoconf-2.69-r5.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -10,7 +10,7 @@ else SRC_URI="mirror://gnu/${PN}/${P}.tar.xz ftp://alpha.gnu.org/pub/gnu/${PN}/${P}.tar.xz https://dev.gentoo.org/~polynomial-c/dist/${P}-runstatedir_patches.tar.xz" - KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi inherit toolchain-autoconf @@ -41,6 +41,8 @@ PATCHES=( "${WORKDIR}"/patches/${P}-runstatedir_info.patch ) +TC_AUTOCONF_BREAK_INFOS=yes + src_prepare() { # usr/bin/libtool is provided by binutils-apple, need gnu libtool if [[ ${CHOST} == *-darwin* ]] ; then diff --git a/sys-devel/autoconf/autoconf-2.69-r8.ebuild b/sys-devel/autoconf/autoconf-2.69-r8.ebuild index 3730430ac8a4..f222672bb8be 100644 --- a/sys-devel/autoconf/autoconf-2.69-r8.ebuild +++ b/sys-devel/autoconf/autoconf-2.69-r8.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -10,7 +10,7 @@ else SRC_URI="mirror://gnu/${PN}/${P}.tar.xz ftp://alpha.gnu.org/pub/gnu/${PN}/${P}.tar.xz https://dev.gentoo.org/~polynomial-c/dist/${P}-runstatedir_patches.tar.xz" - KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi inherit toolchain-autoconf @@ -46,6 +46,8 @@ PATCHES=( "${WORKDIR}"/patches/${P}-texinfo.patch ) +TC_AUTOCONF_BREAK_INFOS=yes + src_prepare() { # usr/bin/libtool is provided by binutils-apple, need gnu libtool if [[ ${CHOST} == *-darwin* ]] ; then diff --git a/sys-devel/autoconf/autoconf-2.69-r9.ebuild b/sys-devel/autoconf/autoconf-2.69-r9.ebuild new file mode 100644 index 000000000000..b6d9cc47635b --- /dev/null +++ b/sys-devel/autoconf/autoconf-2.69-r9.ebuild @@ -0,0 +1,63 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://git.savannah.gnu.org/git/autoconf.git" + inherit git-r3 +else + SRC_URI="mirror://gnu/${PN}/${P}.tar.xz + ftp://alpha.gnu.org/pub/gnu/${PN}/${P}.tar.xz + https://dev.gentoo.org/~polynomial-c/dist/${P}-runstatedir_patches.tar.xz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +fi + +inherit toolchain-autoconf + +DESCRIPTION="Used to create autoconfiguration files" +HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html" + +LICENSE="GPL-3+" +SLOT="${PV}" +IUSE="emacs" + +BDEPEND=" + >=sys-devel/m4-1.4.16 + >=dev-lang/perl-5.6 +" +RDEPEND=" + ${BDEPEND} + >=sys-devel/autoconf-wrapper-13 + !~sys-devel/${P}:2.5 +" + +[[ ${PV} == 9999 ]] && BDEPEND+=" >=sys-apps/texinfo-4.3" + +PDEPEND="emacs? ( app-emacs/autoconf-mode )" + +PATCHES=( + "${FILESDIR}"/${PN}-2.69-perl-5.26.patch + "${FILESDIR}"/${P}-fix-libtool-test.patch + "${FILESDIR}"/${PN}-2.69-perl-5.26-2.patch + "${FILESDIR}"/${P}-make-tests-bash5-compatible.patch + "${FILESDIR}"/${P}-K-R-decls-clang.patch + + "${WORKDIR}"/patches/${P}-texinfo.patch +) + +src_prepare() { + # usr/bin/libtool is provided by binutils-apple, need gnu libtool + if [[ ${CHOST} == *-darwin* ]] ; then + PATCHES+=( "${FILESDIR}"/${PN}-2.61-darwin.patch ) + fi + + # Save timestamp to avoid later makeinfo call + touch -r doc/{,old_}autoconf.texi || die + + toolchain-autoconf_src_prepare + + # Restore timestamp to avoid makeinfo call + # We already have an up to date autoconf.info page at this point. + touch -r doc/{old_,}autoconf.texi || die +} diff --git a/sys-devel/autoconf/autoconf-2.71-r1.ebuild b/sys-devel/autoconf/autoconf-2.71-r1.ebuild index 7ef4e0bcbeb7..fa90d993df6e 100644 --- a/sys-devel/autoconf/autoconf-2.71-r1.ebuild +++ b/sys-devel/autoconf/autoconf-2.71-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -16,7 +16,7 @@ else #SRC_URI+=" https://dev.gentoo.org/~polynomial-c/${PATCH_TARBALL_NAME}.tar.xz" if ! [[ ${PV} == *_beta* ]] ; then - 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" + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi S="${WORKDIR}"/${MY_P} fi @@ -43,6 +43,8 @@ PDEPEND="emacs? ( app-emacs/autoconf-mode )" PATCHES=( "${FILESDIR}/${P}-time.patch" ) +TC_AUTOCONF_BREAK_INFOS=yes + src_prepare() { # usr/bin/libtool is provided by binutils-apple, need gnu libtool if [[ ${CHOST} == *-darwin* ]] ; then diff --git a/sys-devel/autoconf/autoconf-2.71-r5.ebuild b/sys-devel/autoconf/autoconf-2.71-r5.ebuild index 7749d47f435e..0f44081849a1 100644 --- a/sys-devel/autoconf/autoconf-2.71-r5.ebuild +++ b/sys-devel/autoconf/autoconf-2.71-r5.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -16,7 +16,7 @@ else #SRC_URI+=" https://dev.gentoo.org/~polynomial-c/${PATCH_TARBALL_NAME}.tar.xz" if ! [[ ${PV} == *_beta* ]] ; then - 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" + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi S="${WORKDIR}"/${MY_P} fi @@ -50,6 +50,8 @@ PATCHES=( "${FILESDIR}"/${P}-K-R-decls-clang-deux.patch ) +TC_AUTOCONF_BREAK_INFOS=yes + src_prepare() { # usr/bin/libtool is provided by binutils-apple, need gnu libtool if [[ ${CHOST} == *-darwin* ]] ; then diff --git a/sys-devel/autoconf/autoconf-2.71-r6.ebuild b/sys-devel/autoconf/autoconf-2.71-r6.ebuild new file mode 100644 index 000000000000..ded609d7ef5a --- /dev/null +++ b/sys-devel/autoconf/autoconf-2.71-r6.ebuild @@ -0,0 +1,88 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://git.savannah.gnu.org/git/autoconf.git" + inherit git-r3 +else + # For _beta handling replace with real version number + MY_PV="${PV}" + MY_P="${PN}-${MY_PV}" + #PATCH_TARBALL_NAME="${PN}-2.70-patches-01" + SRC_URI="mirror://gnu/${PN}/${MY_P}.tar.xz + https://alpha.gnu.org/pub/gnu/${PN}/${MY_P}.tar.xz" + #SRC_URI+=" https://dev.gentoo.org/~polynomial-c/${PATCH_TARBALL_NAME}.tar.xz" + + if ! [[ ${PV} == *_beta* ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + fi + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain-autoconf + +DESCRIPTION="Used to create autoconfiguration files" +HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html" + +LICENSE="GPL-3+" +SLOT="${PV/_*}" +IUSE="emacs" + +# for 2.71, our Perl time resolution patch changes our min Perl from 5.6 +# (vanilla upstream for 2.71) to 5.8. +BDEPEND=">=sys-devel/m4-1.4.16 + >=dev-lang/perl-5.8" +RDEPEND="${BDEPEND} + >=sys-devel/autoconf-wrapper-15 + sys-devel/gnuconfig + !~sys-devel/${P}:2.5" +[[ ${PV} == 9999 ]] && BDEPEND+=" >=sys-apps/texinfo-4.3" +PDEPEND="emacs? ( app-emacs/autoconf-mode )" + +PATCHES=( + "${FILESDIR}"/${P}-AC_LANG_CALL_C_cxx.patch + "${FILESDIR}"/${P}-time.patch + "${FILESDIR}"/${P}-AC_C_BIGENDIAN-lto.patch + "${FILESDIR}"/${P}-K-R-decls-clang.patch + "${FILESDIR}"/${P}-make-4.4.patch + "${FILESDIR}"/${P}-K-R-decls-clang-deux.patch +) + +src_prepare() { + # usr/bin/libtool is provided by binutils-apple, need gnu libtool + if [[ ${CHOST} == *-darwin* ]] ; then + PATCHES+=( "${FILESDIR}"/${PN}-2.71-darwin.patch ) + fi + + # Save timestamp to avoid later makeinfo call + touch -r doc/{,old_}autoconf.texi || die + + local pdir + for pdir in "${WORKDIR}"/{upstream_,}patches ; do + if [[ -d "${pdir}" ]] ; then + eapply ${pdir} + fi + done + + toolchain-autoconf_src_prepare + + # Restore timestamp to avoid makeinfo call + # We already have an up to date autoconf.info page at this point. + touch -r doc/{old_,}autoconf.texi || die +} + +src_test() { + emake check +} + +src_install() { + toolchain-autoconf_src_install + + local f + for f in config.{guess,sub} ; do + ln -fs ../../gnuconfig/${f} \ + "${ED}"/usr/share/autoconf-*/build-aux/${f} || die + done +} diff --git a/sys-devel/autoconf/autoconf-2.72c-r2.ebuild b/sys-devel/autoconf/autoconf-2.72c-r2.ebuild new file mode 100644 index 000000000000..b4a4e1ccac5a --- /dev/null +++ b/sys-devel/autoconf/autoconf-2.72c-r2.ebuild @@ -0,0 +1,86 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://git.savannah.gnu.org/git/autoconf.git" + inherit git-r3 +else + # For _beta handling replace with real version number + MY_PV="${PV}" + MY_P="${PN}-${MY_PV}" + #PATCH_TARBALL_NAME="${PN}-2.70-patches-01" + + SRC_URI=" + mirror://gnu/${PN}/${MY_P}.tar.xz + https://alpha.gnu.org/pub/gnu/${PN}/${MY_P}.tar.xz + https://meyering.net/ac/${P}.tar.xz + " + S="${WORKDIR}"/${MY_P} + + if [[ ${PV} != *_beta* ]] && ! [[ $(ver_cut 3) =~ [a-z] ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + fi +fi + +inherit toolchain-autoconf + +DESCRIPTION="Used to create autoconfiguration files" +HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html" + +LICENSE="GPL-3+" +SLOT="$(ver_cut 1-2)" +IUSE="emacs" + +BDEPEND=" + >=dev-lang/perl-5.10 + >=sys-devel/m4-1.4.16 +" +RDEPEND=" + ${BDEPEND} + >=sys-devel/autoconf-wrapper-15 + sys-devel/gnuconfig + !~sys-devel/${P}:2.5 +" +[[ ${PV} == 9999 ]] && BDEPEND+=" >=sys-apps/texinfo-4.3" +PDEPEND="emacs? ( app-emacs/autoconf-mode )" + +src_prepare() { + if [[ ${PV} == *9999 ]] ; then + # Avoid the "dirty" suffix in the git version by generating it + # before we run later stages which might modify source files. + local ver=$(./build-aux/git-version-gen .tarball-version) + echo "${ver}" > .tarball-version || die + + autoreconf -f -i || die + fi + + # usr/bin/libtool is provided by binutils-apple, need gnu libtool + if [[ ${CHOST} == *-darwin* ]] ; then + PATCHES+=( "${FILESDIR}"/${PN}-2.71-darwin.patch ) + fi + + # Save timestamp to avoid later makeinfo call + touch -r doc/{,old_}autoconf.texi || die + + toolchain-autoconf_src_prepare + + # Restore timestamp to avoid makeinfo call + # We already have an up to date autoconf.info page at this point. + touch -r doc/{old_,}autoconf.texi || die +} + +src_test() { + emake check +} + +src_install() { + toolchain-autoconf_src_install + + local f + for f in config.{guess,sub} ; do + ln -fs ../../gnuconfig/${f} \ + "${ED}"/usr/share/autoconf-*/build-aux/${f} || die + done +} diff --git a/sys-devel/autoconf/autoconf-9999.ebuild b/sys-devel/autoconf/autoconf-9999.ebuild index 61ddd6318e4d..b4a4e1ccac5a 100644 --- a/sys-devel/autoconf/autoconf-9999.ebuild +++ b/sys-devel/autoconf/autoconf-9999.ebuild @@ -1,15 +1,27 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 -if [[ ${PV} == "9999" ]] ; then +if [[ ${PV} == 9999 ]] ; then EGIT_REPO_URI="https://git.savannah.gnu.org/git/autoconf.git" inherit git-r3 else - SRC_URI="mirror://gnu/${PN}/${P}.tar.xz - ftp://alpha.gnu.org/pub/gnu/${PN}/${P}.tar.xz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x86-linux" + # For _beta handling replace with real version number + MY_PV="${PV}" + MY_P="${PN}-${MY_PV}" + #PATCH_TARBALL_NAME="${PN}-2.70-patches-01" + + SRC_URI=" + mirror://gnu/${PN}/${MY_P}.tar.xz + https://alpha.gnu.org/pub/gnu/${PN}/${MY_P}.tar.xz + https://meyering.net/ac/${P}.tar.xz + " + S="${WORKDIR}"/${MY_P} + + if [[ ${PV} != *_beta* ]] && ! [[ $(ver_cut 3) =~ [a-z] ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + fi fi inherit toolchain-autoconf @@ -18,16 +30,20 @@ DESCRIPTION="Used to create autoconfiguration files" HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html" LICENSE="GPL-3+" -SLOT="${PV}" +SLOT="$(ver_cut 1-2)" IUSE="emacs" -BDEPEND=">=sys-devel/m4-1.4.16 - >=dev-lang/perl-5.10" -RDEPEND="${BDEPEND} - >=sys-devel/autoconf-wrapper-14 +BDEPEND=" + >=dev-lang/perl-5.10 + >=sys-devel/m4-1.4.16 +" +RDEPEND=" + ${BDEPEND} + >=sys-devel/autoconf-wrapper-15 sys-devel/gnuconfig - !~sys-devel/${P}:2.5" -[[ ${PV} == "9999" ]] && BDEPEND+=" >=sys-apps/texinfo-4.3" + !~sys-devel/${P}:2.5 +" +[[ ${PV} == 9999 ]] && BDEPEND+=" >=sys-apps/texinfo-4.3" PDEPEND="emacs? ( app-emacs/autoconf-mode )" src_prepare() { @@ -40,7 +56,19 @@ src_prepare() { autoreconf -f -i || die fi + # usr/bin/libtool is provided by binutils-apple, need gnu libtool + if [[ ${CHOST} == *-darwin* ]] ; then + PATCHES+=( "${FILESDIR}"/${PN}-2.71-darwin.patch ) + fi + + # Save timestamp to avoid later makeinfo call + touch -r doc/{,old_}autoconf.texi || die + toolchain-autoconf_src_prepare + + # Restore timestamp to avoid makeinfo call + # We already have an up to date autoconf.info page at this point. + touch -r doc/{old_,}autoconf.texi || die } src_test() { @@ -48,7 +76,7 @@ src_test() { } src_install() { - default + toolchain-autoconf_src_install local f for f in config.{guess,sub} ; do diff --git a/sys-devel/automake-wrapper/Manifest b/sys-devel/automake-wrapper/Manifest new file mode 100644 index 000000000000..5a292895ab23 --- /dev/null +++ b/sys-devel/automake-wrapper/Manifest @@ -0,0 +1 @@ +DIST autotools-wrappers-at-20221207.tar.gz 3646 BLAKE2B 82bec40e03ae5ec133252fd3c05c3fed537bb415e800918df9c9d783d48a9d76cbe60c53dd7daf6d94653d79fc52be8c089183dda996e8a72dd03ffa83098613 SHA512 12ea99721e6fc60a3ed7351d6c228aaf6e4eef0bd0444eda8cd742f74fa91150ef07bb52f6bcad4a350269e8032f5d4e204d2f2108b0d9c441ddd7f9755862b7 diff --git a/sys-devel/automake-wrapper/automake-wrapper-11-r1.ebuild b/sys-devel/automake-wrapper/automake-wrapper-11-r1.ebuild deleted file mode 100644 index e65eb87b26c7..000000000000 --- a/sys-devel/automake-wrapper/automake-wrapper-11-r1.ebuild +++ /dev/null @@ -1,32 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="wrapper for automake to manage multiple automake versions" -HOMEPAGE="https://gitweb.gentoo.org/proj/autotools-wrappers.git" -S="${WORKDIR}" - -LICENSE="GPL-2" -SLOT="0" -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" - -src_unpack() { - cp "${FILESDIR}"/am-wrapper-${PV}.sh "${S}"/ || die -} - -src_prepare() { - default - - # usr/bin/aclocal: bad substitution -> /bin/sh != POSIX shell - if use prefix ; then - sed -i -e '1c\#!'"${EPREFIX}"'/bin/sh' am-wrapper-${PV}.sh || die - fi -} - -src_install() { - newbin am-wrapper-${PV}.sh automake - dosym automake /usr/bin/aclocal - - keepdir /usr/share/aclocal -} diff --git a/sys-devel/automake-wrapper/automake-wrapper-20221207.ebuild b/sys-devel/automake-wrapper/automake-wrapper-20221207.ebuild new file mode 100644 index 000000000000..3d3779ad5bb0 --- /dev/null +++ b/sys-devel/automake-wrapper/automake-wrapper-20221207.ebuild @@ -0,0 +1,46 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_P="autotools-wrappers-at-${PV}" + +DESCRIPTION="Wrapper for automake to manage multiple automake versions" +HOMEPAGE="https://gitweb.gentoo.org/proj/autotools-wrappers.git" + +if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI=" + https://anongit.gentoo.org/git/proj/autotools-wrappers.git + https://github.com/gentoo/autotools-wrappers + " + inherit git-r3 +else + SRC_URI="https://gitweb.gentoo.org/proj/autotools-wrappers.git/snapshot/${MY_P}.tar.gz" + S="${WORKDIR}"/${MY_P} + + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +fi + +LICENSE="GPL-2" +SLOT="0" + +src_prepare() { + default + + # usr/bin/aclocal: bad substitution -> /bin/sh != POSIX shell + if use prefix ; then + sed -i -e '1c\#!'"${EPREFIX}"'/bin/sh' am-wrapper.sh || die + fi +} + +src_install() { + exeinto /usr/$(get_libdir)/misc + doexe am-wrapper.sh + + local x= + for x in automake aclocal ; do + dosym -r /usr/$(get_libdir)/misc/am-wrapper.sh /usr/bin/${x} + done + + keepdir /usr/share/aclocal +} diff --git a/sys-devel/automake-wrapper/automake-wrapper-99999999.ebuild b/sys-devel/automake-wrapper/automake-wrapper-99999999.ebuild index ecb9a1b0530c..aa02b4b70691 100644 --- a/sys-devel/automake-wrapper/automake-wrapper-99999999.ebuild +++ b/sys-devel/automake-wrapper/automake-wrapper-99999999.ebuild @@ -1,19 +1,24 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 +MY_P="autotools-wrappers-at-${PV}" + DESCRIPTION="Wrapper for automake to manage multiple automake versions" HOMEPAGE="https://gitweb.gentoo.org/proj/autotools-wrappers.git" if [[ ${PV} == *9999 ]] ; then - EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/autotools-wrappers.git" + EGIT_REPO_URI=" + https://anongit.gentoo.org/git/proj/autotools-wrappers.git + https://github.com/gentoo/autotools-wrappers + " inherit git-r3 else SRC_URI="https://gitweb.gentoo.org/proj/autotools-wrappers.git/snapshot/${MY_P}.tar.gz" + S="${WORKDIR}"/${MY_P} - 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" - S="${WORKDIR}" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi LICENSE="GPL-2" @@ -24,7 +29,7 @@ src_prepare() { # usr/bin/aclocal: bad substitution -> /bin/sh != POSIX shell if use prefix ; then - sed -i -e '1c\#!'"${EPREFIX}"'/bin/sh' am-wrapper-${PV}.sh || die + sed -i -e '1c\#!'"${EPREFIX}"'/bin/sh' am-wrapper.sh || die fi } diff --git a/sys-devel/automake-wrapper/files/am-wrapper-11.sh b/sys-devel/automake-wrapper/files/am-wrapper-11.sh deleted file mode 100644 index 290762680d22..000000000000 --- a/sys-devel/automake-wrapper/files/am-wrapper-11.sh +++ /dev/null @@ -1,186 +0,0 @@ -#!/bin/sh -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# Executes the correct automake version. -# -# If WANT_AUTOMAKE is set (can be a whitespace delimited list of versions): -# - attempt to find an installed version using those -# - if magic keyword 'latest' is found, pick the latest version that exists -# - if nothing found, warn, and proceed as if WANT_AUTOMAKE was not set (below) -# If WANT_AUTOMAKE is not set: -# - Try to detect the version of automake used to generate things (look at -# Makefile.in and aclocal.m4 and any other useful file) -# - If detected version is not found, warn and proceed as if blank slate -# - Try to locate the latest version of automake that exists and run it - -(set -o posix) 2>/dev/null && set -o posix - -_stderr() { printf 'am-wrapper: %s: %b\n' "${argv0}" "$*" 1>&2; } -warn() { _stderr "warning: $*"; } -err() { _stderr "error: $*"; exit 1; } -unset IFS -which() { - local p - IFS=: # we don't use IFS anywhere, so don't bother saving/restoring - for p in ${PATH} ; do - p="${p}/$1" - [ -e "${p}" ] && echo "${p}" && return 0 - done - unset IFS - return 1 -} - -# -# Sanitize argv[0] since it isn't always a full path #385201 -# -argv0=${0##*/} -case $0 in - ${argv0}) - # find it in PATH - if ! full_argv0=$(which "${argv0}") ; then - err "could not locate ${argv0}; file a bug" - fi - ;; - *) - # re-use full/relative paths - full_argv0=$0 - ;; -esac - -if ! seq 0 0 2>/dev/null 1>&2 ; then #338518 - seq() { - local f l i - case $# in - 1) f=1 i=1 l=$1;; - 2) f=$1 i=1 l=$2;; - 3) f=$1 i=$2 l=$3;; - esac - while :; do - [ $l -lt $f -a $i -gt 0 ] && break - [ $f -lt $l -a $i -lt 0 ] && break - echo $f - : $(( f += i )) - done - return 0 - } -fi - -# -# Set up bindings between actual version and WANT_AUTOMAKE; -# Start with last known versions to speed up lookup process. -# -LAST_KNOWN_AUTOMAKE_VER="16" -vers=$(printf '1.%s ' `seq ${LAST_KNOWN_AUTOMAKE_VER} -1 4`) - -# -# Helper to scan for a usable program based on version. -# -binary= -all_vers= -find_binary() { - local v - all_vers="${all_vers} $*" # For error messages. - for v ; do - if [ -x "${full_argv0}-${v}" ] ; then - binary="${full_argv0}-${v}" - binary_ver=${v} - return 0 - fi - done - return 1 -} - -# -# Try and find a usable automake version. First check the WANT_AUTOMAKE -# setting (whitespace delimited list), then fallback to the latest. -# -find_latest() { - if ! find_binary ${vers} ; then - # Brute force it. - find_binary $(printf '1.%s ' `seq 99 -1 ${LAST_KNOWN_AUTOMAKE_VER}`) - fi -} -for wx in ${WANT_AUTOMAKE:-latest} ; do - if [ "${wx}" = "latest" ] ; then - find_latest && break - else - find_binary ${wx} && break - fi -done - -if [ -z "${binary}" ] && [ -n "${WANT_AUTOMAKE}" ] ; then - warn "could not locate installed version for WANT_AUTOMAKE='${WANT_AUTOMAKE}'; ignoring" - unset WANT_AUTOMAKE - find_latest -fi - -if [ -z "${binary}" ] ; then - err "Unable to locate any usuable version of automake.\n" \ - "\tI tried these versions:${all_vers}\n" \ - "\tWith a base name of '${full_argv0}'." -fi - -# -# autodetect helpers -# -do_awk() { - local file=$1 ; shift - local v=$(awk -v regex="$*" '{ - if (ret = match($0, regex)) { - s = substr($0, ret, RLENGTH) - ret = match(s, "[0-9]\\.[0-9]+") - print substr(s, ret, RLENGTH) - exit - } - }' "${file}") - case " ${auto_vers} " in - *" ${v} "*) ;; - *) auto_vers="${auto_vers:+${auto_vers} }${v}" ;; - esac -} - -# -# autodetect routine -# -if [ -z "${WANT_AUTOMAKE}" ] ; then - auto_vers= - if [ -r "Makefile.in" ] ; then - do_awk Makefile.in '^# Makefile.in generated (automatically )?by automake [0-9]\\.[0-9]+' - fi - if [ -r "aclocal.m4" ] ; then - do_awk aclocal.m4 'generated automatically by aclocal [0-9]\\.[0-9]+' - do_awk aclocal.m4 '[[:space:]]*\\[?AM_AUTOMAKE_VERSION\\(\\[?[0-9]\\.[0-9]+[^)]*\\]?\\)' - fi - # We don't need to set $binary here as it has already been setup for us - # earlier to the latest available version. - if [ -n "${auto_vers}" ] ; then - if ! find_binary ${auto_vers} ; then - warn "auto-detected versions not found (${auto_vers}); falling back to latest available" - fi - fi -fi - -if [ -n "${WANT_AMWRAPPER_DEBUG}" ] ; then - if [ -n "${WANT_AUTOMAKE}" ] ; then - warn "DEBUG: WANT_AUTOMAKE is set to ${WANT_AUTOMAKE}" - fi - warn "DEBUG: will execute <${binary}>" -fi - -# -# for further consistency -# -export WANT_AUTOMAKE="${binary_ver}" - -# -# Now try to run the binary -# -if [ ! -x "${binary}" ] ; then - # this shouldn't happen - err "${binary} is missing or not executable.\n" \ - "\tPlease try installing the correct version of automake." -fi - -exec "${binary}" "$@" -# The shell will error out if `exec` failed. diff --git a/sys-devel/automake/automake-1.11.6-r3.ebuild b/sys-devel/automake/automake-1.11.6-r3.ebuild index 2aea15120d4a..90cf71692500 100644 --- a/sys-devel/automake/automake-1.11.6-r3.ebuild +++ b/sys-devel/automake/automake-1.11.6-r3.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -10,7 +10,7 @@ SRC_URI="mirror://gnu/${PN}/${P}.tar.xz" LICENSE="GPL-2" # Use Gentoo versioning for slotting. SLOT="${PV:0:4}" -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 ~arm64-macos" IUSE="" RESTRICT="test" diff --git a/sys-devel/automake/automake-1.11.6-r4.ebuild b/sys-devel/automake/automake-1.11.6-r4.ebuild new file mode 100644 index 000000000000..50b2acc093d8 --- /dev/null +++ b/sys-devel/automake/automake-1.11.6-r4.ebuild @@ -0,0 +1,84 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +DESCRIPTION="Used to generate Makefile.in from Makefile.am" +HOMEPAGE="https://www.gnu.org/software/automake/" +SRC_URI="mirror://gnu/${PN}/${P}.tar.xz" + +LICENSE="GPL-2" +# Use Gentoo versioning for slotting. +SLOT="${PV:0:4}" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos" +IUSE="" +RESTRICT="test" + +RDEPEND=">=dev-lang/perl-5.6 + >=sys-devel/automake-wrapper-10 + >=sys-devel/autoconf-2.69:* + sys-devel/gnuconfig" +DEPEND="${RDEPEND} + sys-apps/help2man" +BDEPEND="app-arch/gzip" + +PATCHES=( + "${FILESDIR}"/${PN}-1.10-perl-5.16.patch #424453 + "${FILESDIR}"/${PN}-1.11-install-sh-avoid-low-risk-race-in-tmp.patch + "${FILESDIR}"/${PN}-1.13-perl-escape-curly-bracket-r1.patch +) + +src_prepare() { + default + export WANT_AUTOCONF=2.5 + export HELP2MAN=true + sed -i -e "/APIVERSION=/s:=.*:=${SLOT}:" configure || die + export TZ="UTC" #589138 +} + +src_compile() { + # Also used in install. + MY_INFODIR="${EPREFIX}/usr/share/automake-${PV}/info" + econf --infodir="${MY_INFODIR}" + + local x + for x in aclocal automake; do + help2man "perl -Ilib ${x}" > doc/${x}-${SLOT}.1 + done +} + +src_install() { + default + + rm \ + "${ED}"/usr/bin/{aclocal,automake} \ + "${ED}"/usr/share/man/man1/{aclocal,automake}.1 || die + + # remove all config.guess and config.sub files replacing them + # w/a symlink to a specific gnuconfig version + local x + for x in guess sub ; do + dosym ../gnuconfig/config.${x} \ + /usr/share/${PN}-${SLOT}/config.${x} + done + + # Avoid QA message about pre-compressed file in docs + local tarfile="${ED}/usr/share/doc/${PF}/amhello-1.0.tar.gz" + if [[ -f "${tarfile}" ]] ; then + gunzip "${tarfile}" || die + fi + + pushd "${D}/${MY_INFODIR}" >/dev/null || die + for f in *.info*; do + # Install convenience aliases for versioned Automake pages. + ln -s "$f" "${f/./-${PV}.}" || die + done + popd >/dev/null || die + + local major="$(ver_cut 1)" + local minor="$(ver_cut 2)" + local idx="$((99999-(major*1000+minor)))" + newenvd - "06automake${idx}" <<-EOF + INFOPATH="${MY_INFODIR}" + EOF +} diff --git a/sys-devel/automake/automake-1.16.5-r1.ebuild b/sys-devel/automake/automake-1.16.5-r1.ebuild new file mode 100644 index 000000000000..23a2236bae2f --- /dev/null +++ b/sys-devel/automake/automake-1.16.5-r1.ebuild @@ -0,0 +1,119 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{9..11} ) + +inherit python-any-r1 + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://git.savannah.gnu.org/r/${PN}.git" + inherit git-r3 +else + if [[ ${PV/_beta} == ${PV} ]]; then + MY_P="${P}" + SRC_URI="mirror://gnu/${PN}/${P}.tar.xz + https://alpha.gnu.org/pub/gnu/${PN}/${MY_P}.tar.xz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + else + MY_PV="$(ver_cut 1).$(($(ver_cut 2)-1))b" + MY_P="${PN}-${MY_PV}" + + # Alpha/beta releases are not distributed on the usual mirrors. + SRC_URI="https://alpha.gnu.org/pub/gnu/${PN}/${MY_P}.tar.xz" + fi + + S="${WORKDIR}/${MY_P}" +fi + +DESCRIPTION="Used to generate Makefile.in from Makefile.am" +HOMEPAGE="https://www.gnu.org/software/automake/" + +LICENSE="GPL-2" +# Use Gentoo versioning for slotting. +SLOT="${PV:0:4}" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND=">=dev-lang/perl-5.6 + >=sys-devel/automake-wrapper-11 + >=sys-devel/autoconf-2.69:* + sys-devel/gnuconfig" +DEPEND="${RDEPEND}" +BDEPEND=" + app-arch/gzip + sys-apps/help2man + test? ( ${PYTHON_DEPS} ) +" + +PATCHES=( + "${FILESDIR}"/automake-1.16.2-py3-compile.patch + "${FILESDIR}"/automake-1.16.2-fix-instmany-python.sh-test.patch + "${FILESDIR}"/automake-1.16.2-fix-py-compile-basedir.sh-test.patch +) + +pkg_setup() { + # Avoid python-any-r1_pkg_setup + : +} + +src_prepare() { + default + + export WANT_AUTOCONF=2.5 + # Don't try wrapping the autotools - this thing runs as it tends + # to be a bit esoteric, and the script does `set -e` itself. + ./bootstrap || die + sed -i -e "/APIVERSION=/s:=.*:=${SLOT}:" configure || die + + # bug #628912 + if ! has_version -b sys-apps/texinfo ; then + touch doc/{stamp-vti,version.texi,automake.info} || die + fi +} + +src_configure() { + use test && python_setup + # Also used in install. + MY_INFODIR="${EPREFIX}/usr/share/automake-${PV}/info" + econf --infodir="${MY_INFODIR}" +} + +src_install() { + default + + rm "${ED}"/usr/share/aclocal/README || die + rmdir "${ED}"/usr/share/aclocal || die + rm \ + "${ED}"/usr/bin/{aclocal,automake} \ + "${ED}"/usr/share/man/man1/{aclocal,automake}.1 || die + + # remove all config.guess and config.sub files replacing them + # w/a symlink to a specific gnuconfig version + local x + for x in guess sub ; do + dosym ../gnuconfig/config.${x} \ + /usr/share/${PN}-${SLOT}/config.${x} + done + + # Avoid QA message about pre-compressed file in docs + local tarfile="${ED}/usr/share/doc/${PF}/amhello-1.0.tar.gz" + if [[ -f "${tarfile}" ]] ; then + gunzip "${tarfile}" || die + fi + + pushd "${D}/${MY_INFODIR}" >/dev/null || die + for f in *.info*; do + # Install convenience aliases for versioned Automake pages. + ln -s "$f" "${f/./-${PV}.}" || die + done + popd >/dev/null || die + + local major="$(ver_cut 1)" + local minor="$(ver_cut 2)" + local idx="$((99999-(major*1000+minor)))" + newenvd - "06automake${idx}" <<-EOF + INFOPATH="${MY_INFODIR}" + EOF +} diff --git a/sys-devel/automake/automake-1.16.5.ebuild b/sys-devel/automake/automake-1.16.5.ebuild index 055d581c2515..779a853293c6 100644 --- a/sys-devel/automake/automake-1.16.5.ebuild +++ b/sys-devel/automake/automake-1.16.5.ebuild @@ -15,7 +15,7 @@ else MY_P="${P}" SRC_URI="mirror://gnu/${PN}/${P}.tar.xz https://alpha.gnu.org/pub/gnu/${PN}/${MY_P}.tar.xz" - 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" + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" else MY_PV="$(ver_cut 1).$(($(ver_cut 2)-1))b" MY_P="${PN}-${MY_PV}" diff --git a/sys-devel/automake/automake-9999.ebuild b/sys-devel/automake/automake-9999.ebuild index df5d9b7ecfc6..571985fea6d6 100644 --- a/sys-devel/automake/automake-9999.ebuild +++ b/sys-devel/automake/automake-9999.ebuild @@ -15,7 +15,7 @@ else MY_P="${P}" SRC_URI="mirror://gnu/${PN}/${P}.tar.xz https://alpha.gnu.org/pub/gnu/${PN}/${MY_P}.tar.xz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" else MY_PV="$(ver_cut 1).$(($(ver_cut 2)-1))b" MY_P="${PN}-${MY_PV}" @@ -69,42 +69,14 @@ src_prepare() { src_configure() { use test && python_setup - default -} - -# Slot the info pages. Do this w/out munging the source so we don't have -# to depend on texinfo to regen things. bug #464146 (among others) -slot_info_pages() { - pushd "${ED}"/usr/share/info >/dev/null || die - rm -f dir - - # Rewrite all the references to other pages. - # before: * aclocal-invocation: (automake)aclocal Invocation. Generating aclocal.m4. - # after: * aclocal-invocation v1.13: (automake-1.13)aclocal Invocation. Generating aclocal.m4. - local p pages=( *.info ) args=() - for p in "${pages[@]/%.info}" ; do - args+=( - -e "/START-INFO-DIR-ENTRY/,/END-INFO-DIR-ENTRY/s|: (${p})| v${SLOT}&|" - -e "s:(${p}):(${p}-${SLOT}):g" - ) - done - sed -i "${args[@]}" * || die - - # Rewrite all the file references, and rename them in the process. - local f d - for f in * ; do - d=${f/.info/-${SLOT}.info} - mv "${f}" "${d}" || die - sed -i -e "s:${f}:${d}:g" * || die - done - - popd >/dev/null || die + # Also used in install. + infopath="${EPREFIX}/usr/share/automake-${PV}/info" + econf --infodir="${infopath}" } src_install() { default - slot_info_pages rm "${ED}"/usr/share/aclocal/README || die rmdir "${ED}"/usr/share/aclocal || die rm \ @@ -124,4 +96,18 @@ src_install() { if [[ -f "${tarfile}" ]] ; then gunzip "${tarfile}" || die fi + + pushd "${D}/${infopath}" >/dev/null || die + for f in *.info*; do + # Install convenience aliases for versioned Automake pages. + ln -s "$f" "${f/./-${PV}.}" || die + done + popd >/dev/null || die + + local major="$(ver_cut 1)" + local minor="$(ver_cut 2)" + local idx="$((99999-(major*1000+minor)))" + newenvd - "06automake${idx}" <<-EOF + INFOPATH="${infopath}" + EOF } diff --git a/sys-devel/bc/bc-1.07.1-r6.ebuild b/sys-devel/bc/bc-1.07.1-r6.ebuild index 0d884fd7d23f..b3c954931a8e 100644 --- a/sys-devel/bc/bc-1.07.1-r6.ebuild +++ b/sys-devel/bc/bc-1.07.1-r6.ebuild @@ -11,7 +11,7 @@ SRC_URI="mirror://gnu/bc/${P}.tar.gz" LICENSE="GPL-3+" SLOT="0" -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" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="libedit readline static" RDEPEND=" diff --git a/sys-devel/binutils-apple/Manifest b/sys-devel/binutils-apple/Manifest index 718995f313cf..35303fe424de 100644 --- a/sys-devel/binutils-apple/Manifest +++ b/sys-devel/binutils-apple/Manifest @@ -6,6 +6,7 @@ DIST binutils-apple-patches-8.2-r1.tar.bz2 10830 BLAKE2B 345db8619873e9e91b79c3f DIST cctools-795.tar.gz 1993795 BLAKE2B dc0915f8647eecba5352e34dfc5752b679df39ead9a4734c49955a824d2cc127308eed46a614665dfe08a9d3036eb37f587e1b765a7df727facc42a33befacb0 SHA512 5a34a73dc71d3574a357f6b0f26a48a99dd0995d62695b309cdfe85c4960934b410455b1ba6bdbc9a4e32106bb45b35555604975d2a80ad1be21f5d4eac69254 DIST cctools-895.tar.gz 1716126 BLAKE2B 9706a6b243518693888e5e21dfe8d83b217380b47db621a7f1b35105eb72fb8997353ff85133224b0856f6b6ec710f54a4fe79076d9e228f89c98b6f517de309 SHA512 4ef9db870385cc2c4263bcbe42ff0de80386771f5acbc7082a1818ecd6b8d7bb1bfa02a7fcfecd3e7281481aeaaac4c331359aca3564bfe7a4c7dea1e0d06126 DIST darwin-xtools-8.2.1-r101.tar.gz 3105898 BLAKE2B 3516cd252d4880b1e80c76365efef6f96830578bb5512befe33f86decdeb026fbad17fd3b27e9c3cf20d100897002e86ec08822041baa0291bb53e0b0ecf4d10 SHA512 f84cbde0853c14f03af40a124133d71d3e1710da021a593336eb4351c60edbca5753af0780f269ed4716cd194973f5437d428c5ff9615d9ce025dba3b7daef77 +DIST darwin-xtools-8.2.1-r102.tar.gz 3105944 BLAKE2B c60854e77afde1a109834e6bac2485f79387b37b871b00a83cfe42c8793685fc414a6a9fa8ef588badf824a9255478fd64c171015f22e848b41dc47d011e202a SHA512 e115e29b5b358cec5c254fc7e4f5d94567c6788f745fd48dfea464a69bd7f4e3a48bccf3334f9fbb26ca3a3cd1c4b366198e05f2f567c7fb43e81ea8f3bf151c DIST dyld-132.13.tar.gz 342690 BLAKE2B 011418ba5b91a28bb7c5f8188af2fac5478bad53581396b7c1c4623a854a8f0d5ecb92d023246157830ed2db83bbf28e23225a255188e2d07eeb6c933814bda6 SHA512 2c9d50fc32868b696d88730eb6ea6afa9bb9f56883cc2ea4f1d41f370f311b7487a29ce0eff6761e1eeb086a18e2513953989d8d5d3ef1043bb662e86baadd3f DIST dyld-421.2.tar.gz 625173 BLAKE2B 8f8325314861ae2ea10fbe78c74c7199b547973ac61a8e9cb76fb874a0e53395ea31c04e489f85ac7cfdb5715ae5051679453de75eb195e313113e7bbbc70340 SHA512 75f2fb840da980d44649aa3e045f50c4e37d4403fbdb1e2e5f1a85bf6d8859e1130053c3806f7ef992fdfc6573f7f18146263c690144bdd3df31452c6bdd8bd8 DIST ld64-274.2.tar.gz 671652 BLAKE2B f45bb65bbe65c7baff54dec633a49b8ea472a59a7978aa050b329132963b26e4a2b3ef3dd034b04247531a11a07de5135b3726a429165cbfcae50e06c09531f4 SHA512 7b4e17f199909450b697bf719564c6841d46f5116c48dd47ff483ae7ddfe2965db1b7c024ed8ebeeaf90cd983ed353b95f7f23c93c8971536977dc892e6d6a9d diff --git a/sys-devel/binutils-apple/binutils-apple-8.2.1-r102.ebuild b/sys-devel/binutils-apple/binutils-apple-8.2.1-r102.ebuild new file mode 100644 index 000000000000..d892d1c763d9 --- /dev/null +++ b/sys-devel/binutils-apple/binutils-apple-8.2.1-r102.ebuild @@ -0,0 +1,118 @@ +# Copyright 2020-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +CMAKE_MAKEFILE_GENERATOR=emake # keep dependencies down + +inherit cmake + +DESCRIPTION="Darwin Xtools matching Xcode Tools ${PN}" +HOMEPAGE="https://github.com/iains/darwin-xtools" +SRC_URI="https://github.com/grobian/darwin-xtools/archive/gentoo-${PVR}.tar.gz -> darwin-xtools-${PVR}.tar.gz" + +LICENSE="APSL-2" +SLOT="8" +KEYWORDS="~arm64-macos ~ppc-macos ~x64-macos" + +# xtools uses c++11 features, not available in gcc-apple, hence gcc/clang dep +DEPEND="sys-devel/binutils-config + || ( sys-devel/gcc:* sys-devel/clang:* ) + app-arch/xar + dev-libs/libyaml" +RDEPEND="${DEPEND}" +BDEPEND="" + +S="${WORKDIR}/darwin-xtools-gentoo-${PVR}" + +src_configure() { + CTARGET=${CTARGET:-${CHOST}} + if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi + fi + + LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/xtools-${PV} + DATAPATH=/usr/share/binutils-data/${CTARGET}/xtools-${PV} + if [[ ${CHOST} != ${CTARGET} ]] ; then + BINPATH=/usr/${CHOST}/${CTARGET}/binutils-bin/xtools-${PV} + else + BINPATH=/usr/${CTARGET}/binutils-bin/xtools-${PV} + fi + + is-host-64bit() { + case ${CTARGET} in + x86_64-*|powerpc64-*|arm64-*) echo YES ;; + *) echo NO ;; + esac + } + + local mycmakeargs=( + -DCMAKE_OSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} + -DPACKAGE_VERSION="Gentoo ${PN}-${PVR}" + -DCMAKE_INSTALL_PREFIX="${EPREFIX}${BINPATH%/*}" # cmake insists on /bin + -DCCTOOLS_LD_CLASSIC=NO # fails to link, and is useless anyway + -DXTOOLS_AS_USE_CLANG=YES # default to host as for unsupported targets + -DXTOOLS_AS_CLANG_USE_HOST=YES # search for arch/as-host iso clang + -DXTOOLS_AS_SUBDIR="${EPREFIX}${LIBPATH}/" + -DXTOOLS_LTO_SUPPORT=NO + -DXTOOLS_HAS_LIBPRUNETRIE=YES + -DXTOOLS_TAPI_SUPPORT=ON + -DXTOOLS_USE_TAPILITE=ON + -DXTOOLS_HOST_IS_64B=$(is-host-64bit) + -DXTOOLS_BUGURL="https://bugs.gentoo.org/" + ) + + cmake_src_configure +} + +src_install() { + cmake_src_install + + # cmake insists on installing in /bin, so move bins to the place we + # want them + mv "${ED}${BINPATH%/*}/bin" "${ED}${BINPATH}" || die + + # move as impls into LIBPATH, such that binutils-config doesn't + # create links for this + dodir "${LIBPATH}" + local as + for as in "${ED}${BINPATH}"/*/as ; do + as=${as%/as} + mv "${as}" "${ED}${LIBPATH}"/ || die + done + + # provide as-host wrappers, used on "unsupported" platforms: x86, + # x64, arm, arm64, the main reason here is missing support for + # instructions, e.g. the as works fine, until newer instruction sets + # are used like SSE4.1, AVX, etc. + local arch + for arch in i386 x86_64 arm arm64 ; do + mkdir -p "${ED}${LIBPATH}"/${arch} + as="${ED}${LIBPATH}"/${arch}/as-host + rm -f "${as}" + cat <<-EOF > "${as}" + #!/usr/bin/env bash + exec /usr/bin/as "\$@" + EOF + chmod 755 "${as}" + done + + doman ld64/doc/man/man*/* cctools/man/*.[135] + dodir "${DATAPATH}" + mv "${ED}"/usr/share/man "${ED}/${DATAPATH}/" || die + + cd "${S}" + insinto /etc/env.d/binutils + cat <<-EOF > env.d + TARGET="${CHOST}" + VER="xtools-${PV}" + FAKE_TARGETS="${CHOST}" + EOF + newins env.d ${CHOST}-xtools-${PV} +} + +pkg_postinst() { + binutils-config ${CHOST}-xtools-${PV} +} diff --git a/sys-devel/binutils-config/binutils-config-5.5.ebuild b/sys-devel/binutils-config/binutils-config-5.5.ebuild index 4a85f28d4cdb..b6c0c1958e9a 100644 --- a/sys-devel/binutils-config/binutils-config-5.5.ebuild +++ b/sys-devel/binutils-config/binutils-config-5.5.ebuild @@ -8,7 +8,7 @@ if [[ ${PV} == 9999 ]]; then inherit git-r3 else SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" fi DESCRIPTION="Utility to change the binutils version being used" diff --git a/sys-devel/binutils-hppa64/Manifest b/sys-devel/binutils-hppa64/Manifest index 4a952e86bb1f..90b4fc784588 100644 --- a/sys-devel/binutils-hppa64/Manifest +++ b/sys-devel/binutils-hppa64/Manifest @@ -2,7 +2,9 @@ DIST binutils-2.37_p1-patches-2.tar.xz 31956 BLAKE2B 39c48628d0e2d7f3a8cf11be391 DIST binutils-2.37_p1.tar.xz 22992196 BLAKE2B a8aa0f386d03a5b1466166ac7c40989c228351ccf0949a9b462b4d4615d70ab7e1a45351299140a42baf39c317b8007733c253eb547ee1dfadb612addde11621 SHA512 46c297ec2a7a5b81d1c6e3f16486a6dc2860a07520fe2dd8871d1eb5160065bbe2cc6b0415d5352bf12284133e5817a4e429e6077182d615e969bd1a8f52ed28 DIST binutils-2.38-patches-4.tar.xz 193852 BLAKE2B 5a83e20008e58464ed563a6817a367e50684c59d08c47345cc546054269c42463d1651441720f865851e4e182e917df1a095c68e64226e0351b64e975d524096 SHA512 6657e547bb02898632cc45a8f1894be098aa7472b6725b65f95393e621abb127e468b4e50310720bf03f7e8d0a68bc2c47af76fc43aaa8f32b2e4a149c0c6290 DIST binutils-2.38.tar.xz 23651408 BLAKE2B 19ede396ec97b88e632aded2f69f4684cc5053109e06c3c4a1934944e3f0ceaa9e4a2604528a440189771f778cb5d75edd510163970eeea31afba87fa256feba SHA512 8bf0b0d193c9c010e0518ee2b2e5a830898af206510992483b427477ed178396cd210235e85fd7bd99a96fc6d5eedbeccbd48317a10f752b7336ada8b2bb826d -DIST binutils-2.39-patches-5.tar.xz 82924 BLAKE2B 2cf75f661989f22270d6afe5f3c543814eb6a331be4493016fa2871e1f10a84a123c1c51e77a19b35e46680b9fe77390cb1532ca40d470a6041fa768fed3ccd7 SHA512 4b5811b4822b3a06f590fc7d082dc0ddf18a6058ac23887254e2ee9bd63c7f06f1636e446152115c7e0b01a6c5298a0d9df6904bd1582e66504ccde80dd1ecbd +DIST binutils-2.39-patches-6.tar.xz 92380 BLAKE2B 39f490f1134fb0e7dc80924a280d3113efe0ed094ee15de97c42ab751c83d2f5aa7448966d8cbbcde722b2af4999a36c1e5aa2f37ca6d2e3942b97b6d90ff152 SHA512 213cd7a86da83987966675f3195e843d898ca4ff412dfc29fd33ed80adb7bbf80a0b2919cd8e7dd49208c73a621ab7b720970f2259418bdc82ed2a568ff62064 DIST binutils-2.39.tar.xz 25167756 BLAKE2B ac6a5296c6586d53eaadcbffc5c399a6d79edf72450b9bb8b3525ce525129cef3d2eb90c85ef3bb3270b5a03b0e1ffb8f0b705f028158726f9777ebb8685066f SHA512 68e038f339a8c21faa19a57bbc447a51c817f47c2e06d740847c6e9cc3396c025d35d5369fa8c3f8b70414757c89f0e577939ddc0d70f283182504920f53b0a3 -DIST binutils-2.40-patches-1.tar.xz 12260 BLAKE2B d525502e08012080417634fd41981550362d4d799952e89f388af2a6e5db5b80e88bfdb0b5b1d2a1bcf8ebda529eefbced8fa2ae84c7fe3ddb10184e98d4b369 SHA512 140f80be786511f63651e67bf25c2992de6a21bac00a3252dcf98becc3f9379c8070ef1380d5542bbf2e1908c50dab2c7ebb651d13bb97609594fe9fd9f1f079 +DIST binutils-2.40-patches-3.tar.xz 259432 BLAKE2B 03b9024e658a5860d54b9087f3e1cc4b417a2501d6a1744c44759bbc99cabd5938058ba2909b16cc999208187998094aa6ab5464e5ed54b87ea0b1eef007e85c SHA512 f2f3e38f5c0c2928ed0588ee42be74d43486d209b43249f73ae133c4c1f81491c86b14df2ddecbc37df6fe80b27b0eab6c3f319e44854e91596dfbd3ec37b8aa +DIST binutils-2.40-patches-4.tar.xz 264420 BLAKE2B 70acdc15f64a45cda49ebd7c252d909db2fe659f5c2c0866c50fd710415fd34bd88f9c5cd5ba07beef1e7de7fe827bb40f835fb79ff10e00fc50451e3a8cab33 SHA512 5f0a080841cb3a032cbe7b135ba38bebeae0b0e444623887bdcb92a3adcf804701524eff840f108a9544293f5ac307b4a8d9509176abfeaea6c461b2ea5c0886 +DIST binutils-2.40-patches-5.tar.xz 293628 BLAKE2B b7ed1d1fbf38b420661f984b9519b3d863da45b2a873773a521310021b0c1d5d7c24c152adb3e8a999d40f5619c0e54962114590ec9528380089977af0c30b74 SHA512 6e6df932b18ca20fe245b3ff8d3d06dbdae4daadaec3b668fa44e086d4e8ff56439681b2d810ebc74173b6348020edacb176e8c3cbf20657cce04297b97f4f83 DIST binutils-2.40.tar.xz 25241484 BLAKE2B 8d799f7c595f878b9af5b17a490021dd8b8300ac2fe0ed8574c012929d22d2d0493e003a3e631a9436e8e712da801779b777c566167fe42b0bde119ffa5ad1c2 SHA512 a37e042523bc46494d99d5637c3f3d8f9956d9477b748b3b1f6d7dfbb8d968ed52c932e88a4e946c6f77b8f48f1e1b360ca54c3d298f17193f3b4963472f6925 diff --git a/sys-devel/binutils-hppa64/binutils-hppa64-2.39-r4.ebuild b/sys-devel/binutils-hppa64/binutils-hppa64-2.39-r5.ebuild index 5076d24dc8fc..b4db6a4faa9b 100644 --- a/sys-devel/binutils-hppa64/binutils-hppa64-2.39-r4.ebuild +++ b/sys-devel/binutils-hppa64/binutils-hppa64-2.39-r5.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -22,7 +22,7 @@ REQUIRED_USE="default-gold? ( gold )" # PATCH_DEV - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/... # for the patchsets -PATCH_VER=5 +PATCH_VER=6 PATCH_DEV=dilfridge if [[ ${PV} == 9999* ]]; then diff --git a/sys-devel/binutils-hppa64/binutils-hppa64-2.40.ebuild b/sys-devel/binutils-hppa64/binutils-hppa64-2.40-r3.ebuild index a02cbef8641b..eff1e8238a1a 100644 --- a/sys-devel/binutils-hppa64/binutils-hppa64-2.40.ebuild +++ b/sys-devel/binutils-hppa64/binutils-hppa64-2.40-r3.ebuild @@ -22,7 +22,7 @@ REQUIRED_USE="default-gold? ( gold )" # PATCH_DEV - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/... # for the patchsets -PATCH_VER=1 +PATCH_VER=3 PATCH_DEV=dilfridge if [[ ${PV} == 9999* ]]; then diff --git a/sys-devel/binutils-hppa64/binutils-hppa64-2.40-r4.ebuild b/sys-devel/binutils-hppa64/binutils-hppa64-2.40-r4.ebuild new file mode 100644 index 000000000000..94f40a5347c1 --- /dev/null +++ b/sys-devel/binutils-hppa64/binutils-hppa64-2.40-r4.ebuild @@ -0,0 +1,503 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +export CTARGET=hppa64-${CHOST#*-} + +inherit libtool flag-o-matic gnuconfig multilib strip-linguas toolchain-funcs + +DESCRIPTION="Tools necessary to build programs" +HOMEPAGE="https://sourceware.org/binutils/" + +LICENSE="GPL-3+" +IUSE="cet default-gold doc gold gprofng multitarget +nls pgo +plugins static-libs test vanilla" +REQUIRED_USE="default-gold? ( gold )" + +# Variables that can be set here (ignored for live ebuilds) +# PATCH_VER - the patchset version +# Default: empty, no patching +# PATCH_BINUTILS_VER - the binutils version in the patchset name +# - Default: PV +# PATCH_DEV - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/... +# for the patchsets + +PATCH_VER=4 +PATCH_DEV=dilfridge + +if [[ ${PV} == 9999* ]]; then + inherit git-r3 + SLOT=${PV} +else + PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}} + PATCH_DEV=${PATCH_DEV:-dilfridge} + SRC_URI="mirror://gnu/binutils/binutils-${PV}.tar.xz https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PV}.tar.xz" + [[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI} + https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz" + SLOT=$(ver_cut 1-2) + KEYWORDS="-* ~hppa" +fi + +# +# The cross-compile logic +# +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi +is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; } + +# +# The dependencies +# +RDEPEND=" + >=sys-devel/binutils-config-3 + sys-libs/zlib +" +DEPEND="${RDEPEND}" +BDEPEND=" + doc? ( sys-apps/texinfo ) + test? ( + dev-util/dejagnu + sys-devel/bc + ) + nls? ( sys-devel/gettext ) + sys-devel/flex + app-alternatives/yacc +" + +RESTRICT="!test? ( test )" + +MY_BUILDDIR="${WORKDIR}"/build +S="${WORKDIR}"/${P/-hppa64/} + +src_unpack() { + if [[ ${PV} == 9999* ]] ; then + EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/binutils-patches.git" + EGIT_CHECKOUT_DIR="${WORKDIR}"/patches-git + git-r3_src_unpack + mv patches-git/9999 patch || die + + S="${WORKDIR}"/binutils + EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git" + EGIT_CHECKOUT_DIR="${S}" + git-r3_src_unpack + else + unpack ${P/-hppa64/}.tar.xz + + cd "${WORKDIR}" || die + unpack binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz + + # _p patch versions are Gentoo specific tarballs ... + local dir=${P%_p?} + dir=${dir/-hppa64/} + + S=${WORKDIR}/${dir} + fi + + cd "${WORKDIR}" || die + mkdir -p "${MY_BUILDDIR}" || die +} + +src_prepare() { + local patchsetname + if [[ ${PV} == 9999* ]] ; then + patchsetname="from git master" + else + patchsetname="${PATCH_BINUTILS_VER}-${PATCH_VER}" + fi + + if [[ -n ${PATCH_VER} ]] || [[ ${PV} == 9999* ]] ; then + if ! use vanilla; then + einfo "Applying binutils patchset ${patchsetname}" + eapply "${WORKDIR}/patch" + einfo "Done." + fi + fi + + # Make sure our explicit libdir paths don't get clobbered, bug #562460 + sed -i \ + -e 's:@bfdlibdir@:@libdir@:g' \ + -e 's:@bfdincludedir@:@includedir@:g' \ + {bfd,opcodes}/Makefile.in || die + + # Fix locale issues if possible, bug #122216 + if [[ -e ${FILESDIR}/binutils-configure-LANG.patch ]] ; then + einfo "Fixing misc issues in configure files" + for f in $(find "${S}" -name configure -exec grep -l 'autoconf version 2.13' {} +) ; do + ebegin " Updating ${f/${S}\/}" + patch "${f}" "${FILESDIR}"/binutils-configure-LANG.patch >& "${T}"/configure-patch.log \ + || eerror "Please file a bug about this" + eend $? + done + fi + + # Apply things from PATCHES and user dirs + default + + # Run misc portage update scripts + gnuconfig_update + elibtoolize --portage --no-uclibc +} + +toolchain-binutils_bugurl() { + printf "https://bugs.gentoo.org/" +} +toolchain-binutils_pkgversion() { + printf "Gentoo ${PV}" + [[ -n ${PATCH_VER} ]] && printf " p${PATCH_VER}" +} + +src_configure() { + # See https://www.gnu.org/software/make/manual/html_node/Parallel-Output.html + # Avoid really confusing logs from subconfigure spam, makes logs far + # more legible. + MAKEOPTS="--output-sync=line ${MAKEOPTS}" + + # Setup some paths + LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV} + INCPATH=${LIBPATH}/include + DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV} + if is_cross ; then + TOOLPATH=/usr/${CHOST}/${CTARGET} + else + TOOLPATH=/usr/${CTARGET} + fi + BINPATH=${TOOLPATH}/binutils-bin/${PV} + + # Make sure we filter $LINGUAS so that only ones that + # actually work make it through, bug #42033 + strip-linguas -u */po + + # Keep things sane + strip-flags + + use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152 + + local x + echo + for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do + einfo "$(printf '%10s' ${x}:) ${!x}" + done + echo + + cd "${MY_BUILDDIR}" || die + local myconf=() + + if use plugins ; then + myconf+=( --enable-plugins ) + fi + # enable gold (installed as ld.gold) and ld's plugin architecture + if use gold ; then + myconf+=( --enable-gold ) + if use default-gold; then + myconf+=( --enable-gold=default ) + fi + fi + + if use nls ; then + myconf+=( --without-included-gettext ) + else + myconf+=( --disable-nls ) + fi + + myconf+=( --with-system-zlib ) + + # For bi-arch systems, enable a 64bit bfd. This matches the bi-arch + # logic in toolchain.eclass. bug #446946 + # + # We used to do it for everyone, but it's slow on 32bit arches. bug #438522 + case $(tc-arch) in + ppc|sparc|x86) myconf+=( --enable-64-bit-bfd ) ;; + esac + + use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd ) + + [[ -n ${CBUILD} ]] && myconf+=( --build=${CBUILD} ) + + is_cross && myconf+=( + --with-sysroot="${EPREFIX}"/usr/${CTARGET} + --enable-poison-system-directories + ) + + myconf+=( --enable-secureplt ) + + # mips can't do hash-style=gnu ... + if [[ $(tc-arch) != mips ]] ; then + myconf+=( --enable-default-hash-style=gnu ) + fi + + myconf+=( + --prefix="${EPREFIX}"/usr + --host=${CHOST} + --target=${CTARGET} + --datadir="${EPREFIX}"${DATAPATH} + --datarootdir="${EPREFIX}"${DATAPATH} + --infodir="${EPREFIX}"${DATAPATH}/info + --mandir="${EPREFIX}"${DATAPATH}/man + --bindir="${EPREFIX}"${BINPATH} + --libdir="${EPREFIX}"${LIBPATH} + --libexecdir="${EPREFIX}"${LIBPATH} + --includedir="${EPREFIX}"${INCPATH} + --enable-obsolete + --enable-shared + --enable-threads + # Newer versions (>=2.27) offer a configure flag now. + --enable-relro + # Newer versions (>=2.24) make this an explicit option, bug #497268 + --enable-install-libiberty + # Available from 2.35 on + --enable-textrel-check=warning + + # These hardening options are available from 2.39+ but + # they unconditionally enable the behaviour even on arches + # where e.g. execstacks can't be avoided. + # See https://sourceware.org/bugzilla/show_bug.cgi?id=29592. + #--enable-warn-execstack + #--enable-warn-rwx-segments + #--disable-default-execstack (or is it --enable-default-execstack=no? docs are confusing) + + # Things to think about + #--enable-deterministic-archives + + # Works better than vapier's patch, bug #808787 + --enable-new-dtags + + --disable-jansson + --disable-werror + --with-bugurl="$(toolchain-binutils_bugurl)" + --with-pkgversion="$(toolchain-binutils_pkgversion)" + $(use_enable static-libs static) + # Disable modules that are in a combined binutils/gdb tree, bug #490566 + --disable-{gdb,libdecnumber,readline,sim} + # Strip out broken static link flags. + # https://gcc.gnu.org/PR56750 + --without-stage1-ldflags + # Change SONAME to avoid conflict across + # {native,cross}/binutils, binutils-libs. bug #666100 + --with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st) + + # Avoid automagic dependency on (currently prefix) systems + # systems with debuginfod library, bug #754753 + --without-debuginfod + + # Avoid automagic dev-libs/msgpack dep, bug #865875 + --without-msgpack + + # 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) + + # We can enable this by default in future, but it's brand new + # in 2.39 with several bugs: + # - Doesn't build on musl (https://sourceware.org/bugzilla/show_bug.cgi?id=29477) + # - No man pages (https://sourceware.org/bugzilla/show_bug.cgi?id=29521) + # - Broken at runtime without Java (https://sourceware.org/bugzilla/show_bug.cgi?id=29479) + # - binutils-config (and this ebuild?) needs adaptation first (https://bugs.gentoo.org/865113) + $(use_enable gprofng) + ) + + if ! is_cross ; then + # No LTO for HPPA64 right now as we don't build kgcc64 with LTO support. + myconf+=( $(use_enable pgo pgo-build) ) + + if use pgo ; then + export BUILD_CFLAGS="${CFLAGS}" + fi + fi + + ECONF_SOURCE="${S}" econf "${myconf[@]}" || die + + # Prevent makeinfo from running if doc is unset. + if ! use doc ; then + sed -i \ + -e '/^MAKEINFO/s:=.*:= true:' \ + Makefile || die + fi +} + +src_compile() { + cd "${MY_BUILDDIR}" || die + + # see Note [tooldir hack for ldscripts] + emake V=1 tooldir="${EPREFIX}${TOOLPATH}" all + + # only build info pages if the user wants them + if use doc ; then + emake V=1 info + fi + + # we nuke the manpages when we're left with junk + # (like when we bootstrap, no perl -> no manpages) + find . -name '*.1' -a -size 0 -delete +} + +src_test() { + cd "${MY_BUILDDIR}" || die + + # bug #637066 + filter-flags -Wall -Wreturn-type + + emake -k V=1 check +} + +src_install() { + local x d + + cd "${MY_BUILDDIR}" || die + + # see Note [tooldir hack for ldscripts] + emake V=1 DESTDIR="${D}" tooldir="${EPREFIX}${LIBPATH}" install + rm -rf "${ED}"/${LIBPATH}/bin || die + use static-libs || find "${ED}" -name '*.la' -delete + + # Newer versions of binutils get fancy with ${LIBPATH}, bug #171905 + cd "${ED}"/${LIBPATH} || die + for d in ../* ; do + [[ ${d} == ../${PV} ]] && continue + mv ${d}/* . || die + rmdir ${d} || die + done + + # Now we collect everything intp the proper SLOT-ed dirs + # When something is built to cross-compile, it installs into + # /usr/$CHOST/ by default ... we have to 'fix' that :) + if is_cross ; then + cd "${ED}"/${BINPATH} || die + for x in * ; do + mv ${x} ${x/${CTARGET}-} || die + done + + if [[ -d ${ED}/usr/${CHOST}/${CTARGET} ]] ; then + # No die for now, dies on hppa? + mv "${ED}"/usr/${CHOST}/${CTARGET}/include "${ED}"/${INCPATH} + mv "${ED}"/usr/${CHOST}/${CTARGET}/lib/* "${ED}"/${LIBPATH}/ + rm -r "${ED}"/usr/${CHOST}/{include,lib} + fi + fi + + insinto ${INCPATH} + local libiberty_headers=( + # Not all the libiberty headers. See libiberty/Makefile.in:install_to_libdir. + demangle.h + dyn-string.h + fibheap.h + hashtab.h + libiberty.h + objalloc.h + splay-tree.h + ) + doins "${libiberty_headers[@]/#/${S}/include/}" + if [[ -d ${ED}/${LIBPATH}/lib ]] ; then + # TODO: add || die here, fails on hppa? + mv "${ED}"/${LIBPATH}/lib/* "${ED}"/${LIBPATH}/ + rm -r "${ED}"/${LIBPATH}/lib + fi + + # Generate an env.d entry for this binutils + insinto /etc/env.d/binutils + cat <<-EOF > "${T}"/env.d + TARGET="${CTARGET}" + VER="${PV}" + LIBPATH="${EPREFIX}${LIBPATH}" + EOF + newins "${T}"/env.d ${CTARGET}-${PV} + + # Handle documentation + if ! is_cross ; then + cd "${S}" || die + dodoc README + + docinto bfd + dodoc bfd/ChangeLog* bfd/README bfd/PORTING bfd/TODO + + docinto binutils + dodoc binutils/ChangeLog binutils/NEWS binutils/README + + docinto gas + dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/NEWS gas/README* + + docinto gprof + dodoc gprof/ChangeLog* gprof/TEST gprof/TODO gprof/bbconv.pl + + docinto ld + dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO + + docinto libiberty + dodoc libiberty/ChangeLog* libiberty/README + + docinto opcodes + dodoc opcodes/ChangeLog* + fi + + # Remove shared info pages + rm -f "${ED}"/${DATAPATH}/info/{dir,configure.info,standards.info} || die + + # Trim all empty dirs + find "${ED}" -depth -type d -exec rmdir {} + 2>/dev/null + + # the hppa64 hack; this should go into 9999 as a PN-conditional + # tweak the default fake list a little bit + cd "${D}"/etc/env.d/binutils + sed -i '/FAKE_TARGETS=/s:"$: hppa64-linux":' ${CTARGET}-${PV} || die +} + +pkg_postinst() { + # Make sure this ${CTARGET} has a binutils version selected + [[ -e ${EROOT}/etc/env.d/binutils/config-${CTARGET} ]] && return 0 + binutils-config ${CTARGET}-${PV} +} + +pkg_postrm() { + local current_profile=$(binutils-config -c ${CTARGET}) + + # If no other versions exist, then uninstall for this + # target ... otherwise, switch to the newest version + # Note: only do this if this version is unmerged. We + # rerun binutils-config if this is a remerge, as + # we want the mtimes on the symlinks updated (if + # it is the same as the current selected profile) + if [[ ! -e ${EPREFIX}${BINPATH}/ld ]] && [[ ${current_profile} == ${CTARGET}-${PV} ]] ; then + local choice=$(binutils-config -l | grep ${CTARGET} | awk '{print $2}') + choice=${choice//$'\n'/ } + choice=${choice/* } + if [[ -z ${choice} ]] ; then + binutils-config -u ${CTARGET} + else + binutils-config ${choice} + fi + elif [[ $(CHOST=${CTARGET} binutils-config -c) == ${CTARGET}-${PV} ]] ; then + binutils-config ${CTARGET}-${PV} + fi +} + +# Note [slotting support] +# ----------------------- +# Gentoo's layout for binutils files is non-standard as Gentoo +# supports slotted installation for binutils. Many tools +# still expect binutils to reside in known locations. +# binutils-config package restores symlinks into known locations, +# like: +# /usr/bin/${CTARGET}-<tool> +# /usr/bin/${CHOST}/${CTARGET}/lib/ldscrips +# /usr/include/ +# +# Note [tooldir hack for ldscripts] +# --------------------------------- +# Build system does not allow ./configure to tweak every location +# we need for slotting binutils hence all the shuffling in +# src_install(). This note is about SCRIPTDIR define handling. +# +# SCRIPTDIR defines 'ldscripts/' directory location. SCRIPTDIR value +# is set at build-time in ld/Makefile.am as: 'scriptdir = $(tooldir)/lib' +# and hardcoded as -DSCRIPTDIR='"$(scriptdir)"' at compile time. +# Thus we can't just move files around after compilation finished. +# +# Our goal is the following: +# - at build-time set scriptdir to point to symlinked location: +# ${TOOLPATH}: /usr/${CHOST} (or /usr/${CHOST}/${CTARGET} for cross-case) +# - at install-time set scriptdir to point to slotted location: +# ${LIBPATH}: /usr/$(get_libdir)/binutils/${CTARGET}/${PV} diff --git a/sys-devel/binutils-hppa64/binutils-hppa64-2.40-r5.ebuild b/sys-devel/binutils-hppa64/binutils-hppa64-2.40-r5.ebuild new file mode 100644 index 000000000000..7fd42451e5aa --- /dev/null +++ b/sys-devel/binutils-hppa64/binutils-hppa64-2.40-r5.ebuild @@ -0,0 +1,503 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +export CTARGET=hppa64-${CHOST#*-} + +inherit libtool flag-o-matic gnuconfig multilib strip-linguas toolchain-funcs + +DESCRIPTION="Tools necessary to build programs" +HOMEPAGE="https://sourceware.org/binutils/" + +LICENSE="GPL-3+" +IUSE="cet default-gold doc gold gprofng multitarget +nls pgo +plugins static-libs test vanilla" +REQUIRED_USE="default-gold? ( gold )" + +# Variables that can be set here (ignored for live ebuilds) +# PATCH_VER - the patchset version +# Default: empty, no patching +# PATCH_BINUTILS_VER - the binutils version in the patchset name +# - Default: PV +# PATCH_DEV - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/... +# for the patchsets + +PATCH_VER=5 +PATCH_DEV=dilfridge + +if [[ ${PV} == 9999* ]]; then + inherit git-r3 + SLOT=${PV} +else + PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}} + PATCH_DEV=${PATCH_DEV:-dilfridge} + SRC_URI="mirror://gnu/binutils/binutils-${PV}.tar.xz https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PV}.tar.xz" + [[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI} + https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz" + SLOT=$(ver_cut 1-2) + KEYWORDS="-* ~hppa" +fi + +# +# The cross-compile logic +# +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi +is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; } + +# +# The dependencies +# +RDEPEND=" + >=sys-devel/binutils-config-3 + sys-libs/zlib +" +DEPEND="${RDEPEND}" +BDEPEND=" + doc? ( sys-apps/texinfo ) + test? ( + dev-util/dejagnu + sys-devel/bc + ) + nls? ( sys-devel/gettext ) + sys-devel/flex + app-alternatives/yacc +" + +RESTRICT="!test? ( test )" + +MY_BUILDDIR="${WORKDIR}"/build +S="${WORKDIR}"/${P/-hppa64/} + +src_unpack() { + if [[ ${PV} == 9999* ]] ; then + EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/binutils-patches.git" + EGIT_CHECKOUT_DIR="${WORKDIR}"/patches-git + git-r3_src_unpack + mv patches-git/9999 patch || die + + S="${WORKDIR}"/binutils + EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git" + EGIT_CHECKOUT_DIR="${S}" + git-r3_src_unpack + else + unpack ${P/-hppa64/}.tar.xz + + cd "${WORKDIR}" || die + unpack binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz + + # _p patch versions are Gentoo specific tarballs ... + local dir=${P%_p?} + dir=${dir/-hppa64/} + + S=${WORKDIR}/${dir} + fi + + cd "${WORKDIR}" || die + mkdir -p "${MY_BUILDDIR}" || die +} + +src_prepare() { + local patchsetname + if [[ ${PV} == 9999* ]] ; then + patchsetname="from git master" + else + patchsetname="${PATCH_BINUTILS_VER}-${PATCH_VER}" + fi + + if [[ -n ${PATCH_VER} ]] || [[ ${PV} == 9999* ]] ; then + if ! use vanilla; then + einfo "Applying binutils patchset ${patchsetname}" + eapply "${WORKDIR}/patch" + einfo "Done." + fi + fi + + # Make sure our explicit libdir paths don't get clobbered, bug #562460 + sed -i \ + -e 's:@bfdlibdir@:@libdir@:g' \ + -e 's:@bfdincludedir@:@includedir@:g' \ + {bfd,opcodes}/Makefile.in || die + + # Fix locale issues if possible, bug #122216 + if [[ -e ${FILESDIR}/binutils-configure-LANG.patch ]] ; then + einfo "Fixing misc issues in configure files" + for f in $(find "${S}" -name configure -exec grep -l 'autoconf version 2.13' {} +) ; do + ebegin " Updating ${f/${S}\/}" + patch "${f}" "${FILESDIR}"/binutils-configure-LANG.patch >& "${T}"/configure-patch.log \ + || eerror "Please file a bug about this" + eend $? + done + fi + + # Apply things from PATCHES and user dirs + default + + # Run misc portage update scripts + gnuconfig_update + elibtoolize --portage --no-uclibc +} + +toolchain-binutils_bugurl() { + printf "https://bugs.gentoo.org/" +} +toolchain-binutils_pkgversion() { + printf "Gentoo ${PV}" + [[ -n ${PATCH_VER} ]] && printf " p${PATCH_VER}" +} + +src_configure() { + # See https://www.gnu.org/software/make/manual/html_node/Parallel-Output.html + # Avoid really confusing logs from subconfigure spam, makes logs far + # more legible. + MAKEOPTS="--output-sync=line ${MAKEOPTS}" + + # Setup some paths + LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV} + INCPATH=${LIBPATH}/include + DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV} + if is_cross ; then + TOOLPATH=/usr/${CHOST}/${CTARGET} + else + TOOLPATH=/usr/${CTARGET} + fi + BINPATH=${TOOLPATH}/binutils-bin/${PV} + + # Make sure we filter $LINGUAS so that only ones that + # actually work make it through, bug #42033 + strip-linguas -u */po + + # Keep things sane + strip-flags + + use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152 + + local x + echo + for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do + einfo "$(printf '%10s' ${x}:) ${!x}" + done + echo + + cd "${MY_BUILDDIR}" || die + local myconf=() + + if use plugins ; then + myconf+=( --enable-plugins ) + fi + # enable gold (installed as ld.gold) and ld's plugin architecture + if use gold ; then + myconf+=( --enable-gold ) + if use default-gold; then + myconf+=( --enable-gold=default ) + fi + fi + + if use nls ; then + myconf+=( --without-included-gettext ) + else + myconf+=( --disable-nls ) + fi + + myconf+=( --with-system-zlib ) + + # For bi-arch systems, enable a 64bit bfd. This matches the bi-arch + # logic in toolchain.eclass. bug #446946 + # + # We used to do it for everyone, but it's slow on 32bit arches. bug #438522 + case $(tc-arch) in + ppc|sparc|x86) myconf+=( --enable-64-bit-bfd ) ;; + esac + + use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd ) + + [[ -n ${CBUILD} ]] && myconf+=( --build=${CBUILD} ) + + is_cross && myconf+=( + --with-sysroot="${EPREFIX}"/usr/${CTARGET} + --enable-poison-system-directories + ) + + myconf+=( --enable-secureplt ) + + # mips can't do hash-style=gnu ... + if [[ $(tc-arch) != mips ]] ; then + myconf+=( --enable-default-hash-style=gnu ) + fi + + myconf+=( + --prefix="${EPREFIX}"/usr + --host=${CHOST} + --target=${CTARGET} + --datadir="${EPREFIX}"${DATAPATH} + --datarootdir="${EPREFIX}"${DATAPATH} + --infodir="${EPREFIX}"${DATAPATH}/info + --mandir="${EPREFIX}"${DATAPATH}/man + --bindir="${EPREFIX}"${BINPATH} + --libdir="${EPREFIX}"${LIBPATH} + --libexecdir="${EPREFIX}"${LIBPATH} + --includedir="${EPREFIX}"${INCPATH} + --enable-obsolete + --enable-shared + --enable-threads + # Newer versions (>=2.27) offer a configure flag now. + --enable-relro + # Newer versions (>=2.24) make this an explicit option, bug #497268 + --enable-install-libiberty + # Available from 2.35 on + --enable-textrel-check=warning + + # These hardening options are available from 2.39+ but + # they unconditionally enable the behaviour even on arches + # where e.g. execstacks can't be avoided. + # See https://sourceware.org/bugzilla/show_bug.cgi?id=29592. + #--enable-warn-execstack + #--enable-warn-rwx-segments + #--disable-default-execstack (or is it --enable-default-execstack=no? docs are confusing) + + # Things to think about + #--enable-deterministic-archives + + # Works better than vapier's patch, bug #808787 + --enable-new-dtags + + --disable-jansson + --disable-werror + --with-bugurl="$(toolchain-binutils_bugurl)" + --with-pkgversion="$(toolchain-binutils_pkgversion)" + $(use_enable static-libs static) + # Disable modules that are in a combined binutils/gdb tree, bug #490566 + --disable-{gdb,libdecnumber,readline,sim} + # Strip out broken static link flags. + # https://gcc.gnu.org/PR56750 + --without-stage1-ldflags + # Change SONAME to avoid conflict across + # {native,cross}/binutils, binutils-libs. bug #666100 + --with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st) + + # Avoid automagic dependency on (currently prefix) systems + # systems with debuginfod library, bug #754753 + --without-debuginfod + + # Avoid automagic dev-libs/msgpack dep, bug #865875 + --without-msgpack + + # 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) + + # We can enable this by default in future, but it's brand new + # in 2.39 with several bugs: + # - Doesn't build on musl (https://sourceware.org/bugzilla/show_bug.cgi?id=29477) + # - No man pages (https://sourceware.org/bugzilla/show_bug.cgi?id=29521) + # - Broken at runtime without Java (https://sourceware.org/bugzilla/show_bug.cgi?id=29479) + # - binutils-config (and this ebuild?) needs adaptation first (https://bugs.gentoo.org/865113) + $(use_enable gprofng) + ) + + if ! is_cross ; then + # No LTO for HPPA64 right now as we don't build kgcc64 with LTO support. + myconf+=( $(use_enable pgo pgo-build) ) + + if use pgo ; then + export BUILD_CFLAGS="${CFLAGS}" + fi + fi + + ECONF_SOURCE="${S}" econf "${myconf[@]}" || die + + # Prevent makeinfo from running if doc is unset. + if ! use doc ; then + sed -i \ + -e '/^MAKEINFO/s:=.*:= true:' \ + Makefile || die + fi +} + +src_compile() { + cd "${MY_BUILDDIR}" || die + + # see Note [tooldir hack for ldscripts] + emake V=1 tooldir="${EPREFIX}${TOOLPATH}" all + + # only build info pages if the user wants them + if use doc ; then + emake V=1 info + fi + + # we nuke the manpages when we're left with junk + # (like when we bootstrap, no perl -> no manpages) + find . -name '*.1' -a -size 0 -delete +} + +src_test() { + cd "${MY_BUILDDIR}" || die + + # bug #637066 + filter-flags -Wall -Wreturn-type + + emake -k V=1 check +} + +src_install() { + local x d + + cd "${MY_BUILDDIR}" || die + + # see Note [tooldir hack for ldscripts] + emake V=1 DESTDIR="${D}" tooldir="${EPREFIX}${LIBPATH}" install + rm -rf "${ED}"/${LIBPATH}/bin || die + use static-libs || find "${ED}" -name '*.la' -delete + + # Newer versions of binutils get fancy with ${LIBPATH}, bug #171905 + cd "${ED}"/${LIBPATH} || die + for d in ../* ; do + [[ ${d} == ../${PV} ]] && continue + mv ${d}/* . || die + rmdir ${d} || die + done + + # Now we collect everything intp the proper SLOT-ed dirs + # When something is built to cross-compile, it installs into + # /usr/$CHOST/ by default ... we have to 'fix' that :) + if is_cross ; then + cd "${ED}"/${BINPATH} || die + for x in * ; do + mv ${x} ${x/${CTARGET}-} || die + done + + if [[ -d ${ED}/usr/${CHOST}/${CTARGET} ]] ; then + # No die for now, dies on hppa? + mv "${ED}"/usr/${CHOST}/${CTARGET}/include "${ED}"/${INCPATH} + mv "${ED}"/usr/${CHOST}/${CTARGET}/lib/* "${ED}"/${LIBPATH}/ + rm -r "${ED}"/usr/${CHOST}/{include,lib} + fi + fi + + insinto ${INCPATH} + local libiberty_headers=( + # Not all the libiberty headers. See libiberty/Makefile.in:install_to_libdir. + demangle.h + dyn-string.h + fibheap.h + hashtab.h + libiberty.h + objalloc.h + splay-tree.h + ) + doins "${libiberty_headers[@]/#/${S}/include/}" + if [[ -d ${ED}/${LIBPATH}/lib ]] ; then + # TODO: add || die here, fails on hppa? + mv "${ED}"/${LIBPATH}/lib/* "${ED}"/${LIBPATH}/ + rm -r "${ED}"/${LIBPATH}/lib + fi + + # Generate an env.d entry for this binutils + insinto /etc/env.d/binutils + cat <<-EOF > "${T}"/env.d + TARGET="${CTARGET}" + VER="${PV}" + LIBPATH="${EPREFIX}${LIBPATH}" + EOF + newins "${T}"/env.d ${CTARGET}-${PV} + + # Handle documentation + if ! is_cross ; then + cd "${S}" || die + dodoc README + + docinto bfd + dodoc bfd/ChangeLog* bfd/README bfd/PORTING bfd/TODO + + docinto binutils + dodoc binutils/ChangeLog binutils/NEWS binutils/README + + docinto gas + dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/NEWS gas/README* + + docinto gprof + dodoc gprof/ChangeLog* gprof/TEST gprof/TODO gprof/bbconv.pl + + docinto ld + dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO + + docinto libiberty + dodoc libiberty/ChangeLog* libiberty/README + + docinto opcodes + dodoc opcodes/ChangeLog* + fi + + # Remove shared info pages + rm -f "${ED}"/${DATAPATH}/info/{dir,configure.info,standards.info} || die + + # Trim all empty dirs + find "${ED}" -depth -type d -exec rmdir {} + 2>/dev/null + + # the hppa64 hack; this should go into 9999 as a PN-conditional + # tweak the default fake list a little bit + cd "${D}"/etc/env.d/binutils + sed -i '/FAKE_TARGETS=/s:"$: hppa64-linux":' ${CTARGET}-${PV} || die +} + +pkg_postinst() { + # Make sure this ${CTARGET} has a binutils version selected + [[ -e ${EROOT}/etc/env.d/binutils/config-${CTARGET} ]] && return 0 + binutils-config ${CTARGET}-${PV} +} + +pkg_postrm() { + local current_profile=$(binutils-config -c ${CTARGET}) + + # If no other versions exist, then uninstall for this + # target ... otherwise, switch to the newest version + # Note: only do this if this version is unmerged. We + # rerun binutils-config if this is a remerge, as + # we want the mtimes on the symlinks updated (if + # it is the same as the current selected profile) + if [[ ! -e ${EPREFIX}${BINPATH}/ld ]] && [[ ${current_profile} == ${CTARGET}-${PV} ]] ; then + local choice=$(binutils-config -l | grep ${CTARGET} | awk '{print $2}') + choice=${choice//$'\n'/ } + choice=${choice/* } + if [[ -z ${choice} ]] ; then + binutils-config -u ${CTARGET} + else + binutils-config ${choice} + fi + elif [[ $(CHOST=${CTARGET} binutils-config -c) == ${CTARGET}-${PV} ]] ; then + binutils-config ${CTARGET}-${PV} + fi +} + +# Note [slotting support] +# ----------------------- +# Gentoo's layout for binutils files is non-standard as Gentoo +# supports slotted installation for binutils. Many tools +# still expect binutils to reside in known locations. +# binutils-config package restores symlinks into known locations, +# like: +# /usr/bin/${CTARGET}-<tool> +# /usr/bin/${CHOST}/${CTARGET}/lib/ldscrips +# /usr/include/ +# +# Note [tooldir hack for ldscripts] +# --------------------------------- +# Build system does not allow ./configure to tweak every location +# we need for slotting binutils hence all the shuffling in +# src_install(). This note is about SCRIPTDIR define handling. +# +# SCRIPTDIR defines 'ldscripts/' directory location. SCRIPTDIR value +# is set at build-time in ld/Makefile.am as: 'scriptdir = $(tooldir)/lib' +# and hardcoded as -DSCRIPTDIR='"$(scriptdir)"' at compile time. +# Thus we can't just move files around after compilation finished. +# +# Our goal is the following: +# - at build-time set scriptdir to point to symlinked location: +# ${TOOLPATH}: /usr/${CHOST} (or /usr/${CHOST}/${CTARGET} for cross-case) +# - at install-time set scriptdir to point to slotted location: +# ${LIBPATH}: /usr/$(get_libdir)/binutils/${CTARGET}/${PV} diff --git a/sys-devel/binutils/Manifest b/sys-devel/binutils/Manifest index 8ce6050a8086..dfb6e0e93003 100644 --- a/sys-devel/binutils/Manifest +++ b/sys-devel/binutils/Manifest @@ -12,7 +12,9 @@ DIST binutils-2.37_p1-patches-2.tar.xz 31956 BLAKE2B 39c48628d0e2d7f3a8cf11be391 DIST binutils-2.37_p1.tar.xz 22992196 BLAKE2B a8aa0f386d03a5b1466166ac7c40989c228351ccf0949a9b462b4d4615d70ab7e1a45351299140a42baf39c317b8007733c253eb547ee1dfadb612addde11621 SHA512 46c297ec2a7a5b81d1c6e3f16486a6dc2860a07520fe2dd8871d1eb5160065bbe2cc6b0415d5352bf12284133e5817a4e429e6077182d615e969bd1a8f52ed28 DIST binutils-2.38-patches-4.tar.xz 193852 BLAKE2B 5a83e20008e58464ed563a6817a367e50684c59d08c47345cc546054269c42463d1651441720f865851e4e182e917df1a095c68e64226e0351b64e975d524096 SHA512 6657e547bb02898632cc45a8f1894be098aa7472b6725b65f95393e621abb127e468b4e50310720bf03f7e8d0a68bc2c47af76fc43aaa8f32b2e4a149c0c6290 DIST binutils-2.38.tar.xz 23651408 BLAKE2B 19ede396ec97b88e632aded2f69f4684cc5053109e06c3c4a1934944e3f0ceaa9e4a2604528a440189771f778cb5d75edd510163970eeea31afba87fa256feba SHA512 8bf0b0d193c9c010e0518ee2b2e5a830898af206510992483b427477ed178396cd210235e85fd7bd99a96fc6d5eedbeccbd48317a10f752b7336ada8b2bb826d -DIST binutils-2.39-patches-5.tar.xz 82924 BLAKE2B 2cf75f661989f22270d6afe5f3c543814eb6a331be4493016fa2871e1f10a84a123c1c51e77a19b35e46680b9fe77390cb1532ca40d470a6041fa768fed3ccd7 SHA512 4b5811b4822b3a06f590fc7d082dc0ddf18a6058ac23887254e2ee9bd63c7f06f1636e446152115c7e0b01a6c5298a0d9df6904bd1582e66504ccde80dd1ecbd +DIST binutils-2.39-patches-6.tar.xz 92380 BLAKE2B 39f490f1134fb0e7dc80924a280d3113efe0ed094ee15de97c42ab751c83d2f5aa7448966d8cbbcde722b2af4999a36c1e5aa2f37ca6d2e3942b97b6d90ff152 SHA512 213cd7a86da83987966675f3195e843d898ca4ff412dfc29fd33ed80adb7bbf80a0b2919cd8e7dd49208c73a621ab7b720970f2259418bdc82ed2a568ff62064 DIST binutils-2.39.tar.xz 25167756 BLAKE2B ac6a5296c6586d53eaadcbffc5c399a6d79edf72450b9bb8b3525ce525129cef3d2eb90c85ef3bb3270b5a03b0e1ffb8f0b705f028158726f9777ebb8685066f SHA512 68e038f339a8c21faa19a57bbc447a51c817f47c2e06d740847c6e9cc3396c025d35d5369fa8c3f8b70414757c89f0e577939ddc0d70f283182504920f53b0a3 -DIST binutils-2.40-patches-1.tar.xz 12260 BLAKE2B d525502e08012080417634fd41981550362d4d799952e89f388af2a6e5db5b80e88bfdb0b5b1d2a1bcf8ebda529eefbced8fa2ae84c7fe3ddb10184e98d4b369 SHA512 140f80be786511f63651e67bf25c2992de6a21bac00a3252dcf98becc3f9379c8070ef1380d5542bbf2e1908c50dab2c7ebb651d13bb97609594fe9fd9f1f079 +DIST binutils-2.40-patches-3.tar.xz 259432 BLAKE2B 03b9024e658a5860d54b9087f3e1cc4b417a2501d6a1744c44759bbc99cabd5938058ba2909b16cc999208187998094aa6ab5464e5ed54b87ea0b1eef007e85c SHA512 f2f3e38f5c0c2928ed0588ee42be74d43486d209b43249f73ae133c4c1f81491c86b14df2ddecbc37df6fe80b27b0eab6c3f319e44854e91596dfbd3ec37b8aa +DIST binutils-2.40-patches-4.tar.xz 264420 BLAKE2B 70acdc15f64a45cda49ebd7c252d909db2fe659f5c2c0866c50fd710415fd34bd88f9c5cd5ba07beef1e7de7fe827bb40f835fb79ff10e00fc50451e3a8cab33 SHA512 5f0a080841cb3a032cbe7b135ba38bebeae0b0e444623887bdcb92a3adcf804701524eff840f108a9544293f5ac307b4a8d9509176abfeaea6c461b2ea5c0886 +DIST binutils-2.40-patches-5.tar.xz 293628 BLAKE2B b7ed1d1fbf38b420661f984b9519b3d863da45b2a873773a521310021b0c1d5d7c24c152adb3e8a999d40f5619c0e54962114590ec9528380089977af0c30b74 SHA512 6e6df932b18ca20fe245b3ff8d3d06dbdae4daadaec3b668fa44e086d4e8ff56439681b2d810ebc74173b6348020edacb176e8c3cbf20657cce04297b97f4f83 DIST binutils-2.40.tar.xz 25241484 BLAKE2B 8d799f7c595f878b9af5b17a490021dd8b8300ac2fe0ed8574c012929d22d2d0493e003a3e631a9436e8e712da801779b777c566167fe42b0bde119ffa5ad1c2 SHA512 a37e042523bc46494d99d5637c3f3d8f9956d9477b748b3b1f6d7dfbb8d968ed52c932e88a4e946c6f77b8f48f1e1b360ca54c3d298f17193f3b4963472f6925 diff --git a/sys-devel/binutils/binutils-2.39-r4.ebuild b/sys-devel/binutils/binutils-2.39-r5.ebuild index 3adccc27a417..c1b0195faed3 100644 --- a/sys-devel/binutils/binutils-2.39-r4.ebuild +++ b/sys-devel/binutils/binutils-2.39-r5.ebuild @@ -20,7 +20,7 @@ REQUIRED_USE="default-gold? ( gold )" # PATCH_DEV - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/... # for the patchsets -PATCH_VER=5 +PATCH_VER=6 PATCH_DEV=dilfridge if [[ ${PV} == 9999* ]]; then diff --git a/sys-devel/binutils/binutils-2.40.ebuild b/sys-devel/binutils/binutils-2.40-r3.ebuild index 0d5192d3560a..3a322d6bdb88 100644 --- a/sys-devel/binutils/binutils-2.40.ebuild +++ b/sys-devel/binutils/binutils-2.40-r3.ebuild @@ -19,7 +19,7 @@ IUSE="cet doc gold gprofng multitarget +nls pgo +plugins static-libs test vanill # PATCH_DEV - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/... # for the patchsets -PATCH_VER=1 +PATCH_VER=3 PATCH_DEV=dilfridge if [[ ${PV} == 9999* ]]; then @@ -112,6 +112,10 @@ src_prepare() { einfo "Applying binutils patchset ${patchsetname}" eapply "${WORKDIR}/patch" einfo "Done." + + # This is applied conditionally for now just out of caution. + # It should be okay on non-prefix systems though. See bug #892549. + use prefix && eapply "${FILESDIR}"/binutils-2.40-linker-search-path.patch fi fi @@ -174,6 +178,13 @@ src_configure() { use cet && filter-flags -mindirect-branch -mindirect-branch=* use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152 + # ideally we want !tc-ld-is-bfd for best future-proofing, but it needs + # https://github.com/gentoo/gentoo/pull/28355 + # mold needs this too but right now tc-ld-is-mold is also not available + if tc-ld-is-lld; then + append-ldflags -Wl,--undefined-version + fi + local x echo for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do diff --git a/sys-devel/binutils/binutils-2.40-r4.ebuild b/sys-devel/binutils/binutils-2.40-r4.ebuild new file mode 100644 index 000000000000..987ca13d2440 --- /dev/null +++ b/sys-devel/binutils/binutils-2.40-r4.ebuild @@ -0,0 +1,503 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit libtool flag-o-matic gnuconfig strip-linguas toolchain-funcs + +DESCRIPTION="Tools necessary to build programs" +HOMEPAGE="https://sourceware.org/binutils/" + +LICENSE="GPL-3+" +IUSE="cet doc gold gprofng multitarget +nls pgo +plugins static-libs test vanilla zstd" + +# Variables that can be set here (ignored for live ebuilds) +# PATCH_VER - the patchset version +# Default: empty, no patching +# PATCH_BINUTILS_VER - the binutils version in the patchset name +# - Default: PV +# PATCH_DEV - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/... +# for the patchsets + +PATCH_VER=4 +PATCH_DEV=dilfridge + +if [[ ${PV} == 9999* ]]; then + inherit git-r3 + SLOT=${PV} +else + PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}} + PATCH_DEV=${PATCH_DEV:-dilfridge} + SRC_URI="mirror://gnu/binutils/binutils-${PV}.tar.xz https://sourceware.org/pub/binutils/releases/binutils-${PV}.tar.xz https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PV}.tar.xz" + [[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI} + https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz" + SLOT=$(ver_cut 1-2) + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +# +# The cross-compile logic +# +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi +is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; } + +# +# The dependencies +# +RDEPEND=" + >=sys-devel/binutils-config-3 + sys-libs/zlib + zstd? ( app-arch/zstd:= ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + doc? ( sys-apps/texinfo ) + test? ( + dev-util/dejagnu + sys-devel/bc + ) + nls? ( sys-devel/gettext ) + zstd? ( virtual/pkgconfig ) + sys-devel/flex + app-alternatives/yacc +" + +RESTRICT="!test? ( test )" + +MY_BUILDDIR=${WORKDIR}/build + +src_unpack() { + if [[ ${PV} == 9999* ]] ; then + EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/binutils-patches.git" + EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git + git-r3_src_unpack + mv patches-git/9999 patch || die + + EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git" + S=${WORKDIR}/binutils + EGIT_CHECKOUT_DIR=${S} + git-r3_src_unpack + else + unpack ${P/-hppa64/}.tar.xz + + cd "${WORKDIR}" || die + unpack binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz + + # _p patch versions are Gentoo specific tarballs ... + local dir=${P%_p?} + dir=${dir/-hppa64/} + + S=${WORKDIR}/${dir} + fi + + cd "${WORKDIR}" || die + mkdir -p "${MY_BUILDDIR}" || die +} + +src_prepare() { + local patchsetname + if [[ ${PV} == 9999* ]] ; then + patchsetname="from git master" + else + patchsetname="${PATCH_BINUTILS_VER}-${PATCH_VER}" + fi + + if [[ -n ${PATCH_VER} ]] || [[ ${PV} == 9999* ]] ; then + if ! use vanilla; then + einfo "Applying binutils patchset ${patchsetname}" + eapply "${WORKDIR}/patch" + einfo "Done." + + # This is applied conditionally for now just out of caution. + # It should be okay on non-prefix systems though. See bug #892549. + use prefix && eapply "${FILESDIR}"/binutils-2.40-linker-search-path.patch + fi + fi + + # Make sure our explicit libdir paths don't get clobbered, bug #562460 + sed -i \ + -e 's:@bfdlibdir@:@libdir@:g' \ + -e 's:@bfdincludedir@:@includedir@:g' \ + {bfd,opcodes}/Makefile.in || die + + # Fix locale issues if possible, bug #122216 + if [[ -e ${FILESDIR}/binutils-configure-LANG.patch ]] ; then + einfo "Fixing misc issues in configure files" + for f in $(find "${S}" -name configure -exec grep -l 'autoconf version 2.13' {} +) ; do + ebegin " Updating ${f/${S}\/}" + patch "${f}" "${FILESDIR}"/binutils-configure-LANG.patch >& "${T}"/configure-patch.log \ + || eerror "Please file a bug about this" + eend $? + done + fi + + # Apply things from PATCHES and user dirs + default + + # Run misc portage update scripts + gnuconfig_update + elibtoolize --portage --no-uclibc +} + +toolchain-binutils_bugurl() { + printf "https://bugs.gentoo.org/" +} +toolchain-binutils_pkgversion() { + printf "Gentoo ${PV}" + [[ -n ${PATCH_VER} ]] && printf " p${PATCH_VER}" +} + +src_configure() { + # See https://www.gnu.org/software/make/manual/html_node/Parallel-Output.html + # Avoid really confusing logs from subconfigure spam, makes logs far + # more legible. + MAKEOPTS="--output-sync=line ${MAKEOPTS}" + + # Setup some paths + LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV} + INCPATH=${LIBPATH}/include + DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV} + if is_cross ; then + TOOLPATH=/usr/${CHOST}/${CTARGET} + else + TOOLPATH=/usr/${CTARGET} + fi + BINPATH=${TOOLPATH}/binutils-bin/${PV} + + # Make sure we filter $LINGUAS so that only ones that + # actually work make it through, bug #42033 + strip-linguas -u */po + + # Keep things sane + strip-flags + use cet && filter-flags -mindirect-branch -mindirect-branch=* + use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152 + + # ideally we want !tc-ld-is-bfd for best future-proofing, but it needs + # https://github.com/gentoo/gentoo/pull/28355 + # mold needs this too but right now tc-ld-is-mold is also not available + if tc-ld-is-lld; then + append-ldflags -Wl,--undefined-version + fi + + local x + echo + for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do + einfo "$(printf '%10s' ${x}:) ${!x}" + done + echo + + cd "${MY_BUILDDIR}" || die + local myconf=() + + if use plugins ; then + myconf+=( --enable-plugins ) + fi + # enable gold (installed as ld.gold) and ld's plugin architecture + if use gold ; then + myconf+=( --enable-gold ) + fi + + if use nls ; then + myconf+=( --without-included-gettext ) + else + myconf+=( --disable-nls ) + fi + + myconf+=( --with-system-zlib ) + + # For bi-arch systems, enable a 64bit bfd. This matches the bi-arch + # logic in toolchain.eclass. bug #446946 + # + # We used to do it for everyone, but it's slow on 32bit arches. bug #438522 + case $(tc-arch) in + ppc|sparc|x86) myconf+=( --enable-64-bit-bfd ) ;; + esac + + use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd ) + + [[ -n ${CBUILD} ]] && myconf+=( --build=${CBUILD} ) + + is_cross && myconf+=( + --with-sysroot="${EPREFIX}"/usr/${CTARGET} + --enable-poison-system-directories + ) + + myconf+=( --enable-secureplt ) + + # mips can't do hash-style=gnu ... + if [[ $(tc-arch) != mips ]] ; then + myconf+=( --enable-default-hash-style=gnu ) + fi + + myconf+=( + --prefix="${EPREFIX}"/usr + --host=${CHOST} + --target=${CTARGET} + --datadir="${EPREFIX}"${DATAPATH} + --datarootdir="${EPREFIX}"${DATAPATH} + --infodir="${EPREFIX}"${DATAPATH}/info + --mandir="${EPREFIX}"${DATAPATH}/man + --bindir="${EPREFIX}"${BINPATH} + --libdir="${EPREFIX}"${LIBPATH} + --libexecdir="${EPREFIX}"${LIBPATH} + --includedir="${EPREFIX}"${INCPATH} + --enable-obsolete + --enable-shared + --enable-threads + # Newer versions (>=2.27) offer a configure flag now. + --enable-relro + # Newer versions (>=2.24) make this an explicit option, bug #497268 + --enable-install-libiberty + # Available from 2.35 on + --enable-textrel-check=warning + + # These hardening options are available from 2.39+ but + # they unconditionally enable the behaviour even on arches + # where e.g. execstacks can't be avoided. + # See https://sourceware.org/bugzilla/show_bug.cgi?id=29592. + #--enable-warn-execstack + #--enable-warn-rwx-segments + #--disable-default-execstack (or is it --enable-default-execstack=no? docs are confusing) + + # Things to think about + #--enable-deterministic-archives + + # Works better than vapier's patch, bug #808787 + --enable-new-dtags + + --disable-jansson + --disable-werror + --with-bugurl="$(toolchain-binutils_bugurl)" + --with-pkgversion="$(toolchain-binutils_pkgversion)" + $(use_enable static-libs static) + $(use_with zstd) + + # Disable modules that are in a combined binutils/gdb tree, bug #490566 + --disable-{gdb,libdecnumber,readline,sim} + # Strip out broken static link flags. + # https://gcc.gnu.org/PR56750 + --without-stage1-ldflags + # Change SONAME to avoid conflict across + # {native,cross}/binutils, binutils-libs. bug #666100 + --with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st) + + # Avoid automagic dependency on (currently prefix) systems + # systems with debuginfod library, bug #754753 + --without-debuginfod + + # Avoid automagic dev-libs/msgpack dep, bug #865875 + --without-msgpack + + # 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) + + # We can enable this by default in future, but it's brand new + # in 2.39 with several bugs: + # - Doesn't build on musl (https://sourceware.org/bugzilla/show_bug.cgi?id=29477) + # - No man pages (https://sourceware.org/bugzilla/show_bug.cgi?id=29521) + # - Broken at runtime without Java (https://sourceware.org/bugzilla/show_bug.cgi?id=29479) + # - binutils-config (and this ebuild?) needs adaptation first (https://bugs.gentoo.org/865113) + $(use_enable gprofng) + ) + + if ! is_cross ; then + myconf+=( $(use_enable pgo pgo-build lto) ) + + if use pgo ; then + export BUILD_CFLAGS="${CFLAGS}" + fi + fi + + ECONF_SOURCE="${S}" econf "${myconf[@]}" || die + + # Prevent makeinfo from running if doc is unset. + if ! use doc ; then + sed -i \ + -e '/^MAKEINFO/s:=.*:= true:' \ + Makefile || die + fi +} + +src_compile() { + cd "${MY_BUILDDIR}" || die + + # see Note [tooldir hack for ldscripts] + emake V=1 tooldir="${EPREFIX}${TOOLPATH}" all + + # only build info pages if the user wants them + if use doc ; then + emake V=1 info + fi + + # we nuke the manpages when we're left with junk + # (like when we bootstrap, no perl -> no manpages) + find . -name '*.1' -a -size 0 -delete +} + +src_test() { + cd "${MY_BUILDDIR}" || die + + # bug #637066 + filter-flags -Wall -Wreturn-type + + emake -k V=1 check +} + +src_install() { + local x d + + cd "${MY_BUILDDIR}" || die + + # see Note [tooldir hack for ldscripts] + emake V=1 DESTDIR="${D}" tooldir="${EPREFIX}${LIBPATH}" install + rm -rf "${ED}"/${LIBPATH}/bin || die + use static-libs || find "${ED}" -name '*.la' -delete + + # Newer versions of binutils get fancy with ${LIBPATH}, bug #171905 + cd "${ED}"/${LIBPATH} || die + for d in ../* ; do + [[ ${d} == ../${PV} ]] && continue + mv ${d}/* . || die + rmdir ${d} || die + done + + # Now we collect everything intp the proper SLOT-ed dirs + # When something is built to cross-compile, it installs into + # /usr/$CHOST/ by default ... we have to 'fix' that :) + if is_cross ; then + cd "${ED}"/${BINPATH} || die + for x in * ; do + mv ${x} ${x/${CTARGET}-} || die + done + + if [[ -d ${ED}/usr/${CHOST}/${CTARGET} ]] ; then + mv "${ED}"/usr/${CHOST}/${CTARGET}/include "${ED}"/${INCPATH} + mv "${ED}"/usr/${CHOST}/${CTARGET}/lib/* "${ED}"/${LIBPATH}/ + rm -r "${ED}"/usr/${CHOST}/{include,lib} + fi + fi + + insinto ${INCPATH} + local libiberty_headers=( + # Not all the libiberty headers. See libiberty/Makefile.in:install_to_libdir. + demangle.h + dyn-string.h + fibheap.h + hashtab.h + libiberty.h + objalloc.h + splay-tree.h + ) + doins "${libiberty_headers[@]/#/${S}/include/}" + if [[ -d ${ED}/${LIBPATH}/lib ]] ; then + mv "${ED}"/${LIBPATH}/lib/* "${ED}"/${LIBPATH}/ || die + rm -r "${ED}"/${LIBPATH}/lib || die + fi + + # Generate an env.d entry for this binutils + insinto /etc/env.d/binutils + cat <<-EOF > "${T}"/env.d + TARGET="${CTARGET}" + VER="${PV}" + LIBPATH="${EPREFIX}${LIBPATH}" + EOF + newins "${T}"/env.d ${CTARGET}-${PV} + + # Handle documentation + if ! is_cross ; then + cd "${S}" || die + dodoc README + + docinto bfd + dodoc bfd/ChangeLog* bfd/README bfd/PORTING bfd/TODO + + docinto binutils + dodoc binutils/ChangeLog binutils/NEWS binutils/README + + docinto gas + dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/NEWS gas/README* + + docinto gprof + dodoc gprof/ChangeLog* gprof/TEST gprof/TODO gprof/bbconv.pl + + docinto ld + dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO + + docinto libiberty + dodoc libiberty/ChangeLog* libiberty/README + + docinto opcodes + dodoc opcodes/ChangeLog* + fi + + # Remove shared info pages + rm -f "${ED}"/${DATAPATH}/info/{dir,configure.info,standards.info} + + # Trim all empty dirs + find "${ED}" -depth -type d -exec rmdir {} + 2>/dev/null +} + +pkg_postinst() { + # Make sure this ${CTARGET} has a binutils version selected + [[ -e ${EROOT}/etc/env.d/binutils/config-${CTARGET} ]] && return 0 + binutils-config ${CTARGET}-${PV} +} + +pkg_postrm() { + local current_profile=$(binutils-config -c ${CTARGET}) + + # If no other versions exist, then uninstall for this + # target ... otherwise, switch to the newest version + # Note: only do this if this version is unmerged. We + # rerun binutils-config if this is a remerge, as + # we want the mtimes on the symlinks updated (if + # it is the same as the current selected profile) + if [[ ! -e ${EPREFIX}${BINPATH}/ld ]] && [[ ${current_profile} == ${CTARGET}-${PV} ]] ; then + local choice=$(binutils-config -l | grep ${CTARGET} | awk '{print $2}') + choice=${choice//$'\n'/ } + choice=${choice/* } + if [[ -z ${choice} ]] ; then + binutils-config -u ${CTARGET} + else + binutils-config ${choice} + fi + elif [[ $(CHOST=${CTARGET} binutils-config -c) == ${CTARGET}-${PV} ]] ; then + binutils-config ${CTARGET}-${PV} + fi +} + +# Note [slotting support] +# ----------------------- +# Gentoo's layout for binutils files is non-standard as Gentoo +# supports slotted installation for binutils. Many tools +# still expect binutils to reside in known locations. +# binutils-config package restores symlinks into known locations, +# like: +# /usr/bin/${CTARGET}-<tool> +# /usr/bin/${CHOST}/${CTARGET}/lib/ldscrips +# /usr/include/ +# +# Note [tooldir hack for ldscripts] +# --------------------------------- +# Build system does not allow ./configure to tweak every location +# we need for slotting binutils hence all the shuffling in +# src_install(). This note is about SCRIPTDIR define handling. +# +# SCRIPTDIR defines 'ldscripts/' directory location. SCRIPTDIR value +# is set at build-time in ld/Makefile.am as: 'scriptdir = $(tooldir)/lib' +# and hardcoded as -DSCRIPTDIR='"$(scriptdir)"' at compile time. +# Thus we can't just move files around after compilation finished. +# +# Our goal is the following: +# - at build-time set scriptdir to point to symlinked location: +# ${TOOLPATH}: /usr/${CHOST} (or /usr/${CHOST}/${CTARGET} for cross-case) +# - at install-time set scriptdir to point to slotted location: +# ${LIBPATH}: /usr/$(get_libdir)/binutils/${CTARGET}/${PV} diff --git a/sys-devel/binutils/binutils-2.40-r5.ebuild b/sys-devel/binutils/binutils-2.40-r5.ebuild new file mode 100644 index 000000000000..b6d2c543fe48 --- /dev/null +++ b/sys-devel/binutils/binutils-2.40-r5.ebuild @@ -0,0 +1,503 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit libtool flag-o-matic gnuconfig strip-linguas toolchain-funcs + +DESCRIPTION="Tools necessary to build programs" +HOMEPAGE="https://sourceware.org/binutils/" + +LICENSE="GPL-3+" +IUSE="cet doc gold gprofng multitarget +nls pgo +plugins static-libs test vanilla zstd" + +# Variables that can be set here (ignored for live ebuilds) +# PATCH_VER - the patchset version +# Default: empty, no patching +# PATCH_BINUTILS_VER - the binutils version in the patchset name +# - Default: PV +# PATCH_DEV - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/... +# for the patchsets + +PATCH_VER=5 +PATCH_DEV=dilfridge + +if [[ ${PV} == 9999* ]]; then + inherit git-r3 + SLOT=${PV} +else + PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}} + PATCH_DEV=${PATCH_DEV:-dilfridge} + SRC_URI="mirror://gnu/binutils/binutils-${PV}.tar.xz https://sourceware.org/pub/binutils/releases/binutils-${PV}.tar.xz https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PV}.tar.xz" + [[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI} + https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz" + SLOT=$(ver_cut 1-2) + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +# +# The cross-compile logic +# +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi +is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; } + +# +# The dependencies +# +RDEPEND=" + >=sys-devel/binutils-config-3 + sys-libs/zlib + zstd? ( app-arch/zstd:= ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + doc? ( sys-apps/texinfo ) + test? ( + dev-util/dejagnu + sys-devel/bc + ) + nls? ( sys-devel/gettext ) + zstd? ( virtual/pkgconfig ) + sys-devel/flex + app-alternatives/yacc +" + +RESTRICT="!test? ( test )" + +MY_BUILDDIR=${WORKDIR}/build + +src_unpack() { + if [[ ${PV} == 9999* ]] ; then + EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/binutils-patches.git" + EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git + git-r3_src_unpack + mv patches-git/9999 patch || die + + EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git" + S=${WORKDIR}/binutils + EGIT_CHECKOUT_DIR=${S} + git-r3_src_unpack + else + unpack ${P/-hppa64/}.tar.xz + + cd "${WORKDIR}" || die + unpack binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz + + # _p patch versions are Gentoo specific tarballs ... + local dir=${P%_p?} + dir=${dir/-hppa64/} + + S=${WORKDIR}/${dir} + fi + + cd "${WORKDIR}" || die + mkdir -p "${MY_BUILDDIR}" || die +} + +src_prepare() { + local patchsetname + if [[ ${PV} == 9999* ]] ; then + patchsetname="from git master" + else + patchsetname="${PATCH_BINUTILS_VER}-${PATCH_VER}" + fi + + if [[ -n ${PATCH_VER} ]] || [[ ${PV} == 9999* ]] ; then + if ! use vanilla; then + einfo "Applying binutils patchset ${patchsetname}" + eapply "${WORKDIR}/patch" + einfo "Done." + + # This is applied conditionally for now just out of caution. + # It should be okay on non-prefix systems though. See bug #892549. + use prefix && eapply "${FILESDIR}"/binutils-2.40-linker-search-path.patch + fi + fi + + # Make sure our explicit libdir paths don't get clobbered, bug #562460 + sed -i \ + -e 's:@bfdlibdir@:@libdir@:g' \ + -e 's:@bfdincludedir@:@includedir@:g' \ + {bfd,opcodes}/Makefile.in || die + + # Fix locale issues if possible, bug #122216 + if [[ -e ${FILESDIR}/binutils-configure-LANG.patch ]] ; then + einfo "Fixing misc issues in configure files" + for f in $(find "${S}" -name configure -exec grep -l 'autoconf version 2.13' {} +) ; do + ebegin " Updating ${f/${S}\/}" + patch "${f}" "${FILESDIR}"/binutils-configure-LANG.patch >& "${T}"/configure-patch.log \ + || eerror "Please file a bug about this" + eend $? + done + fi + + # Apply things from PATCHES and user dirs + default + + # Run misc portage update scripts + gnuconfig_update + elibtoolize --portage --no-uclibc +} + +toolchain-binutils_bugurl() { + printf "https://bugs.gentoo.org/" +} +toolchain-binutils_pkgversion() { + printf "Gentoo ${PV}" + [[ -n ${PATCH_VER} ]] && printf " p${PATCH_VER}" +} + +src_configure() { + # See https://www.gnu.org/software/make/manual/html_node/Parallel-Output.html + # Avoid really confusing logs from subconfigure spam, makes logs far + # more legible. + MAKEOPTS="--output-sync=line ${MAKEOPTS}" + + # Setup some paths + LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV} + INCPATH=${LIBPATH}/include + DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV} + if is_cross ; then + TOOLPATH=/usr/${CHOST}/${CTARGET} + else + TOOLPATH=/usr/${CTARGET} + fi + BINPATH=${TOOLPATH}/binutils-bin/${PV} + + # Make sure we filter $LINGUAS so that only ones that + # actually work make it through, bug #42033 + strip-linguas -u */po + + # Keep things sane + strip-flags + use cet && filter-flags -mindirect-branch -mindirect-branch=* + use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152 + + # ideally we want !tc-ld-is-bfd for best future-proofing, but it needs + # https://github.com/gentoo/gentoo/pull/28355 + # mold needs this too but right now tc-ld-is-mold is also not available + if tc-ld-is-lld; then + append-ldflags -Wl,--undefined-version + fi + + local x + echo + for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do + einfo "$(printf '%10s' ${x}:) ${!x}" + done + echo + + cd "${MY_BUILDDIR}" || die + local myconf=() + + if use plugins ; then + myconf+=( --enable-plugins ) + fi + # enable gold (installed as ld.gold) and ld's plugin architecture + if use gold ; then + myconf+=( --enable-gold ) + fi + + if use nls ; then + myconf+=( --without-included-gettext ) + else + myconf+=( --disable-nls ) + fi + + myconf+=( --with-system-zlib ) + + # For bi-arch systems, enable a 64bit bfd. This matches the bi-arch + # logic in toolchain.eclass. bug #446946 + # + # We used to do it for everyone, but it's slow on 32bit arches. bug #438522 + case $(tc-arch) in + ppc|sparc|x86) myconf+=( --enable-64-bit-bfd ) ;; + esac + + use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd ) + + [[ -n ${CBUILD} ]] && myconf+=( --build=${CBUILD} ) + + is_cross && myconf+=( + --with-sysroot="${EPREFIX}"/usr/${CTARGET} + --enable-poison-system-directories + ) + + myconf+=( --enable-secureplt ) + + # mips can't do hash-style=gnu ... + if [[ $(tc-arch) != mips ]] ; then + myconf+=( --enable-default-hash-style=gnu ) + fi + + myconf+=( + --prefix="${EPREFIX}"/usr + --host=${CHOST} + --target=${CTARGET} + --datadir="${EPREFIX}"${DATAPATH} + --datarootdir="${EPREFIX}"${DATAPATH} + --infodir="${EPREFIX}"${DATAPATH}/info + --mandir="${EPREFIX}"${DATAPATH}/man + --bindir="${EPREFIX}"${BINPATH} + --libdir="${EPREFIX}"${LIBPATH} + --libexecdir="${EPREFIX}"${LIBPATH} + --includedir="${EPREFIX}"${INCPATH} + --enable-obsolete + --enable-shared + --enable-threads + # Newer versions (>=2.27) offer a configure flag now. + --enable-relro + # Newer versions (>=2.24) make this an explicit option, bug #497268 + --enable-install-libiberty + # Available from 2.35 on + --enable-textrel-check=warning + + # These hardening options are available from 2.39+ but + # they unconditionally enable the behaviour even on arches + # where e.g. execstacks can't be avoided. + # See https://sourceware.org/bugzilla/show_bug.cgi?id=29592. + #--enable-warn-execstack + #--enable-warn-rwx-segments + #--disable-default-execstack (or is it --enable-default-execstack=no? docs are confusing) + + # Things to think about + #--enable-deterministic-archives + + # Works better than vapier's patch, bug #808787 + --enable-new-dtags + + --disable-jansson + --disable-werror + --with-bugurl="$(toolchain-binutils_bugurl)" + --with-pkgversion="$(toolchain-binutils_pkgversion)" + $(use_enable static-libs static) + $(use_with zstd) + + # Disable modules that are in a combined binutils/gdb tree, bug #490566 + --disable-{gdb,libdecnumber,readline,sim} + # Strip out broken static link flags. + # https://gcc.gnu.org/PR56750 + --without-stage1-ldflags + # Change SONAME to avoid conflict across + # {native,cross}/binutils, binutils-libs. bug #666100 + --with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st) + + # Avoid automagic dependency on (currently prefix) systems + # systems with debuginfod library, bug #754753 + --without-debuginfod + + # Avoid automagic dev-libs/msgpack dep, bug #865875 + --without-msgpack + + # 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) + + # We can enable this by default in future, but it's brand new + # in 2.39 with several bugs: + # - Doesn't build on musl (https://sourceware.org/bugzilla/show_bug.cgi?id=29477) + # - No man pages (https://sourceware.org/bugzilla/show_bug.cgi?id=29521) + # - Broken at runtime without Java (https://sourceware.org/bugzilla/show_bug.cgi?id=29479) + # - binutils-config (and this ebuild?) needs adaptation first (https://bugs.gentoo.org/865113) + $(use_enable gprofng) + ) + + if ! is_cross ; then + myconf+=( $(use_enable pgo pgo-build lto) ) + + if use pgo ; then + export BUILD_CFLAGS="${CFLAGS}" + fi + fi + + ECONF_SOURCE="${S}" econf "${myconf[@]}" || die + + # Prevent makeinfo from running if doc is unset. + if ! use doc ; then + sed -i \ + -e '/^MAKEINFO/s:=.*:= true:' \ + Makefile || die + fi +} + +src_compile() { + cd "${MY_BUILDDIR}" || die + + # see Note [tooldir hack for ldscripts] + emake V=1 tooldir="${EPREFIX}${TOOLPATH}" all + + # only build info pages if the user wants them + if use doc ; then + emake V=1 info + fi + + # we nuke the manpages when we're left with junk + # (like when we bootstrap, no perl -> no manpages) + find . -name '*.1' -a -size 0 -delete +} + +src_test() { + cd "${MY_BUILDDIR}" || die + + # bug #637066 + filter-flags -Wall -Wreturn-type + + emake -k V=1 check +} + +src_install() { + local x d + + cd "${MY_BUILDDIR}" || die + + # see Note [tooldir hack for ldscripts] + emake V=1 DESTDIR="${D}" tooldir="${EPREFIX}${LIBPATH}" install + rm -rf "${ED}"/${LIBPATH}/bin || die + use static-libs || find "${ED}" -name '*.la' -delete + + # Newer versions of binutils get fancy with ${LIBPATH}, bug #171905 + cd "${ED}"/${LIBPATH} || die + for d in ../* ; do + [[ ${d} == ../${PV} ]] && continue + mv ${d}/* . || die + rmdir ${d} || die + done + + # Now we collect everything intp the proper SLOT-ed dirs + # When something is built to cross-compile, it installs into + # /usr/$CHOST/ by default ... we have to 'fix' that :) + if is_cross ; then + cd "${ED}"/${BINPATH} || die + for x in * ; do + mv ${x} ${x/${CTARGET}-} || die + done + + if [[ -d ${ED}/usr/${CHOST}/${CTARGET} ]] ; then + mv "${ED}"/usr/${CHOST}/${CTARGET}/include "${ED}"/${INCPATH} + mv "${ED}"/usr/${CHOST}/${CTARGET}/lib/* "${ED}"/${LIBPATH}/ + rm -r "${ED}"/usr/${CHOST}/{include,lib} + fi + fi + + insinto ${INCPATH} + local libiberty_headers=( + # Not all the libiberty headers. See libiberty/Makefile.in:install_to_libdir. + demangle.h + dyn-string.h + fibheap.h + hashtab.h + libiberty.h + objalloc.h + splay-tree.h + ) + doins "${libiberty_headers[@]/#/${S}/include/}" + if [[ -d ${ED}/${LIBPATH}/lib ]] ; then + mv "${ED}"/${LIBPATH}/lib/* "${ED}"/${LIBPATH}/ || die + rm -r "${ED}"/${LIBPATH}/lib || die + fi + + # Generate an env.d entry for this binutils + insinto /etc/env.d/binutils + cat <<-EOF > "${T}"/env.d + TARGET="${CTARGET}" + VER="${PV}" + LIBPATH="${EPREFIX}${LIBPATH}" + EOF + newins "${T}"/env.d ${CTARGET}-${PV} + + # Handle documentation + if ! is_cross ; then + cd "${S}" || die + dodoc README + + docinto bfd + dodoc bfd/ChangeLog* bfd/README bfd/PORTING bfd/TODO + + docinto binutils + dodoc binutils/ChangeLog binutils/NEWS binutils/README + + docinto gas + dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/NEWS gas/README* + + docinto gprof + dodoc gprof/ChangeLog* gprof/TEST gprof/TODO gprof/bbconv.pl + + docinto ld + dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO + + docinto libiberty + dodoc libiberty/ChangeLog* libiberty/README + + docinto opcodes + dodoc opcodes/ChangeLog* + fi + + # Remove shared info pages + rm -f "${ED}"/${DATAPATH}/info/{dir,configure.info,standards.info} + + # Trim all empty dirs + find "${ED}" -depth -type d -exec rmdir {} + 2>/dev/null +} + +pkg_postinst() { + # Make sure this ${CTARGET} has a binutils version selected + [[ -e ${EROOT}/etc/env.d/binutils/config-${CTARGET} ]] && return 0 + binutils-config ${CTARGET}-${PV} +} + +pkg_postrm() { + local current_profile=$(binutils-config -c ${CTARGET}) + + # If no other versions exist, then uninstall for this + # target ... otherwise, switch to the newest version + # Note: only do this if this version is unmerged. We + # rerun binutils-config if this is a remerge, as + # we want the mtimes on the symlinks updated (if + # it is the same as the current selected profile) + if [[ ! -e ${EPREFIX}${BINPATH}/ld ]] && [[ ${current_profile} == ${CTARGET}-${PV} ]] ; then + local choice=$(binutils-config -l | grep ${CTARGET} | awk '{print $2}') + choice=${choice//$'\n'/ } + choice=${choice/* } + if [[ -z ${choice} ]] ; then + binutils-config -u ${CTARGET} + else + binutils-config ${choice} + fi + elif [[ $(CHOST=${CTARGET} binutils-config -c) == ${CTARGET}-${PV} ]] ; then + binutils-config ${CTARGET}-${PV} + fi +} + +# Note [slotting support] +# ----------------------- +# Gentoo's layout for binutils files is non-standard as Gentoo +# supports slotted installation for binutils. Many tools +# still expect binutils to reside in known locations. +# binutils-config package restores symlinks into known locations, +# like: +# /usr/bin/${CTARGET}-<tool> +# /usr/bin/${CHOST}/${CTARGET}/lib/ldscrips +# /usr/include/ +# +# Note [tooldir hack for ldscripts] +# --------------------------------- +# Build system does not allow ./configure to tweak every location +# we need for slotting binutils hence all the shuffling in +# src_install(). This note is about SCRIPTDIR define handling. +# +# SCRIPTDIR defines 'ldscripts/' directory location. SCRIPTDIR value +# is set at build-time in ld/Makefile.am as: 'scriptdir = $(tooldir)/lib' +# and hardcoded as -DSCRIPTDIR='"$(scriptdir)"' at compile time. +# Thus we can't just move files around after compilation finished. +# +# Our goal is the following: +# - at build-time set scriptdir to point to symlinked location: +# ${TOOLPATH}: /usr/${CHOST} (or /usr/${CHOST}/${CTARGET} for cross-case) +# - at install-time set scriptdir to point to slotted location: +# ${LIBPATH}: /usr/$(get_libdir)/binutils/${CTARGET}/${PV} diff --git a/sys-devel/binutils/binutils-9999.ebuild b/sys-devel/binutils/binutils-9999.ebuild index c8e0d5f94944..d8c2553ece20 100644 --- a/sys-devel/binutils/binutils-9999.ebuild +++ b/sys-devel/binutils/binutils-9999.ebuild @@ -19,7 +19,7 @@ IUSE="cet doc gold gprofng multitarget +nls pgo +plugins static-libs test vanill # PATCH_DEV - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/... # for the patchsets -PATCH_VER=0 +PATCH_VER=2 PATCH_DEV=dilfridge if [[ ${PV} == 9999* ]]; then @@ -28,11 +28,11 @@ if [[ ${PV} == 9999* ]]; then else PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}} PATCH_DEV=${PATCH_DEV:-dilfridge} - SRC_URI="mirror://gnu/binutils/binutils-${PV}.tar.xz https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PV}.tar.xz" + SRC_URI="mirror://gnu/binutils/binutils-${PV}.tar.xz https://sourceware.org/pub/binutils/releases/binutils-${PV}.tar.xz https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PV}.tar.xz" [[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI} https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz" SLOT=$(ver_cut 1-2) - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" fi # @@ -112,6 +112,10 @@ src_prepare() { einfo "Applying binutils patchset ${patchsetname}" eapply "${WORKDIR}/patch" einfo "Done." + + # This is applied conditionally for now just out of caution. + # It should be okay on non-prefix systems though. See bug #892549. + use prefix && eapply "${FILESDIR}"/binutils-2.40-linker-search-path.patch fi fi @@ -181,8 +185,6 @@ src_configure() { append-ldflags -Wl,--undefined-version fi - use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152 - local x echo for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do diff --git a/sys-devel/binutils/files/binutils-2.40-linker-search-path.patch b/sys-devel/binutils/files/binutils-2.40-linker-search-path.patch new file mode 100644 index 000000000000..7423f8d70556 --- /dev/null +++ b/sys-devel/binutils/files/binutils-2.40-linker-search-path.patch @@ -0,0 +1,74 @@ +https://bugs.gentoo.org/892549 +https://github.com/gentoo/binutils-gdb/pull/4 + +From 1601840f9f2397edd56177871527a198a14277bd Mon Sep 17 00:00:00 2001 +From: James Le Cuirot <chewi@gentoo.org> +Date: Sat, 11 Feb 2023 15:15:20 +0000 +Subject: [PATCH 1/2] ldelf.c: Always consider -L arguments when handling + DT_NEEDED + +This is for consistency with other linkers, including gold. Without +this, we typically rely on ld.so.conf to find libraries such as +libstdc++.so.6, while other linkers do not use this file at all. +--- a/ld/ldelf.c ++++ b/ld/ldelf.c +@@ -1090,8 +1090,8 @@ ldelf_handle_dt_needed (struct elf_link_hash_table *htab, + linker will search. That means that we want to use + rpath_link, rpath, then the environment variable + LD_LIBRARY_PATH (native only), then the DT_RPATH/DT_RUNPATH +- entries (native only), then the linker script LIB_SEARCH_DIRS. +- We do not search using the -L arguments. ++ entries (native only), then the linker script LIB_SEARCH_DIRS, ++ then the -L arguments. + + We search twice. The first time, we skip objects which may + introduce version mismatches. The second time, we force +@@ -1165,11 +1165,7 @@ ldelf_handle_dt_needed (struct elf_link_hash_table *htab, + len = strlen (l->name); + for (search = search_head; search != NULL; search = search->next) + { +- char *filename; +- +- if (search->cmdline) +- continue; +- filename = (char *) xmalloc (strlen (search->name) + len + 2); ++ char *filename = (char *) xmalloc (strlen (search->name) + len + 2); + sprintf (filename, "%s/%s", search->name, l->name); + nn.name = filename; + if (ldelf_try_needed (&nn, force, is_linux)) + +From 8afc65c8d8c0fff2f686ddd8eb9023c7ebabcca9 Mon Sep 17 00:00:00 2001 +From: James Le Cuirot <chewi@gentoo.org> +Date: Sat, 11 Feb 2023 15:18:58 +0000 +Subject: [PATCH 2/2] ldelf.c: Do not search for libraries using ld.so.conf + +Other linkers do not do this. It is problematic for Gentoo Linux, +because crossdev installs libraries such as libstdc++.so.6 outside of +the sysroot. +--- a/ld/ld.texi ++++ b/ld/ld.texi +@@ -2355,7 +2355,9 @@ For a linker for a Linux system, if the file @file{/etc/ld.so.conf} + exists, the list of directories found in that file. Note: the path + to this file is prefixed with the @code{sysroot} value, if that is + defined, and then any @code{prefix} string if the linker was +-configured with the @command{--prefix=<path>} option. ++configured with the @command{--prefix=<path>} option. This has feature has ++been disabled on Gentoo Linux to make it consistent with the other ++linkers, which do not do this. + @item + For a native linker on a FreeBSD system, any directories specified by + the @code{_PATH_ELF_HINTS} macro defined in the @file{elf-hints.h} +--- a/ld/ldelf.c ++++ b/ld/ldelf.c +@@ -1156,10 +1156,6 @@ ldelf_handle_dt_needed (struct elf_link_hash_table *htab, + if (is_freebsd + && ldelf_check_ld_elf_hints (l, force, elfsize)) + break; +- +- if (is_linux +- && ldelf_check_ld_so_conf (l, force, elfsize, prefix)) +- break; + } + + len = strlen (l->name); + diff --git a/sys-devel/bison/bison-3.8.2-r2.ebuild b/sys-devel/bison/bison-3.8.2-r2.ebuild index 5b827b301fd4..63065fc3202b 100644 --- a/sys-devel/bison/bison-3.8.2-r2.ebuild +++ b/sys-devel/bison/bison-3.8.2-r2.ebuild @@ -13,7 +13,7 @@ SRC_URI+=" verify-sig? ( mirror://gnu/${PN}/${P}.tar.xz.sig )" LICENSE="GPL-3+" SLOT="0" -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" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="examples nls static test" RESTRICT="!test? ( test )" @@ -91,7 +91,7 @@ pkg_postinst() { if [[ -e ${EROOT}/usr/bin/yacc ]] ; then # bug #886123 ewarn "${EROOT}/usr/bin/yacc exists but is not a symlink." - ewarn "This is expected during Prefix bootstrap and unsual otherwise." + ewarn "This is expected during Prefix bootstrap and unusual otherwise." ewarn "Moving away unexpected ${EROOT}/usr/bin/yacc to .bak." mv "${EROOT}/usr/bin/yacc" "${EROOT}/usr/bin/yacc.bak" || die fi diff --git a/sys-devel/bmake/Manifest b/sys-devel/bmake/Manifest index 95d5d4a04272..d5ebd05e3e06 100644 --- a/sys-devel/bmake/Manifest +++ b/sys-devel/bmake/Manifest @@ -1,3 +1,4 @@ -DIST bmake-20220928.tar.gz 821224 BLAKE2B 9b377a9a8d329d229aae37fd852a68629edb78f7f0f16bf8aeb59df4da886fe89d8b7defd8294fa49fca397d4726e704eb9c95936561fe8a3a0a1fdfe4e5b861 SHA512 13fde6517d79080c5a548b1e47e4fbf00d54752f48b40d10542926b26a3be22da70877ca2b977b43366ec1b632a76a6974c78155c39895910e01e4142e7675a0 -DIST bmake-20230120.tar.gz 823514 BLAKE2B 45e96f4911b8965b44ebe30c636819b36cb33a9733304f3bb8a99a806356ef1f01925c48a0fd25cf57b65524ae6ef544b6a79974bf1f92b749a242323a068fdd SHA512 b3c54f723adaf3329af14247d9891b1732d2b6dc9856e30be6fd65f3cd7aab85c4fcef1ef9799eaca5203357e2be5a6564d7e9108844b459654b1fa3767f721a +DIST bmake-20230303.tar.gz 831628 BLAKE2B b93153c97713e492dabd827aad9f9089c2d7c133a4f77592039261b56d8efea43286012ade39cc822c53a0daa2f7a44c1f2dbf5e441c3cc052f43c3e0eed1d95 SHA512 d4595f3b19eac828de9a3ba6901ae883b147de441dc2707da24187860136ae4fcd4cfa343dcc9f52be3b96abf54b165f9808ae863b3a70fabec051257525994f +DIST bmake-20230414.tar.gz 834843 BLAKE2B 9b8a26c0bdba32386a562ef93cece79837951b9cf9238d6f82eaa45e8900fe996d0dc37898c14fef55e556e0e2421878438ccdc9d75150046a46f4b906799928 SHA512 a4e36bce28ce1178b39d3debaea6dcecc0519109143dee244e1da21fc5a00c0f13b992497f98bbfa39c39f4aac683de76b24c4d1b4ed3b5b79c9a1cbd3e5aafe +DIST bmake-20230512.tar.gz 841752 BLAKE2B a9f1f64515b72ff84c2f1d2b467d3c908b3bf233bbba8feb6d11e5d44fbeadf4a675557a7412ed3b2ae395a7a0ee59b165a6a29a243cdea52d746e8b973d513e SHA512 7f1ccc4dad795827d15f7ae3a815a7dcf64ed6c9b31b25684efa42013fd4046de65d1f60130856ec4b2a3bb37a63a8cb7a984cf7d132f9169487f2d41dc4a1b7 DIST mk-20210330.tar.gz 107380 BLAKE2B 9ac30a117d9ba31635cf8d8d29fdba76f148611f47628403ca8f807081c32509f10498d3c30fd24985e5420af4710fe59fc6315d71f2d0c1cfed93263a06553a SHA512 6acd3ee911442934082f4f877d795b07c5e23022eaa9c0874799d97e92a2f5a663cb45f94b7f9745c49cbbce6b7e755a29e381ccfb9e68a0be1eedbd22fd5d3b diff --git a/sys-devel/bmake/bmake-20220928.ebuild b/sys-devel/bmake/bmake-20230303.ebuild index 15621472a9d8..15621472a9d8 100644 --- a/sys-devel/bmake/bmake-20220928.ebuild +++ b/sys-devel/bmake/bmake-20230303.ebuild diff --git a/sys-devel/bmake/bmake-20230120.ebuild b/sys-devel/bmake/bmake-20230414.ebuild index 7c7d277872cc..dc8808996535 100644 --- a/sys-devel/bmake/bmake-20230120.ebuild +++ b/sys-devel/bmake/bmake-20230414.ebuild @@ -14,7 +14,7 @@ S="${WORKDIR}/${PN}" LICENSE="BSD" SLOT="0" -KEYWORDS="~amd64 ~loong ~ppc ~ppc64 ~x86" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~x86" # Skip failing test (sandbox and csh) PATCHES=( diff --git a/sys-devel/bmake/bmake-20230512.ebuild b/sys-devel/bmake/bmake-20230512.ebuild new file mode 100644 index 000000000000..dc8808996535 --- /dev/null +++ b/sys-devel/bmake/bmake-20230512.ebuild @@ -0,0 +1,57 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MK_VER=20210330 + +DESCRIPTION="NetBSD's portable make" +HOMEPAGE="http://www.crufty.net/help/sjg/bmake.html" +SRC_URI=" + http://void.crufty.net/ftp/pub/sjg/${P}.tar.gz + http://void.crufty.net/ftp/pub/sjg/mk-${MK_VER}.tar.gz" +S="${WORKDIR}/${PN}" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~x86" + +# Skip failing test (sandbox and csh) +PATCHES=( + "${FILESDIR}"/${PN}-20210206-tests.patch +) + +src_prepare() { + default + cd "${WORKDIR}" || die + eapply "${FILESDIR}"/${PN}-20210314-mk-fixes.patch +} + +src_configure() { + econf \ + --with-mksrc=../mk \ + --with-default-sys-path="${EPREFIX}"/usr/share/mk/${PN} \ + --with-machine_arch=${ARCH} +} + +src_compile() { + sh make-bootstrap.sh || die "bootstrap failed" +} + +src_test() { + cd unit-tests || die + + # the 'ternary' test uses ${A} internally, which + # conflicts with Gentoo's ${A}, hence unset it for + # the tests temporarily. + env -u A MAKEFLAGS= \ + "${S}"/bmake -r -m / TEST_MAKE="${S}"/bmake test || die "tests compilation failed" +} + +src_install() { + dobin ${PN} + doman ${PN}.1 + FORCE_BSD_MK=1 SYS_MK_DIR=. \ + sh ../mk/install-mk -v -m 644 "${ED}"/usr/share/mk/${PN} \ + || die "failed to install mk files" +} diff --git a/sys-devel/clang-common/Manifest b/sys-devel/clang-common/Manifest index 4037ff77248d..d616caaf795e 100644 --- a/sys-devel/clang-common/Manifest +++ b/sys-devel/clang-common/Manifest @@ -2,6 +2,9 @@ DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6 DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78af36b0826a1dfd9a337992499bf701e33149665bfc47d5e14978e38f342559629a559f8b2ce328705ba34fdf6830f5ae9721a5 SHA512 4836d3603f32e8e54434cbfa8ef33d9d473ac5dc20ebf9c67132653c73f4524931abd1084655eaee5f20bcfcb91bcc4bbc5c4a0b603ad0c9029c556e14dc4c52 DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df SHA512 fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2 -DIST llvm-project-46d5a57801bc37e5ebb1a4d6b2acc0fa99c01e8d.tar.gz 180436731 BLAKE2B 51c30c3f11dd55a225b8ebe4ded752ce9e8eb58751e7458c29901dbdd3673f94892d337d111d696e779e3f7ef0bca6c7d79709e2072a4bf3a001d8813125d571 SHA512 ebbe0f8becac39d63433dcc3de474c40f1215fc8faab94fa2ba869d28e66b27e4fe088377bd7ae64575a6d7b07017b88bf92e5488a3185a753e647d8da352bbf -DIST llvm-project-6dc85bd3fde7df2999fda07e9e9f2e83d52c6125.tar.gz 175208511 BLAKE2B cf87cf7e9bf7c74aab8ccda0f153369cb81798047fdd48025c3c7030857b128babbaafb667385a5c8e9916e16038b14fee39f1623d329471e73c39c2f2d7bbfa SHA512 e6dc0cacd6c079be8a00364e4c244782d764d9a8d514d65f9078427cb4a0c1663ff88761bfbc1e955a1a990451439110497c2cb7af7f56b2c91f2e9db4389894 -DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f +DIST llvm-project-16.0.3.src.tar.xz 117998136 BLAKE2B 6117586a117c30515e9a5623ab91d29ba65d33c8041274de0ecdbce08ae4fe1c8c3b120db9ca625f42fdbb2301537b4ffe8f7add701c178282be4f583fa0c8ca SHA512 2eb5eca1cbee92a499d7fba5729b61f31186353bc0545b17eefa300cf2b27c8d9a2f307443b2c1c9fe1b0ba412abf5143fdd4d25aaeb33d975a9a834221d7602 +DIST llvm-project-16.0.3.src.tar.xz.sig 566 BLAKE2B bbd96268b006fecffd7402452ae7559bd2ea42c7b771999f58893a48d66b1b056b476a7022c70e2ab8f11dba8318ccc141f97a05ece3b9ed3b4405a6890b0c3a SHA512 cdd5e1c2a252ba58f9b7f8687d6cf9a330c188988707bd72f4632a8158a2db9ac180b3936da99b87e7e99886c39cb8517ebbb04b7d1be198e76964e31ec8dc58 +DIST llvm-project-16.0.4.src.tar.xz 117996332 BLAKE2B 2ea3ef25290ce6180d271e42fbf5e02da973a21e3929c1ac8d1e3e7b268d39db97611e15654ca7e6527add24542d0eed0ee2b1b9d85dfd0ba661e55356bac5d3 SHA512 860bcb999005f55bed25691304983d7bf707f8e3246000595b412b9e88f4a1614be0adb43bbff9c30f49b969373fa0becab02a56ac37915a5f83c52ca8ea3f95 +DIST llvm-project-16.0.4.src.tar.xz.sig 566 BLAKE2B 43cb2147f12f98f864797158e8efcfed9c6780fae3b5c71c0f1aea19a4131ee91c36bdf5b10e44f478f2370c8d22a9038038ecd607f25a95f2d3e33628eb9ac0 SHA512 c902d1b652e6e144fcf74f550539f56665475b6bdf673ba5bf2f1731c3bb8f5717ed56433d488c54bbf2f429b432da84e0bfb4b5fb5f2b7fa208b4f24f682be7 +DIST llvm-project-a2684acfb61d40f441e240035d7f1ba50da637c8.tar.gz 184900914 BLAKE2B fb1f836738415a640bc84283722f6a7355a06bc8ac05b544dd4ad4ac9552dcf70040b82b0493c5b4485b28610412279ec0adcf467e71915167aa7d010c08216e SHA512 c08ff8abc166399e692d3166ccf65eb4b647893cba8ffc10bcda815bc914a944855bac036d6349f6d820a6ff43d5417170e6ff8620d97a2a144a0898e95d09e3 +DIST llvm-project-abbb22cc0c9c33dedb8d53c2bd3e703f92baace7.tar.gz 183193919 BLAKE2B 75c63d39918f7ec0faca0b1d03ba17dbd7d39a6f1d3a031dcb005ae1729933d8481f0bd745ec029ab21779525b2ddaf2989eaca2aed2b0e9b60c50ef71c7fc11 SHA512 f0c1b6fe2e087db202d32de05613b7570bd9a82dfef2e464014c9d4c9ba02c20d423cb783aa40ce5e9c9e074288efb2e5b6d70d55913bd285108e747400f55e7 diff --git a/sys-devel/clang-common/clang-common-13.0.1.ebuild b/sys-devel/clang-common/clang-common-13.0.1.ebuild deleted file mode 100644 index 89948f1aa15e..000000000000 --- a/sys-devel/clang-common/clang-common-13.0.1.ebuild +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit bash-completion-r1 llvm.org - -DESCRIPTION="Common files shared between multiple slots of clang" -HOMEPAGE="https://llvm.org/" - -LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" -SLOT="0" -KEYWORDS="amd64 arm arm64 ~ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~ppc-macos ~x64-macos" -IUSE="" - -PDEPEND="sys-devel/clang:*" - -LLVM_COMPONENTS=( clang/utils/bash-autocomplete.sh ) -llvm.org_set_globals -S=${WORKDIR}/clang/utils - -src_install() { - newbashcomp bash-autocomplete.sh clang -} diff --git a/sys-devel/clang-common/clang-common-15.0.7-r1.ebuild b/sys-devel/clang-common/clang-common-15.0.7-r5.ebuild index 651827d21197..8d526d297a03 100644 --- a/sys-devel/clang-common/clang-common-15.0.7-r1.ebuild +++ b/sys-devel/clang-common/clang-common-15.0.7-r5.ebuild @@ -20,8 +20,8 @@ PDEPEND=" sys-devel/clang:* default-compiler-rt? ( sys-devel/clang-runtime[compiler-rt] - llvm-libunwind? ( sys-libs/llvm-libunwind ) - !llvm-libunwind? ( sys-libs/libunwind ) + llvm-libunwind? ( sys-libs/llvm-libunwind[static-libs] ) + !llvm-libunwind? ( sys-libs/libunwind[static-libs] ) ) !default-compiler-rt? ( sys-devel/gcc ) default-libcxx? ( >=sys-libs/libcxx-${PV} ) @@ -90,10 +90,11 @@ src_install() { EOF # Baseline hardening (bug #851111) + # (-fstack-clash-protection is omitted because of a possible Clang bug, + # see bug #892537 and bug #865339.) newins - gentoo-hardened.cfg <<-EOF # Some of these options are added unconditionally, regardless of # USE=hardened, for parity with sys-devel/gcc. - -fstack-clash-protection -fstack-protector-strong -fPIE -include "${EPREFIX}/usr/include/gentoo/fortify.h" @@ -106,11 +107,23 @@ src_install() { # without optimization and that would at the very least be very noisy # during builds and at worst trigger many -Werror builds. cat >> "${ED}/usr/include/gentoo/fortify.h" <<- EOF || die - #ifndef _FORTIFY_SOURCE - #if defined(__OPTIMIZE__) && __OPTIMIZE__ > 0 - #define _FORTIFY_SOURCE ${fortify_level} - #endif - #endif + #ifdef __clang__ + # pragma clang system_header + #endif + #ifndef _FORTIFY_SOURCE + # if defined(__has_feature) + # define __GENTOO_HAS_FEATURE(x) __has_feature(x) + # else + # define __GENTOO_HAS_FEATURE(x) 0 + # endif + # + # if defined(__OPTIMIZE__) && __OPTIMIZE__ > 0 + # if !defined(__SANITIZE_ADDRESS__) && !__GENTOO_HAS_FEATURE(address_sanitizer) && !__GENTOO_HAS_FEATURE(memory_sanitizer) + # define _FORTIFY_SOURCE ${fortify_level} + # endif + # endif + # undef __GENTOO_HAS_FEATURE + #endif EOF if use hardened ; then diff --git a/sys-devel/clang-common/clang-common-15.0.7-r6.ebuild b/sys-devel/clang-common/clang-common-15.0.7-r6.ebuild new file mode 100644 index 000000000000..39ff858a4d06 --- /dev/null +++ b/sys-devel/clang-common/clang-common-15.0.7-r6.ebuild @@ -0,0 +1,185 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit bash-completion-r1 llvm.org + +DESCRIPTION="Common files shared between multiple slots of clang" +HOMEPAGE="https://llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" +SLOT="0" +KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv sparc x86 ~amd64-linux ~ppc-macos ~x64-macos" +IUSE=" + default-compiler-rt default-libcxx default-lld llvm-libunwind + hardened stricter +" + +PDEPEND=" + sys-devel/clang:* + default-compiler-rt? ( + sys-devel/clang-runtime[compiler-rt] + llvm-libunwind? ( sys-libs/llvm-libunwind[static-libs] ) + !llvm-libunwind? ( sys-libs/libunwind[static-libs] ) + ) + !default-compiler-rt? ( sys-devel/gcc ) + default-libcxx? ( >=sys-libs/libcxx-${PV} ) + !default-libcxx? ( sys-devel/gcc ) + default-lld? ( sys-devel/lld ) + !default-lld? ( sys-devel/binutils ) +" +IDEPEND=" + !default-compiler-rt? ( sys-devel/gcc-config ) + !default-libcxx? ( sys-devel/gcc-config ) +" + +LLVM_COMPONENTS=( clang/utils ) +llvm.org_set_globals + +pkg_pretend() { + [[ ${CLANG_IGNORE_DEFAULT_RUNTIMES} ]] && return + + local flag missing_flags=() + for flag in default-{compiler-rt,libcxx,lld}; do + if ! use "${flag}" && has_version "sys-devel/clang[${flag}]"; then + missing_flags+=( "${flag}" ) + fi + done + + if [[ ${missing_flags[@]} ]]; then + eerror "It seems that you have the following flags set on sys-devel/clang:" + eerror + eerror " ${missing_flags[*]}" + eerror + eerror "The default runtimes are now set via flags on sys-devel/clang-common." + eerror "The build is being aborted to prevent breakage. Please either set" + eerror "the respective flags on this ebuild, e.g.:" + eerror + eerror " sys-devel/clang-common ${missing_flags[*]}" + eerror + eerror "or build with CLANG_IGNORE_DEFAULT_RUNTIMES=1." + die "Mismatched defaults detected between sys-devel/clang and sys-devel/clang-common" + fi +} + +src_install() { + newbashcomp bash-autocomplete.sh clang + + insinto /etc/clang + newins - gentoo-runtimes.cfg <<-EOF + # This file is initially generated by sys-devel/clang-runtime. + # It is used to control the default runtimes using by clang. + + --rtlib=$(usex default-compiler-rt compiler-rt libgcc) + --unwindlib=$(usex default-compiler-rt libunwind libgcc) + --stdlib=$(usex default-libcxx libc++ libstdc++) + -fuse-ld=$(usex default-lld lld bfd) + EOF + + newins - gentoo-gcc-install.cfg <<-EOF + # This file is maintained by gcc-config. + # It is used to specify the selected GCC installation. + EOF + + newins - gentoo-common.cfg <<-EOF + # This file contains flags common to clang, clang++ and clang-cpp. + @gentoo-runtimes.cfg + @gentoo-gcc-install.cfg + @gentoo-hardened.cfg + # bug #870001 + -include "${EPREFIX}/usr/include/gentoo/maybe-stddefs.h" + EOF + + # Baseline hardening (bug #851111) + # (-fstack-clash-protection is omitted because of a possible Clang bug, + # see bug #892537 and bug #865339.) + newins - gentoo-hardened.cfg <<-EOF + # Some of these options are added unconditionally, regardless of + # USE=hardened, for parity with sys-devel/gcc. + -fstack-protector-strong + -fPIE + -include "${EPREFIX}/usr/include/gentoo/fortify.h" + EOF + + dodir /usr/include/gentoo + + cat >> "${ED}/usr/include/gentoo/maybe-stddefs.h" <<-EOF || die + /* __has_include is an extension, but it's fine, because this is only + for Clang anyway. */ + #if defined __has_include && __has_include (<stdc-predef.h>) && !defined(__GLIBC__) + # include <stdc-predef.h> + #endif + EOF + + local fortify_level=$(usex hardened 3 2) + # We have to do this because glibc's headers warn if F_S is set + # without optimization and that would at the very least be very noisy + # during builds and at worst trigger many -Werror builds. + cat >> "${ED}/usr/include/gentoo/fortify.h" <<- EOF || die + #ifdef __clang__ + # pragma clang system_header + #endif + #ifndef _FORTIFY_SOURCE + # if defined(__has_feature) + # define __GENTOO_HAS_FEATURE(x) __has_feature(x) + # else + # define __GENTOO_HAS_FEATURE(x) 0 + # endif + # + # if defined(__OPTIMIZE__) && __OPTIMIZE__ > 0 + # if !defined(__SANITIZE_ADDRESS__) && !__GENTOO_HAS_FEATURE(address_sanitizer) && !__GENTOO_HAS_FEATURE(memory_sanitizer) + # define _FORTIFY_SOURCE ${fortify_level} + # endif + # endif + # undef __GENTOO_HAS_FEATURE + #endif + EOF + + if use hardened ; then + cat >> "${ED}/etc/clang/gentoo-hardened.cfg" <<-EOF || die + # Options below are conditional on USE=hardened. + -D_GLIBCXX_ASSERTIONS + + # Analogue to GLIBCXX_ASSERTIONS + # https://libcxx.llvm.org/UsingLibcxx.html#assertions-mode + -D_LIBCPP_ENABLE_ASSERTIONS=1 + EOF + fi + + if use stricter; then + newins - gentoo-stricter.cfg <<-EOF + # This file increases the strictness of older clang versions + # to match the newest upstream version. + + # clang-16 defaults + -Werror=implicit-function-declaration + -Werror=implicit-int + -Werror=incompatible-function-pointer-types + EOF + + cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die + @gentoo-stricter.cfg + EOF + fi + + local tool + for tool in clang{,++,-cpp}; do + newins - "${tool}.cfg" <<-EOF + # This configuration file is used by ${tool} driver. + @gentoo-common.cfg + EOF + done +} + +pkg_preinst() { + if has_version -b sys-devel/gcc-config && has_version sys-devel/gcc + then + local gcc_path=$(gcc-config --get-lib-path 2>/dev/null) + if [[ -n ${gcc_path} ]]; then + cat >> "${ED}/etc/clang/gentoo-gcc-install.cfg" <<-EOF + --gcc-install-dir="${gcc_path%%:*}" + EOF + fi + fi +} diff --git a/sys-devel/clang-common/clang-common-16.0.3-r1.ebuild b/sys-devel/clang-common/clang-common-16.0.3-r1.ebuild new file mode 100644 index 000000000000..358dca01c333 --- /dev/null +++ b/sys-devel/clang-common/clang-common-16.0.3-r1.ebuild @@ -0,0 +1,190 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit bash-completion-r1 llvm.org + +DESCRIPTION="Common files shared between multiple slots of clang" +HOMEPAGE="https://llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~ppc-macos ~x64-macos" +IUSE=" + default-compiler-rt default-libcxx default-lld llvm-libunwind + hardened stricter +" + +PDEPEND=" + sys-devel/clang:* + default-compiler-rt? ( + sys-devel/clang-runtime[compiler-rt] + llvm-libunwind? ( sys-libs/llvm-libunwind[static-libs] ) + !llvm-libunwind? ( sys-libs/libunwind[static-libs] ) + ) + !default-compiler-rt? ( sys-devel/gcc ) + default-libcxx? ( >=sys-libs/libcxx-${PV} ) + !default-libcxx? ( sys-devel/gcc ) + default-lld? ( sys-devel/lld ) + !default-lld? ( sys-devel/binutils ) +" +IDEPEND=" + !default-compiler-rt? ( sys-devel/gcc-config ) + !default-libcxx? ( sys-devel/gcc-config ) +" + +LLVM_COMPONENTS=( clang/utils ) +llvm.org_set_globals + +pkg_pretend() { + [[ ${CLANG_IGNORE_DEFAULT_RUNTIMES} ]] && return + + local flag missing_flags=() + for flag in default-{compiler-rt,libcxx,lld}; do + if ! use "${flag}" && has_version "sys-devel/clang[${flag}]"; then + missing_flags+=( "${flag}" ) + fi + done + + if [[ ${missing_flags[@]} ]]; then + eerror "It seems that you have the following flags set on sys-devel/clang:" + eerror + eerror " ${missing_flags[*]}" + eerror + eerror "The default runtimes are now set via flags on sys-devel/clang-common." + eerror "The build is being aborted to prevent breakage. Please either set" + eerror "the respective flags on this ebuild, e.g.:" + eerror + eerror " sys-devel/clang-common ${missing_flags[*]}" + eerror + eerror "or build with CLANG_IGNORE_DEFAULT_RUNTIMES=1." + die "Mismatched defaults detected between sys-devel/clang and sys-devel/clang-common" + fi +} + +src_install() { + newbashcomp bash-autocomplete.sh clang + + insinto /etc/clang + newins - gentoo-runtimes.cfg <<-EOF + # This file is initially generated by sys-devel/clang-runtime. + # It is used to control the default runtimes using by clang. + + --rtlib=$(usex default-compiler-rt compiler-rt libgcc) + --unwindlib=$(usex default-compiler-rt libunwind libgcc) + --stdlib=$(usex default-libcxx libc++ libstdc++) + -fuse-ld=$(usex default-lld lld bfd) + EOF + + newins - gentoo-gcc-install.cfg <<-EOF + # This file is maintained by gcc-config. + # It is used to specify the selected GCC installation. + EOF + + newins - gentoo-common.cfg <<-EOF + # This file contains flags common to clang, clang++ and clang-cpp. + @gentoo-runtimes.cfg + @gentoo-gcc-install.cfg + @gentoo-hardened.cfg + # bug #870001 + -include "${EPREFIX}/usr/include/gentoo/maybe-stddefs.h" + EOF + + # Baseline hardening (bug #851111) + newins - gentoo-hardened.cfg <<-EOF + # Some of these options are added unconditionally, regardless of + # USE=hardened, for parity with sys-devel/gcc. + -fstack-clash-protection + -fstack-protector-strong + -fPIE + -include "${EPREFIX}/usr/include/gentoo/fortify.h" + EOF + + dodir /usr/include/gentoo + + cat >> "${ED}/usr/include/gentoo/maybe-stddefs.h" <<-EOF || die + /* __has_include is an extension, but it's fine, because this is only + for Clang anyway. */ + #if defined __has_include && __has_include (<stdc-predef.h>) && !defined(__GLIBC__) + # include <stdc-predef.h> + #endif + EOF + + local fortify_level=$(usex hardened 3 2) + # We have to do this because glibc's headers warn if F_S is set + # without optimization and that would at the very least be very noisy + # during builds and at worst trigger many -Werror builds. + cat >> "${ED}/usr/include/gentoo/fortify.h" <<- EOF || die + #ifdef __clang__ + # pragma clang system_header + #endif + #ifndef _FORTIFY_SOURCE + # if defined(__has_feature) + # define __GENTOO_HAS_FEATURE(x) __has_feature(x) + # else + # define __GENTOO_HAS_FEATURE(x) 0 + # endif + # + # if defined(__OPTIMIZE__) && __OPTIMIZE__ > 0 + # if !defined(__SANITIZE_ADDRESS__) && !__GENTOO_HAS_FEATURE(address_sanitizer) && !__GENTOO_HAS_FEATURE(memory_sanitizer) + # define _FORTIFY_SOURCE ${fortify_level} + # endif + # endif + # undef __GENTOO_HAS_FEATURE + #endif + EOF + + if use hardened ; then + cat >> "${ED}/etc/clang/gentoo-hardened.cfg" <<-EOF || die + # Options below are conditional on USE=hardened. + -D_GLIBCXX_ASSERTIONS + + # Analogue to GLIBCXX_ASSERTIONS + # https://libcxx.llvm.org/UsingLibcxx.html#assertions-mode + -D_LIBCPP_ENABLE_ASSERTIONS=1 + EOF + fi + + if use stricter; then + newins - gentoo-stricter.cfg <<-EOF + # This file increases the strictness of older clang versions + # to match the newest upstream version. + + # clang-16 defaults + -Werror=implicit-function-declaration + -Werror=implicit-int + -Werror=incompatible-function-pointer-types + + # constructs banned by C2x + -Werror=deprecated-non-prototype + + # deprecated but large blast radius + #-Werror=strict-prototypes + EOF + + cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die + @gentoo-stricter.cfg + EOF + fi + + local tool + for tool in clang{,++,-cpp}; do + newins - "${tool}.cfg" <<-EOF + # This configuration file is used by ${tool} driver. + @gentoo-common.cfg + EOF + done +} + +pkg_preinst() { + if has_version -b sys-devel/gcc-config && has_version sys-devel/gcc + then + local gcc_path=$(gcc-config --get-lib-path 2>/dev/null) + if [[ -n ${gcc_path} ]]; then + cat >> "${ED}/etc/clang/gentoo-gcc-install.cfg" <<-EOF + --gcc-install-dir="${gcc_path%%:*}" + EOF + fi + fi +} diff --git a/sys-devel/clang-common/clang-common-16.0.0.9999.ebuild b/sys-devel/clang-common/clang-common-16.0.3.ebuild index be17e87b775a..4acd801b683d 100644 --- a/sys-devel/clang-common/clang-common-16.0.0.9999.ebuild +++ b/sys-devel/clang-common/clang-common-16.0.3.ebuild @@ -10,7 +10,7 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" SLOT="0" -KEYWORDS="" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~ppc-macos ~x64-macos" IUSE=" default-compiler-rt default-libcxx default-lld llvm-libunwind hardened stricter @@ -20,8 +20,8 @@ PDEPEND=" sys-devel/clang:* default-compiler-rt? ( sys-devel/clang-runtime[compiler-rt] - llvm-libunwind? ( sys-libs/llvm-libunwind ) - !llvm-libunwind? ( sys-libs/libunwind ) + llvm-libunwind? ( sys-libs/llvm-libunwind[static-libs] ) + !llvm-libunwind? ( sys-libs/libunwind[static-libs] ) ) !default-compiler-rt? ( sys-devel/gcc ) default-libcxx? ( >=sys-libs/libcxx-${PV} ) @@ -106,11 +106,23 @@ src_install() { # without optimization and that would at the very least be very noisy # during builds and at worst trigger many -Werror builds. cat >> "${ED}/usr/include/gentoo/fortify.h" <<- EOF || die - #ifndef _FORTIFY_SOURCE - #if defined(__OPTIMIZE__) && __OPTIMIZE__ > 0 - #define _FORTIFY_SOURCE ${fortify_level} - #endif - #endif + #ifdef __clang__ + # pragma clang system_header + #endif + #ifndef _FORTIFY_SOURCE + # if defined(__has_feature) + # define __GENTOO_HAS_FEATURE(x) __has_feature(x) + # else + # define __GENTOO_HAS_FEATURE(x) 0 + # endif + # + # if defined(__OPTIMIZE__) && __OPTIMIZE__ > 0 + # if !defined(__SANITIZE_ADDRESS__) && !__GENTOO_HAS_FEATURE(address_sanitizer) && !__GENTOO_HAS_FEATURE(memory_sanitizer) + # define _FORTIFY_SOURCE ${fortify_level} + # endif + # endif + # undef __GENTOO_HAS_FEATURE + #endif EOF if use hardened ; then diff --git a/sys-devel/clang-common/clang-common-16.0.4-r1.ebuild b/sys-devel/clang-common/clang-common-16.0.4-r1.ebuild new file mode 100644 index 000000000000..358dca01c333 --- /dev/null +++ b/sys-devel/clang-common/clang-common-16.0.4-r1.ebuild @@ -0,0 +1,190 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit bash-completion-r1 llvm.org + +DESCRIPTION="Common files shared between multiple slots of clang" +HOMEPAGE="https://llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~ppc-macos ~x64-macos" +IUSE=" + default-compiler-rt default-libcxx default-lld llvm-libunwind + hardened stricter +" + +PDEPEND=" + sys-devel/clang:* + default-compiler-rt? ( + sys-devel/clang-runtime[compiler-rt] + llvm-libunwind? ( sys-libs/llvm-libunwind[static-libs] ) + !llvm-libunwind? ( sys-libs/libunwind[static-libs] ) + ) + !default-compiler-rt? ( sys-devel/gcc ) + default-libcxx? ( >=sys-libs/libcxx-${PV} ) + !default-libcxx? ( sys-devel/gcc ) + default-lld? ( sys-devel/lld ) + !default-lld? ( sys-devel/binutils ) +" +IDEPEND=" + !default-compiler-rt? ( sys-devel/gcc-config ) + !default-libcxx? ( sys-devel/gcc-config ) +" + +LLVM_COMPONENTS=( clang/utils ) +llvm.org_set_globals + +pkg_pretend() { + [[ ${CLANG_IGNORE_DEFAULT_RUNTIMES} ]] && return + + local flag missing_flags=() + for flag in default-{compiler-rt,libcxx,lld}; do + if ! use "${flag}" && has_version "sys-devel/clang[${flag}]"; then + missing_flags+=( "${flag}" ) + fi + done + + if [[ ${missing_flags[@]} ]]; then + eerror "It seems that you have the following flags set on sys-devel/clang:" + eerror + eerror " ${missing_flags[*]}" + eerror + eerror "The default runtimes are now set via flags on sys-devel/clang-common." + eerror "The build is being aborted to prevent breakage. Please either set" + eerror "the respective flags on this ebuild, e.g.:" + eerror + eerror " sys-devel/clang-common ${missing_flags[*]}" + eerror + eerror "or build with CLANG_IGNORE_DEFAULT_RUNTIMES=1." + die "Mismatched defaults detected between sys-devel/clang and sys-devel/clang-common" + fi +} + +src_install() { + newbashcomp bash-autocomplete.sh clang + + insinto /etc/clang + newins - gentoo-runtimes.cfg <<-EOF + # This file is initially generated by sys-devel/clang-runtime. + # It is used to control the default runtimes using by clang. + + --rtlib=$(usex default-compiler-rt compiler-rt libgcc) + --unwindlib=$(usex default-compiler-rt libunwind libgcc) + --stdlib=$(usex default-libcxx libc++ libstdc++) + -fuse-ld=$(usex default-lld lld bfd) + EOF + + newins - gentoo-gcc-install.cfg <<-EOF + # This file is maintained by gcc-config. + # It is used to specify the selected GCC installation. + EOF + + newins - gentoo-common.cfg <<-EOF + # This file contains flags common to clang, clang++ and clang-cpp. + @gentoo-runtimes.cfg + @gentoo-gcc-install.cfg + @gentoo-hardened.cfg + # bug #870001 + -include "${EPREFIX}/usr/include/gentoo/maybe-stddefs.h" + EOF + + # Baseline hardening (bug #851111) + newins - gentoo-hardened.cfg <<-EOF + # Some of these options are added unconditionally, regardless of + # USE=hardened, for parity with sys-devel/gcc. + -fstack-clash-protection + -fstack-protector-strong + -fPIE + -include "${EPREFIX}/usr/include/gentoo/fortify.h" + EOF + + dodir /usr/include/gentoo + + cat >> "${ED}/usr/include/gentoo/maybe-stddefs.h" <<-EOF || die + /* __has_include is an extension, but it's fine, because this is only + for Clang anyway. */ + #if defined __has_include && __has_include (<stdc-predef.h>) && !defined(__GLIBC__) + # include <stdc-predef.h> + #endif + EOF + + local fortify_level=$(usex hardened 3 2) + # We have to do this because glibc's headers warn if F_S is set + # without optimization and that would at the very least be very noisy + # during builds and at worst trigger many -Werror builds. + cat >> "${ED}/usr/include/gentoo/fortify.h" <<- EOF || die + #ifdef __clang__ + # pragma clang system_header + #endif + #ifndef _FORTIFY_SOURCE + # if defined(__has_feature) + # define __GENTOO_HAS_FEATURE(x) __has_feature(x) + # else + # define __GENTOO_HAS_FEATURE(x) 0 + # endif + # + # if defined(__OPTIMIZE__) && __OPTIMIZE__ > 0 + # if !defined(__SANITIZE_ADDRESS__) && !__GENTOO_HAS_FEATURE(address_sanitizer) && !__GENTOO_HAS_FEATURE(memory_sanitizer) + # define _FORTIFY_SOURCE ${fortify_level} + # endif + # endif + # undef __GENTOO_HAS_FEATURE + #endif + EOF + + if use hardened ; then + cat >> "${ED}/etc/clang/gentoo-hardened.cfg" <<-EOF || die + # Options below are conditional on USE=hardened. + -D_GLIBCXX_ASSERTIONS + + # Analogue to GLIBCXX_ASSERTIONS + # https://libcxx.llvm.org/UsingLibcxx.html#assertions-mode + -D_LIBCPP_ENABLE_ASSERTIONS=1 + EOF + fi + + if use stricter; then + newins - gentoo-stricter.cfg <<-EOF + # This file increases the strictness of older clang versions + # to match the newest upstream version. + + # clang-16 defaults + -Werror=implicit-function-declaration + -Werror=implicit-int + -Werror=incompatible-function-pointer-types + + # constructs banned by C2x + -Werror=deprecated-non-prototype + + # deprecated but large blast radius + #-Werror=strict-prototypes + EOF + + cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die + @gentoo-stricter.cfg + EOF + fi + + local tool + for tool in clang{,++,-cpp}; do + newins - "${tool}.cfg" <<-EOF + # This configuration file is used by ${tool} driver. + @gentoo-common.cfg + EOF + done +} + +pkg_preinst() { + if has_version -b sys-devel/gcc-config && has_version sys-devel/gcc + then + local gcc_path=$(gcc-config --get-lib-path 2>/dev/null) + if [[ -n ${gcc_path} ]]; then + cat >> "${ED}/etc/clang/gentoo-gcc-install.cfg" <<-EOF + --gcc-install-dir="${gcc_path%%:*}" + EOF + fi + fi +} diff --git a/sys-devel/clang-common/clang-common-16.0.0_pre20230127.ebuild b/sys-devel/clang-common/clang-common-16.0.5.9999.ebuild index be17e87b775a..51e0f70c6470 100644 --- a/sys-devel/clang-common/clang-common-16.0.0_pre20230127.ebuild +++ b/sys-devel/clang-common/clang-common-16.0.5.9999.ebuild @@ -20,8 +20,8 @@ PDEPEND=" sys-devel/clang:* default-compiler-rt? ( sys-devel/clang-runtime[compiler-rt] - llvm-libunwind? ( sys-libs/llvm-libunwind ) - !llvm-libunwind? ( sys-libs/libunwind ) + llvm-libunwind? ( sys-libs/llvm-libunwind[static-libs] ) + !llvm-libunwind? ( sys-libs/libunwind[static-libs] ) ) !default-compiler-rt? ( sys-devel/gcc ) default-libcxx? ( >=sys-libs/libcxx-${PV} ) @@ -87,6 +87,8 @@ src_install() { @gentoo-runtimes.cfg @gentoo-gcc-install.cfg @gentoo-hardened.cfg + # bug #870001 + -include "${EPREFIX}/usr/include/gentoo/maybe-stddefs.h" EOF # Baseline hardening (bug #851111) @@ -101,16 +103,36 @@ src_install() { dodir /usr/include/gentoo + cat >> "${ED}/usr/include/gentoo/maybe-stddefs.h" <<-EOF || die + /* __has_include is an extension, but it's fine, because this is only + for Clang anyway. */ + #if defined __has_include && __has_include (<stdc-predef.h>) && !defined(__GLIBC__) + # include <stdc-predef.h> + #endif + EOF + local fortify_level=$(usex hardened 3 2) # We have to do this because glibc's headers warn if F_S is set # without optimization and that would at the very least be very noisy # during builds and at worst trigger many -Werror builds. cat >> "${ED}/usr/include/gentoo/fortify.h" <<- EOF || die - #ifndef _FORTIFY_SOURCE - #if defined(__OPTIMIZE__) && __OPTIMIZE__ > 0 - #define _FORTIFY_SOURCE ${fortify_level} - #endif - #endif + #ifdef __clang__ + # pragma clang system_header + #endif + #ifndef _FORTIFY_SOURCE + # if defined(__has_feature) + # define __GENTOO_HAS_FEATURE(x) __has_feature(x) + # else + # define __GENTOO_HAS_FEATURE(x) 0 + # endif + # + # if defined(__OPTIMIZE__) && __OPTIMIZE__ > 0 + # if !defined(__SANITIZE_ADDRESS__) && !__GENTOO_HAS_FEATURE(address_sanitizer) && !__GENTOO_HAS_FEATURE(memory_sanitizer) + # define _FORTIFY_SOURCE ${fortify_level} + # endif + # endif + # undef __GENTOO_HAS_FEATURE + #endif EOF if use hardened ; then diff --git a/sys-devel/clang-common/clang-common-17.0.0.9999.ebuild b/sys-devel/clang-common/clang-common-17.0.0.9999.ebuild index be17e87b775a..51e0f70c6470 100644 --- a/sys-devel/clang-common/clang-common-17.0.0.9999.ebuild +++ b/sys-devel/clang-common/clang-common-17.0.0.9999.ebuild @@ -20,8 +20,8 @@ PDEPEND=" sys-devel/clang:* default-compiler-rt? ( sys-devel/clang-runtime[compiler-rt] - llvm-libunwind? ( sys-libs/llvm-libunwind ) - !llvm-libunwind? ( sys-libs/libunwind ) + llvm-libunwind? ( sys-libs/llvm-libunwind[static-libs] ) + !llvm-libunwind? ( sys-libs/libunwind[static-libs] ) ) !default-compiler-rt? ( sys-devel/gcc ) default-libcxx? ( >=sys-libs/libcxx-${PV} ) @@ -87,6 +87,8 @@ src_install() { @gentoo-runtimes.cfg @gentoo-gcc-install.cfg @gentoo-hardened.cfg + # bug #870001 + -include "${EPREFIX}/usr/include/gentoo/maybe-stddefs.h" EOF # Baseline hardening (bug #851111) @@ -101,16 +103,36 @@ src_install() { dodir /usr/include/gentoo + cat >> "${ED}/usr/include/gentoo/maybe-stddefs.h" <<-EOF || die + /* __has_include is an extension, but it's fine, because this is only + for Clang anyway. */ + #if defined __has_include && __has_include (<stdc-predef.h>) && !defined(__GLIBC__) + # include <stdc-predef.h> + #endif + EOF + local fortify_level=$(usex hardened 3 2) # We have to do this because glibc's headers warn if F_S is set # without optimization and that would at the very least be very noisy # during builds and at worst trigger many -Werror builds. cat >> "${ED}/usr/include/gentoo/fortify.h" <<- EOF || die - #ifndef _FORTIFY_SOURCE - #if defined(__OPTIMIZE__) && __OPTIMIZE__ > 0 - #define _FORTIFY_SOURCE ${fortify_level} - #endif - #endif + #ifdef __clang__ + # pragma clang system_header + #endif + #ifndef _FORTIFY_SOURCE + # if defined(__has_feature) + # define __GENTOO_HAS_FEATURE(x) __has_feature(x) + # else + # define __GENTOO_HAS_FEATURE(x) 0 + # endif + # + # if defined(__OPTIMIZE__) && __OPTIMIZE__ > 0 + # if !defined(__SANITIZE_ADDRESS__) && !__GENTOO_HAS_FEATURE(address_sanitizer) && !__GENTOO_HAS_FEATURE(memory_sanitizer) + # define _FORTIFY_SOURCE ${fortify_level} + # endif + # endif + # undef __GENTOO_HAS_FEATURE + #endif EOF if use hardened ; then diff --git a/sys-devel/clang-common/clang-common-16.0.0_pre20230107-r1.ebuild b/sys-devel/clang-common/clang-common-17.0.0_pre20230520.ebuild index 3c407f5a1af6..51e0f70c6470 100644 --- a/sys-devel/clang-common/clang-common-16.0.0_pre20230107-r1.ebuild +++ b/sys-devel/clang-common/clang-common-17.0.0_pre20230520.ebuild @@ -10,7 +10,7 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" SLOT="0" -KEYWORDS="~loong" +KEYWORDS="" IUSE=" default-compiler-rt default-libcxx default-lld llvm-libunwind hardened stricter @@ -20,8 +20,8 @@ PDEPEND=" sys-devel/clang:* default-compiler-rt? ( sys-devel/clang-runtime[compiler-rt] - llvm-libunwind? ( sys-libs/llvm-libunwind ) - !llvm-libunwind? ( sys-libs/libunwind ) + llvm-libunwind? ( sys-libs/llvm-libunwind[static-libs] ) + !llvm-libunwind? ( sys-libs/libunwind[static-libs] ) ) !default-compiler-rt? ( sys-devel/gcc ) default-libcxx? ( >=sys-libs/libcxx-${PV} ) @@ -87,6 +87,8 @@ src_install() { @gentoo-runtimes.cfg @gentoo-gcc-install.cfg @gentoo-hardened.cfg + # bug #870001 + -include "${EPREFIX}/usr/include/gentoo/maybe-stddefs.h" EOF # Baseline hardening (bug #851111) @@ -101,16 +103,36 @@ src_install() { dodir /usr/include/gentoo + cat >> "${ED}/usr/include/gentoo/maybe-stddefs.h" <<-EOF || die + /* __has_include is an extension, but it's fine, because this is only + for Clang anyway. */ + #if defined __has_include && __has_include (<stdc-predef.h>) && !defined(__GLIBC__) + # include <stdc-predef.h> + #endif + EOF + local fortify_level=$(usex hardened 3 2) # We have to do this because glibc's headers warn if F_S is set # without optimization and that would at the very least be very noisy # during builds and at worst trigger many -Werror builds. cat >> "${ED}/usr/include/gentoo/fortify.h" <<- EOF || die - #ifndef _FORTIFY_SOURCE - #if defined(__OPTIMIZE__) && __OPTIMIZE__ > 0 - #define _FORTIFY_SOURCE ${fortify_level} - #endif - #endif + #ifdef __clang__ + # pragma clang system_header + #endif + #ifndef _FORTIFY_SOURCE + # if defined(__has_feature) + # define __GENTOO_HAS_FEATURE(x) __has_feature(x) + # else + # define __GENTOO_HAS_FEATURE(x) 0 + # endif + # + # if defined(__OPTIMIZE__) && __OPTIMIZE__ > 0 + # if !defined(__SANITIZE_ADDRESS__) && !__GENTOO_HAS_FEATURE(address_sanitizer) && !__GENTOO_HAS_FEATURE(memory_sanitizer) + # define _FORTIFY_SOURCE ${fortify_level} + # endif + # endif + # undef __GENTOO_HAS_FEATURE + #endif EOF if use hardened ; then diff --git a/sys-devel/clang-common/clang-common-17.0.0_pre20230526.ebuild b/sys-devel/clang-common/clang-common-17.0.0_pre20230526.ebuild new file mode 100644 index 000000000000..51e0f70c6470 --- /dev/null +++ b/sys-devel/clang-common/clang-common-17.0.0_pre20230526.ebuild @@ -0,0 +1,190 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit bash-completion-r1 llvm.org + +DESCRIPTION="Common files shared between multiple slots of clang" +HOMEPAGE="https://llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" +SLOT="0" +KEYWORDS="" +IUSE=" + default-compiler-rt default-libcxx default-lld llvm-libunwind + hardened stricter +" + +PDEPEND=" + sys-devel/clang:* + default-compiler-rt? ( + sys-devel/clang-runtime[compiler-rt] + llvm-libunwind? ( sys-libs/llvm-libunwind[static-libs] ) + !llvm-libunwind? ( sys-libs/libunwind[static-libs] ) + ) + !default-compiler-rt? ( sys-devel/gcc ) + default-libcxx? ( >=sys-libs/libcxx-${PV} ) + !default-libcxx? ( sys-devel/gcc ) + default-lld? ( sys-devel/lld ) + !default-lld? ( sys-devel/binutils ) +" +IDEPEND=" + !default-compiler-rt? ( sys-devel/gcc-config ) + !default-libcxx? ( sys-devel/gcc-config ) +" + +LLVM_COMPONENTS=( clang/utils ) +llvm.org_set_globals + +pkg_pretend() { + [[ ${CLANG_IGNORE_DEFAULT_RUNTIMES} ]] && return + + local flag missing_flags=() + for flag in default-{compiler-rt,libcxx,lld}; do + if ! use "${flag}" && has_version "sys-devel/clang[${flag}]"; then + missing_flags+=( "${flag}" ) + fi + done + + if [[ ${missing_flags[@]} ]]; then + eerror "It seems that you have the following flags set on sys-devel/clang:" + eerror + eerror " ${missing_flags[*]}" + eerror + eerror "The default runtimes are now set via flags on sys-devel/clang-common." + eerror "The build is being aborted to prevent breakage. Please either set" + eerror "the respective flags on this ebuild, e.g.:" + eerror + eerror " sys-devel/clang-common ${missing_flags[*]}" + eerror + eerror "or build with CLANG_IGNORE_DEFAULT_RUNTIMES=1." + die "Mismatched defaults detected between sys-devel/clang and sys-devel/clang-common" + fi +} + +src_install() { + newbashcomp bash-autocomplete.sh clang + + insinto /etc/clang + newins - gentoo-runtimes.cfg <<-EOF + # This file is initially generated by sys-devel/clang-runtime. + # It is used to control the default runtimes using by clang. + + --rtlib=$(usex default-compiler-rt compiler-rt libgcc) + --unwindlib=$(usex default-compiler-rt libunwind libgcc) + --stdlib=$(usex default-libcxx libc++ libstdc++) + -fuse-ld=$(usex default-lld lld bfd) + EOF + + newins - gentoo-gcc-install.cfg <<-EOF + # This file is maintained by gcc-config. + # It is used to specify the selected GCC installation. + EOF + + newins - gentoo-common.cfg <<-EOF + # This file contains flags common to clang, clang++ and clang-cpp. + @gentoo-runtimes.cfg + @gentoo-gcc-install.cfg + @gentoo-hardened.cfg + # bug #870001 + -include "${EPREFIX}/usr/include/gentoo/maybe-stddefs.h" + EOF + + # Baseline hardening (bug #851111) + newins - gentoo-hardened.cfg <<-EOF + # Some of these options are added unconditionally, regardless of + # USE=hardened, for parity with sys-devel/gcc. + -fstack-clash-protection + -fstack-protector-strong + -fPIE + -include "${EPREFIX}/usr/include/gentoo/fortify.h" + EOF + + dodir /usr/include/gentoo + + cat >> "${ED}/usr/include/gentoo/maybe-stddefs.h" <<-EOF || die + /* __has_include is an extension, but it's fine, because this is only + for Clang anyway. */ + #if defined __has_include && __has_include (<stdc-predef.h>) && !defined(__GLIBC__) + # include <stdc-predef.h> + #endif + EOF + + local fortify_level=$(usex hardened 3 2) + # We have to do this because glibc's headers warn if F_S is set + # without optimization and that would at the very least be very noisy + # during builds and at worst trigger many -Werror builds. + cat >> "${ED}/usr/include/gentoo/fortify.h" <<- EOF || die + #ifdef __clang__ + # pragma clang system_header + #endif + #ifndef _FORTIFY_SOURCE + # if defined(__has_feature) + # define __GENTOO_HAS_FEATURE(x) __has_feature(x) + # else + # define __GENTOO_HAS_FEATURE(x) 0 + # endif + # + # if defined(__OPTIMIZE__) && __OPTIMIZE__ > 0 + # if !defined(__SANITIZE_ADDRESS__) && !__GENTOO_HAS_FEATURE(address_sanitizer) && !__GENTOO_HAS_FEATURE(memory_sanitizer) + # define _FORTIFY_SOURCE ${fortify_level} + # endif + # endif + # undef __GENTOO_HAS_FEATURE + #endif + EOF + + if use hardened ; then + cat >> "${ED}/etc/clang/gentoo-hardened.cfg" <<-EOF || die + # Options below are conditional on USE=hardened. + -D_GLIBCXX_ASSERTIONS + + # Analogue to GLIBCXX_ASSERTIONS + # https://libcxx.llvm.org/UsingLibcxx.html#assertions-mode + -D_LIBCPP_ENABLE_ASSERTIONS=1 + EOF + fi + + if use stricter; then + newins - gentoo-stricter.cfg <<-EOF + # This file increases the strictness of older clang versions + # to match the newest upstream version. + + # clang-16 defaults + -Werror=implicit-function-declaration + -Werror=implicit-int + -Werror=incompatible-function-pointer-types + + # constructs banned by C2x + -Werror=deprecated-non-prototype + + # deprecated but large blast radius + #-Werror=strict-prototypes + EOF + + cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die + @gentoo-stricter.cfg + EOF + fi + + local tool + for tool in clang{,++,-cpp}; do + newins - "${tool}.cfg" <<-EOF + # This configuration file is used by ${tool} driver. + @gentoo-common.cfg + EOF + done +} + +pkg_preinst() { + if has_version -b sys-devel/gcc-config && has_version sys-devel/gcc + then + local gcc_path=$(gcc-config --get-lib-path 2>/dev/null) + if [[ -n ${gcc_path} ]]; then + cat >> "${ED}/etc/clang/gentoo-gcc-install.cfg" <<-EOF + --gcc-install-dir="${gcc_path%%:*}" + EOF + fi + fi +} diff --git a/sys-devel/clang-runtime/clang-runtime-13.0.1.ebuild b/sys-devel/clang-runtime/clang-runtime-13.0.1.ebuild deleted file mode 100644 index a81ecc3327a9..000000000000 --- a/sys-devel/clang-runtime/clang-runtime-13.0.1.ebuild +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit multilib-build - -DESCRIPTION="Meta-ebuild for clang runtime libraries" -HOMEPAGE="https://clang.llvm.org/" -SRC_URI="" - -LICENSE="metapackage" -SLOT="$(ver_cut 1-3)" -KEYWORDS="amd64 arm arm64 ~ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~ppc-macos ~x64-macos" -IUSE="+compiler-rt libcxx openmp +sanitize" -REQUIRED_USE="sanitize? ( compiler-rt )" - -RDEPEND=" - compiler-rt? ( - ~sys-libs/compiler-rt-${PV}:${SLOT} - sanitize? ( ~sys-libs/compiler-rt-sanitizers-${PV}:${SLOT} ) - ) - libcxx? ( >=sys-libs/libcxx-${PV}[${MULTILIB_USEDEP}] ) - openmp? ( >=sys-libs/libomp-${PV}[${MULTILIB_USEDEP}] )" diff --git a/sys-devel/clang-runtime/clang-runtime-16.0.3.ebuild b/sys-devel/clang-runtime/clang-runtime-16.0.3.ebuild new file mode 100644 index 000000000000..6483c7c0c78e --- /dev/null +++ b/sys-devel/clang-runtime/clang-runtime-16.0.3.ebuild @@ -0,0 +1,40 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit multilib-build toolchain-funcs + +DESCRIPTION="Meta-ebuild for clang runtime libraries" +HOMEPAGE="https://clang.llvm.org/" + +LICENSE="metapackage" +SLOT="${PV%%.*}" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~ppc-macos ~x64-macos" +IUSE="+compiler-rt libcxx openmp +sanitize" +REQUIRED_USE="sanitize? ( compiler-rt )" + +RDEPEND=" + compiler-rt? ( + ~sys-libs/compiler-rt-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?] + sanitize? ( + ~sys-libs/compiler-rt-sanitizers-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?] + ) + ) + libcxx? ( >=sys-libs/libcxx-${PV}[${MULTILIB_USEDEP}] ) + openmp? ( >=sys-libs/libomp-${PV}[${MULTILIB_USEDEP}] ) +" + +pkg_pretend() { + if tc-is-clang; then + ewarn "You seem to be using clang as a system compiler. As of clang-16," + ewarn "upstream has turned a few warnings that commonly occur during" + ewarn "configure script runs into errors by default. This causes some" + ewarn "configure tests to start failing, sometimes resulting in silent" + ewarn "breakage, missing functionality or runtime misbehavior. It is" + ewarn "not yet clear whether the change will remain or be reverted." + ewarn + ewarn "For more information, please see:" + ewarn "https://discourse.llvm.org/t/configure-script-breakage-with-the-new-werror-implicit-function-declaration/65213" + fi +} diff --git a/sys-devel/clang-runtime/clang-runtime-16.0.4.ebuild b/sys-devel/clang-runtime/clang-runtime-16.0.4.ebuild new file mode 100644 index 000000000000..6483c7c0c78e --- /dev/null +++ b/sys-devel/clang-runtime/clang-runtime-16.0.4.ebuild @@ -0,0 +1,40 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit multilib-build toolchain-funcs + +DESCRIPTION="Meta-ebuild for clang runtime libraries" +HOMEPAGE="https://clang.llvm.org/" + +LICENSE="metapackage" +SLOT="${PV%%.*}" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~ppc-macos ~x64-macos" +IUSE="+compiler-rt libcxx openmp +sanitize" +REQUIRED_USE="sanitize? ( compiler-rt )" + +RDEPEND=" + compiler-rt? ( + ~sys-libs/compiler-rt-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?] + sanitize? ( + ~sys-libs/compiler-rt-sanitizers-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?] + ) + ) + libcxx? ( >=sys-libs/libcxx-${PV}[${MULTILIB_USEDEP}] ) + openmp? ( >=sys-libs/libomp-${PV}[${MULTILIB_USEDEP}] ) +" + +pkg_pretend() { + if tc-is-clang; then + ewarn "You seem to be using clang as a system compiler. As of clang-16," + ewarn "upstream has turned a few warnings that commonly occur during" + ewarn "configure script runs into errors by default. This causes some" + ewarn "configure tests to start failing, sometimes resulting in silent" + ewarn "breakage, missing functionality or runtime misbehavior. It is" + ewarn "not yet clear whether the change will remain or be reverted." + ewarn + ewarn "For more information, please see:" + ewarn "https://discourse.llvm.org/t/configure-script-breakage-with-the-new-werror-implicit-function-declaration/65213" + fi +} diff --git a/sys-devel/clang-runtime/clang-runtime-16.0.0_pre20230127.ebuild b/sys-devel/clang-runtime/clang-runtime-16.0.5.9999.ebuild index 67b42357665e..67b42357665e 100644 --- a/sys-devel/clang-runtime/clang-runtime-16.0.0_pre20230127.ebuild +++ b/sys-devel/clang-runtime/clang-runtime-16.0.5.9999.ebuild diff --git a/sys-devel/clang-runtime/clang-runtime-16.0.0_pre20230107.ebuild b/sys-devel/clang-runtime/clang-runtime-17.0.0_pre20230520.ebuild index b4fc2669d5d7..67b42357665e 100644 --- a/sys-devel/clang-runtime/clang-runtime-16.0.0_pre20230107.ebuild +++ b/sys-devel/clang-runtime/clang-runtime-17.0.0_pre20230520.ebuild @@ -10,9 +10,10 @@ HOMEPAGE="https://clang.llvm.org/" LICENSE="metapackage" SLOT="${PV%%.*}" -KEYWORDS="~loong" +KEYWORDS="" IUSE="+compiler-rt libcxx openmp +sanitize" REQUIRED_USE="sanitize? ( compiler-rt )" +PROPERTIES="live" RDEPEND=" compiler-rt? ( diff --git a/sys-devel/clang-runtime/clang-runtime-16.0.0.9999.ebuild b/sys-devel/clang-runtime/clang-runtime-17.0.0_pre20230526.ebuild index 5eda72abae30..67b42357665e 100644 --- a/sys-devel/clang-runtime/clang-runtime-16.0.0.9999.ebuild +++ b/sys-devel/clang-runtime/clang-runtime-17.0.0_pre20230526.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 diff --git a/sys-devel/clang-toolchain-symlinks/clang-toolchain-symlinks-16-r2.ebuild b/sys-devel/clang-toolchain-symlinks/clang-toolchain-symlinks-16-r2.ebuild index 574b2739f3a0..86cc794fd88f 100644 --- a/sys-devel/clang-toolchain-symlinks/clang-toolchain-symlinks-16-r2.ebuild +++ b/sys-devel/clang-toolchain-symlinks/clang-toolchain-symlinks-16-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 2022 Gentoo Authors +# Copyright 2022-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -12,7 +12,7 @@ S=${WORKDIR} LICENSE="public-domain" SLOT="${PV}" -KEYWORDS="~loong" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x64-macos" IUSE="gcc-symlinks multilib-symlinks +native-symlinks" # Blocker for bug #872416 diff --git a/sys-devel/clang/Manifest b/sys-devel/clang/Manifest index d36dfbea9dcc..ff5880eb5322 100644 --- a/sys-devel/clang/Manifest +++ b/sys-devel/clang/Manifest @@ -1,13 +1,18 @@ -DIST llvm-13.0.1-manpages.tar.bz2 202187 BLAKE2B 32a761426dbe4c3c355d30660254305cd88b6d513faee04c78e370cea9d38761108a9be4c4b4ac39b6a74400af1f9d37ffd11ab05acd7340175c8d66845ae7d9 SHA512 9495e1daf588540fdb8b9ee905a9b6be4693bd70b7f42c8e8a0d667242fc24dc853c45918d3bc09d02f0761ad61541bc9749c1498e312da129abdab638a0d572 DIST llvm-14.0.6-manpages.tar.bz2 218186 BLAKE2B 4491296e490936a2d7b518e19a0ff6312b89abeef3fbe5da5d0b93bb2add1088ddf64a0b00ec8846062d19b1ad31e53eadee7ce03c9034aab554e183d1baccf6 SHA512 f8328dc2ec1e8d941d47e583ee31fae7bdcebb3f854b5c8a4a84bd19a79bf5427ad204012c81349bc05a291e41cf48e5129b4578bbd5d4490dd01e1c0b5823bf DIST llvm-15.0.7-manpages.tar.bz2 228425 BLAKE2B 573b030a32407cfe241fb2c8c62bed8e7c54f9daf4b8cffdd2d4e5ca2e40b5ec5ed3724475aedf77119be1a4d9de847a989e933d315e6d94908e407a19c98047 SHA512 86d5eeea2757b0a627c8d2d6e70a3265fc0207085f4e473cdd6e8b624c719625dead23fd1737742a1bea27b1c4631ef3e8e3041a1122a85fcb49859e5bfbee49 -DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01 +DIST llvm-16.0.3-manpages.tar.bz2 245859 BLAKE2B ea98ac1a777bb2fe52a576e7a733030e88debc50dbfceb70f20814fd960da6a56d06986272cb2792c86701961e4e39006e5a3aa105eefb8c59e3b99e528078ec SHA512 6669105c9ac66ec0c21ccc788635935b5133b035b97ff31af049ebb8064fa7d257d54c5d9fda79674aa6037668e3ddfd2a09f716dbfd7cd356b0e193242aa9fc +DIST llvm-16.0.4-manpages.tar.bz2 243154 BLAKE2B 69308e3ec19d750e7249b7c8cd79224c466b879c67dd900e201339486fa7fa4dd6ef9ef5b033b2443b32c3530cc76564fe2856a76f9b466fdab2b5c64148f089 SHA512 2d2b711adbd20a233d0611f81393faa29a2f32f0e64799a9a48185876045023ca1320becd2da110fbcbfce019a38df0d7c13fcaea3770b4fc23aa732eb11321b DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679cb09cc8e00e6a954df195c86c2af4dbf1b68334a405b8dcc45f2e28b5e5e0b7e9d5eb7ba907337027927371b7a3b7784ff8aae7e0 SHA512 8a5ea71c30fc0727cc855dd812bbcb6d5f51c80c98eb3d5b80258d5c5eaab1310edc9d53ae63c2ca827abec68e2912c4b69ef0da351ff883fb30545a61e1d09c +DIST llvm-gentoo-patchset-14.0.6-r4.tar.xz 19360 BLAKE2B 814dd617d237b0bd9c80bdd9d921196b8f93248b731083e79455d4609a05dd15b6847fc227359624abce683ecdaadaefea71dc9b65b7edd1fc3912123fa55054 SHA512 9ac57abc87a63cf31ecd021e6dd44f5f11cd6136fa3b92e89c52a6d13e0ed471f88e6e96160baeac4615eedff7943048a35a98c8d37387894c9c2d1f5df277ce +DIST llvm-gentoo-patchset-15.0.7-r3.tar.xz 24268 BLAKE2B 6531ae385ecea87bc26dba8ce19b4cde8ff224c80fd81f04c6ded131e305ecfdeb8d29ebd3b68a641d240805dc83eb0ebc7cc85124f02ad0ee66e0f201b91d7e SHA512 66cb33f8b423736b990fb75d4f2d1e5f14c0b03308f403297204dd1a352d72f85f34220fd66d3de5d6df328cdf2ffce03c2a111cb0bb57791cf68a88069ac7df DIST llvm-gentoo-patchset-15.0.7.tar.xz 19300 BLAKE2B b70e81d744c2eba5cd851e7b690ce8979b3064973f522be7c93bfb541860000a4bc8b17219f8788dfc8a527217dd13946cf7836640698ddd3d4b3fde493dfbf8 SHA512 daffff6ae4a0874aff1a423b4bb36701ecb5a35a36ae91d4ed7fda58b83e50ffcdc30498c84be4711fd3e1f227bf312dbe930019203e0a131944439af2aa94f7 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6 DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78af36b0826a1dfd9a337992499bf701e33149665bfc47d5e14978e38f342559629a559f8b2ce328705ba34fdf6830f5ae9721a5 SHA512 4836d3603f32e8e54434cbfa8ef33d9d473ac5dc20ebf9c67132653c73f4524931abd1084655eaee5f20bcfcb91bcc4bbc5c4a0b603ad0c9029c556e14dc4c52 DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df SHA512 fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2 -DIST llvm-project-46d5a57801bc37e5ebb1a4d6b2acc0fa99c01e8d.tar.gz 180436731 BLAKE2B 51c30c3f11dd55a225b8ebe4ded752ce9e8eb58751e7458c29901dbdd3673f94892d337d111d696e779e3f7ef0bca6c7d79709e2072a4bf3a001d8813125d571 SHA512 ebbe0f8becac39d63433dcc3de474c40f1215fc8faab94fa2ba869d28e66b27e4fe088377bd7ae64575a6d7b07017b88bf92e5488a3185a753e647d8da352bbf -DIST llvm-project-6dc85bd3fde7df2999fda07e9e9f2e83d52c6125.tar.gz 175208511 BLAKE2B cf87cf7e9bf7c74aab8ccda0f153369cb81798047fdd48025c3c7030857b128babbaafb667385a5c8e9916e16038b14fee39f1623d329471e73c39c2f2d7bbfa SHA512 e6dc0cacd6c079be8a00364e4c244782d764d9a8d514d65f9078427cb4a0c1663ff88761bfbc1e955a1a990451439110497c2cb7af7f56b2c91f2e9db4389894 -DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f +DIST llvm-project-16.0.3.src.tar.xz 117998136 BLAKE2B 6117586a117c30515e9a5623ab91d29ba65d33c8041274de0ecdbce08ae4fe1c8c3b120db9ca625f42fdbb2301537b4ffe8f7add701c178282be4f583fa0c8ca SHA512 2eb5eca1cbee92a499d7fba5729b61f31186353bc0545b17eefa300cf2b27c8d9a2f307443b2c1c9fe1b0ba412abf5143fdd4d25aaeb33d975a9a834221d7602 +DIST llvm-project-16.0.3.src.tar.xz.sig 566 BLAKE2B bbd96268b006fecffd7402452ae7559bd2ea42c7b771999f58893a48d66b1b056b476a7022c70e2ab8f11dba8318ccc141f97a05ece3b9ed3b4405a6890b0c3a SHA512 cdd5e1c2a252ba58f9b7f8687d6cf9a330c188988707bd72f4632a8158a2db9ac180b3936da99b87e7e99886c39cb8517ebbb04b7d1be198e76964e31ec8dc58 +DIST llvm-project-16.0.4.src.tar.xz 117996332 BLAKE2B 2ea3ef25290ce6180d271e42fbf5e02da973a21e3929c1ac8d1e3e7b268d39db97611e15654ca7e6527add24542d0eed0ee2b1b9d85dfd0ba661e55356bac5d3 SHA512 860bcb999005f55bed25691304983d7bf707f8e3246000595b412b9e88f4a1614be0adb43bbff9c30f49b969373fa0becab02a56ac37915a5f83c52ca8ea3f95 +DIST llvm-project-16.0.4.src.tar.xz.sig 566 BLAKE2B 43cb2147f12f98f864797158e8efcfed9c6780fae3b5c71c0f1aea19a4131ee91c36bdf5b10e44f478f2370c8d22a9038038ecd607f25a95f2d3e33628eb9ac0 SHA512 c902d1b652e6e144fcf74f550539f56665475b6bdf673ba5bf2f1731c3bb8f5717ed56433d488c54bbf2f429b432da84e0bfb4b5fb5f2b7fa208b4f24f682be7 +DIST llvm-project-a2684acfb61d40f441e240035d7f1ba50da637c8.tar.gz 184900914 BLAKE2B fb1f836738415a640bc84283722f6a7355a06bc8ac05b544dd4ad4ac9552dcf70040b82b0493c5b4485b28610412279ec0adcf467e71915167aa7d010c08216e SHA512 c08ff8abc166399e692d3166ccf65eb4b647893cba8ffc10bcda815bc914a944855bac036d6349f6d820a6ff43d5417170e6ff8620d97a2a144a0898e95d09e3 +DIST llvm-project-abbb22cc0c9c33dedb8d53c2bd3e703f92baace7.tar.gz 183193919 BLAKE2B 75c63d39918f7ec0faca0b1d03ba17dbd7d39a6f1d3a031dcb005ae1729933d8481f0bd745ec029ab21779525b2ddaf2989eaca2aed2b0e9b60c50ef71c7fc11 SHA512 f0c1b6fe2e087db202d32de05613b7570bd9a82dfef2e464014c9d4c9ba02c20d423cb783aa40ce5e9c9e074288efb2e5b6d70d55913bd285108e747400f55e7 diff --git a/sys-devel/clang/clang-14.0.6-r1.ebuild b/sys-devel/clang/clang-14.0.6-r1.ebuild index de10ab36054f..cab7a426dbeb 100644 --- a/sys-devel/clang/clang-14.0.6-r1.ebuild +++ b/sys-devel/clang/clang-14.0.6-r1.ebuild @@ -5,7 +5,7 @@ EAPI=8 PYTHON_COMPAT=( python3_{9..10} ) inherit cmake llvm llvm.org multilib multilib-minimal \ - prefix python-single-r1 toolchain-funcs + prefix python-single-r1 toolchain-funcs flag-o-matic DESCRIPTION="C language family frontend for LLVM" HOMEPAGE="https://llvm.org/" @@ -95,6 +95,10 @@ src_prepare() { eprefixify \ lib/Lex/InitHeaderSearch.cpp \ lib/Driver/ToolChains/Darwin.cpp || die + + if ! use prefix-guest && [[ -n ${EPREFIX} ]]; then + sed -i "/LibDir.*Loader/s@return \"\/\"@return \"${EPREFIX}/\"@" lib/Driver/ToolChains/Linux.cpp || die + fi } check_distribution_components() { @@ -230,10 +234,13 @@ get_distribution_components() { } multilib_src_configure() { + tc-is-gcc && filter-lto # GCC miscompiles LLVM, bug #873670 + local llvm_version=$(llvm-config --version) || die local clang_version=$(ver_cut 1-3 "${llvm_version}") local mycmakeargs=( + -DDEFAULT_SYSROOT=$(usex prefix-guest "" "${EPREFIX}") -DLLVM_CMAKE_PATH="${EPREFIX}/usr/lib/llvm/${SLOT}/$(get_libdir)/cmake/llvm" -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${SLOT}" -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man" diff --git a/sys-devel/clang/clang-13.0.1.ebuild b/sys-devel/clang/clang-14.0.6-r4.ebuild index 5e10d595d900..0ed77662113f 100644 --- a/sys-devel/clang/clang-13.0.1.ebuild +++ b/sys-devel/clang/clang-14.0.6-r4.ebuild @@ -1,7 +1,7 @@ # Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 PYTHON_COMPAT=( python3_{9..10} ) inherit cmake llvm llvm.org multilib multilib-minimal \ @@ -15,24 +15,33 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT" SLOT="$(ver_cut 1)" -KEYWORDS="amd64 arm arm64 ~ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~x64-macos" -IUSE="debug default-compiler-rt default-libcxx default-lld - doc llvm-libunwind +static-analyzer test xml" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x64-macos" +IUSE=" + debug default-compiler-rt default-libcxx default-lld doc + llvm-libunwind +pie +static-analyzer test xml +" REQUIRED_USE="${PYTHON_REQUIRED_USE}" RESTRICT="!test? ( test )" -RDEPEND=" +DEPEND=" ~sys-devel/llvm-${PV}:${SLOT}=[debug=,${MULTILIB_USEDEP}] static-analyzer? ( dev-lang/perl:* ) xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] ) - ${PYTHON_DEPS}" +" -DEPEND="${RDEPEND}" +RDEPEND=" + ${PYTHON_DEPS} + ${DEPEND} +" BDEPEND=" + ${PYTHON_DEPS} >=dev-util/cmake-3.16 - doc? ( dev-python/sphinx ) + doc? ( $(python_gen_cond_dep ' + dev-python/recommonmark[${PYTHON_USEDEP}] + dev-python/sphinx[${PYTHON_USEDEP}] + ') ) xml? ( virtual/pkgconfig ) - ${PYTHON_DEPS}" +" PDEPEND=" sys-devel/clang-common ~sys-devel/clang-runtime-${PV} @@ -42,16 +51,20 @@ PDEPEND=" !llvm-libunwind? ( sys-libs/libunwind ) ) default-libcxx? ( >=sys-libs/libcxx-${PV} ) - default-lld? ( sys-devel/lld )" + default-lld? ( sys-devel/lld ) +" -LLVM_COMPONENTS=( clang clang-tools-extra ) +LLVM_COMPONENTS=( + clang clang-tools-extra cmake + llvm/lib/Transforms/Hello +) LLVM_MANPAGES=1 LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support llvm/utils/{lit,llvm-lit,unittest} llvm/utils/{UpdateTestChecks,update_cc_test_checks.py} ) -LLVM_PATCHSET=${PV/_/-} +LLVM_PATCHSET=${PV}-r4 LLVM_USE_TARGETS=llvm llvm.org_set_globals @@ -80,8 +93,12 @@ src_prepare() { # add Gentoo Portage Prefix for Darwin (see prefix-dirs.patch) eprefixify \ - lib/Frontend/InitHeaderSearch.cpp \ + lib/Lex/InitHeaderSearch.cpp \ lib/Driver/ToolChains/Darwin.cpp || die + + if ! use prefix-guest && [[ -n ${EPREFIX} ]]; then + sed -i "/LibDir.*Loader/s@return \"\/\"@return \"${EPREFIX}/\"@" lib/Driver/ToolChains/Linux.cpp || die + fi } check_distribution_components() { @@ -99,10 +116,6 @@ check_distribution_components() { clang-libraries|distribution) continue ;; - # headers for clang-tidy static library - clang-tidy-headers) - continue - ;; # tools clang|clangd|clang-*) ;; @@ -188,6 +201,7 @@ get_distribution_components() { clang-query clang-reorder-fields clang-tidy + clang-tidy-headers clangd find-all-symbols modularize @@ -224,6 +238,7 @@ multilib_src_configure() { local clang_version=$(ver_cut 1-3 "${llvm_version}") local mycmakeargs=( + -DDEFAULT_SYSROOT=$(usex prefix-guest "" "${EPREFIX}") -DLLVM_CMAKE_PATH="${EPREFIX}/usr/lib/llvm/${SLOT}/$(get_libdir)/cmake/llvm" -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${SLOT}" -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man" @@ -253,6 +268,7 @@ multilib_src_configure() { -DCLANG_DEFAULT_CXX_STDLIB=$(usex default-libcxx libc++ "") -DCLANG_DEFAULT_RTLIB=$(usex default-compiler-rt compiler-rt "") -DCLANG_DEFAULT_LINKER=$(usex default-lld lld "") + -DCLANG_DEFAULT_PIE_ON_LINUX=$(usex pie) -DCLANG_DEFAULT_UNWINDLIB=$(usex default-compiler-rt libunwind "") -DCLANG_ENABLE_ARCMT=$(usex static-analyzer) @@ -262,6 +278,7 @@ multilib_src_configure() { ) use test && mycmakeargs+=( -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" + -DLLVM_EXTERNAL_LIT="${BUILD_DIR}/bin/llvm-lit" -DLLVM_LIT_ARGS="$(get_lit_flags)" ) @@ -342,6 +359,7 @@ src_install() { # Move runtime headers to /usr/lib/clang, where they belong mv "${ED}"/usr/include/clangrt "${ED}"/usr/lib/clang || die # move (remaining) wrapped headers back + mv "${T}"/clang-tidy "${ED}"/usr/include/ || die mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${SLOT}/include || die # Apply CHOST and version suffix to clang tools @@ -387,6 +405,11 @@ multilib_src_install() { rm -rf "${ED}"/usr/include || die mv "${ED}"/usr/lib/llvm/${SLOT}/include "${ED}"/usr/include || die mv "${ED}"/usr/lib/llvm/${SLOT}/$(get_libdir)/clang "${ED}"/usr/include/clangrt || die + if multilib_is_native_abi; then + # don't wrap clang-tidy headers, the list is too long + # (they're fine for non-native ABI but enabling the targets is problematic) + mv "${ED}"/usr/include/clang-tidy "${T}/" || die + fi } multilib_src_install_all() { diff --git a/sys-devel/clang/clang-15.0.7-r1.ebuild b/sys-devel/clang/clang-15.0.7-r1.ebuild index b7b9a4e0a274..7141f0e0a887 100644 --- a/sys-devel/clang/clang-15.0.7-r1.ebuild +++ b/sys-devel/clang/clang-15.0.7-r1.ebuild @@ -5,7 +5,7 @@ EAPI=8 PYTHON_COMPAT=( python3_{9..11} ) inherit cmake llvm llvm.org multilib multilib-minimal \ - prefix python-single-r1 toolchain-funcs + prefix python-single-r1 toolchain-funcs flag-o-matic DESCRIPTION="C language family frontend for LLVM" HOMEPAGE="https://llvm.org/" @@ -86,6 +86,10 @@ src_prepare() { eprefixify \ lib/Lex/InitHeaderSearch.cpp \ lib/Driver/ToolChains/Darwin.cpp || die + + if ! use prefix-guest && [[ -n ${EPREFIX} ]]; then + sed -i "/LibDir.*Loader/s@return \"\/\"@return \"${EPREFIX}/\"@" lib/Driver/ToolChains/Linux.cpp || die + fi } check_distribution_components() { @@ -248,7 +252,10 @@ get_distribution_components() { } multilib_src_configure() { + tc-is-gcc && filter-lto # GCC miscompiles LLVM, bug #873670 + local mycmakeargs=( + -DDEFAULT_SYSROOT=$(usex prefix-guest "" "${EPREFIX}") -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}" -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man" -DCLANG_CONFIG_FILE_SYSTEM_DIR="${EPREFIX}/etc/clang" @@ -424,6 +431,13 @@ src_install() { multilib_src_install() { DESTDIR=${D} cmake_build install-distribution + if multilib_is_native_abi; then + # install clang-*-wrapper tools + # https://bugs.gentoo.org/904143 + exeinto "/usr/lib/llvm/${LLVM_MAJOR}/bin" + doexe "${BUILD_DIR}"/bin/clang-{linker,nvlink}-wrapper + fi + # move headers to /usr/include for wrapping & ABI mismatch checks # (also drop the version suffix from runtime headers) rm -rf "${ED}"/usr/include || die diff --git a/sys-devel/clang/clang-15.0.7-r3.ebuild b/sys-devel/clang/clang-15.0.7-r3.ebuild new file mode 100644 index 000000000000..60a61a1e0c1e --- /dev/null +++ b/sys-devel/clang/clang-15.0.7-r3.ebuild @@ -0,0 +1,483 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..11} ) +inherit cmake llvm llvm.org multilib multilib-minimal \ + prefix python-single-r1 toolchain-funcs + +DESCRIPTION="C language family frontend for LLVM" +HOMEPAGE="https://llvm.org/" + +# MSVCSetupApi.h: MIT +# sorttable.js: MIT + +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT" +SLOT="${LLVM_MAJOR}/${LLVM_SOABI}g1" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x64-macos" +IUSE="debug doc +extra ieee-long-double +pie +static-analyzer test xml" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +RESTRICT="!test? ( test )" + +DEPEND=" + ~sys-devel/llvm-${PV}:${LLVM_MAJOR}=[debug=,${MULTILIB_USEDEP}] + static-analyzer? ( dev-lang/perl:* ) + xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] ) +" + +RDEPEND=" + ${PYTHON_DEPS} + ${DEPEND} + >=sys-devel/clang-common-${PV} +" +BDEPEND=" + ${PYTHON_DEPS} + >=dev-util/cmake-3.16 + doc? ( $(python_gen_cond_dep ' + dev-python/recommonmark[${PYTHON_USEDEP}] + dev-python/sphinx[${PYTHON_USEDEP}] + ') ) + xml? ( virtual/pkgconfig ) +" +PDEPEND=" + sys-devel/clang-toolchain-symlinks:${LLVM_MAJOR} + ~sys-devel/clang-runtime-${PV} +" + +LLVM_COMPONENTS=( + clang clang-tools-extra cmake + llvm/lib/Transforms/Hello +) +LLVM_MANPAGES=1 +LLVM_TEST_COMPONENTS=( + llvm/lib/Testing/Support + llvm/utils/{lit,llvm-lit,unittest} + llvm/utils/{UpdateTestChecks,update_cc_test_checks.py} +) +LLVM_PATCHSET=${PV/_/-}-r3 +LLVM_USE_TARGETS=llvm +llvm.org_set_globals + +# Multilib notes: +# 1. ABI_* flags control ABIs libclang* is built for only. +# 2. clang is always capable of compiling code for all ABIs for enabled +# target. However, you will need appropriate crt* files (installed +# e.g. by sys-devel/gcc and sys-libs/glibc). +# 3. ${CHOST}-clang wrappers are always installed for all ABIs included +# in the current profile (i.e. alike supported by sys-devel/gcc). +# +# Therefore: use sys-devel/clang[${MULTILIB_USEDEP}] only if you need +# multilib clang* libraries (not runtime, not wrappers). + +pkg_setup() { + LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup + python-single-r1_pkg_setup +} + +src_prepare() { + # create extra parent dir for relative CLANG_RESOURCE_DIR access + mkdir -p x/y || die + BUILD_DIR=${WORKDIR}/x/y/clang + + llvm.org_src_prepare + + # add Gentoo Portage Prefix for Darwin (see prefix-dirs.patch) + eprefixify \ + lib/Lex/InitHeaderSearch.cpp \ + lib/Driver/ToolChains/Darwin.cpp || die + + if ! use prefix-guest && [[ -n ${EPREFIX} ]]; then + sed -i "/LibDir.*Loader/s@return \"\/\"@return \"${EPREFIX}/\"@" lib/Driver/ToolChains/Linux.cpp || die + fi +} + +check_distribution_components() { + if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then + local all_targets=() my_targets=() l + cd "${BUILD_DIR}" || die + + while read -r l; do + if [[ ${l} == install-*-stripped:* ]]; then + l=${l#install-} + l=${l%%-stripped*} + + case ${l} in + # meta-targets + clang-libraries|distribution) + continue + ;; + # tools + clang|clangd|clang-*) + ;; + # static libraries + clang*|findAllSymbols) + continue + ;; + # conditional to USE=doc + docs-clang-html|docs-clang-tools-html) + use doc || continue + ;; + esac + + all_targets+=( "${l}" ) + fi + done < <(${NINJA} -t targets all) + + while read -r l; do + my_targets+=( "${l}" ) + done < <(get_distribution_components $"\n") + + local add=() remove=() + for l in "${all_targets[@]}"; do + if ! has "${l}" "${my_targets[@]}"; then + add+=( "${l}" ) + fi + done + for l in "${my_targets[@]}"; do + if ! has "${l}" "${all_targets[@]}"; then + remove+=( "${l}" ) + fi + done + + if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then + eqawarn "get_distribution_components() is outdated!" + eqawarn " Add: ${add[*]}" + eqawarn "Remove: ${remove[*]}" + fi + cd - >/dev/null || die + fi +} + +get_distribution_components() { + local sep=${1-;} + + local out=( + # common stuff + clang-cmake-exports + clang-headers + clang-resource-headers + libclang-headers + + aarch64-resource-headers + arm-common-resource-headers + arm-resource-headers + core-resource-headers + cuda-resource-headers + hexagon-resource-headers + hip-resource-headers + hlsl-resource-headers + mips-resource-headers + opencl-resource-headers + openmp-resource-headers + ppc-htm-resource-headers + ppc-resource-headers + riscv-resource-headers + systemz-resource-headers + utility-resource-headers + ve-resource-headers + webassembly-resource-headers + windows-resource-headers + x86-resource-headers + + # libs + clang-cpp + libclang + ) + + if multilib_is_native_abi; then + out+=( + # common stuff + bash-autocomplete + libclang-python-bindings + + # tools + c-index-test + clang + clang-format + clang-offload-bundler + clang-offload-packager + clang-offload-wrapper + clang-refactor + clang-repl + clang-rename + clang-scan-deps + diagtool + hmaptool + + # needed for cross-compiling Clang + clang-tblgen + ) + + if use extra; then + out+=( + # extra tools + clang-apply-replacements + clang-change-namespace + clang-doc + clang-include-fixer + clang-move + clang-pseudo + clang-query + clang-reorder-fields + clang-tidy + clang-tidy-headers + clangd + find-all-symbols + modularize + pp-trace + ) + fi + + if llvm_are_manpages_built; then + out+=( docs-clang-man ) + use extra && out+=( docs-clang-tools-man ) + fi + + if use doc; then + out+=( docs-clang-html ) + use extra && out+=( docs-clang-tools-html ) + fi + + use static-analyzer && out+=( + clang-check + clang-extdef-mapping + scan-build + scan-build-py + scan-view + ) + fi + + printf "%s${sep}" "${out[@]}" +} + +multilib_src_configure() { + local mycmakeargs=( + -DDEFAULT_SYSROOT=$(usex prefix-guest "" "${EPREFIX}") + -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}" + -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man" + -DCLANG_CONFIG_FILE_SYSTEM_DIR="${EPREFIX}/etc/clang" + # relative to bindir + -DCLANG_RESOURCE_DIR="../../../../lib/clang/${LLVM_VERSION}" + + -DBUILD_SHARED_LIBS=OFF + -DCLANG_LINK_CLANG_DYLIB=ON + -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components) + + -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}" + -DLLVM_BUILD_TESTS=$(usex test) + + # these are not propagated reliably, so redefine them + -DLLVM_ENABLE_EH=ON + -DLLVM_ENABLE_RTTI=ON + + -DCMAKE_DISABLE_FIND_PACKAGE_LibXml2=$(usex !xml) + # libgomp support fails to find headers without explicit -I + # furthermore, it provides only syntax checking + -DCLANG_DEFAULT_OPENMP_RUNTIME=libomp + + # disable using CUDA to autodetect GPU, just build for all + -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=ON + + -DCLANG_DEFAULT_PIE_ON_LINUX=$(usex pie) + + -DCLANG_ENABLE_ARCMT=$(usex static-analyzer) + -DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer) + + -DPython3_EXECUTABLE="${PYTHON}" + ) + + if ! use elibc_musl; then + mycmakeargs+=( + -DPPC_LINUX_DEFAULT_IEEELONGDOUBLE=$(usex ieee-long-double) + ) + fi + + use test && mycmakeargs+=( + -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" + -DLLVM_EXTERNAL_LIT="${BUILD_DIR}/bin/llvm-lit" + -DLLVM_LIT_ARGS="$(get_lit_flags)" + ) + + if multilib_is_native_abi; then + local build_docs=OFF + if llvm_are_manpages_built; then + build_docs=ON + mycmakeargs+=( + -DLLVM_BUILD_DOCS=ON + -DLLVM_ENABLE_SPHINX=ON + -DCLANG_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html" + -DSPHINX_WARNINGS_AS_ERRORS=OFF + ) + if use extra; then + mycmakeargs+=( + -DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra" + ) + fi + fi + mycmakeargs+=( + -DCLANG_INCLUDE_DOCS=${build_docs} + ) + fi + if multilib_native_use extra; then + mycmakeargs+=( + -DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR="${WORKDIR}"/clang-tools-extra + -DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=${build_docs} + ) + else + mycmakeargs+=( + -DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD=OFF + ) + fi + + if [[ -n ${EPREFIX} ]]; then + mycmakeargs+=( + -DGCC_INSTALL_PREFIX="${EPREFIX}/usr" + ) + fi + + if tc-is-cross-compiler; then + has_version -b sys-devel/clang:${LLVM_MAJOR} || + die "sys-devel/clang:${LLVM_MAJOR} is required on the build host." + local tools_bin=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin + mycmakeargs+=( + -DLLVM_TOOLS_BINARY_DIR="${tools_bin}" + -DCLANG_TABLEGEN="${tools_bin}"/clang-tblgen + ) + fi + + # LLVM can have very high memory consumption while linking, + # exhausting the limit on 32-bit linker executable + use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory" + + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + cmake_src_configure + + multilib_is_native_abi && check_distribution_components +} + +multilib_src_compile() { + cmake_build distribution + + # provide a symlink for tests + if [[ ! -L ${WORKDIR}/lib/clang ]]; then + mkdir -p "${WORKDIR}"/lib || die + ln -s "${BUILD_DIR}/$(get_libdir)/clang" "${WORKDIR}"/lib/clang || die + fi +} + +multilib_src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + local test_targets=( check-clang ) + if multilib_native_use extra; then + test_targets+=( + check-clang-tools + check-clangd + ) + fi + cmake_build "${test_targets[@]}" +} + +src_install() { + MULTILIB_WRAPPED_HEADERS=( + /usr/include/clang/Config/config.h + ) + + multilib-minimal_src_install + + # Move runtime headers to /usr/lib/clang, where they belong + mv "${ED}"/usr/include/clangrt "${ED}"/usr/lib/clang || die + # move (remaining) wrapped headers back + if use extra; then + mv "${T}"/clang-tidy "${ED}"/usr/include/ || die + fi + mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include || die + + # Apply CHOST and version suffix to clang tools + local clang_tools=( clang clang++ clang-cl clang-cpp ) + local abi i + + # cmake gives us: + # - clang-X + # - clang -> clang-X + # - clang++, clang-cl, clang-cpp -> clang + # we want to have: + # - clang-X + # - clang++-X, clang-cl-X, clang-cpp-X -> clang-X + # - clang, clang++, clang-cl, clang-cpp -> clang*-X + # also in CHOST variant + for i in "${clang_tools[@]:1}"; do + rm "${ED}/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}" || die + dosym "clang-${LLVM_MAJOR}" "/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}-${LLVM_MAJOR}" + dosym "${i}-${LLVM_MAJOR}" "/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}" + done + + # now create target symlinks for all supported ABIs + for abi in $(get_all_abis); do + local abi_chost=$(get_abi_CHOST "${abi}") + for i in "${clang_tools[@]}"; do + dosym "${i}-${LLVM_MAJOR}" \ + "/usr/lib/llvm/${LLVM_MAJOR}/bin/${abi_chost}-${i}-${LLVM_MAJOR}" + dosym "${abi_chost}-${i}-${LLVM_MAJOR}" \ + "/usr/lib/llvm/${LLVM_MAJOR}/bin/${abi_chost}-${i}" + done + done +} + +multilib_src_install() { + DESTDIR=${D} cmake_build install-distribution + + if multilib_is_native_abi; then + # install clang-*-wrapper tools + # https://bugs.gentoo.org/904143 + exeinto "/usr/lib/llvm/${LLVM_MAJOR}/bin" + doexe "${BUILD_DIR}"/bin/clang-{linker,nvlink}-wrapper + fi + + # move headers to /usr/include for wrapping & ABI mismatch checks + # (also drop the version suffix from runtime headers) + rm -rf "${ED}"/usr/include || die + mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include "${ED}"/usr/include || die + mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)/clang "${ED}"/usr/include/clangrt || die + if multilib_native_use extra; then + # don't wrap clang-tidy headers, the list is too long + # (they're fine for non-native ABI but enabling the targets is problematic) + mv "${ED}"/usr/include/clang-tidy "${T}/" || die + fi +} + +multilib_src_install_all() { + python_fix_shebang "${ED}" + if use static-analyzer; then + python_optimize "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/share/scan-view + fi + + docompress "/usr/lib/llvm/${LLVM_MAJOR}/share/man" + llvm_install_manpages + # match 'html' non-compression + use doc && docompress -x "/usr/share/doc/${PF}/tools-extra" + # +x for some reason; TODO: investigate + use static-analyzer && fperms a-x "/usr/lib/llvm/${LLVM_MAJOR}/share/man/man1/scan-build.1" +} + +pkg_postinst() { + if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then + eselect compiler-shadow update all + fi + + elog "You can find additional utility scripts in:" + elog " ${EROOT}/usr/lib/llvm/${LLVM_MAJOR}/share/clang" + if use extra; then + elog "Some of them are vim integration scripts (with instructions inside)." + elog "The run-clang-tidy.py script requires the following additional package:" + elog " dev-python/pyyaml" + fi +} + +pkg_postrm() { + if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then + eselect compiler-shadow clean all + fi +} diff --git a/sys-devel/clang/clang-16.0.0_pre20230107.ebuild b/sys-devel/clang/clang-16.0.3.ebuild index f8a5211642c1..4ff97760cff7 100644 --- a/sys-devel/clang/clang-16.0.0_pre20230107.ebuild +++ b/sys-devel/clang/clang-16.0.3.ebuild @@ -5,7 +5,7 @@ EAPI=8 PYTHON_COMPAT=( python3_{9..11} ) inherit cmake llvm llvm.org multilib multilib-minimal \ - prefix python-single-r1 toolchain-funcs + prefix python-single-r1 toolchain-funcs flag-o-matic DESCRIPTION="C language family frontend for LLVM" HOMEPAGE="https://llvm.org/" @@ -15,7 +15,7 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT" SLOT="${LLVM_MAJOR}/${LLVM_SOABI}" -KEYWORDS="~loong" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x64-macos" IUSE="debug doc +extra ieee-long-double +pie +static-analyzer test xml" REQUIRED_USE="${PYTHON_REQUIRED_USE}" RESTRICT="!test? ( test )" @@ -51,7 +51,7 @@ LLVM_COMPONENTS=( ) LLVM_MANPAGES=1 LLVM_TEST_COMPONENTS=( - llvm/lib/Testing/Support + llvm/lib/Testing llvm/utils third-party ) @@ -85,6 +85,10 @@ src_prepare() { eprefixify \ lib/Lex/InitHeaderSearch.cpp \ lib/Driver/ToolChains/Darwin.cpp || die + + if ! use prefix-guest && [[ -n ${EPREFIX} ]]; then + sed -i "/LibDir.*Loader/s@return \"\/\"@return \"${EPREFIX}/\"@" lib/Driver/ToolChains/Linux.cpp || die + fi } check_distribution_components() { @@ -187,9 +191,11 @@ get_distribution_components() { libclang-python-bindings # tools + amdgpu-arch c-index-test clang clang-format + clang-linker-wrapper clang-offload-bundler clang-offload-packager clang-refactor @@ -198,6 +204,7 @@ get_distribution_components() { clang-scan-deps diagtool hmaptool + nvptx-arch # needed for cross-compiling Clang clang-tblgen @@ -247,7 +254,10 @@ get_distribution_components() { } multilib_src_configure() { + tc-is-gcc && filter-lto # GCC miscompiles LLVM, bug #873670 + local mycmakeargs=( + -DDEFAULT_SYSROOT=$(usex prefix-guest "" "${EPREFIX}") -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}" -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man" -DCLANG_CONFIG_FILE_SYSTEM_DIR="${EPREFIX}/etc/clang" @@ -261,6 +271,10 @@ multilib_src_configure() { -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}" + # these are not propagated reliably, so redefine them + -DLLVM_ENABLE_EH=ON + -DLLVM_ENABLE_RTTI=ON + -DCMAKE_DISABLE_FIND_PACKAGE_LibXml2=$(usex !xml) # libgomp support fails to find headers without explicit -I # furthermore, it provides only syntax checking @@ -268,6 +282,9 @@ multilib_src_configure() { # disable using CUDA to autodetect GPU, just build for all -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=ON + # disable linking to HSA to avoid automagic dep, + # load it dynamically instead + -DCMAKE_DISABLE_FIND_PACKAGE_hsa-runtime64=ON -DCLANG_DEFAULT_PIE_ON_LINUX=$(usex pie) @@ -306,9 +323,6 @@ multilib_src_configure() { fi mycmakeargs+=( -DCLANG_INCLUDE_DOCS=${build_docs} - - # Hack to install clang-tblgen: https://reviews.llvm.org/D141092 - -DLLVM_BUILD_UTILS=ON ) fi if multilib_native_use extra; then diff --git a/sys-devel/clang/clang-16.0.0_pre20230127.ebuild b/sys-devel/clang/clang-16.0.4.ebuild index 4979e95cd523..a6f929936e58 100644 --- a/sys-devel/clang/clang-16.0.0_pre20230127.ebuild +++ b/sys-devel/clang/clang-16.0.4.ebuild @@ -4,8 +4,9 @@ EAPI=8 PYTHON_COMPAT=( python3_{9..11} ) -inherit cmake llvm llvm.org multilib multilib-minimal \ - prefix python-single-r1 toolchain-funcs + +inherit cmake llvm llvm.org multilib multilib-minimal +inherit prefix python-single-r1 toolchain-funcs DESCRIPTION="C language family frontend for LLVM" HOMEPAGE="https://llvm.org/" @@ -15,7 +16,7 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT" SLOT="${LLVM_MAJOR}/${LLVM_SOABI}" -KEYWORDS="" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x64-macos" IUSE="debug doc +extra ieee-long-double +pie +static-analyzer test xml" REQUIRED_USE="${PYTHON_REQUIRED_USE}" RESTRICT="!test? ( test )" @@ -85,6 +86,10 @@ src_prepare() { eprefixify \ lib/Lex/InitHeaderSearch.cpp \ lib/Driver/ToolChains/Darwin.cpp || die + + if ! use prefix-guest && [[ -n ${EPREFIX} ]]; then + sed -i "/LibDir.*Loader/s@return \"\/\"@return \"${EPREFIX}/\"@" lib/Driver/ToolChains/Linux.cpp || die + fi } check_distribution_components() { @@ -191,6 +196,7 @@ get_distribution_components() { c-index-test clang clang-format + clang-linker-wrapper clang-offload-bundler clang-offload-packager clang-refactor @@ -250,6 +256,7 @@ get_distribution_components() { multilib_src_configure() { local mycmakeargs=( + -DDEFAULT_SYSROOT=$(usex prefix-guest "" "${EPREFIX}") -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}" -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man" -DCLANG_CONFIG_FILE_SYSTEM_DIR="${EPREFIX}/etc/clang" @@ -263,6 +270,10 @@ multilib_src_configure() { -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}" + # these are not propagated reliably, so redefine them + -DLLVM_ENABLE_EH=ON + -DLLVM_ENABLE_RTTI=ON + -DCMAKE_DISABLE_FIND_PACKAGE_LibXml2=$(usex !xml) # libgomp support fails to find headers without explicit -I # furthermore, it provides only syntax checking @@ -270,6 +281,9 @@ multilib_src_configure() { # disable using CUDA to autodetect GPU, just build for all -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=ON + # disable linking to HSA to avoid automagic dep, + # load it dynamically instead + -DCMAKE_DISABLE_FIND_PACKAGE_hsa-runtime64=ON -DCLANG_DEFAULT_PIE_ON_LINUX=$(usex pie) diff --git a/sys-devel/clang/clang-16.0.0.9999.ebuild b/sys-devel/clang/clang-16.0.5.9999.ebuild index 4979e95cd523..76f5d288b711 100644 --- a/sys-devel/clang/clang-16.0.0.9999.ebuild +++ b/sys-devel/clang/clang-16.0.5.9999.ebuild @@ -4,8 +4,9 @@ EAPI=8 PYTHON_COMPAT=( python3_{9..11} ) -inherit cmake llvm llvm.org multilib multilib-minimal \ - prefix python-single-r1 toolchain-funcs + +inherit cmake llvm llvm.org multilib multilib-minimal +inherit prefix python-single-r1 toolchain-funcs DESCRIPTION="C language family frontend for LLVM" HOMEPAGE="https://llvm.org/" @@ -85,6 +86,10 @@ src_prepare() { eprefixify \ lib/Lex/InitHeaderSearch.cpp \ lib/Driver/ToolChains/Darwin.cpp || die + + if ! use prefix-guest && [[ -n ${EPREFIX} ]]; then + sed -i "/LibDir.*Loader/s@return \"\/\"@return \"${EPREFIX}/\"@" lib/Driver/ToolChains/Linux.cpp || die + fi } check_distribution_components() { @@ -191,6 +196,7 @@ get_distribution_components() { c-index-test clang clang-format + clang-linker-wrapper clang-offload-bundler clang-offload-packager clang-refactor @@ -250,6 +256,7 @@ get_distribution_components() { multilib_src_configure() { local mycmakeargs=( + -DDEFAULT_SYSROOT=$(usex prefix-guest "" "${EPREFIX}") -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}" -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man" -DCLANG_CONFIG_FILE_SYSTEM_DIR="${EPREFIX}/etc/clang" @@ -263,6 +270,10 @@ multilib_src_configure() { -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}" + # these are not propagated reliably, so redefine them + -DLLVM_ENABLE_EH=ON + -DLLVM_ENABLE_RTTI=ON + -DCMAKE_DISABLE_FIND_PACKAGE_LibXml2=$(usex !xml) # libgomp support fails to find headers without explicit -I # furthermore, it provides only syntax checking @@ -270,6 +281,9 @@ multilib_src_configure() { # disable using CUDA to autodetect GPU, just build for all -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=ON + # disable linking to HSA to avoid automagic dep, + # load it dynamically instead + -DCMAKE_DISABLE_FIND_PACKAGE_hsa-runtime64=ON -DCLANG_DEFAULT_PIE_ON_LINUX=$(usex pie) diff --git a/sys-devel/clang/clang-17.0.0.9999.ebuild b/sys-devel/clang/clang-17.0.0.9999.ebuild index 4979e95cd523..e22838875809 100644 --- a/sys-devel/clang/clang-17.0.0.9999.ebuild +++ b/sys-devel/clang/clang-17.0.0.9999.ebuild @@ -4,8 +4,9 @@ EAPI=8 PYTHON_COMPAT=( python3_{9..11} ) -inherit cmake llvm llvm.org multilib multilib-minimal \ - prefix python-single-r1 toolchain-funcs + +inherit cmake llvm llvm.org multilib multilib-minimal +inherit prefix python-single-r1 toolchain-funcs DESCRIPTION="C language family frontend for LLVM" HOMEPAGE="https://llvm.org/" @@ -16,7 +17,7 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT" SLOT="${LLVM_MAJOR}/${LLVM_SOABI}" KEYWORDS="" -IUSE="debug doc +extra ieee-long-double +pie +static-analyzer test xml" +IUSE="+debug doc +extra ieee-long-double +pie +static-analyzer test xml" REQUIRED_USE="${PYTHON_REQUIRED_USE}" RESTRICT="!test? ( test )" @@ -51,9 +52,7 @@ LLVM_COMPONENTS=( ) LLVM_MANPAGES=1 LLVM_TEST_COMPONENTS=( - llvm/lib/Testing llvm/utils - third-party ) LLVM_USE_TARGETS=llvm llvm.org_set_globals @@ -85,6 +84,10 @@ src_prepare() { eprefixify \ lib/Lex/InitHeaderSearch.cpp \ lib/Driver/ToolChains/Darwin.cpp || die + + if ! use prefix-guest && [[ -n ${EPREFIX} ]]; then + sed -i "/LibDir.*Loader/s@return \"\/\"@return \"${EPREFIX}/\"@" lib/Driver/ToolChains/Linux.cpp || die + fi } check_distribution_components() { @@ -191,6 +194,7 @@ get_distribution_components() { c-index-test clang clang-format + clang-linker-wrapper clang-offload-bundler clang-offload-packager clang-refactor @@ -250,6 +254,7 @@ get_distribution_components() { multilib_src_configure() { local mycmakeargs=( + -DDEFAULT_SYSROOT=$(usex prefix-guest "" "${EPREFIX}") -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}" -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man" -DCLANG_CONFIG_FILE_SYSTEM_DIR="${EPREFIX}/etc/clang" @@ -263,18 +268,26 @@ multilib_src_configure() { -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}" - -DCMAKE_DISABLE_FIND_PACKAGE_LibXml2=$(usex !xml) + # these are not propagated reliably, so redefine them + -DLLVM_ENABLE_EH=ON + -DLLVM_ENABLE_RTTI=ON + # libgomp support fails to find headers without explicit -I # furthermore, it provides only syntax checking -DCLANG_DEFAULT_OPENMP_RUNTIME=libomp # disable using CUDA to autodetect GPU, just build for all - -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=ON + -DCMAKE_DISABLE_FIND_PACKAGE_CUDAToolkit=ON + # disable linking to HSA to avoid automagic dep, + # load it dynamically instead + -DCMAKE_DISABLE_FIND_PACKAGE_hsa-runtime64=ON -DCLANG_DEFAULT_PIE_ON_LINUX=$(usex pie) + -DCLANG_ENABLE_LIBXML2=$(usex xml) -DCLANG_ENABLE_ARCMT=$(usex static-analyzer) -DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer) + # TODO: CLANG_ENABLE_HLSL? -DPython3_EXECUTABLE="${PYTHON}" ) diff --git a/sys-devel/clang/clang-17.0.0_pre20230520.ebuild b/sys-devel/clang/clang-17.0.0_pre20230520.ebuild new file mode 100644 index 000000000000..e22838875809 --- /dev/null +++ b/sys-devel/clang/clang-17.0.0_pre20230520.ebuild @@ -0,0 +1,480 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..11} ) + +inherit cmake llvm llvm.org multilib multilib-minimal +inherit prefix python-single-r1 toolchain-funcs + +DESCRIPTION="C language family frontend for LLVM" +HOMEPAGE="https://llvm.org/" + +# MSVCSetupApi.h: MIT +# sorttable.js: MIT + +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT" +SLOT="${LLVM_MAJOR}/${LLVM_SOABI}" +KEYWORDS="" +IUSE="+debug doc +extra ieee-long-double +pie +static-analyzer test xml" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +RESTRICT="!test? ( test )" + +DEPEND=" + ~sys-devel/llvm-${PV}:${LLVM_MAJOR}=[debug=,${MULTILIB_USEDEP}] + static-analyzer? ( dev-lang/perl:* ) + xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] ) +" + +RDEPEND=" + ${PYTHON_DEPS} + ${DEPEND} + >=sys-devel/clang-common-${PV} +" +BDEPEND=" + ${PYTHON_DEPS} + >=dev-util/cmake-3.16 + doc? ( $(python_gen_cond_dep ' + dev-python/recommonmark[${PYTHON_USEDEP}] + dev-python/sphinx[${PYTHON_USEDEP}] + ') ) + xml? ( virtual/pkgconfig ) +" +PDEPEND=" + ~sys-devel/clang-runtime-${PV} + sys-devel/clang-toolchain-symlinks:${LLVM_MAJOR} +" + +LLVM_COMPONENTS=( + clang clang-tools-extra cmake + llvm/lib/Transforms/Hello +) +LLVM_MANPAGES=1 +LLVM_TEST_COMPONENTS=( + llvm/utils +) +LLVM_USE_TARGETS=llvm +llvm.org_set_globals + +# Multilib notes: +# 1. ABI_* flags control ABIs libclang* is built for only. +# 2. clang is always capable of compiling code for all ABIs for enabled +# target. However, you will need appropriate crt* files (installed +# e.g. by sys-devel/gcc and sys-libs/glibc). +# 3. ${CHOST}-clang wrappers are always installed for all ABIs included +# in the current profile (i.e. alike supported by sys-devel/gcc). +# +# Therefore: use sys-devel/clang[${MULTILIB_USEDEP}] only if you need +# multilib clang* libraries (not runtime, not wrappers). + +pkg_setup() { + LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup + python-single-r1_pkg_setup +} + +src_prepare() { + # create extra parent dir for relative CLANG_RESOURCE_DIR access + mkdir -p x/y || die + BUILD_DIR=${WORKDIR}/x/y/clang + + llvm.org_src_prepare + + # add Gentoo Portage Prefix for Darwin (see prefix-dirs.patch) + eprefixify \ + lib/Lex/InitHeaderSearch.cpp \ + lib/Driver/ToolChains/Darwin.cpp || die + + if ! use prefix-guest && [[ -n ${EPREFIX} ]]; then + sed -i "/LibDir.*Loader/s@return \"\/\"@return \"${EPREFIX}/\"@" lib/Driver/ToolChains/Linux.cpp || die + fi +} + +check_distribution_components() { + if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then + local all_targets=() my_targets=() l + cd "${BUILD_DIR}" || die + + while read -r l; do + if [[ ${l} == install-*-stripped:* ]]; then + l=${l#install-} + l=${l%%-stripped*} + + case ${l} in + # meta-targets + clang-libraries|distribution) + continue + ;; + # tools + clang|clangd|clang-*) + ;; + # static libraries + clang*|findAllSymbols) + continue + ;; + # conditional to USE=doc + docs-clang-html|docs-clang-tools-html) + use doc || continue + ;; + esac + + all_targets+=( "${l}" ) + fi + done < <(${NINJA} -t targets all) + + while read -r l; do + my_targets+=( "${l}" ) + done < <(get_distribution_components $"\n") + + local add=() remove=() + for l in "${all_targets[@]}"; do + if ! has "${l}" "${my_targets[@]}"; then + add+=( "${l}" ) + fi + done + for l in "${my_targets[@]}"; do + if ! has "${l}" "${all_targets[@]}"; then + remove+=( "${l}" ) + fi + done + + if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then + eqawarn "get_distribution_components() is outdated!" + eqawarn " Add: ${add[*]}" + eqawarn "Remove: ${remove[*]}" + fi + cd - >/dev/null || die + fi +} + +get_distribution_components() { + local sep=${1-;} + + local out=( + # common stuff + clang-cmake-exports + clang-headers + clang-resource-headers + libclang-headers + + aarch64-resource-headers + arm-common-resource-headers + arm-resource-headers + core-resource-headers + cuda-resource-headers + hexagon-resource-headers + hip-resource-headers + hlsl-resource-headers + mips-resource-headers + opencl-resource-headers + openmp-resource-headers + ppc-htm-resource-headers + ppc-resource-headers + riscv-resource-headers + systemz-resource-headers + utility-resource-headers + ve-resource-headers + webassembly-resource-headers + windows-resource-headers + x86-resource-headers + + # libs + clang-cpp + libclang + ) + + if multilib_is_native_abi; then + out+=( + # common stuff + bash-autocomplete + libclang-python-bindings + + # tools + amdgpu-arch + c-index-test + clang + clang-format + clang-linker-wrapper + clang-offload-bundler + clang-offload-packager + clang-refactor + clang-repl + clang-rename + clang-scan-deps + diagtool + hmaptool + nvptx-arch + + # needed for cross-compiling Clang + clang-tblgen + ) + + if use extra; then + out+=( + # extra tools + clang-apply-replacements + clang-change-namespace + clang-doc + clang-include-cleaner + clang-include-fixer + clang-move + clang-pseudo + clang-query + clang-reorder-fields + clang-tidy + clang-tidy-headers + clangd + find-all-symbols + modularize + pp-trace + ) + fi + + if llvm_are_manpages_built; then + out+=( docs-clang-man ) + use extra && out+=( docs-clang-tools-man ) + fi + + if use doc; then + out+=( docs-clang-html ) + use extra && out+=( docs-clang-tools-html ) + fi + + use static-analyzer && out+=( + clang-check + clang-extdef-mapping + scan-build + scan-build-py + scan-view + ) + fi + + printf "%s${sep}" "${out[@]}" +} + +multilib_src_configure() { + local mycmakeargs=( + -DDEFAULT_SYSROOT=$(usex prefix-guest "" "${EPREFIX}") + -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}" + -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man" + -DCLANG_CONFIG_FILE_SYSTEM_DIR="${EPREFIX}/etc/clang" + # relative to bindir + -DCLANG_RESOURCE_DIR="../../../../lib/clang/${LLVM_MAJOR}" + + -DBUILD_SHARED_LIBS=OFF + -DCLANG_LINK_CLANG_DYLIB=ON + -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components) + -DCLANG_INCLUDE_TESTS=$(usex test) + + -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}" + + # these are not propagated reliably, so redefine them + -DLLVM_ENABLE_EH=ON + -DLLVM_ENABLE_RTTI=ON + + # libgomp support fails to find headers without explicit -I + # furthermore, it provides only syntax checking + -DCLANG_DEFAULT_OPENMP_RUNTIME=libomp + + # disable using CUDA to autodetect GPU, just build for all + -DCMAKE_DISABLE_FIND_PACKAGE_CUDAToolkit=ON + # disable linking to HSA to avoid automagic dep, + # load it dynamically instead + -DCMAKE_DISABLE_FIND_PACKAGE_hsa-runtime64=ON + + -DCLANG_DEFAULT_PIE_ON_LINUX=$(usex pie) + + -DCLANG_ENABLE_LIBXML2=$(usex xml) + -DCLANG_ENABLE_ARCMT=$(usex static-analyzer) + -DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer) + # TODO: CLANG_ENABLE_HLSL? + + -DPython3_EXECUTABLE="${PYTHON}" + ) + + if ! use elibc_musl; then + mycmakeargs+=( + -DPPC_LINUX_DEFAULT_IEEELONGDOUBLE=$(usex ieee-long-double) + ) + fi + + use test && mycmakeargs+=( + -DLLVM_BUILD_TESTS=ON + -DLLVM_LIT_ARGS="$(get_lit_flags)" + ) + + if multilib_is_native_abi; then + local build_docs=OFF + if llvm_are_manpages_built; then + build_docs=ON + mycmakeargs+=( + -DLLVM_BUILD_DOCS=ON + -DLLVM_ENABLE_SPHINX=ON + -DCLANG_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html" + -DSPHINX_WARNINGS_AS_ERRORS=OFF + ) + if use extra; then + mycmakeargs+=( + -DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra" + ) + fi + fi + mycmakeargs+=( + -DCLANG_INCLUDE_DOCS=${build_docs} + ) + fi + if multilib_native_use extra; then + mycmakeargs+=( + -DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR="${WORKDIR}"/clang-tools-extra + -DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=${build_docs} + ) + else + mycmakeargs+=( + -DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD=OFF + ) + fi + + if [[ -n ${EPREFIX} ]]; then + mycmakeargs+=( + -DGCC_INSTALL_PREFIX="${EPREFIX}/usr" + ) + fi + + if tc-is-cross-compiler; then + has_version -b sys-devel/clang:${LLVM_MAJOR} || + die "sys-devel/clang:${LLVM_MAJOR} is required on the build host." + local tools_bin=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin + mycmakeargs+=( + -DLLVM_TOOLS_BINARY_DIR="${tools_bin}" + -DCLANG_TABLEGEN="${tools_bin}"/clang-tblgen + ) + fi + + # LLVM can have very high memory consumption while linking, + # exhausting the limit on 32-bit linker executable + use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory" + + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + cmake_src_configure + + multilib_is_native_abi && check_distribution_components +} + +multilib_src_compile() { + cmake_build distribution + + # provide a symlink for tests + if [[ ! -L ${WORKDIR}/lib/clang ]]; then + mkdir -p "${WORKDIR}"/lib || die + ln -s "${BUILD_DIR}/$(get_libdir)/clang" "${WORKDIR}"/lib/clang || die + fi +} + +multilib_src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + local test_targets=( check-clang ) + if multilib_native_use extra; then + test_targets+=( + check-clang-tools + check-clangd + ) + fi + cmake_build "${test_targets[@]}" +} + +src_install() { + MULTILIB_WRAPPED_HEADERS=( + /usr/include/clang/Config/config.h + ) + + multilib-minimal_src_install + + # Move runtime headers to /usr/lib/clang, where they belong + mv "${ED}"/usr/include/clangrt "${ED}"/usr/lib/clang || die + # move (remaining) wrapped headers back + if use extra; then + mv "${T}"/clang-tidy "${ED}"/usr/include/ || die + fi + mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include || die + + # Apply CHOST and version suffix to clang tools + local clang_tools=( clang clang++ clang-cl clang-cpp ) + local abi i + + # cmake gives us: + # - clang-X + # - clang -> clang-X + # - clang++, clang-cl, clang-cpp -> clang + # we want to have: + # - clang-X + # - clang++-X, clang-cl-X, clang-cpp-X -> clang-X + # - clang, clang++, clang-cl, clang-cpp -> clang*-X + # also in CHOST variant + for i in "${clang_tools[@]:1}"; do + rm "${ED}/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}" || die + dosym "clang-${LLVM_MAJOR}" "/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}-${LLVM_MAJOR}" + dosym "${i}-${LLVM_MAJOR}" "/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}" + done + + # now create target symlinks for all supported ABIs + for abi in $(get_all_abis); do + local abi_chost=$(get_abi_CHOST "${abi}") + for i in "${clang_tools[@]}"; do + dosym "${i}-${LLVM_MAJOR}" \ + "/usr/lib/llvm/${LLVM_MAJOR}/bin/${abi_chost}-${i}-${LLVM_MAJOR}" + dosym "${abi_chost}-${i}-${LLVM_MAJOR}" \ + "/usr/lib/llvm/${LLVM_MAJOR}/bin/${abi_chost}-${i}" + done + done +} + +multilib_src_install() { + DESTDIR=${D} cmake_build install-distribution + + # move headers to /usr/include for wrapping & ABI mismatch checks + # (also drop the version suffix from runtime headers) + rm -rf "${ED}"/usr/include || die + mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include "${ED}"/usr/include || die + mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)/clang "${ED}"/usr/include/clangrt || die + if multilib_native_use extra; then + # don't wrap clang-tidy headers, the list is too long + # (they're fine for non-native ABI but enabling the targets is problematic) + mv "${ED}"/usr/include/clang-tidy "${T}/" || die + fi +} + +multilib_src_install_all() { + python_fix_shebang "${ED}" + if use static-analyzer; then + python_optimize "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/share/scan-view + fi + + docompress "/usr/lib/llvm/${LLVM_MAJOR}/share/man" + llvm_install_manpages + # match 'html' non-compression + use doc && docompress -x "/usr/share/doc/${PF}/tools-extra" + # +x for some reason; TODO: investigate + use static-analyzer && fperms a-x "/usr/lib/llvm/${LLVM_MAJOR}/share/man/man1/scan-build.1" +} + +pkg_postinst() { + if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then + eselect compiler-shadow update all + fi + + elog "You can find additional utility scripts in:" + elog " ${EROOT}/usr/lib/llvm/${LLVM_MAJOR}/share/clang" + if use extra; then + elog "Some of them are vim integration scripts (with instructions inside)." + elog "The run-clang-tidy.py script requires the following additional package:" + elog " dev-python/pyyaml" + fi +} + +pkg_postrm() { + if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then + eselect compiler-shadow clean all + fi +} diff --git a/sys-devel/clang/clang-17.0.0_pre20230526.ebuild b/sys-devel/clang/clang-17.0.0_pre20230526.ebuild new file mode 100644 index 000000000000..e22838875809 --- /dev/null +++ b/sys-devel/clang/clang-17.0.0_pre20230526.ebuild @@ -0,0 +1,480 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..11} ) + +inherit cmake llvm llvm.org multilib multilib-minimal +inherit prefix python-single-r1 toolchain-funcs + +DESCRIPTION="C language family frontend for LLVM" +HOMEPAGE="https://llvm.org/" + +# MSVCSetupApi.h: MIT +# sorttable.js: MIT + +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT" +SLOT="${LLVM_MAJOR}/${LLVM_SOABI}" +KEYWORDS="" +IUSE="+debug doc +extra ieee-long-double +pie +static-analyzer test xml" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +RESTRICT="!test? ( test )" + +DEPEND=" + ~sys-devel/llvm-${PV}:${LLVM_MAJOR}=[debug=,${MULTILIB_USEDEP}] + static-analyzer? ( dev-lang/perl:* ) + xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] ) +" + +RDEPEND=" + ${PYTHON_DEPS} + ${DEPEND} + >=sys-devel/clang-common-${PV} +" +BDEPEND=" + ${PYTHON_DEPS} + >=dev-util/cmake-3.16 + doc? ( $(python_gen_cond_dep ' + dev-python/recommonmark[${PYTHON_USEDEP}] + dev-python/sphinx[${PYTHON_USEDEP}] + ') ) + xml? ( virtual/pkgconfig ) +" +PDEPEND=" + ~sys-devel/clang-runtime-${PV} + sys-devel/clang-toolchain-symlinks:${LLVM_MAJOR} +" + +LLVM_COMPONENTS=( + clang clang-tools-extra cmake + llvm/lib/Transforms/Hello +) +LLVM_MANPAGES=1 +LLVM_TEST_COMPONENTS=( + llvm/utils +) +LLVM_USE_TARGETS=llvm +llvm.org_set_globals + +# Multilib notes: +# 1. ABI_* flags control ABIs libclang* is built for only. +# 2. clang is always capable of compiling code for all ABIs for enabled +# target. However, you will need appropriate crt* files (installed +# e.g. by sys-devel/gcc and sys-libs/glibc). +# 3. ${CHOST}-clang wrappers are always installed for all ABIs included +# in the current profile (i.e. alike supported by sys-devel/gcc). +# +# Therefore: use sys-devel/clang[${MULTILIB_USEDEP}] only if you need +# multilib clang* libraries (not runtime, not wrappers). + +pkg_setup() { + LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup + python-single-r1_pkg_setup +} + +src_prepare() { + # create extra parent dir for relative CLANG_RESOURCE_DIR access + mkdir -p x/y || die + BUILD_DIR=${WORKDIR}/x/y/clang + + llvm.org_src_prepare + + # add Gentoo Portage Prefix for Darwin (see prefix-dirs.patch) + eprefixify \ + lib/Lex/InitHeaderSearch.cpp \ + lib/Driver/ToolChains/Darwin.cpp || die + + if ! use prefix-guest && [[ -n ${EPREFIX} ]]; then + sed -i "/LibDir.*Loader/s@return \"\/\"@return \"${EPREFIX}/\"@" lib/Driver/ToolChains/Linux.cpp || die + fi +} + +check_distribution_components() { + if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then + local all_targets=() my_targets=() l + cd "${BUILD_DIR}" || die + + while read -r l; do + if [[ ${l} == install-*-stripped:* ]]; then + l=${l#install-} + l=${l%%-stripped*} + + case ${l} in + # meta-targets + clang-libraries|distribution) + continue + ;; + # tools + clang|clangd|clang-*) + ;; + # static libraries + clang*|findAllSymbols) + continue + ;; + # conditional to USE=doc + docs-clang-html|docs-clang-tools-html) + use doc || continue + ;; + esac + + all_targets+=( "${l}" ) + fi + done < <(${NINJA} -t targets all) + + while read -r l; do + my_targets+=( "${l}" ) + done < <(get_distribution_components $"\n") + + local add=() remove=() + for l in "${all_targets[@]}"; do + if ! has "${l}" "${my_targets[@]}"; then + add+=( "${l}" ) + fi + done + for l in "${my_targets[@]}"; do + if ! has "${l}" "${all_targets[@]}"; then + remove+=( "${l}" ) + fi + done + + if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then + eqawarn "get_distribution_components() is outdated!" + eqawarn " Add: ${add[*]}" + eqawarn "Remove: ${remove[*]}" + fi + cd - >/dev/null || die + fi +} + +get_distribution_components() { + local sep=${1-;} + + local out=( + # common stuff + clang-cmake-exports + clang-headers + clang-resource-headers + libclang-headers + + aarch64-resource-headers + arm-common-resource-headers + arm-resource-headers + core-resource-headers + cuda-resource-headers + hexagon-resource-headers + hip-resource-headers + hlsl-resource-headers + mips-resource-headers + opencl-resource-headers + openmp-resource-headers + ppc-htm-resource-headers + ppc-resource-headers + riscv-resource-headers + systemz-resource-headers + utility-resource-headers + ve-resource-headers + webassembly-resource-headers + windows-resource-headers + x86-resource-headers + + # libs + clang-cpp + libclang + ) + + if multilib_is_native_abi; then + out+=( + # common stuff + bash-autocomplete + libclang-python-bindings + + # tools + amdgpu-arch + c-index-test + clang + clang-format + clang-linker-wrapper + clang-offload-bundler + clang-offload-packager + clang-refactor + clang-repl + clang-rename + clang-scan-deps + diagtool + hmaptool + nvptx-arch + + # needed for cross-compiling Clang + clang-tblgen + ) + + if use extra; then + out+=( + # extra tools + clang-apply-replacements + clang-change-namespace + clang-doc + clang-include-cleaner + clang-include-fixer + clang-move + clang-pseudo + clang-query + clang-reorder-fields + clang-tidy + clang-tidy-headers + clangd + find-all-symbols + modularize + pp-trace + ) + fi + + if llvm_are_manpages_built; then + out+=( docs-clang-man ) + use extra && out+=( docs-clang-tools-man ) + fi + + if use doc; then + out+=( docs-clang-html ) + use extra && out+=( docs-clang-tools-html ) + fi + + use static-analyzer && out+=( + clang-check + clang-extdef-mapping + scan-build + scan-build-py + scan-view + ) + fi + + printf "%s${sep}" "${out[@]}" +} + +multilib_src_configure() { + local mycmakeargs=( + -DDEFAULT_SYSROOT=$(usex prefix-guest "" "${EPREFIX}") + -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}" + -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man" + -DCLANG_CONFIG_FILE_SYSTEM_DIR="${EPREFIX}/etc/clang" + # relative to bindir + -DCLANG_RESOURCE_DIR="../../../../lib/clang/${LLVM_MAJOR}" + + -DBUILD_SHARED_LIBS=OFF + -DCLANG_LINK_CLANG_DYLIB=ON + -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components) + -DCLANG_INCLUDE_TESTS=$(usex test) + + -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}" + + # these are not propagated reliably, so redefine them + -DLLVM_ENABLE_EH=ON + -DLLVM_ENABLE_RTTI=ON + + # libgomp support fails to find headers without explicit -I + # furthermore, it provides only syntax checking + -DCLANG_DEFAULT_OPENMP_RUNTIME=libomp + + # disable using CUDA to autodetect GPU, just build for all + -DCMAKE_DISABLE_FIND_PACKAGE_CUDAToolkit=ON + # disable linking to HSA to avoid automagic dep, + # load it dynamically instead + -DCMAKE_DISABLE_FIND_PACKAGE_hsa-runtime64=ON + + -DCLANG_DEFAULT_PIE_ON_LINUX=$(usex pie) + + -DCLANG_ENABLE_LIBXML2=$(usex xml) + -DCLANG_ENABLE_ARCMT=$(usex static-analyzer) + -DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer) + # TODO: CLANG_ENABLE_HLSL? + + -DPython3_EXECUTABLE="${PYTHON}" + ) + + if ! use elibc_musl; then + mycmakeargs+=( + -DPPC_LINUX_DEFAULT_IEEELONGDOUBLE=$(usex ieee-long-double) + ) + fi + + use test && mycmakeargs+=( + -DLLVM_BUILD_TESTS=ON + -DLLVM_LIT_ARGS="$(get_lit_flags)" + ) + + if multilib_is_native_abi; then + local build_docs=OFF + if llvm_are_manpages_built; then + build_docs=ON + mycmakeargs+=( + -DLLVM_BUILD_DOCS=ON + -DLLVM_ENABLE_SPHINX=ON + -DCLANG_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html" + -DSPHINX_WARNINGS_AS_ERRORS=OFF + ) + if use extra; then + mycmakeargs+=( + -DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra" + ) + fi + fi + mycmakeargs+=( + -DCLANG_INCLUDE_DOCS=${build_docs} + ) + fi + if multilib_native_use extra; then + mycmakeargs+=( + -DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR="${WORKDIR}"/clang-tools-extra + -DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=${build_docs} + ) + else + mycmakeargs+=( + -DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD=OFF + ) + fi + + if [[ -n ${EPREFIX} ]]; then + mycmakeargs+=( + -DGCC_INSTALL_PREFIX="${EPREFIX}/usr" + ) + fi + + if tc-is-cross-compiler; then + has_version -b sys-devel/clang:${LLVM_MAJOR} || + die "sys-devel/clang:${LLVM_MAJOR} is required on the build host." + local tools_bin=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin + mycmakeargs+=( + -DLLVM_TOOLS_BINARY_DIR="${tools_bin}" + -DCLANG_TABLEGEN="${tools_bin}"/clang-tblgen + ) + fi + + # LLVM can have very high memory consumption while linking, + # exhausting the limit on 32-bit linker executable + use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory" + + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + cmake_src_configure + + multilib_is_native_abi && check_distribution_components +} + +multilib_src_compile() { + cmake_build distribution + + # provide a symlink for tests + if [[ ! -L ${WORKDIR}/lib/clang ]]; then + mkdir -p "${WORKDIR}"/lib || die + ln -s "${BUILD_DIR}/$(get_libdir)/clang" "${WORKDIR}"/lib/clang || die + fi +} + +multilib_src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + local test_targets=( check-clang ) + if multilib_native_use extra; then + test_targets+=( + check-clang-tools + check-clangd + ) + fi + cmake_build "${test_targets[@]}" +} + +src_install() { + MULTILIB_WRAPPED_HEADERS=( + /usr/include/clang/Config/config.h + ) + + multilib-minimal_src_install + + # Move runtime headers to /usr/lib/clang, where they belong + mv "${ED}"/usr/include/clangrt "${ED}"/usr/lib/clang || die + # move (remaining) wrapped headers back + if use extra; then + mv "${T}"/clang-tidy "${ED}"/usr/include/ || die + fi + mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include || die + + # Apply CHOST and version suffix to clang tools + local clang_tools=( clang clang++ clang-cl clang-cpp ) + local abi i + + # cmake gives us: + # - clang-X + # - clang -> clang-X + # - clang++, clang-cl, clang-cpp -> clang + # we want to have: + # - clang-X + # - clang++-X, clang-cl-X, clang-cpp-X -> clang-X + # - clang, clang++, clang-cl, clang-cpp -> clang*-X + # also in CHOST variant + for i in "${clang_tools[@]:1}"; do + rm "${ED}/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}" || die + dosym "clang-${LLVM_MAJOR}" "/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}-${LLVM_MAJOR}" + dosym "${i}-${LLVM_MAJOR}" "/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}" + done + + # now create target symlinks for all supported ABIs + for abi in $(get_all_abis); do + local abi_chost=$(get_abi_CHOST "${abi}") + for i in "${clang_tools[@]}"; do + dosym "${i}-${LLVM_MAJOR}" \ + "/usr/lib/llvm/${LLVM_MAJOR}/bin/${abi_chost}-${i}-${LLVM_MAJOR}" + dosym "${abi_chost}-${i}-${LLVM_MAJOR}" \ + "/usr/lib/llvm/${LLVM_MAJOR}/bin/${abi_chost}-${i}" + done + done +} + +multilib_src_install() { + DESTDIR=${D} cmake_build install-distribution + + # move headers to /usr/include for wrapping & ABI mismatch checks + # (also drop the version suffix from runtime headers) + rm -rf "${ED}"/usr/include || die + mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include "${ED}"/usr/include || die + mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)/clang "${ED}"/usr/include/clangrt || die + if multilib_native_use extra; then + # don't wrap clang-tidy headers, the list is too long + # (they're fine for non-native ABI but enabling the targets is problematic) + mv "${ED}"/usr/include/clang-tidy "${T}/" || die + fi +} + +multilib_src_install_all() { + python_fix_shebang "${ED}" + if use static-analyzer; then + python_optimize "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/share/scan-view + fi + + docompress "/usr/lib/llvm/${LLVM_MAJOR}/share/man" + llvm_install_manpages + # match 'html' non-compression + use doc && docompress -x "/usr/share/doc/${PF}/tools-extra" + # +x for some reason; TODO: investigate + use static-analyzer && fperms a-x "/usr/lib/llvm/${LLVM_MAJOR}/share/man/man1/scan-build.1" +} + +pkg_postinst() { + if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then + eselect compiler-shadow update all + fi + + elog "You can find additional utility scripts in:" + elog " ${EROOT}/usr/lib/llvm/${LLVM_MAJOR}/share/clang" + if use extra; then + elog "Some of them are vim integration scripts (with instructions inside)." + elog "The run-clang-tidy.py script requires the following additional package:" + elog " dev-python/pyyaml" + fi +} + +pkg_postrm() { + if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then + eselect compiler-shadow clean all + fi +} diff --git a/sys-devel/crossdev/Manifest b/sys-devel/crossdev/Manifest index 7953946f2dc9..997f0443dd06 100644 --- a/sys-devel/crossdev/Manifest +++ b/sys-devel/crossdev/Manifest @@ -1,2 +1,2 @@ -DIST crossdev-20220909.tar.xz 29480 BLAKE2B 9c3ef9d9b8f13c81f9d2e21f8914158c04035a105ee1ac90ba30cb23a69744c9c6959bbcfd2e50d29144fc79937e5e585054d2eedfb2ced65a88467e509243be SHA512 86e8900a13095b7b12b00d739d28e2921f98818cd62daccfe6d750ce02113d0ef2d5e470b500bbfb80a9cf8f05b2a13882ac9963c3f1a4e1b7454bc1201df183 -DIST crossdev-20221228.tar.xz 29568 BLAKE2B 0458a338a872a27058240c816abfcf9116703d18b687da0050213f834d5aba5df87552e16999fca7d0340aab5b8738ee0edb6ccfb656579b99f20357c077e326 SHA512 16d9d72f74c3b0d6c587c16eb8bea405c7c8eb3effc59fac55027d02348db2e10aacd9098b6f42479574a014783022737325acfaf63031e430fdf90391fa574b +DIST crossdev-20230209.tar.xz 29608 BLAKE2B 591e854f798c4abf90950a5ab229b14740cd43a77f83f85827487d2339a040eaf107305ef993a24783281f2f655eb377c60d043c071788cc2e798c746d9498b3 SHA512 41e482e6f5614d3ea3bcc3115f9aa86ba6c9302fef67af5b0c0058deba106c60f0b13e8881b7246180ce6d3bfaf77516e45e4f444317dc4eaec074850b79f4b4 +DIST crossdev-20230321.tar.xz 29620 BLAKE2B a5070ccf8b5e4fd9a6f63f6a903126a6eb199d7dfdcfbe93f0917a66894c4eef2df5749c0fddaf564fe013b40a14d88b2686700034642fb1d876b51731964a49 SHA512 c300b506bb7ed4aa5d43601b37c8298367f6e5307a97b19a23f39e9559e54d2bfdb6e2b7a5fde4d5ff0b4a9b02c1b6f05be92d1857352db6cde9a469c9159e5f diff --git a/sys-devel/crossdev/crossdev-20221228.ebuild b/sys-devel/crossdev/crossdev-20230209-r1.ebuild index a3a84da996ad..d15bf1ee5010 100644 --- a/sys-devel/crossdev/crossdev-20221228.ebuild +++ b/sys-devel/crossdev/crossdev-20230209-r1.ebuild @@ -1,11 +1,14 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="8" if [[ ${PV} == "99999999" ]] ; then inherit git-r3 - EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/crossdev.git" + EGIT_REPO_URI=" + https://anongit.gentoo.org/git/proj/crossdev.git + https://github.com/gentoo/crossdev + " else SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz https://dev.gentoo.org/~vapier/dist/${P}.tar.xz" @@ -22,6 +25,7 @@ RDEPEND=" >=sys-apps/portage-2.1 app-shells/bash sys-apps/gentoo-functions + sys-apps/config-site " BDEPEND="app-arch/xz-utils" @@ -31,4 +35,7 @@ src_install() { if [[ ${PV} == "99999999" ]] ; then sed -i "s:@CDEVPV@:${EGIT_VERSION}:" "${ED}"/usr/bin/crossdev || die fi + + dodir /usr/share/config.site.d + mv "${ED}"/usr/share/config.site{,.d/80crossdev.conf} || die } diff --git a/sys-devel/crossdev/crossdev-20220909.ebuild b/sys-devel/crossdev/crossdev-20230209.ebuild index 62e271684dde..fd460721943f 100644 --- a/sys-devel/crossdev/crossdev-20220909.ebuild +++ b/sys-devel/crossdev/crossdev-20230209.ebuild @@ -1,11 +1,14 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="8" if [[ ${PV} == "99999999" ]] ; then inherit git-r3 - EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/crossdev.git" + EGIT_REPO_URI=" + https://anongit.gentoo.org/git/proj/crossdev.git + https://github.com/gentoo/crossdev + " else SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz https://dev.gentoo.org/~vapier/dist/${P}.tar.xz" @@ -20,7 +23,6 @@ SLOT="0" RDEPEND=" >=sys-apps/portage-2.1 - >=app-portage/portage-utils-0.55 app-shells/bash sys-apps/gentoo-functions " diff --git a/sys-devel/crossdev/crossdev-20230321.ebuild b/sys-devel/crossdev/crossdev-20230321.ebuild new file mode 100644 index 000000000000..d15bf1ee5010 --- /dev/null +++ b/sys-devel/crossdev/crossdev-20230321.ebuild @@ -0,0 +1,41 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +if [[ ${PV} == "99999999" ]] ; then + inherit git-r3 + EGIT_REPO_URI=" + https://anongit.gentoo.org/git/proj/crossdev.git + https://github.com/gentoo/crossdev + " +else + SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz + https://dev.gentoo.org/~vapier/dist/${P}.tar.xz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +DESCRIPTION="Gentoo Cross-toolchain generator" +HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Crossdev" + +LICENSE="GPL-2" +SLOT="0" + +RDEPEND=" + >=sys-apps/portage-2.1 + app-shells/bash + sys-apps/gentoo-functions + sys-apps/config-site +" +BDEPEND="app-arch/xz-utils" + +src_install() { + default + + if [[ ${PV} == "99999999" ]] ; then + sed -i "s:@CDEVPV@:${EGIT_VERSION}:" "${ED}"/usr/bin/crossdev || die + fi + + dodir /usr/share/config.site.d + mv "${ED}"/usr/share/config.site{,.d/80crossdev.conf} || die +} diff --git a/sys-devel/crossdev/crossdev-99999999.ebuild b/sys-devel/crossdev/crossdev-99999999.ebuild index a3a84da996ad..d15bf1ee5010 100644 --- a/sys-devel/crossdev/crossdev-99999999.ebuild +++ b/sys-devel/crossdev/crossdev-99999999.ebuild @@ -1,11 +1,14 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="8" if [[ ${PV} == "99999999" ]] ; then inherit git-r3 - EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/crossdev.git" + EGIT_REPO_URI=" + https://anongit.gentoo.org/git/proj/crossdev.git + https://github.com/gentoo/crossdev + " else SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz https://dev.gentoo.org/~vapier/dist/${P}.tar.xz" @@ -22,6 +25,7 @@ RDEPEND=" >=sys-apps/portage-2.1 app-shells/bash sys-apps/gentoo-functions + sys-apps/config-site " BDEPEND="app-arch/xz-utils" @@ -31,4 +35,7 @@ src_install() { if [[ ${PV} == "99999999" ]] ; then sed -i "s:@CDEVPV@:${EGIT_VERSION}:" "${ED}"/usr/bin/crossdev || die fi + + dodir /usr/share/config.site.d + mv "${ED}"/usr/share/config.site{,.d/80crossdev.conf} || die } diff --git a/sys-devel/dev86/metadata.xml b/sys-devel/dev86/metadata.xml index 115e9d64a669..c4f5ea2afda9 100644 --- a/sys-devel/dev86/metadata.xml +++ b/sys-devel/dev86/metadata.xml @@ -2,4 +2,7 @@ <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <!-- maintainer-needed --> + <upstream> + <remote-id type="github">lkundrak/dev86</remote-id> + </upstream> </pkgmetadata> diff --git a/sys-devel/distcc/distcc-3.4-r1.ebuild b/sys-devel/distcc/distcc-3.4-r1.ebuild index 595748d35f48..c1a96f3528db 100644 --- a/sys-devel/distcc/distcc-3.4-r1.ebuild +++ b/sys-devel/distcc/distcc-3.4-r1.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{9..10} ) +PYTHON_COMPAT=( python3_{9..11} ) inherit autotools flag-o-matic prefix python-single-r1 systemd diff --git a/sys-devel/distcc/distcc-3.4-r2.ebuild b/sys-devel/distcc/distcc-3.4-r2.ebuild new file mode 100644 index 000000000000..1f64a9e6be93 --- /dev/null +++ b/sys-devel/distcc/distcc-3.4-r2.ebuild @@ -0,0 +1,182 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..11} ) + +inherit autotools flag-o-matic prefix python-single-r1 systemd + +DESCRIPTION="Distribute compilation of C code across several machines on a network" +HOMEPAGE="https://github.com/distcc/distcc" +SRC_URI="https://github.com/distcc/distcc/releases/download/v${PV}/${P}.tar.gz" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="gssapi gtk hardened ipv6 selinux xinetd zeroconf" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND="${PYTHON_DEPS} + dev-libs/popt + gssapi? ( net-libs/libgssglue ) + gtk? ( x11-libs/gtk+:3 ) + zeroconf? ( >=net-dns/avahi-0.6[dbus] ) +" +DEPEND="${RDEPEND} + sys-libs/binutils-libs" +BDEPEND=" + sys-devel/autoconf-archive + virtual/pkgconfig" +RDEPEND+=" + acct-user/distcc + dev-util/shadowman + >=sys-devel/gcc-config-1.4.1 + selinux? ( sec-policy/selinux-distcc ) + xinetd? ( sys-apps/xinetd )" + +src_prepare() { + eapply "${FILESDIR}/${PN}-3.0-xinetd.patch" + # SOCKSv5 support needed for Portage, bug #537616 + eapply "${FILESDIR}/${PN}-3.2_rc1-socks5.patch" + eapply "${FILESDIR}/${PN}-3.4-pump-tests.patch" + eapply "${FILESDIR}/${P}-fix-dcc_gcc_rewrite_fqn-corruption.patch" + eapply_user + + # Bugs #120001, #167844 and probably more. See patch for description. + use hardened && eapply "${FILESDIR}/distcc-hardened.patch" + + sed -i \ + -e "/PATH/s:\$distcc_location:${EPREFIX}/usr/lib/distcc/bin:" \ + -e "s:@PYTHON@:${EPYTHON}:" \ + pump.in || die "sed failed" + + sed \ + -e "s:@EPREFIX@:${EPREFIX:-/}:" \ + -e "s:@libdir@:/usr/lib:" \ + "${FILESDIR}/distcc-config" > "${T}/distcc-config" || die + + # TODO: gdb tests fail due to gdb failing to find .c file + sed -i -e '/Gdb.*Case,/d' test/testdistcc.py || die + + hprefixify update-distcc-symlinks.py src/{serve,daemon}.c + python_fix_shebang update-distcc-symlinks.py "${T}/distcc-config" + eautoreconf +} + +src_configure() { + # https://github.com/distcc/distcc/issues/454 + append-cppflags -DPY_SSIZE_T_CLEAN + + local myconf=( + --disable-Werror + --libdir="${EPREFIX}"/usr/lib + $(use_enable ipv6 rfc2553) + $(use_with gtk) + --without-gnome + $(use_with gssapi auth) + $(use_with zeroconf avahi) + ) + + econf "${myconf[@]}" +} + +src_test() { + # sandbox breaks some tests, and hangs some too + # retest once #590084 is fixed + local -x SANDBOX_ON=0 + emake -j1 check +} + +src_install() { + # override GZIP_BIN to stop it from compressing manpages + emake -j1 DESTDIR="${D}" GZIP_BIN=false install + python_optimize + + newinitd "${FILESDIR}/distccd.initd" distccd + systemd_newunit "${FILESDIR}/distccd.service-1" distccd.service + systemd_install_serviced "${FILESDIR}/distccd.service.conf" + + cp "${FILESDIR}/distccd.confd" "${T}/distccd" || die + if use zeroconf; then + cat >> "${T}/distccd" <<-EOF || die + + # Enable zeroconf support in distccd + DISTCCD_OPTS="\${DISTCCD_OPTS} --zeroconf" + EOF + + sed -i '/ExecStart/ s|$| --zeroconf|' "${D}$(systemd_get_systemunitdir)"/distccd.service || die + fi + doconfd "${T}/distccd" + + newenvd - 02distcc <<-EOF || die + # This file is managed by distcc-config; use it to change these settings. + # DISTCC_LOG and DISTCC_DIR should not be set. + DISTCC_VERBOSE="${DISTCC_VERBOSE:-0}" + DISTCC_FALLBACK="${DISTCC_FALLBACK:-1}" + DISTCC_SAVE_TEMPS="${DISTCC_SAVE_TEMPS:-0}" + DISTCC_TCP_CORK="${DISTCC_TCP_CORK}" + DISTCC_SSH="${DISTCC_SSH}" + UNCACHED_ERR_FD="${UNCACHED_ERR_FD}" + DISTCC_ENABLE_DISCREPANCY_EMAIL="${DISTCC_ENABLE_DISCREPANCY_EMAIL}" + DCC_EMAILLOG_WHOM_TO_BLAME="${DCC_EMAILLOG_WHOM_TO_BLAME}" + EOF + + keepdir /usr/lib/distcc + + dobin "${T}/distcc-config" + + if use gtk; then + einfo "Renaming /usr/bin/distccmon-gnome to /usr/bin/distccmon-gui" + einfo "This is to have a little sensability in naming schemes between distccmon programs" + mv "${ED}/usr/bin/distccmon-gnome" "${ED}/usr/bin/distccmon-gui" || die + dosym distccmon-gui /usr/bin/distccmon-gnome + fi + + if use xinetd; then + insinto /etc/xinetd.d + newins "doc/example/xinetd" distcc + fi + + insinto /usr/share/shadowman/tools + newins - distcc <<<"${EPREFIX}/usr/lib/distcc/bin" + newins - distccd <<<"${EPREFIX}/usr/lib/distcc" + + rm -r "${ED}/etc/default" || die + rm "${ED}/etc/distcc/clients.allow" || die + rm "${ED}/etc/distcc/commands.allow.sh" || die +} + +pkg_postinst() { + # remove the old paths when switching from libXX to lib + if [[ $(get_libdir) != lib && ${SYMLINK_LIB} != yes && \ + -d ${EROOT}/usr/$(get_libdir)/distcc ]]; then + rm -r -f "${EROOT}/usr/$(get_libdir)/distcc" || die + fi + + if [[ -z ${ROOT} ]]; then + eselect compiler-shadow update distcc + eselect compiler-shadow update distccd + fi + + elog + elog "Tips on using distcc with Gentoo can be found at" + elog "https://wiki.gentoo.org/wiki/Distcc" + elog + elog "distcc-pump is known to cause breakage with multiple packages." + elog "Do NOT enable it globally." + elog + elog "To use the distccmon programs with Gentoo you should use this command:" + elog "# DISTCC_DIR=\"${DISTCC_DIR:-${BUILD_PREFIX}/.distcc}\" distccmon-text 5" + + if use gtk; then + elog "Or:" + elog "# DISTCC_DIR=\"${DISTCC_DIR:-${BUILD_PREFIX}/.distcc}\" distccmon-gnome" + fi +} + +pkg_prerm() { + if [[ -z ${REPLACED_BY_VERSION} && -z ${ROOT} ]]; then + eselect compiler-shadow remove distcc + fi +} diff --git a/sys-devel/distcc/files/distcc-3.4-fix-dcc_gcc_rewrite_fqn-corruption.patch b/sys-devel/distcc/files/distcc-3.4-fix-dcc_gcc_rewrite_fqn-corruption.patch new file mode 100644 index 000000000000..14c08db329d1 --- /dev/null +++ b/sys-devel/distcc/files/distcc-3.4-fix-dcc_gcc_rewrite_fqn-corruption.patch @@ -0,0 +1,65 @@ +https://bugs.gentoo.org/904720 +https://github.com/distcc/distcc/commit/879b71d6e95673e58d33f6c3c341a893ee307161 + +From 879b71d6e95673e58d33f6c3c341a893ee307161 Mon Sep 17 00:00:00 2001 +From: Alexey Sheplyakov <asheplyakov@yandex.ru> +Date: Sat, 10 Jul 2021 22:18:14 +0400 +Subject: [PATCH] dcc_gcc_rewrite_fqn: avoid heap corruption + +On ALT Linux I've run into the following bug: + +distcc gcc -Wall -std=gnu89 -I. -O2 -o hello.o -c hello.c +free(): invalid next size (fast) +Aborted (core dumped) + +Apparently dcc_gcc_rewrite writes beyond the allocated memory: + +valgrind --leak-check=full -v ./distcc gcc -Wall -std=gnu89 -I. -O2 -o hello.o -c hello.c + +==11382== ERROR SUMMARY: 53 errors from 5 contexts (suppressed: 0 from 0) +==11382== +==11382== 1 errors in context 1 of 5: +==11382== Invalid write of size 1 +==11382== at 0x4C349D8: strcat (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==11382== by 0x10D165: dcc_gcc_rewrite_fqn (compile.c:611) +==11382== by 0x10D4B4: dcc_build_somewhere (compile.c:725) +==11382== by 0x10DC01: dcc_build_somewhere_timed (compile.c:1014) +==11382== by 0x10E380: main (distcc.c:352) +==11382== Address 0x544e828 is 1 bytes after a block of size 23 alloc'd +==11382== at 0x4C31B0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==11382== by 0x10D087: dcc_gcc_rewrite_fqn (compile.c:588) +==11382== by 0x10D4B4: dcc_build_somewhere (compile.c:725) +==11382== by 0x10DC01: dcc_build_somewhere_timed (compile.c:1014) +==11382== by 0x10E380: main (distcc.c:352) +==11382== +==11382== +==11382== 1 errors in context 2 of 5: +==11382== Invalid write of size 1 +==11382== at 0x4C349C8: strcat (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==11382== by 0x10D165: dcc_gcc_rewrite_fqn (compile.c:611) +==11382== by 0x10D4B4: dcc_build_somewhere (compile.c:725) +==11382== by 0x10DC01: dcc_build_somewhere_timed (compile.c:1014) +==11382== by 0x10E380: main (distcc.c:352) +==11382== Address 0x544e827 is 0 bytes after a block of size 23 alloc'd +==11382== at 0x4C31B0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) +==11382== by 0x10D087: dcc_gcc_rewrite_fqn (compile.c:588) +==11382== by 0x10D4B4: dcc_build_somewhere (compile.c:725) +==11382== by 0x10DC01: dcc_build_somewhere_timed (compile.c:1014) +==11382== by 0x10E380: main (distcc.c:352) + +and ALT Linux' hardened glibc does not quite like that. +Correctly compute the `newcmd_len` to avoid the problem. + +ALTBUG: #40425 +--- a/src/compile.c ++++ b/src/compile.c +@@ -584,7 +584,7 @@ static int dcc_gcc_rewrite_fqn(char **argv) + return -ENOENT; + + +- newcmd_len = strlen(target_with_vendor) + 1 + strlen(argv[0] + 1); ++ newcmd_len = strlen(target_with_vendor) + 1 + strlen(argv[0]) + 1; + newcmd = malloc(newcmd_len); + if (!newcmd) + return -ENOMEM; + diff --git a/sys-devel/dwz/Manifest b/sys-devel/dwz/Manifest index e46195dbc905..c5d5a1555852 100644 --- a/sys-devel/dwz/Manifest +++ b/sys-devel/dwz/Manifest @@ -1 +1,2 @@ DIST dwz-0.14.tar.xz 147428 BLAKE2B 286350a8276a1a674937a7adc99560562782044fd6caa50c9a55ec08343f34d8bd27140cca904e648859aba61d181e01ab0755f2115151fab16d498aa1549450 SHA512 62c39f79723ca99305dbb08d1d24a17699b9a84dd98c30904103da116831b1253bf1edbfb905c76fdc4d48305bd1ea0046314c5619209c40a1e624b8ae4908b1 +DIST dwz-0.15.tar.xz 150080 BLAKE2B 4ce1722a53cb588cda8195211a26b28d69891ed32cc59e44897270298d033590c79c8c73168dc3b261cb017fc12874a9cbd50db3bfaa0aa7de8ed7cf8a588cca SHA512 43eb4b08c1f529859dc3466697d5ad7e172d6efbf21409530a67a2492ae4acc3734d5134bbd6e07c089ecc358d915871b13e22f6e4f1dd4c3af19ef804f8fcc5 diff --git a/sys-devel/dwz/dwz-0.15-r1.ebuild b/sys-devel/dwz/dwz-0.15-r1.ebuild new file mode 100644 index 000000000000..a34aab7c8b3f --- /dev/null +++ b/sys-devel/dwz/dwz-0.15-r1.ebuild @@ -0,0 +1,46 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +DESCRIPTION="DWARF optimization and duplicate removal tool" +HOMEPAGE="https://sourceware.org/dwz" +SRC_URI="https://sourceware.org/ftp/dwz/releases/${P}.tar.xz" + +S="${WORKDIR}/${PN}" + +LICENSE="GPL-2+ GPL-3+" +SLOT="0" +KEYWORDS="~amd64" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-libs/elfutils + dev-libs/xxhash +" +DEPEND="${RDEPEND}" +BDEPEND="test? ( + dev-libs/elfutils[utils] + dev-util/dejagnu + sys-devel/gdb +)" + +src_prepare() { + default + tc-export CC +} + +src_compile() { + emake CFLAGS="${CFLAGS}" srcdir="${S}" +} + +src_test() { + emake CFLAGS="${CFLAGS}" srcdir="${S}" check +} + +src_install() { + emake DESTDIR="${D}" CFLAGS="${CFLAGS}" srcdir="${S}" install +} diff --git a/sys-devel/dwz/metadata.xml b/sys-devel/dwz/metadata.xml index 319c2d8312f8..c87f24a66212 100644 --- a/sys-devel/dwz/metadata.xml +++ b/sys-devel/dwz/metadata.xml @@ -1,13 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="person" proxied="yes"> - <email>annulen@yandex.ru</email> - <name>Konstantin Tokarev</name> - </maintainer> - <maintainer type="project" proxied="proxy"> - <email>proxy-maint@gentoo.org</email> - <name>Proxy Maintainers</name> + <maintainer type="project"> + <email>toolchain@gentoo.org</email> + <name>Gentoo Toolchain Project</name> </maintainer> <longdescription> The dwz package contains a program that attempts to optimize DWARF diff --git a/sys-devel/flex/files/flex-2.6.4-fix-apple-m1-crash-by-explicit-pointer-cast.patch b/sys-devel/flex/files/flex-2.6.4-fix-apple-m1-crash-by-explicit-pointer-cast.patch new file mode 100644 index 000000000000..c594262d2cb0 --- /dev/null +++ b/sys-devel/flex/files/flex-2.6.4-fix-apple-m1-crash-by-explicit-pointer-cast.patch @@ -0,0 +1,48 @@ +https://github.com/westes/flex/issues/539 +https://github.com/westes/flex/pull/554 +https://bugs.gentoo.org/871324 + +This is a backported version for applying to v2.6.4 +instead of git. + +From cce2df853386d5b5b60445b1204dcca08e9f259e Mon Sep 17 00:00:00 2001 +From: Yifeng Li <tomli@tomli.me> +Date: Mon, 20 Feb 2023 11:23:52 +0000 +Subject: [PATCH] Fix #539 crash on Apple M1 by casting 0 to (char *) + explicitly + +Currently, when the NULL-terminated variadic function +filter_create_ext() is invoked, the value "0" is passed as +the last argument to act as a terminator. However, this is +an integer value, which is incompatible with the pointer +data type expected by filter_create_ext(). + +This is undefined behavior in C, correct operation is not +guaranteed. In fact, it causes flex to crash on Apple M1 +when GCC is used - the loop is not terminated when it should, +instead, it keeps running, corrupting the argument list for +invoking m4. As a result, it creates the following error: + +> flex: fatal internal error, exec of gm4 failed + +This commit fixes the problem by explicitly casting the value 0 to +the correct pointer type (char *). + +Signed-off-by: Yifeng Li <tomli@tomli.me> +--- + src/main.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/main.c b/src/main.c +index e5eac44fe..5c9086183 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -380,7 +380,7 @@ void check_options (void) + } + } + } +- filter_create_ext(output_chain, m4, "-P", 0); ++ filter_create_ext(output_chain, m4, "-P", (char *) 0); + filter_create_int(output_chain, filter_fix_linedirs, NULL); + + /* For debugging, only run the requested number of filters. */ diff --git a/sys-devel/flex/flex-2.6.4-r5.ebuild b/sys-devel/flex/flex-2.6.4-r5.ebuild index 64dbde0f449c..8ddca7e3c8ce 100644 --- a/sys-devel/flex/flex-2.6.4-r5.ebuild +++ b/sys-devel/flex/flex-2.6.4-r5.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -12,7 +12,7 @@ SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-autotool LICENSE="FLEX" SLOT="0" -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" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux -arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="nls static test" RESTRICT="!test? ( test )" diff --git a/sys-devel/flex/flex-2.6.4-r6.ebuild b/sys-devel/flex/flex-2.6.4-r6.ebuild new file mode 100644 index 000000000000..fd91a0206e3b --- /dev/null +++ b/sys-devel/flex/flex-2.6.4-r6.ebuild @@ -0,0 +1,101 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic libtool multilib-minimal toolchain-funcs + +DESCRIPTION="The Fast Lexical Analyzer" +HOMEPAGE="https://github.com/westes/flex" +SRC_URI="https://github.com/westes/${PN}/releases/download/v${PV}/${P}.tar.gz" +SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-autotools-regenerate.patch.xz" + +LICENSE="FLEX" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="nls static test" +RESTRICT="!test? ( test )" + +RDEPEND="sys-devel/m4" +# We want bison explicitly and not yacc in general, bug #381273 +BDEPEND=" + ${RDEPEND} + nls? ( sys-devel/gettext ) + test? ( sys-devel/bison ) +" +PDEPEND="app-alternatives/lex" + +PATCHES=( + "${FILESDIR}"/${P}-libobjdir.patch + "${FILESDIR}"/${P}-fix-build-with-glibc2.26.patch + "${FILESDIR}"/${P}-fix-apple-m1-crash-by-explicit-pointer-cast.patch + + "${WORKDIR}"/${P}-autotools-regenerate.patch +) + +src_prepare() { + default + + # Drop on next release when we can remove ${P}-autotools-regenerate.patch + touch configure.ac aclocal.m4 Makefile.in configure src/config.h.in || die + + # Disable running in the tests/ subdir as it has a bunch of built sources + # that cannot be made conditional (automake limitation). bug #568842 + if ! use test ; then + sed -i \ + -e '/^SUBDIRS =/,/^$/{/tests/d}' \ + Makefile.in || die + fi + + # Prefix always needs this + elibtoolize +} + +src_configure() { + use static && append-ldflags -static + + multilib-minimal_src_configure +} + +multilib_src_configure() { + # Do not install shared libs, #503522 + ECONF_SOURCE="${S}" econf \ + CC_FOR_BUILD="$(tc-getBUILD_CC)" \ + --disable-shared \ + $(use_enable nls) +} + +multilib_src_compile() { + if multilib_is_native_abi; then + default + else + emake -C src -f Makefile -f - lib <<< 'lib: $(lib_LTLIBRARIES)' + fi +} + +multilib_src_test() { + multilib_is_native_abi && emake check +} + +multilib_src_install() { + if multilib_is_native_abi; then + default + else + emake -C src DESTDIR="${D}" install-libLTLIBRARIES install-includeHEADERS + fi +} + +multilib_src_install_all() { + einstalldocs + dodoc ONEWS + find "${ED}" -name '*.la' -type f -delete || die + rm "${ED}"/usr/share/doc/${PF}/COPYING || die +} + +pkg_postinst() { + # ensure to preserve the symlink before app-alternatives/lex + # is installed + if [[ ! -h ${EROOT}/usr/bin/lex ]]; then + ln -s flex "${EROOT}/usr/bin/lex" || die + fi +} diff --git a/sys-devel/gcc-config/Manifest b/sys-devel/gcc-config/Manifest index ba7fe333bdac..766d8b19aee5 100644 --- a/sys-devel/gcc-config/Manifest +++ b/sys-devel/gcc-config/Manifest @@ -1,2 +1,3 @@ DIST gcc-config-2.10.tar.xz 18040 BLAKE2B de902fcf9169290a09988b56fa75f1bf24f702ce98a8fe37b6d4fe090bab615716c32a9e219d25a2257c60099eb4424b86cc1a1565c1b4f3dbcd6c9acad6f340 SHA512 cced56c52d97cbace5fb7e1fc9c73b413454bc5c53641c9429a7da88a0b31db2c70a8b90a4b4b0fbe1e732f21a5f979a4721a7bc8537666f8277b7755bd4af52 +DIST gcc-config-2.11.tar.xz 18068 BLAKE2B 0d76321adea9eff545e042ad847b70a5b3d8ecb8c248fdf58f71c88a7b03c0aca39f7d39e332808b89c3f6d0fb3fc3114bc2d8dfa1ade6460c0b12c3420d876f SHA512 38ea52c2d16287fc2c8efa0ee76e24563851b4fa1ee7dce601507df1530e7a867281f178ad4228505eb2aaf46164024a18825cd6771d847ff1a60a85d6e96d3e DIST gcc-config-2.8.tar.xz 17968 BLAKE2B aa34e681ef0c86bb846d89b816b46276f5c7c32974c785a9611a903a4fe165c997a34664abe17aa4d8720a96f194054e5d8c371a6c9270b1c235d7539094436c SHA512 5e91df44fb7782b9ad41ed06fbd53f74868c059f892c6c2b8195ebaa899905dd9f502562887f1a3765dd6b61698e956d01c6fa6f97a535cf16e26e70fcd902ba diff --git a/sys-devel/gcc-config/gcc-config-2.10.ebuild b/sys-devel/gcc-config/gcc-config-2.10.ebuild index 1b01042208ff..c83d173cad65 100644 --- a/sys-devel/gcc-config/gcc-config-2.10.ebuild +++ b/sys-devel/gcc-config/gcc-config-2.10.ebuild @@ -8,7 +8,7 @@ if [[ ${PV} == 9999 ]]; then inherit git-r3 else SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" fi DESCRIPTION="Utility to manage compilers" diff --git a/sys-devel/gcc-config/gcc-config-2.11.ebuild b/sys-devel/gcc-config/gcc-config-2.11.ebuild new file mode 100644 index 000000000000..1b01042208ff --- /dev/null +++ b/sys-devel/gcc-config/gcc-config-2.11.ebuild @@ -0,0 +1,60 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/gcc-config.git" + inherit git-r3 +else + SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +DESCRIPTION="Utility to manage compilers" +HOMEPAGE="https://gitweb.gentoo.org/proj/gcc-config.git/" + +LICENSE="GPL-2" +SLOT="0" +IUSE="+cc-wrappers +native-symlinks" + +RDEPEND=">=sys-apps/gentoo-functions-0.10" + +_emake() { + emake \ + PV="${PVR}" \ + SUBLIBDIR="$(get_libdir)" \ + USE_CC_WRAPPERS="$(usex cc-wrappers)" \ + USE_NATIVE_LINKS="$(usex native-symlinks)" \ + TOOLCHAIN_PREFIX="${CHOST}-" \ + "$@" +} + +src_compile() { + _emake +} + +src_install() { + _emake DESTDIR="${D}" install +} + +pkg_postinst() { + # Do we have a valid multi ver setup ? + local x + for x in $(gcc-config -C -l 2>/dev/null | awk '$NF == "*" { print $2 }') ; do + gcc-config ${x} + done + + # USE flag change can add or delete files in /usr/bin worth recaching + if [[ ! ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then + eselect compiler-shadow update all + fi + + if ! has_version "sys-devel/gcc[gcj(-)]" && [[ -x "${EROOT}"/usr/bin/gcj ]] ; then + # Warn about obsolete /usr/bin/gcj for bug #804178 + ewarn "Obsolete GCJ wrapper found: ${EROOT}/usr/bin/gcj!" + ewarn "Please delete this file unless you know it is needed (e.g. custom gcj install)." + ewarn "If you have no idea what this means, please delete the file:" + ewarn " rm ${EROOT}/usr/bin/gcj" + fi +} diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest index 549536ffab4d..b3a2af7ccf7f 100644 --- a/sys-devel/gcc/Manifest +++ b/sys-devel/gcc/Manifest @@ -1,31 +1,30 @@ -DIST gcc-10-20221208.tar.xz 72098912 BLAKE2B 8167b3d91fb95c727caa3a76d8bd6d70e0d0bd79eda72305f3005c9f7163dcd425c75386ba55b2d71644ecf83d998a4bccb6fd265bb615dcdd104f27cadb8e76 SHA512 5e49159d86300eaa4c2f34fb3537b5f257931e861a1a1217dbabcfcd5ef9da224d4a6023aaf8d24c8893ecd204ec0cd6e96349ae0dd445d62d92ebb041aeb054 -DIST gcc-10-20230119.tar.xz 72112952 BLAKE2B 6e28cba9f6ff5c9f9231828bb400c82b8658a4f9c0166c28a6a12d71728d4460904152a8c84bbeff88c06b7f9378937b7b61bf4a871a10c56bd005170dc5fde2 SHA512 6cbb567ef1da1b6fa65892b6e71c3b7cd37e0c483e049720ea1987d444a0e7b4eb15d1e99f4e35995acdce560a811a779574eeba52bb252c61325accedd6a5c5 -DIST gcc-10-20230126.tar.xz 72121284 BLAKE2B add27f5cacaf5c36c4c54e2c71f6e60edd03242bf52e1729aa708cc6d927814f3640cccbf9711d105c252b90e980e0ab071a2204c7859045c35bacaac9664c7a SHA512 619f73041be838b0e48a10f5dbe4bb775367fc13511f4b98d65c4336b397f1ccae2df64f11b7cd066e2635783b2d61f815c3ab0a6478ec3c98dd7b33728d2ae5 -DIST gcc-10.4.0-musl-patches-1.tar.xz 3808 BLAKE2B 804d1fcc451dcd03be71240dd498ec2d179869571d44012967c48dccf5a478dd8c55000a964a80fdd5584d739a777dee1c83241cffce514ef002df2572854a67 SHA512 83e4a9c0f7062baf0c606a2bcc56a818494991403d7577dea65f04bbc25bdb786a5889b80d45d80e7f4be07c1aef786802cbfcfafd1a17ec255a2d4e93a77570 -DIST gcc-10.4.0-patches-5.tar.xz 17056 BLAKE2B f336d69a8ad105b8c4a84e8248a5b8a88175d3f1d67d32c6bee1780d252d86947059bd624992e6292610e86c9012f4d901a1a54df0d184dd023d404a0707700e SHA512 aa8fb42f20587f8519e7b06037da4d8f7d386b63e228b239a0445a51df4e401940fcd81482381d966622054aef3e0db06d1def5c74ac3d3dcc9c75c3b966c758 -DIST gcc-10.4.0.tar.xz 75018092 BLAKE2B ec1169025d3896b70ab80a4b8ce5040763a95529fc7e120c6bc3a3eb1db5cf938ebde347c1e595a8ff7d4081e79ded6252702d7a1a09648449b7a0783188e434 SHA512 440c08ca746da450d9a1b35e8fd2305cb27e7e6987cd9d0f7d375f3b1fc9e4b0bd7acb3cd7bf795e72fcbead59cdef5b6c152862f5d35cd9fbfe6902101ce648 -DIST gcc-10.5.0-musl-patches-1.tar.xz 3816 BLAKE2B 5995f934a40665d877342853fde8b414eed8770c72e6b11b295b7e7b3c9d38d7407dff63b5751f4449f6fa842c02e87f156cc868e7436a8313f7c8514242d255 SHA512 b93cc54cd7b78fdc487df7c449b03bbfd10094e45f3f8eef20cd69f27a68a14817fe662a2ec119b384eea2dad0491b70f838d010457e386700030b76457afad6 -DIST gcc-10.5.0-patches-1.tar.xz 17180 BLAKE2B d8ecc7cc15fa1ab420fa9eff11173a1d5544b369720e8c54fc59375e591ebd0a429b7e81a2a3df86bd2eaf19e4b8148bf2e1b0c8410de3944d4801ce412016b2 SHA512 5855aa23ee0b262c20a1b6fd2d4a947180c079dc00e0fa675043edceee0c822eec0dc752f5fcb281b70c04e50c6fcaf6c5d5160ab15d3f0c51fa030eb2d79d26 -DIST gcc-10.5.0-patches-4.tar.xz 17880 BLAKE2B f368b741fd42199c85b770ec45a5232d27295cf7796163251f24fa963f2264c473e161bb34e66b43c4b227e41859d540a66331111392478b280b289d359806c6 SHA512 94f7fbd1b4672f0378c85ac3a96f7954cd22bd7cc1013c32519bbe1cae0ebb5183e14469c61dfc9d931b8d1c261f2ead1c4b47278104d1b5189a0c787aabc40e -DIST gcc-10.5.0-patches-5.tar.xz 17324 BLAKE2B e97b471fb6115fd0421be8a6390f7d88312de7ac0132fde3aa43dbf2a49d3bc640ec05f766f20363f033adeaf0430e90c42b5a6f92a422d1a82128f119e769f6 SHA512 2589b8a3be0bc60dd7b205ef9955dfd1ba525508879b30ee8057779d2677783c7c13a0bf901bc2a126e15c52d440663e6fe22a299d935e0706a037406e1cfb31 -DIST gcc-11-20221209.tar.xz 76240768 BLAKE2B 3be0f1ece4473bbbf10f7242102f330a6e246c8481da5bd32620dcb15d2acd008bad60d2576a301f03e444e3d93a3c72d5184740c6fb3de2bc05e1863b68a0bc SHA512 33d9581d434c012526eb4d49a4453cf77c57b459fd43f84e49bc764745e0772939eac007e119269f4f1989755df8678613732a84474c691b0c2452237c5b38a3 -DIST gcc-11-20230120.tar.xz 76201244 BLAKE2B 07bc819dad3e2ee3747f09f43fd73a4263f06274362728174b32d9ead52ea95c25ea6a192397378b9b4c4f958285d97488d28e425c26129d23f143b1a8668fbc SHA512 81f71aeb706b4ccb89e2af5201770fd72cc3190b9b5eac0b5a25a522626b9c4015a2e5d13e4bd1360ac0f7f1be27df51fc530c15ce3c3d782f39f34d5c58803e -DIST gcc-11-20230127.tar.xz 76128480 BLAKE2B 4fdff08bd120fbff1b1e87d09606a9049fa28f456444c07c5d0dc3738216be3c2b418137bbb57ac79e584b68cf277033707c63a5e2ecb75497f3778f7cf3fef6 SHA512 772f4ea802aba04a63a50272b59c293b0f1a143c00b88beae98c9bef4ef3a36ad4fd50ec670113d1d031e831262fe50e0b1017536f02c8553be61b05708678b8 -DIST gcc-11.4.0-musl-patches-0.tar.xz 3844 BLAKE2B f3f1be6718e3cf08e553a1a2319a85e13368279849f6f3ab89ad7abe505316afacf5084846c0cb133bdcb5c918244644242c194e6ce55455a26e67b3983d73ef SHA512 a81db52d21de364137461dcff7e1af696df4a02fa26452f90439ae4af14ccbffe68eb4ee93ae56257490ab8aa36b4bff37c4e1f2cf4dd4624b3a6fb4cb50b7ac -DIST gcc-11.4.0-musl-patches-1.tar.xz 4320 BLAKE2B 9f59aef44243b6d63bd9c4639b413523e74784dc0da931a9f1be75d2091f7e99c530b32b567315972a88816d6b30d2c404465a2f28138ba2cc894914d7a123fb SHA512 c174623bf40fb0cab53d1ca82fa7e0b05f0114c61c839e316dfff7678d202b850d4d5011432cf6fa40c54e563e28381e9a9f80667d9428b3f272ba8391c6ac84 -DIST gcc-11.4.0-patches-3.tar.xz 15200 BLAKE2B a393df941a2a31164f477d6bc0032e28319e8f0bd87200eb453708f85aa8c0bf5d67e733ee7b75cf6d14743e18cc941cee1b77a8247f8c5683d17a98cbeb280f SHA512 6f6096d95c7c62780d1070097739882393a8df5172c3a5ae811a8d4d1c98a0cd14a34f3f7e95410c8f210aec434330ac3b8876c688faeb130d7bb8fa3333ece9 -DIST gcc-11.4.0-patches-7.tar.xz 14416 BLAKE2B 3ebf62cba04cac8830a93a99d11c21347c38891db3a81493a10e02e8b7af0c86389ffbede50672dfe1189a77a67b832f8f97a1d95d43eff11db131a143b1d03d SHA512 41e2ed1ccf6d3631accccdab057877c79c99eb1b3c32f9d35628bca6c633c4f8dadb1d7f93bed2e4d7ff9f36cc9e46ea00f0e57e8af64b2e5f4b3b01285c6da3 -DIST gcc-11.4.0-patches-8.tar.xz 13788 BLAKE2B a1406d5dcd906ed51ef06bb6571c216d83f74ab5ba05d2f1783d20619ee4ae9a4aa60c15917c861c24b708621b1605411011df9d217472f92001ec1c59a22b5b SHA512 b18b068422911216063948e21f0ec01073edb45c828a351282730111642638a0a42b97394a3f7522f892fe79e30b391372c829b542ce64fd0dc58c2a83f091bf -DIST gcc-12-20221126.tar.xz 79631864 BLAKE2B 3bb97ef4a1a17ab8b92b431b1f792c11131085a1b523efa08c5b4f995b44bf628be371564813e5affb1f8e2320bb8a9b04532e57b2deeef26b33f517783daa5e SHA512 163e0aa39dc5c24980f84000bd6ccd4b7c24581831b7a4cdbd63e4726be5c2b1933d034ce12c65cf95e4c0ebe1175af7e32facace465bfd7c7c377401350a2df -DIST gcc-12-20230121.tar.xz 79652428 BLAKE2B f4f0e6474d179454dc56dd05c823fca919a894e9efdc64625bb13045c7bd549a7bab59dfb4052d45d594d4484801ab5b18cf3f3d6277be54eaec24a53abd439c SHA512 b6c2486916418a64fab64c3655329bc18ca93ee4eca240e8779bd6d8280124fcd07b1aa8eff979fd317656646ecdba9353107887338354d8bd2c1f68c1609349 -DIST gcc-12.2.0-musl-patches-1.tar.xz 3844 BLAKE2B 004432806696f7d0a32366270ac45695e858abee73a255e44dc6e0a225339e4cad40aab0d51dfe9a55d5aa4b4001f5726064bb2eea3212a0874b2d27e229abd7 SHA512 c354edcd641a9dfaf902a0ff4c44c75065d0cf1c36bbf6c3c35c2e23bff22b8f70bcf4458a5a0ef86371e9f2fafca8a54ca822e35820ff442c9458a2819c3606 -DIST gcc-12.2.0-patches-1.tar.xz 12864 BLAKE2B a5ae0a85dfc1b6f0bd968f0d5262ebed14ec9cdb3249e3a4c571578c54eda0e53708ee7fe8e03e506366c7f3cf7926eced9b390d9dee948c1249298c0fabd9fb SHA512 f3d793b89a2a0385d596162fb0c653d4acdf21ae418cb792c1786a01fde0391bd0719715dbf07d53636f127168f5cd99108a1dc11cf6cea889b7d82385bcc258 -DIST gcc-12.2.0-patches-10.tar.xz 14252 BLAKE2B 99368db982227728a6a9e2b1f694999f041f38db4a3806b6a740c86218735f9b561197bc150423a3caad0b5fd335c95d1aca130a519754423cd44a083e655373 SHA512 f7f0d8185e908926046f579793dba5916dc27392b85bfe50a7e70c213c3ba29479dfdb1b27514765b76bc897c4dbb530680e59c4deca7a245a808ed566120e4c -DIST gcc-12.2.0-patches-2.tar.xz 13952 BLAKE2B a9e798911acaf45c3f585f69721130cfbecec016727a50ac0f4767b37a2ab9df39e0828abb07f1e429619cc102808f81af8422fef0265415c287d303d9d97fc0 SHA512 1808a05e98094577099d115ff5f3e136e3fc8f39fbe35c5183fd7775383f94439212e5e4174ab8d0ae8c0874e227ff84a958ffdfa1c99c9a8306a9842d126ef9 -DIST gcc-12.2.0.tar.xz 84645292 BLAKE2B 715574af9ad678f9dc8cfd19c866bf910c7edfd479e7e9681337feaa9b54e5d304ddb85483816b8d89754d502405823ae2eff0d1e444538763f40be8e428d8da SHA512 e9e857bd81bf7a370307d6848c81b2f5403db8c7b5207f54bce3f3faac3bde63445684092c2bc1a2427cddb6f7746496d9fbbef05fbbd77f2810b2998f1f9173 -DIST gcc-13-20230122.tar.xz 82869800 BLAKE2B fff4bee436910ba587640600a95c2a89ddec415e12f629c941c8b27d28202c62b39dac2ca0b5d82d9fb4ca271310b178e89202f488f5ef4a7fbc63cd3ecfd7d7 SHA512 a24c0acedc81f72104fe13aba7403ee8920949089971aad5a296de7b46b8969d82b77df92bfd4ef2537b2e5c2010b72d3a33e3bf35ff734d9c49a7a1746026b5 -DIST gcc-13.1.0-patches-5.tar.xz 11404 BLAKE2B 5ba2b4002e917750757a28fa4c7ff6ff7090c35f28eb984aee6ad7fc0ac80c88a9d08e1d4d9efa98e6bd3f06e89df47b10b51f8294bb7d2ef0d1ac3fd2a1a963 SHA512 6864738794237bd7430c612404dd4b84e275362cb5abd081284a91e5b24c1b0aa97d90b9543168c72147be146887219715325d52ae2920912d9c4e17e7224aa3 -DIST gcc-8.5.0-patches-2.tar.bz2 16921 BLAKE2B 619a47f74edf05fa01c9de59d0ff7abb027a01cf0bdec91ac41046166192f4eae561684136c4a6a5e077f64754bb5b0710905129f31b0def21d88f92e6bba7fb SHA512 b6095d4570895e2c4dd58fed5756194aea27391b813e5e2de42b2749cb318c4bea2087eb0ff92c70e7f98ae4482c49d476db57be83d7beb19fd462aa61714ab2 +DIST gcc-10-20230426.tar.xz 72118868 BLAKE2B d87cfd78d96585877abc20ed213e4d2fba36556279a5bce5d185de34a59f8cde1250d7322543533922ef224ac8508c1d3fe597c652a648e6e7f08bc19cb2f11c SHA512 805fbb840e6bd8cdd53f954b13c768c0ea0635c099094f6f0b0b04f00120dcde7cf3950a01e199d674b39ff764e9119a548b2f7a156ab2b5d598bd68ed56ce24 +DIST gcc-10-20230517.tar.xz 72135000 BLAKE2B 8ec87088ace2bf7cc355357b8c9b12e61646366ee1204a360f3be0dcc8b7d426ba5fbb7eb46b4da4c937f5b63d2181a3935f2894f40556f1472dd2a91197b38e SHA512 ae685e1e3fc3460ea49bd86b2b583ef97c71ed279cce6f06b293bd9c7f7ac5ae477b2f2057c4ed927114249e41f6f7978f13db678cd92935dc1250bdd11c94c5 +DIST gcc-10-20230524.tar.xz 72147352 BLAKE2B 0e85c88676c72a1a3e1e39143b3e263ff12ca5956b6bacbcd7ebcd377bcc01179133249d16a926399dd0a30ec946470f6f794247ff0408492b457bb01ad76c50 SHA512 0e6b499b7914970f00ab1eeeffc070308e3a3dd474e7b974572fd7537d271c4c8533d2ee72482c47a8b4da8b69ba5246e58eee586a58ccd58e35c502f1986c6a +DIST gcc-10.5.0-musl-patches-2.tar.xz 3452 BLAKE2B 5387e516d07d81477b3f39b8b3bd986bf861d32cd25dc5481c97bd3620d00c918c5661e86857f66dbf28a655401a53e43417f638c443e44cbfdbf5e950caac4d SHA512 86f2ce31cc4fc4fb5a6043fb527bf822d895e1a6220652024f78a1cbd5a962edb6be8dc5f43c32053e075f39bb2350ea8f14e7d57e0473dd2933a7b44676bde5 +DIST gcc-10.5.0-patches-6.tar.xz 18208 BLAKE2B 4cac3340108fb378c76ad62b728429f3c97f348d178744e7536575f3576ca8aa682b878b7df3b1c162dccae64a3cb56c66d8d60eae323e1ece2de4278084fdbd SHA512 9d6c84325fbc118cee01347468ce729c278e5b026b16da945fe54050726e26f86a46ee7b71a01a47cf927b70bfcce459c49a6bc4fb93dcfaa047c76d4c5bc5bc +DIST gcc-11-20230427.tar.xz 76165128 BLAKE2B dd896b418c1fce35a61005d5b5c90cfd1246d37d23c2a8fc08bacd7d7ca84c353f3ccf5de2370ae5e5ca95c7ae3deab3565b3f65eb78b611dbe5ad4a256516f0 SHA512 fada917a832be5d2e15ee32f24e19fc87b851dc8e6fc75d1be6d25d3510dba408ae3ef3b245ff239c51aa3d243c95f12269695611e5c8965ba55f5aa4730778d +DIST gcc-11-20230518.tar.xz 76192980 BLAKE2B 8397a32e6f5800b3ed7be3d7f4afd03511ecd39e93b210a73d59a9a6bf9a7daf8e20524842a661597727df16548fba1a650884d7a4518d647387cd48825116de SHA512 5259726703a8769e0a170dffdb84ce605ac43289b13a9b2cbb95fa19a9abc37859176e5184ca8958e209991ebe4eb9e3ce2fe22f66c7cec1d434a630a68d50c3 +DIST gcc-11-20230525.tar.xz 76192248 BLAKE2B 58f0ca1b6a8daa8a7fc23da47d851e6345ff1ebc0e741458700fe835a044625ee0ac1e42b3fad39fadd5926d15cca625d6c72c51ab4e9b70608a7526973aff39 SHA512 7ad900cd95e5d2e7e9679d1a18781a91ad7796e017ba0e1401da14c7e47133778bceec2a62b2e9b7a9b912e9db0f21ccd5f93972a7ca1324e394a9bcdc530714 +DIST gcc-11.4.0-musl-patches-2.tar.xz 4308 BLAKE2B a2335e155fc57816fed822a648e0eaefafcba9d04e1ad0fd7baeea5a694ab6f5e3c1678cb406f2a1bd17bab25cb01699d032713a1ccf337948dfda2093844607 SHA512 17b84f907cb1bd763873655e6f35fd3ed55a40b602b70a626f04f83b4cc89c6261db1661de78d4d969187a8c56e9f6305b742515a3836b962248a21df0df5d0c +DIST gcc-11.4.0-patches-10.tar.xz 13852 BLAKE2B 54937d13e30e2a5303c7e197fae09eeed35ca0b9783625e02578fcee829b5503fb22d664366322b304df7d01ae807d00af7c93db3e3ceebe4851e15647724f87 SHA512 31b4d7a2e7cc589e92e12c3583d13d41c523cafbd309bc0532df9b68ea2473c89daef4c0edd3ce2917b5823d81a7792f145b9449f16277d0d64c22ceff50bbb9 +DIST gcc-11.4.0-patches-9.tar.xz 14704 BLAKE2B 9aa2ecbac493d3040694e9930738e57d59a764b90ab92b91709c319b883f28ad108767e5d11e8b62af40bf1e583d5ff83a03e8c895f904bc6f41315ce9ab4f0a SHA512 ac8b7c6c382ffacc4e9d08299440fc237fa366ec36fb8eb7a8d426b64a4186384a262e6380dc83ed7f7240125ce26a8435c8a4e0e13976ef2652067a7129bd17 +DIST gcc-11.4.0.tar.xz 79837032 BLAKE2B 6e3b095a5837d4b5512719f848f4b9c4b4a6d7dc40ba96b269023ea5ea84f632c42a13855c030e255f3265445a45e6d2648dfe0e2cc0ea47da87c4660b052e24 SHA512 a5018bf1f1fa25ddf33f46e720675d261987763db48e7a5fdf4c26d3150a8abcb82fdc413402df1c32f2e6b057d9bae6bdfa026defc4030e10144a8532e60f14 +DIST gcc-12-20230428.tar.xz 79744932 BLAKE2B f9d0000cdd2f1b0af79f281851b3b0fe0ac50f14468844e1ee596f8ed1ccf33f55c7617464d88df7e4b3435d58fedecf640592e0661fd1be9ba163acd26dae68 SHA512 992f9cd71f9910efea401048540ba2b43360170f76ce992cf356b1ab383240f481e29c5b0ad32fa4efb2bdbb397477506cb83a825268cfbdd2cde7044d43c758 +DIST gcc-12-20230519.tar.xz 79757700 BLAKE2B 81c18adedc9f0eae729a72814a47ae496c9ae78f13e9cf2f442b3ea09c577e84e3261a6004d1634125bbc77c39298328a0879eea1dab26966b85f9f10887f114 SHA512 cd24ad69a6c47a95384d8fd4fcb7e895f8fb4d8e0c4b74d1300943fa8198624e3c40b0bd7702cb78f40849a09b5069e50e36bc191bd206b36c956ca25126ee02 +DIST gcc-12-20230526.tar.xz 79780444 BLAKE2B 6f6eca272ab506e16a231003c399e28572595c82fbaaec9deb14b78ff9fc493fb24afe1c375d4f2fd75e9813805934857ef2ceb6c05b7977dbfe2e50abdc3ec9 SHA512 fb190ce5bf3d38a1899016475c1551550d44c6f71f1f1a71ced545cbb2aff0446bd2765230b0920379579a13103a507ffc1e197ac69afb0a4f08efe11b50918d +DIST gcc-12.3.0-musl-patches-1.tar.xz 3572 BLAKE2B c7bf65f7c9ea8023ddaac821ee2b778622fa310ac72a72b2f7032494a8f304eac86217f9204622e6c21aaef9952bece0d09bc126facd4f42b602927909815ab5 SHA512 babc279fea2c1fd4c018815f2f5630214fd46015ce9f365c28af242681d51818eaca30ce298eddcab1eed5ac5f2759e2b47b2335afab9d722b4469a6d4fec326 +DIST gcc-12.3.0-patches-2.tar.xz 14236 BLAKE2B 06c43662c9abb0fa3cf90d5e2273c69aecb9158e6cf6f23c04754ed5d686be2616e81e2502eb16f4298ddd50518ca7677e13249da9e9b091162d3931ff65e4fe SHA512 b0d4b85dbf1a54aaaa1997203b872e3106906b4ad49cde57e1428bc22b2f8e2d73b8cb10ae0d0b792aebaf664594da4d1dea04c44ddc34e59047410766db04d1 +DIST gcc-12.3.0.tar.xz 85491976 BLAKE2B a239749089e284887435b9fabc360a36764be1095f4c78eeac6f056f91dd23c49dab2ebec5da32a81bcc08fe8277dd3c714ad114ad725d24317faac03354d595 SHA512 8fb799dfa2e5de5284edf8f821e3d40c2781e4c570f5adfdb1ca0671fcae3fb7f794ea783e80f01ec7bfbf912ca508e478bd749b2755c2c14e4055648146c204 +DIST gcc-13-20230520.tar.xz 83959400 BLAKE2B 7be5d333a2447923c547ed76bab86fb9a1206dde1ffeb8be0a2cb95f8e99910aa40479f221374aaf5bdea5dd7514b3d69347512d9cebb91dd23f585541efa43a SHA512 d6c8626822855f71cc58b6b36ebb38092aaf12fa9aa40b8d70fb3edc9f4c614fbf47626ea5cc1ec631bc47b5d64911bfdb7cfc6924f27a54016b1f8c9c7588d7 +DIST gcc-13-20230527.tar.xz 83956360 BLAKE2B 86a2131b88144817673a6300c73b29c2dbb8559a7057609601029aaf60aeb4c4926fa4b99c4e1768726cde09f994159685768b62b3ca73d7b606847788301e82 SHA512 87566c74258f9981742eae77f552361c220f79fa6f17c36d5b5a9e73f41c50d8a2cab16b9ffb17f07829005f0d42b4b1d524150d3dcba9710091532cbfad7152 +DIST gcc-13.2.0-musl-patches-2.tar.xz 5292 BLAKE2B c057d6574d03c05854edaa9f3fd40e9149662b04f3ac7a7db3eb078d73a7b535726d1bf52e5b12736dedb2f9898ad731f2e48a6421fcfbf7b90f929dee072fcb SHA512 a691da0c87c443a5e9d23731f4005f27871c5b12bc9102873ffa24d374aa7b9fbd187c4f5635d23fa9ffb17e351e76173c2d3fdf40646e355c4cb314b538de69 +DIST gcc-13.2.0-patches-3.tar.xz 30956 BLAKE2B 29ce043b46645640ca1e983397af3e158588ad87575f0bc59451ea4a7dd5e3bb5b190ed031de6a22cd790d423ba111e95d222187dd09985dceb12db9f0a2d907 SHA512 4ffecae7be320124ad0c4e71e39e142b7aa8db0e70b5f486f491d7a33ea31efc6464c6abeea77df02a8bd5cf81f08225d625c8af5c27f9afa32c0d7d989f7a3c +DIST gcc-14-20230521.tar.xz 84139108 BLAKE2B 5db3844cfa92f2462871581e8d33b3f70d94fa9ddf203055e83c03fdeb60145dcedd1e8d6d2040bc56cdf6213b530a835da3c7b0766fbd538d2f690f5a74ff70 SHA512 8cc629c3f847c34ed35ca84d020a3d7a98ca5e29d15a3073cbfe303ec6c47ef938581283826773fa41268fda77fe723ce1669c4e31e5b2b0f5569d5782c0ebb2 +DIST gcc-14-20230529.tar.xz 84197648 BLAKE2B 1b8b812866294bafd7bf53c823b3d55288d5a30c54e921495d19286b9d04a1bf7c5228b052941200ecc61a516355d977229fc9e60cfe4353154811c1261054ab SHA512 bba930dc4b6b6a45bb5f33e4b46dc16d1d581b266078c5492833e2b4e64a93d2d19389a436c64dc2159240b07134f4f7242bef3cf35f303d34e10bf493fe70ba +DIST gcc-14.0.0-musl-patches-1.tar.xz 3576 BLAKE2B 692baee8a7709905d53aeb150d73a3721c4ba47ee5f397cfb1b5be905cf003ca02b60c94ee294d90ac39645cd5cdf186c7a3aa950c47d8cf680c128ed705b807 SHA512 0592ab98a7142e404623a6511c67dff61e9ade32c3fb2c0e75b456306e0af3799ad13252b50b3d2fdd31e5815d7f0b16b0ad63ab8386fe4d78729fc9c182d617 +DIST gcc-14.0.0-patches-1.tar.xz 11612 BLAKE2B a3b0f3952cf7a6fb095817f4727ccb5cff24607a5c2bb67d280da4651177132ddcf398243998271c509ccaf3445d4843ff691a12d5c394dad8d9c70fc4a8120d SHA512 66701c2e4fd1a031ffcb353a3a9cd1fe25d3d62167065523097e41a3e48adf4218ecf08e382e3ea22014c561ba3a15681650c5538cda91d38c69cbbf04503a74 +DIST gcc-8.5.0-patches-4.tar.xz 18616 BLAKE2B 7594cbaea5daecf1a0b3d526c06aeba0a84c6da66aee2e105a51fda6be8d30a37ccc3814281b284a4582d892a1d556bca063551584edfc2525bed8ea5b6888e7 SHA512 1aa5742c361186637e7855f06feb1a4547e7d4d5de6e51f3d049e0ef3c19e2eff179465f52781739f59422035b7f8e4c0efa3844849f920f3c96acfdc37ca6a6 DIST gcc-8.5.0.tar.xz 63841008 BLAKE2B aa81a1a730fd7371360f6abed6ba78b5843fd18c58d5de5687acc320741b9e430e85df3535a1ef7a26051409be8d2f0945f503e5968480d919103123a99d4b12 SHA512 92f599680e6b7fbce88bcdda810f468777d541e5fddfbb287f7977d51093de2a5178bd0e6a08dfe37090ea10a0508a43ccd00220041abbbec33f1179bfc174d8 -DIST gcc-9.5.0-patches-1.tar.xz 13772 BLAKE2B 2e2e84a28a729cd271a23716ff3fe08b7209b72254af279f04dd15dbd39482fb7d905dc9293dc326536e14bca9a53397bd7e1c4b617ed8cbe42bcf617fcce3fb SHA512 50e292e665bfae18bf71c0714074025b4f7cb87042862071815874f7c5b241acac3b8f60d85b8970b11978103c2e7616c02d789f6c3b091d7b736b65c535b743 +DIST gcc-9.5.0-patches-2.tar.xz 14324 BLAKE2B 1d3bf3e673108ad2fcdcb86daefb4603d1c9f6aa815e34d1591054d466b76d6f50cce124ab4760528c4951ea16eb00888a3e6485417f81ebf250548732df4a8e SHA512 a6d6f650aaf0bd193a17ac279649f0544a282cea295824384c59341c3000eac4b574b60e00dd427585d928f9768166abf85168b47772132790ad98854acacbbf DIST gcc-9.5.0.tar.xz 72462752 BLAKE2B 69e39314ee6bb46e3be491ba9c3cbc4914cb716f732c6d3f2b14d9382750b40c4f14b5d3051225b81f936ef8297b0ba8cb5439512e961dae5815d3bee2b0bfdb SHA512 cdd144ce4f747e051480410afc8506c90a57cb45da89071ddae377b1453bca3014422455ade9fe4563ebe51f4b6348cbc0c61905a9b8801cd597d51ad0ec62b3 diff --git a/sys-devel/gcc/files/gcc-13-fix-cross-fixincludes.patch b/sys-devel/gcc/files/gcc-13-fix-cross-fixincludes.patch new file mode 100644 index 000000000000..e4abe01a0830 --- /dev/null +++ b/sys-devel/gcc/files/gcc-13-fix-cross-fixincludes.patch @@ -0,0 +1,19 @@ +Revert of https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=59e4c98173a79fcaa2c33253261409f38856c384 +for now to fix cross fixincludes builds. + +https://bugs.gentoo.org/905118 +--- a/gcc/Makefile.in ++++ b/gcc/Makefile.in +@@ -532,11 +532,7 @@ LINKER_PLUGIN_API_H = $(srcdir)/../include/plugin-api.h + # Default native SYSTEM_HEADER_DIR, to be overridden by targets. + NATIVE_SYSTEM_HEADER_DIR = @NATIVE_SYSTEM_HEADER_DIR@ + # Default cross SYSTEM_HEADER_DIR, to be overridden by targets. +-ifeq (@includedir@,$(prefix)/include) +- CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@ +-else +- CROSS_SYSTEM_HEADER_DIR = @includedir@ +-endif ++CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@ + + # autoconf sets SYSTEM_HEADER_DIR to one of the above. + # Purge it of unnecessary internal relative paths diff --git a/sys-devel/gcc/gcc-10.4.0.ebuild b/sys-devel/gcc/gcc-10.4.1_p20230426-r1.ebuild index a4652e862572..0219cb2d8b07 100644 --- a/sys-devel/gcc/gcc-10.4.0.ebuild +++ b/sys-devel/gcc/gcc-10.4.1_p20230426-r1.ebuild @@ -1,15 +1,15 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_PATCH_SUFFIX="xz" +TOOLCHAIN_PATCH_DEV="sam" #TOOLCHAIN_GCC_RC=1 -PATCH_GCC_VER="10.4.0" -PATCH_VER="5" -MUSL_VER="1" -MUSL_GCC_VER="10.4.0" +PATCH_GCC_VER="10.5.0" +PATCH_VER="6" +MUSL_VER="2" +MUSL_GCC_VER="10.5.0" if [[ $(ver_cut 3) == 9999 ]] ; then MY_PV_2=$(ver_cut 2) diff --git a/sys-devel/gcc/gcc-10.4.1_p20230119-r1.ebuild b/sys-devel/gcc/gcc-10.4.1_p20230517.ebuild index 89e1232159e1..6d1bc02f4dde 100644 --- a/sys-devel/gcc/gcc-10.4.1_p20230119-r1.ebuild +++ b/sys-devel/gcc/gcc-10.4.1_p20230517.ebuild @@ -7,8 +7,8 @@ TOOLCHAIN_PATCH_SUFFIX="xz" TOOLCHAIN_PATCH_DEV="sam" #TOOLCHAIN_GCC_RC=1 PATCH_GCC_VER="10.5.0" -PATCH_VER="4" -MUSL_VER="1" +PATCH_VER="6" +MUSL_VER="2" MUSL_GCC_VER="10.5.0" if [[ $(ver_cut 3) == 9999 ]] ; then @@ -36,7 +36,7 @@ EGIT_BRANCH=releases/gcc-$(ver_cut 1) # Don't keyword live ebuilds if ! tc_is_live && [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - 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" fi RDEPEND="" diff --git a/sys-devel/gcc/gcc-10.4.1_p20230126.ebuild b/sys-devel/gcc/gcc-10.4.1_p20230524.ebuild index c89d4e49e425..b3e373b6fb27 100644 --- a/sys-devel/gcc/gcc-10.4.1_p20230126.ebuild +++ b/sys-devel/gcc/gcc-10.4.1_p20230524.ebuild @@ -7,8 +7,8 @@ TOOLCHAIN_PATCH_SUFFIX="xz" TOOLCHAIN_PATCH_DEV="sam" #TOOLCHAIN_GCC_RC=1 PATCH_GCC_VER="10.5.0" -PATCH_VER="5" -MUSL_VER="1" +PATCH_VER="6" +MUSL_VER="2" MUSL_GCC_VER="10.5.0" if [[ $(ver_cut 3) == 9999 ]] ; then @@ -36,7 +36,7 @@ EGIT_BRANCH=releases/gcc-$(ver_cut 1) # Don't keyword live ebuilds #if ! tc_is_live && [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then -# 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" #fi RDEPEND="" diff --git a/sys-devel/gcc/gcc-11.3.1_p20221209.ebuild b/sys-devel/gcc/gcc-11.3.1_p20230427.ebuild index 821ee78ba0a6..8cf6ba32a360 100644 --- a/sys-devel/gcc/gcc-11.3.1_p20221209.ebuild +++ b/sys-devel/gcc/gcc-11.3.1_p20230427.ebuild @@ -1,13 +1,13 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 TOOLCHAIN_PATCH_SUFFIX="xz" TOOLCHAIN_PATCH_DEV="sam" -PATCH_VER="3" +PATCH_VER="9" PATCH_GCC_VER="11.4.0" -MUSL_VER="0" +MUSL_VER="2" MUSL_GCC_VER="11.4.0" if [[ $(ver_cut 3) == 9999 ]] ; then @@ -31,12 +31,14 @@ if ! tc_is_live && [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" fi -# Technically only if USE=hardened *too* right now, but no point in complicating it further. -# If GCC is enabling CET by default, we need glibc to be built with support for it. -# bug #830454 -RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" -DEPEND="${RDEPEND}" -BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" + BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" +fi src_prepare() { local p upstreamed_patches=( diff --git a/sys-devel/gcc/gcc-11.3.1_p20230120-r1.ebuild b/sys-devel/gcc/gcc-11.3.1_p20230518.ebuild index 9c10ee0100a5..a43b016c3fc3 100644 --- a/sys-devel/gcc/gcc-11.3.1_p20230120-r1.ebuild +++ b/sys-devel/gcc/gcc-11.3.1_p20230518.ebuild @@ -5,9 +5,9 @@ EAPI=8 TOOLCHAIN_PATCH_SUFFIX="xz" TOOLCHAIN_PATCH_DEV="sam" -PATCH_VER="7" +PATCH_VER="10" PATCH_GCC_VER="11.4.0" -MUSL_VER="1" +MUSL_VER="2" MUSL_GCC_VER="11.4.0" if [[ $(ver_cut 3) == 9999 ]] ; then @@ -28,15 +28,17 @@ EGIT_BRANCH=releases/gcc-$(ver_cut 1) # Don't keyword live ebuilds if ! tc_is_live && [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - 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" fi -# Technically only if USE=hardened *too* right now, but no point in complicating it further. -# If GCC is enabling CET by default, we need glibc to be built with support for it. -# bug #830454 -RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" -DEPEND="${RDEPEND}" -BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" + BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" +fi src_prepare() { local p upstreamed_patches=( diff --git a/sys-devel/gcc/gcc-11.3.1_p20230127.ebuild b/sys-devel/gcc/gcc-11.3.1_p20230525.ebuild index 4312113ca016..a43b016c3fc3 100644 --- a/sys-devel/gcc/gcc-11.3.1_p20230127.ebuild +++ b/sys-devel/gcc/gcc-11.3.1_p20230525.ebuild @@ -5,9 +5,9 @@ EAPI=8 TOOLCHAIN_PATCH_SUFFIX="xz" TOOLCHAIN_PATCH_DEV="sam" -PATCH_VER="8" +PATCH_VER="10" PATCH_GCC_VER="11.4.0" -MUSL_VER="1" +MUSL_VER="2" MUSL_GCC_VER="11.4.0" if [[ $(ver_cut 3) == 9999 ]] ; then @@ -27,16 +27,18 @@ inherit toolchain EGIT_BRANCH=releases/gcc-$(ver_cut 1) # Don't keyword live ebuilds -#if ! tc_is_live && [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then -# KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc ~x86" -#fi - -# Technically only if USE=hardened *too* right now, but no point in complicating it further. -# If GCC is enabling CET by default, we need glibc to be built with support for it. -# bug #830454 -RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" -DEPEND="${RDEPEND}" -BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" +if ! tc_is_live && [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" + BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" +fi src_prepare() { local p upstreamed_patches=( diff --git a/sys-devel/gcc/gcc-11.4.0.ebuild b/sys-devel/gcc/gcc-11.4.0.ebuild new file mode 100644 index 000000000000..a43b016c3fc3 --- /dev/null +++ b/sys-devel/gcc/gcc-11.4.0.ebuild @@ -0,0 +1,54 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +TOOLCHAIN_PATCH_SUFFIX="xz" +TOOLCHAIN_PATCH_DEV="sam" +PATCH_VER="10" +PATCH_GCC_VER="11.4.0" +MUSL_VER="2" +MUSL_GCC_VER="11.4.0" + +if [[ $(ver_cut 3) == 9999 ]] ; then + MY_PV_2=$(ver_cut 2) + if [[ ${MY_PV_2} == 0 ]] ; then + MY_PV_2=0 + else + MY_PV_2=$(($(ver_cut 2) - 1)) + fi + + # e.g. 12.2.9999 -> 12.1.1 + TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.$(($(ver_cut 3) - 9998)) +fi + +inherit toolchain +# Needs to be after inherit (for now?), bug #830908 +EGIT_BRANCH=releases/gcc-$(ver_cut 1) + +# Don't keyword live ebuilds +if ! tc_is_live && [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" + BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + + eapply_user +} diff --git a/sys-devel/gcc/gcc-11.4.9999.ebuild b/sys-devel/gcc/gcc-11.5.9999.ebuild index de29705ca377..b99c205cd872 100644 --- a/sys-devel/gcc/gcc-11.4.9999.ebuild +++ b/sys-devel/gcc/gcc-11.5.9999.ebuild @@ -1,9 +1,8 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -TOOLCHAIN_PATCH_SUFFIX="xz" TOOLCHAIN_PATCH_DEV="sam" PATCH_GCC_VER="11.4.0" MUSL_GCC_VER="11.4.0" @@ -29,12 +28,14 @@ if ! tc_is_live && [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" fi -# Technically only if USE=hardened *too* right now, but no point in complicating it further. -# If GCC is enabling CET by default, we need glibc to be built with support for it. -# bug #830454 -RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" -DEPEND="${RDEPEND}" -BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" + BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" +fi src_prepare() { local p upstreamed_patches=( diff --git a/sys-devel/gcc/gcc-12.2.1_p20230121-r1.ebuild b/sys-devel/gcc/gcc-12.2.1_p20230428-r1.ebuild index a2532305e37f..bba4e8fe97f7 100644 --- a/sys-devel/gcc/gcc-12.2.1_p20230121-r1.ebuild +++ b/sys-devel/gcc/gcc-12.2.1_p20230428-r1.ebuild @@ -4,10 +4,10 @@ EAPI=8 TOOLCHAIN_PATCH_DEV="sam" -PATCH_VER="10" -PATCH_GCC_VER="12.2.0" +PATCH_VER="2" +PATCH_GCC_VER="12.3.0" MUSL_VER="1" -MUSL_GCC_VER="12.2.0" +MUSL_GCC_VER="12.3.0" if [[ $(ver_cut 3) == 9999 ]] ; then MY_PV_2=$(ver_cut 2) @@ -35,15 +35,17 @@ EGIT_BRANCH=releases/gcc-$(ver_cut 1) # Don't keyword live ebuilds if ! tc_is_live && [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 sparc ~x86" + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 sparc x86" fi -# Technically only if USE=hardened *too* right now, but no point in complicating it further. -# If GCC is enabling CET by default, we need glibc to be built with support for it. -# bug #830454 -RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" -DEPEND="${RDEPEND}" -BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" + BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" +fi src_prepare() { toolchain_src_prepare diff --git a/sys-devel/gcc/gcc-12.2.0.ebuild b/sys-devel/gcc/gcc-12.3.0.ebuild index aa3dfbf98f28..963e5466b141 100644 --- a/sys-devel/gcc/gcc-12.2.0.ebuild +++ b/sys-devel/gcc/gcc-12.3.0.ebuild @@ -1,13 +1,13 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 TOOLCHAIN_PATCH_DEV="sam" -PATCH_VER="1" -PATCH_GCC_VER="12.2.0" +PATCH_VER="2" +PATCH_GCC_VER="12.3.0" MUSL_VER="1" -MUSL_GCC_VER="12.2.0" +MUSL_GCC_VER="12.3.0" if [[ $(ver_cut 3) == 9999 ]] ; then MY_PV_2=$(ver_cut 2) @@ -21,9 +21,11 @@ if [[ $(ver_cut 3) == 9999 ]] ; then TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.$(($(ver_cut 3) - 9998)) elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + # Sometimes the RCs are e.g. 12.3 and not 12.3.0... + #MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1)))-RC-$(ver_cut 5) MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="https://gcc.gnu.org/pub/gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" TOOLCHAIN_SET_S=no S="${WORKDIR}"/${MY_P} fi @@ -38,12 +40,14 @@ if ! tc_is_live && [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" fi -# Technically only if USE=hardened *too* right now, but no point in complicating it further. -# If GCC is enabling CET by default, we need glibc to be built with support for it. -# bug #830454 -RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" -DEPEND="${RDEPEND}" -BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" + BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" +fi src_prepare() { toolchain_src_prepare diff --git a/sys-devel/gcc/gcc-12.3.1_p20230519.ebuild b/sys-devel/gcc/gcc-12.3.1_p20230519.ebuild new file mode 100644 index 000000000000..963e5466b141 --- /dev/null +++ b/sys-devel/gcc/gcc-12.3.1_p20230519.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +TOOLCHAIN_PATCH_DEV="sam" +PATCH_VER="2" +PATCH_GCC_VER="12.3.0" +MUSL_VER="1" +MUSL_GCC_VER="12.3.0" + +if [[ $(ver_cut 3) == 9999 ]] ; then + MY_PV_2=$(ver_cut 2) + if [[ ${MY_PV_2} == 0 ]] ; then + MY_PV_2=0 + else + MY_PV_2=$(($(ver_cut 2) - 1)) + fi + + # e.g. 12.2.9999 -> 12.1.1 + TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.$(($(ver_cut 3) - 9998)) +elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + # Sometimes the RCs are e.g. 12.3 and not 12.3.0... + #MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +# Needs to be after inherit (for now?), bug #830908 +EGIT_BRANCH=releases/gcc-$(ver_cut 1) + +# Don't keyword live ebuilds +if ! tc_is_live && [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" + BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" +fi + +src_prepare() { + toolchain_src_prepare + + eapply_user +} diff --git a/sys-devel/gcc/gcc-12.3.1_p20230526.ebuild b/sys-devel/gcc/gcc-12.3.1_p20230526.ebuild new file mode 100644 index 000000000000..963e5466b141 --- /dev/null +++ b/sys-devel/gcc/gcc-12.3.1_p20230526.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +TOOLCHAIN_PATCH_DEV="sam" +PATCH_VER="2" +PATCH_GCC_VER="12.3.0" +MUSL_VER="1" +MUSL_GCC_VER="12.3.0" + +if [[ $(ver_cut 3) == 9999 ]] ; then + MY_PV_2=$(ver_cut 2) + if [[ ${MY_PV_2} == 0 ]] ; then + MY_PV_2=0 + else + MY_PV_2=$(($(ver_cut 2) - 1)) + fi + + # e.g. 12.2.9999 -> 12.1.1 + TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.$(($(ver_cut 3) - 9998)) +elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + # Sometimes the RCs are e.g. 12.3 and not 12.3.0... + #MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +# Needs to be after inherit (for now?), bug #830908 +EGIT_BRANCH=releases/gcc-$(ver_cut 1) + +# Don't keyword live ebuilds +if ! tc_is_live && [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" + BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" +fi + +src_prepare() { + toolchain_src_prepare + + eapply_user +} diff --git a/sys-devel/gcc/gcc-12.3.9999.ebuild b/sys-devel/gcc/gcc-12.4.9999.ebuild index 914addefed5a..c46b53fc8ce4 100644 --- a/sys-devel/gcc/gcc-12.3.9999.ebuild +++ b/sys-devel/gcc/gcc-12.4.9999.ebuild @@ -1,11 +1,11 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 TOOLCHAIN_PATCH_DEV="sam" -PATCH_GCC_VER="12.2.0" -MUSL_GCC_VER="12.2.0" +PATCH_GCC_VER="12.3.0" +MUSL_GCC_VER="12.3.0" if [[ $(ver_cut 3) == 9999 ]] ; then MY_PV_2=$(ver_cut 2) @@ -36,12 +36,14 @@ if ! tc_is_live && [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" fi -# Technically only if USE=hardened *too* right now, but no point in complicating it further. -# If GCC is enabling CET by default, we need glibc to be built with support for it. -# bug #830454 -RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" -DEPEND="${RDEPEND}" -BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" + BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" +fi src_prepare() { local p upstreamed_patches=( diff --git a/sys-devel/gcc/gcc-10.4.1_p20221208.ebuild b/sys-devel/gcc/gcc-13.1.1_p20230520.ebuild index 2e1186f347bf..27d10044298b 100644 --- a/sys-devel/gcc/gcc-10.4.1_p20221208.ebuild +++ b/sys-devel/gcc/gcc-13.1.1_p20230520.ebuild @@ -1,15 +1,13 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -TOOLCHAIN_PATCH_SUFFIX="xz" TOOLCHAIN_PATCH_DEV="sam" -#TOOLCHAIN_GCC_RC=1 -PATCH_GCC_VER="10.5.0" -PATCH_VER="1" -MUSL_VER="1" -MUSL_GCC_VER="10.5.0" +PATCH_VER="3" +PATCH_GCC_VER="13.2.0" +MUSL_VER="2" +MUSL_GCC_VER="13.2.0" if [[ $(ver_cut 3) == 9999 ]] ; then MY_PV_2=$(ver_cut 2) @@ -25,22 +23,29 @@ elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then # Cheesy hack for RCs MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="https://gcc.gnu.org/pub/gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" TOOLCHAIN_SET_S=no S="${WORKDIR}"/${MY_P} fi inherit toolchain + # Needs to be after inherit (for now?), bug #830908 EGIT_BRANCH=releases/gcc-$(ver_cut 1) # Don't keyword live ebuilds if ! tc_is_live && [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - 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" fi -RDEPEND="" -BDEPEND="${CATEGORY}/binutils" +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" + BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" +fi src_prepare() { local p upstreamed_patches=( @@ -50,9 +55,8 @@ src_prepare() { rm -v "${WORKDIR}/patch/${p}" || die done - if has_version '>=sys-libs/glibc-2.32-r1'; then - rm -v "${WORKDIR}/patch/23_all_disable-riscv32-ABIs.patch" || die - fi - toolchain_src_prepare + + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + eapply_user } diff --git a/sys-devel/gcc/gcc-13.1.1_p20230527.ebuild b/sys-devel/gcc/gcc-13.1.1_p20230527.ebuild new file mode 100644 index 000000000000..27d10044298b --- /dev/null +++ b/sys-devel/gcc/gcc-13.1.1_p20230527.ebuild @@ -0,0 +1,62 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +TOOLCHAIN_PATCH_DEV="sam" +PATCH_VER="3" +PATCH_GCC_VER="13.2.0" +MUSL_VER="2" +MUSL_GCC_VER="13.2.0" + +if [[ $(ver_cut 3) == 9999 ]] ; then + MY_PV_2=$(ver_cut 2) + if [[ ${MY_PV_2} == 0 ]] ; then + MY_PV_2=0 + else + MY_PV_2=$(($(ver_cut 2) - 1)) + fi + + # e.g. 12.2.9999 -> 12.1.1 + TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.$(($(ver_cut 3) - 9998)) +elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +# Needs to be after inherit (for now?), bug #830908 +EGIT_BRANCH=releases/gcc-$(ver_cut 1) + +# Don't keyword live ebuilds +if ! tc_is_live && [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" + BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + eapply_user +} diff --git a/sys-devel/gcc/gcc-12.2.1_p20221126.ebuild b/sys-devel/gcc/gcc-13.2.9999.ebuild index e1e84c1bc200..94cabe9d1dda 100644 --- a/sys-devel/gcc/gcc-12.2.1_p20221126.ebuild +++ b/sys-devel/gcc/gcc-13.2.9999.ebuild @@ -4,10 +4,8 @@ EAPI=8 TOOLCHAIN_PATCH_DEV="sam" -PATCH_VER="2" -PATCH_GCC_VER="12.2.0" -MUSL_VER="1" -MUSL_GCC_VER="12.2.0" +PATCH_GCC_VER="13.2.0" +MUSL_GCC_VER="13.2.0" if [[ $(ver_cut 3) == 9999 ]] ; then MY_PV_2=$(ver_cut 2) @@ -38,14 +36,23 @@ if ! tc_is_live && [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" fi -# Technically only if USE=hardened *too* right now, but no point in complicating it further. -# If GCC is enabling CET by default, we need glibc to be built with support for it. -# bug #830454 -RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" -DEPEND="${RDEPEND}" -BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" + BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" +fi src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + toolchain_src_prepare eapply_user diff --git a/sys-devel/gcc/gcc-13.0.1.9999.ebuild b/sys-devel/gcc/gcc-14.0.0.9999.ebuild index ca9d13f5ddf7..5886aa362488 100644 --- a/sys-devel/gcc/gcc-13.0.1.9999.ebuild +++ b/sys-devel/gcc/gcc-14.0.0.9999.ebuild @@ -4,8 +4,8 @@ EAPI=8 TOOLCHAIN_PATCH_DEV="sam" -PATCH_GCC_VER="13.1.0" -MUSL_GCC_VER="13.1.0" +PATCH_GCC_VER="14.0.0" +MUSL_GCC_VER="14.0.0" if [[ $(ver_cut 3) == 9999 ]] ; then MY_PV_2=$(ver_cut 2) @@ -19,9 +19,17 @@ if [[ $(ver_cut 3) == 9999 ]] ; then # e.g. 12.2.9999 -> 12.1.1 TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} +elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} fi inherit toolchain + # Needs to be after inherit (for now?), bug #830908 EGIT_BRANCH=master @@ -30,12 +38,14 @@ if ! tc_is_live && [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" fi -# Technically only if USE=hardened *too* right now, but no point in complicating it further. -# If GCC is enabling CET by default, we need glibc to be built with support for it. -# bug #830454 -RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" -DEPEND="${RDEPEND}" -BDEPEND="${CATEGORY}/binutils[cet(-)?]" +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" + BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" +fi src_prepare() { local p upstreamed_patches=( diff --git a/sys-devel/gcc/gcc-13.0.1_pre20230122.ebuild b/sys-devel/gcc/gcc-14.0.0_pre20230521.ebuild index 41e7410862f1..1b25d3519a6e 100644 --- a/sys-devel/gcc/gcc-13.0.1_pre20230122.ebuild +++ b/sys-devel/gcc/gcc-14.0.0_pre20230521.ebuild @@ -4,9 +4,10 @@ EAPI=8 TOOLCHAIN_PATCH_DEV="sam" -PATCH_VER="5" -PATCH_GCC_VER="13.1.0" -MUSL_GCC_VER="13.1.0" +PATCH_VER="1" +PATCH_GCC_VER="14.0.0" +MUSL_VER="1" +MUSL_GCC_VER="14.0.0" if [[ $(ver_cut 3) == 9999 ]] ; then MY_PV_2=$(ver_cut 2) @@ -20,25 +21,34 @@ if [[ $(ver_cut 3) == 9999 ]] ; then # e.g. 12.2.9999 -> 12.1.1 TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} +elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} fi inherit toolchain + # Needs to be after inherit (for now?), bug #830908 -EGIT_BRANCH=master +#EGIT_BRANCH=master # Don't keyword live ebuilds -if ! tc_is_live && [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then +#if ! tc_is_live && [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then # KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - KEYWORDS="~loong" +#fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" + BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" fi -# Technically only if USE=hardened *too* right now, but no point in complicating it further. -# If GCC is enabling CET by default, we need glibc to be built with support for it. -# bug #830454 -RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" -DEPEND="${RDEPEND}" -BDEPEND="${CATEGORY}/binutils[cet(-)?]" - src_prepare() { local p upstreamed_patches=( # add them here diff --git a/sys-devel/gcc/gcc-14.0.0_pre20230529.ebuild b/sys-devel/gcc/gcc-14.0.0_pre20230529.ebuild new file mode 100644 index 000000000000..1b25d3519a6e --- /dev/null +++ b/sys-devel/gcc/gcc-14.0.0_pre20230529.ebuild @@ -0,0 +1,63 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +TOOLCHAIN_PATCH_DEV="sam" +PATCH_VER="1" +PATCH_GCC_VER="14.0.0" +MUSL_VER="1" +MUSL_GCC_VER="14.0.0" + +if [[ $(ver_cut 3) == 9999 ]] ; then + MY_PV_2=$(ver_cut 2) + MY_PV_3=$(($(ver_cut 3) - 9998)) + if [[ ${MY_PV_2} == 0 ]] ; then + MY_PV_2=0 + MY_PV_3=0 + else + MY_PV_2=$(($(ver_cut 2) - 1)) + fi + + # e.g. 12.2.9999 -> 12.1.1 + TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} +elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +# Needs to be after inherit (for now?), bug #830908 +#EGIT_BRANCH=master + +# Don't keyword live ebuilds +#if ! tc_is_live && [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then +# KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +#fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" + BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + + eapply_user +} diff --git a/sys-devel/gcc/gcc-8.5.0-r1.ebuild b/sys-devel/gcc/gcc-8.5.0-r1.ebuild index ff799268370b..2d77b92b0327 100644 --- a/sys-devel/gcc/gcc-8.5.0-r1.ebuild +++ b/sys-devel/gcc/gcc-8.5.0-r1.ebuild @@ -1,10 +1,11 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="7" -TOOLCHAIN_PATCH_DEV="slyfox" -PATCH_VER="2" +TOOLCHAIN_PATCH_SUFFIX="xz" +TOOLCHAIN_PATCH_DEV="sam" +PATCH_VER="4" inherit toolchain diff --git a/sys-devel/gcc/gcc-9.5.0.ebuild b/sys-devel/gcc/gcc-9.5.0.ebuild index 133de2006773..868742a9b878 100644 --- a/sys-devel/gcc/gcc-9.5.0.ebuild +++ b/sys-devel/gcc/gcc-9.5.0.ebuild @@ -1,11 +1,11 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 TOOLCHAIN_PATCH_DEV="sam" PATCH_GCC_VER="9.5.0" -PATCH_VER="1" +PATCH_VER="2" if [[ $(ver_cut 3) == 9999 ]] ; then MY_PV_2=$(ver_cut 2) diff --git a/sys-devel/gcc/metadata.xml b/sys-devel/gcc/metadata.xml index d1c5c038131d..67374f76c3c9 100644 --- a/sys-devel/gcc/metadata.xml +++ b/sys-devel/gcc/metadata.xml @@ -24,6 +24,16 @@ code is therefore compatible with i686 at the earliest. </flag> <flag name="d">Enable support for the D programming language</flag> + <flag name="debug"> + Enables GCC's 'checking' facility via --enable-checking=yes,extra,rtl. + + This adds checks to various compiler passes for integrity and input + validation. This can help catch possible miscompilations early as + well as latent bugs which could become real problems in future, but + at the cost of slower compile times when using GCC. + + Unrelated to backtraces. + </flag> <flag name="default-stack-clash-protection"> Build packages with stack clash protection on by default as a hardening measure. @@ -64,6 +74,7 @@ other programs with LTO. This USE flag is for whether GCC itself is built and optimized with LTO. </flag> + <flag name="modula2">Build the GCC Modula-2 language frontend.</flag> <flag name="mpx">Enable support for Intel Memory Protection Extensions (MPX)</flag> <flag name="nptl">Enable support for Native POSIX Threads Library, the new threading module (requires linux-2.6 or better usually)</flag> <flag name="objc">Build support for the Objective C code language</flag> @@ -89,7 +100,6 @@ </flag> <flag name="ssp">Build packages with stack smashing protection on by default</flag> <flag name="systemtap">enable systemtap static probe points</flag> - <flag name="valgrind">Enable valgrind annotations for gcc internals (useful for gcc debugging).</flag> <flag name="vtv"> Build support for virtual table verification (a C++ hardening feature). diff --git a/sys-devel/gdb/Manifest b/sys-devel/gdb/Manifest index 1d9e7d93596c..6e40c2f8a82b 100644 --- a/sys-devel/gdb/Manifest +++ b/sys-devel/gdb/Manifest @@ -1,4 +1,6 @@ DIST gdb-12.1-patches-1.tar.xz 12340 BLAKE2B 071ff492f6cf7b0969d76db6f7414eeec564daf773c3334fb0d3f669e328bb4ae403ba8c709f3e33a56caa92273f762a5597a34dd7e7a1056f473b7ede2d8e59 SHA512 dc4a1a8d501dd1adfdcd6dcbd2559f1e2cc6aadeb18eacb2e9152f6858510e7392253db9568fe782da6d160221412e3e13dfd42a47a2a4a1addba2c1804a45b5 DIST gdb-12.1.tar.xz 22470332 BLAKE2B 7f6f853d1640908cf2c79932cdc1ba02549a07721c005d9c7ce2946a715761719cc164a4e68235a18664ec8a029afe3a2a0cfb57e1635f280076d6bed91317fd SHA512 425568d2e84672177d0fb87b1ad7daafdde097648d605e30cf0656970f66adc6a82ca2d83375ea4be583e9683a340e5bfdf5819668ddf66728200141ae50ff2d -DIST gdb-weekly-13.0.90.20230110.tar.xz 24802804 BLAKE2B d13bc0ce3bfd0197be31610385014df815c72a86f34b44beced0882267e8b5eecdd50545a85d84c5648771bb9a01b7e63680a424ad36e4d23c15470af6270f21 SHA512 d0c186c661b4648668213a5210f10d09ccbceb077e9e61a88cb1431e8feae4ad2ce74365024bb5f282f78225e118e808c5df30af9c46c4c368a41d4385f8918f -DIST gdb-weekly-13.0.90.20230126.tar.xz 24808672 BLAKE2B 5331e3f60d2dde7fb139e1e9e2507cbcc7e72d7b6f2afd8f284997955f21f4138fd05e2ee1eeb07c3d3ab1b5ab35046774ab9580013822231a56849f8cc2168c SHA512 53d2623b23edfa8c25bdc26cb87577060cbd2a030eb47df84f5c025339e1a344d28c970e7d196fbb91f5f9dfba0647cf370acf4d17f6492aa2f4e14763623321 +DIST gdb-13.1.tar.xz 23665472 BLAKE2B ab3a77ef35d21597dd1299787eebc422c3ca9764d0866223752c3036c0f9e198bf25ab4730bf6e7025bc2db148c66e98b191e15abc2d69c3088aed146728beef SHA512 e65054ffbc0357eeed4b17e1edc5ef45aa73c9ddf3b1210651e3d859576e27c1d27b266800fe26328eda58857455ccd8632f4000cfc5f63f90854096290187ca +DIST gdb-13.2.tar.xz 23664644 BLAKE2B bf5216ba2286448a46f9e0a405367c5a678e6d7540204722d355b618018b7b75a2ebc5b51353304c5ded02a3979223a81781d305f5afa5be82516cdc2863d49f SHA512 8185d3e11ab60dafff5860a5016577bfe7dd7547ef01ebc867bc247603d82b74ff74c4f29492c7d2aee57076f52be33e289f4c6b414a4b870d4b3004909f4c34 +DIST gdb-weekly-13.1.90.20230325.tar.xz 24816144 BLAKE2B 2273ca1e6b3b563721c1497b30ae9c1c1d6fa88d1a50745a528163d54b45cc0582d3a053f279339dcc5d86b17dabe16c2be63488ac72ed7636af5988919c4b5e SHA512 19a1f1e0d4fc6f7a87c421e487990e3bc6c5ad5fae933be0e4f0ba8eec06b6bc3b0fc814d55e6059dfc2b7414ef0e7191967503dd0eda9021ccabc6d55030f49 +DIST gdb-weekly-13.1.90.20230429.tar.xz 24806568 BLAKE2B 537faf7f354ac8adae879899d1a871a303d6ef8faa5ffa66970b2ab95d82750829de5f1cc9b7fb0aab12bb9f10219b3d255a52127e50dd28fef25b47ce2d9364 SHA512 1f0bad14a0862a5c119971025add895b8814421c95ab9095159382805ee8592f1695e84aad2bf5f711c807400eae50a9a6fa6ff45f329c885003f0209c44e493 diff --git a/sys-devel/gdb/files/gdb-13.1-Wenum-constexpr-conversion-clang16.patch b/sys-devel/gdb/files/gdb-13.1-Wenum-constexpr-conversion-clang16.patch new file mode 100644 index 000000000000..adc09f83ea68 --- /dev/null +++ b/sys-devel/gdb/files/gdb-13.1-Wenum-constexpr-conversion-clang16.patch @@ -0,0 +1,128 @@ +https://bugs.gentoo.org/894174 +https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=ae61525fcf456ab395d55c45492a106d1275873a + +From ae61525fcf456ab395d55c45492a106d1275873a Mon Sep 17 00:00:00 2001 +From: Simon Marchi <simon.marchi@efficios.com> +Date: Thu, 23 Feb 2023 12:35:40 -0500 +Subject: [PATCH] gdbsupport: ignore -Wenum-constexpr-conversion in + enum-flags.h + +When building with clang 16, we get: + + CXX gdb.o + In file included from /home/smarchi/src/binutils-gdb/gdb/gdb.c:19: + In file included from /home/smarchi/src/binutils-gdb/gdb/defs.h:65: + /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/enum-flags.h:95:52: error: integer value -1 is outside the valid range of values [0, 15] for this enumeration type [-Wenum-constexpr-conversion] + integer_for_size<sizeof (T), static_cast<bool>(T (-1) < T (0))>::type + ^ + +The error message does not make it clear in the context of which enum +flag this fails (i.e. what is T in this context), but it doesn't really +matter, we have similar warning/errors for many of them, if we let the +build go through. + +clang is right that the value -1 is invalid for the enum type we cast -1 +to. However, we do need this expression in order to select an integer +type with the appropriate signedness. That is, with the same signedness +as the underlying type of the enum. + +I first wondered if that was really needed, if we couldn't use +std::underlying_type for that. It turns out that the comment just above +says: + + /* Note that std::underlying_type<enum_type> is not what we want here, + since that returns unsigned int even when the enum decays to signed + int. */ + +I was surprised, because std::is_signed<std::underlying_type<enum_type>> +returns the right thing. So I tried replacing all this with +std::underlying_type, see if that would work. Doing so causes some +build failures in unittests/enum-flags-selftests.c: + + CXX unittests/enum-flags-selftests.o + /home/smarchi/src/binutils-gdb/gdb/unittests/enum-flags-selftests.c:254:1: error: static assertion failed due to requirement 'gdb::is_same<selftests::enum_flags_tests::check_valid_expr254::archetype<enum_flags<s + elftests::enum_flags_tests::RE>, selftests::enum_flags_tests::RE, enum_flags<selftests::enum_flags_tests::RE2>, selftests::enum_flags_tests::RE2, enum_flags<selftests::enum_flags_tests::URE>, selftests::enum_fla + gs_tests::URE, int>, selftests::enum_flags_tests::check_valid_expr254::archetype<enum_flags<selftests::enum_flags_tests::RE>, selftests::enum_flags_tests::RE, enum_flags<selftests::enum_flags_tests::RE2>, selfte + sts::enum_flags_tests::RE2, enum_flags<selftests::enum_flags_tests::URE>, selftests::enum_flags_tests::URE, unsigned int>>::value == true': + CHECK_VALID (true, int, true ? EF () : EF2 ()) + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + /home/smarchi/src/binutils-gdb/gdb/unittests/enum-flags-selftests.c:91:3: note: expanded from macro 'CHECK_VALID' + CHECK_VALID_EXPR_6 (EF, RE, EF2, RE2, UEF, URE, VALID, EXPR_TYPE, EXPR) + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/valid-expr.h:105:3: note: expanded from macro 'CHECK_VALID_EXPR_6' + CHECK_VALID_EXPR_INT (ESC_PARENS (typename T1, typename T2, \ + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/valid-expr.h:66:3: note: expanded from macro 'CHECK_VALID_EXPR_INT' + static_assert (gdb::is_detected_exact<archetype<TYPES, EXPR_TYPE>, \ + ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This is a bit hard to decode, but basically enumerations have the +following funny property that they decay into a signed int, even if +their implicit underlying type is unsigned. This code: + + enum A {}; + enum B {}; + + int main() { + std::cout << std::is_signed<std::underlying_type<A>::type>::value + << std::endl; + std::cout << std::is_signed<std::underlying_type<B>::type>::value + << std::endl; + auto result = true ? A() : B(); + std::cout << std::is_signed<decltype(result)>::value << std::endl; + } + +produces: + + 0 + 0 + 1 + +So, the "CHECK_VALID" above checks that this property works for enum flags the +same way as it would if you were using their underlying enum types. And +somehow, changing integer_for_size to use std::underlying_type breaks that. + +Since the current code does what we want, and I don't see any way of doing it +differently, ignore -Wenum-constexpr-conversion around it. + +Change-Id: Ibc82ae7bbdb812102ae3f1dd099fc859dc6f3cc2 +--- a/gdbsupport/enum-flags.h ++++ b/gdbsupport/enum-flags.h +@@ -91,9 +91,12 @@ template<> struct integer_for_size<8, 1> { typedef int64_t type; }; + template<typename T> + struct enum_underlying_type + { ++ DIAGNOSTIC_PUSH ++ DIAGNOSTIC_IGNORE_ENUM_CONSTEXPR_CONVERSION + typedef typename + integer_for_size<sizeof (T), static_cast<bool>(T (-1) < T (0))>::type + type; ++ DIAGNOSTIC_POP + }; + + namespace enum_flags_detail +--- a/include/diagnostics.h ++++ b/include/diagnostics.h +@@ -76,6 +76,11 @@ + # define DIAGNOSTIC_ERROR_SWITCH \ + DIAGNOSTIC_ERROR ("-Wswitch") + ++# if __has_warning ("-Wenum-constexpr-conversion") ++# define DIAGNOSTIC_IGNORE_ENUM_CONSTEXPR_CONVERSION \ ++ DIAGNOSTIC_IGNORE ("-Wenum-constexpr-conversion") ++# endif ++ + #elif defined (__GNUC__) /* GCC */ + + # define DIAGNOSTIC_IGNORE_DEPRECATED_DECLARATIONS \ +@@ -155,4 +160,8 @@ + # define DIAGNOSTIC_ERROR_SWITCH + #endif + ++#ifndef DIAGNOSTIC_IGNORE_ENUM_CONSTEXPR_CONVERSION ++# define DIAGNOSTIC_IGNORE_ENUM_CONSTEXPR_CONVERSION ++#endif ++ + #endif /* DIAGNOSTICS_H */ +-- +2.31.1 diff --git a/sys-devel/gdb/files/gdb-13.1-musl-lfs.patch b/sys-devel/gdb/files/gdb-13.1-musl-lfs.patch new file mode 100644 index 000000000000..d7778e305903 --- /dev/null +++ b/sys-devel/gdb/files/gdb-13.1-musl-lfs.patch @@ -0,0 +1,23 @@ +https://bugs.gentoo.org/905922 +https://sourceware.org/bugzilla/show_bug.cgi?id=30450 +https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=2e977d9901393ea1bacbe1896af0929e968bc811 + +From 2e977d9901393ea1bacbe1896af0929e968bc811 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 22 Feb 2023 16:28:22 -0800 +Subject: [PATCH] gdbserver/linux-low.cc: Fix a typo in ternary operator + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- a/gdbserver/linux-low.cc ++++ b/gdbserver/linux-low.cc +@@ -5390,7 +5390,7 @@ proc_xfer_memory (CORE_ADDR memaddr, unsigned char *readbuf, + if (lseek (fd, memaddr, SEEK_SET) != -1) + bytes = (readbuf != nullptr + ? read (fd, readbuf, len) +- ? write (fd, writebuf, len)); ++ : write (fd, writebuf, len)); + #endif + + if (bytes < 0) +-- +2.31.1 diff --git a/sys-devel/gdb/gdb-12.1-r4.ebuild b/sys-devel/gdb/gdb-12.1-r4.ebuild index 6bb7083f4b01..4126e99a43d7 100644 --- a/sys-devel/gdb/gdb-12.1-r4.ebuild +++ b/sys-devel/gdb/gdb-12.1-r4.ebuild @@ -49,7 +49,7 @@ LICENSE="GPL-3+ LGPL-2.1+" SLOT="0" if [[ ${PV} != 9999* ]] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" fi IUSE="cet guile lzma multitarget nls +python +server sim source-highlight test vanilla xml xxhash" @@ -202,12 +202,6 @@ src_configure() { $(use_with guile) ) - if use sparc-solaris || use x86-solaris ; then - # Disable largefile support - # https://sourceware.org/ml/gdb-patches/2014-12/msg00058.html - myconf+=( --disable-largefile ) - fi - # source-highlight is detected with pkg-config: bug #716558 export ac_cv_path_pkg_config_prog_path="$(tc-getPKG_CONFIG)" diff --git a/sys-devel/gdb/gdb-13.0.90_p20230126.ebuild b/sys-devel/gdb/gdb-13.1-r1.ebuild index 9eb29deacc90..a19b1dd0eeee 100644 --- a/sys-devel/gdb/gdb-13.0.90_p20230126.ebuild +++ b/sys-devel/gdb/gdb-13.1-r1.ebuild @@ -26,7 +26,7 @@ case ${PV} in inherit git-r3 SRC_URI="" ;; - *.*.50_p2???????| *.*.90_p2???????) + *.*.50_p2???????|*.*.90_p2???????) # Weekly snapshots MY_PV="${PV/_p/.}" SRC_URI=" @@ -35,12 +35,22 @@ case ${PV} in " S="${WORKDIR}/${PN}-${MY_PV}" ;; + *.*.9?) + # Prereleases + MY_PV="${PV/_p/.}" + SRC_URI=" + https://sourceware.org/pub/gdb/snapshots/branch/gdb-${MY_PV}.tar.xz + " + S="${WORKDIR}/${PN}-${MY_PV}" + ;; *) # Normal upstream release SRC_URI=" mirror://gnu/gdb/${P}.tar.xz https://sourceware.org/pub/gdb/releases/${P}.tar.xz " + + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" ;; esac @@ -56,13 +66,6 @@ SRC_URI=" LICENSE="GPL-3+ LGPL-2.1+" SLOT="0" - -if [[ ${PV} != 9999* ]] ; then - # for testing on loong only - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" - KEYWORDS="~loong" -fi - IUSE="cet guile lzma multitarget nls +python +server sim source-highlight test vanilla xml xxhash zstd" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" RESTRICT="!test? ( test )" @@ -98,6 +101,7 @@ BDEPEND=" PATCHES=( "${FILESDIR}"/${PN}-8.3.1-verbose-build.patch + "${FILESDIR}"/${P}-Wenum-constexpr-conversion-clang16.patch ) pkg_setup() { @@ -144,7 +148,7 @@ src_configure() { --with-bugurl='https://bugs.gentoo.org/' --disable-werror # Disable modules that are in a combined binutils/gdb tree. bug #490566 - --disable-{binutils,etc,gas,gold,gprof,ld} + --disable-{binutils,etc,gas,gold,gprof,gprofng,ld} # avoid automagic dependency on (currently prefix) systems # systems with debuginfod library, bug #754753 @@ -157,21 +161,13 @@ src_configure() { # But the check does not quite work on i686: bug #760926. $(use_enable cet) - # We need to set both configure options, --with-sysroot and --libdir, - # to fix cross build issues that happen when configuring gmp. - # We explicitly need --libdir. Having only --with-sysroot without - # --libdir would not fix the build issues. - # For some reason, it is not enough to set only --with-sysroot, - # also not enough to pass --with-gmp-xxx options. - --with-sysroot="${ESYSROOT}" - --libdir="${ESYSROOT}/usr/$(get_libdir)" + # Helps when cross-compiling. Not to be confused with --with-sysroot. + --with-build-sysroot="${ESYSROOT}" ) - local sysroot="${EPREFIX}/usr/${CTARGET}" - is_cross && myconf+=( - --with-sysroot="${sysroot}" - --includedir="${sysroot}/usr/include" + --with-sysroot="\${prefix}/${CTARGET}" + --includedir="\${prefix}/include/${CTARGET}" --with-gdb-datadir="\${datadir}/gdb/${CTARGET}" ) @@ -208,13 +204,14 @@ src_configure() { $(use_with xxhash) $(use_with guile) $(use_with zstd) - ) - if use sparc-solaris || use x86-solaris ; then - # Disable largefile support - # https://sourceware.org/ml/gdb-patches/2014-12/msg00058.html - myconf+=( --disable-largefile ) - fi + # Find libraries using the toolchain sysroot rather than the configured + # prefix. Needed when cross-compiling. + # + # Check which libraries to apply this to with: + # "${S}"/gdb/configure --help | grep without-lib | sort + --without-lib{babeltrace,expat,gmp,iconv,ipt,lzma,mpfr,xxhash}-prefix + ) # source-highlight is detected with pkg-config: bug #716558 export ac_cv_path_pkg_config_prog_path="$(tc-getPKG_CONFIG)" diff --git a/sys-devel/gdb/gdb-12.1-r2.ebuild b/sys-devel/gdb/gdb-13.1.90_p20230325.ebuild index 3fd6e33a28d9..7f50bf391455 100644 --- a/sys-devel/gdb/gdb-12.1-r2.ebuild +++ b/sys-devel/gdb/gdb-13.1.90_p20230325.ebuild @@ -3,6 +3,9 @@ EAPI=8 +# See https://sourceware.org/gdb/wiki/DistroAdvice for general packaging +# tips & notes. + PYTHON_COMPAT=( python3_{9..11} ) inherit flag-o-matic python-single-r1 strip-linguas toolchain-funcs @@ -23,51 +26,64 @@ case ${PV} in inherit git-r3 SRC_URI="" ;; - *.*.50.2???????) - # weekly snapshots - SRC_URI="ftp://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${PV}.tar.xz" + *.*.50_p2???????|*.*.90_p2???????) + # Weekly snapshots + MY_PV="${PV/_p/.}" + SRC_URI=" + https://sourceware.org/pub/gdb/snapshots/branch/gdb-weekly-${MY_PV}.tar.xz + https://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${MY_PV}.tar.xz + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/gdb-weekly-${MY_PV}.tar.xz + " + S="${WORKDIR}/${PN}-${MY_PV}" + + # e.g. 13.1.90_p20230325 is a snapshot on the stable branch, so it's fine + if [[ ${PV} == *.[123456789].9?_p2??????? ]] ; then + REGULAR_RELEASE=1 + fi + ;; + *.*.9?) + # Prereleases + MY_PV="${PV/_p/.}" + SRC_URI=" + https://sourceware.org/pub/gdb/snapshots/branch/gdb-${MY_PV}.tar.xz + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/gdb-${MY_PV}.tar.xz + " + S="${WORKDIR}/${PN}-${MY_PV}" ;; *) # Normal upstream release - SRC_URI="mirror://gnu/gdb/${P}.tar.xz - ftp://sourceware.org/pub/gdb/releases/${P}.tar.xz" - ;; + SRC_URI=" + mirror://gnu/gdb/${P}.tar.xz + https://sourceware.org/pub/gdb/releases/${P}.tar.xz + " + + REGULAR_RELEASE=1 esac -PATCH_VER="" PATCH_DEV="" +PATCH_VER="" DESCRIPTION="GNU debugger" HOMEPAGE="https://sourceware.org/gdb/" -SRC_URI="${SRC_URI} - ${PATCH_DEV:+https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz} +SRC_URI=" + ${SRC_URI} + ${PATCH_DEV:+https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${P}-patches-${PATCH_VER}.tar.xz} ${PATCH_VER:+mirror://gentoo/${P}-patches-${PATCH_VER}.tar.xz} " LICENSE="GPL-3+ LGPL-2.1+" SLOT="0" - -if [[ ${PV} != 9999* ]] ; then - KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="cet guile lzma multitarget nls +python +server sim source-highlight test vanilla xml xxhash zstd" +if [[ -n ${REGULAR_RELEASE} ]] ; then + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" fi - -IUSE="cet guile lzma multitarget nls +python +server source-highlight test vanilla xml xxhash" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - -# In fact, gdb's test suite needs some work to get passing. -# See e.g. https://sourceware.org/gdb/wiki/TestingGDB. -# As of 11.2, on amd64: "# of unexpected failures 8600" -# Also, ia64 kernel crashes when gdb testsuite is running. -RESTRICT=" - ia64? ( test ) - !test? ( test ) - test -" +RESTRICT="!test? ( test )" RDEPEND=" - dev-libs/mpfr:0= + dev-libs/mpfr:= dev-libs/gmp:= - >=sys-libs/ncurses-5.2-r2:0= - >=sys-libs/readline-7:0= + >=sys-libs/ncurses-5.2-r2:= + >=sys-libs/readline-7:= sys-libs/zlib elibc_glibc? ( net-libs/libnsl:= ) lzma? ( app-arch/xz-utils ) @@ -80,6 +96,7 @@ RDEPEND=" xxhash? ( dev-libs/xxhash ) + zstd? ( app-arch/zstd:= ) " DEPEND="${RDEPEND}" BDEPEND=" @@ -93,8 +110,7 @@ BDEPEND=" PATCHES=( "${FILESDIR}"/${PN}-8.3.1-verbose-build.patch - "${FILESDIR}"/${P}-readline-8.2-build.patch - "${FILESDIR}"/${P}-core-file-detach.patch + "${FILESDIR}"/${PN}-13.1-Wenum-constexpr-conversion-clang16.patch ) pkg_setup() { @@ -141,7 +157,7 @@ src_configure() { --with-bugurl='https://bugs.gentoo.org/' --disable-werror # Disable modules that are in a combined binutils/gdb tree. bug #490566 - --disable-{binutils,etc,gas,gold,gprof,ld} + --disable-{binutils,etc,gas,gold,gprof,gprofng,ld} # avoid automagic dependency on (currently prefix) systems # systems with debuginfod library, bug #754753 @@ -154,21 +170,13 @@ src_configure() { # But the check does not quite work on i686: bug #760926. $(use_enable cet) - # We need to set both configure options, --with-sysroot and --libdir, - # to fix cross build issues that happen when configuring gmp. - # We explicitly need --libdir. Having only --with-sysroot without - # --libdir would not fix the build issues. - # For some reason, it is not enough to set only --with-sysroot, - # also not enough to pass --with-gmp-xxx options. - --with-sysroot="${ESYSROOT}" - --libdir="${ESYSROOT}/usr/$(get_libdir)" + # Helps when cross-compiling. Not to be confused with --with-sysroot. + --with-build-sysroot="${ESYSROOT}" ) - local sysroot="${EPREFIX}/usr/${CTARGET}" - is_cross && myconf+=( - --with-sysroot="${sysroot}" - --includedir="${sysroot}/usr/include" + --with-sysroot="\${prefix}/${CTARGET}" + --includedir="\${prefix}/include/${CTARGET}" --with-gdb-datadir="\${datadir}/gdb/${CTARGET}" ) @@ -198,19 +206,22 @@ src_configure() { $(use_with xml expat) $(use_with lzma) $(use_enable nls) + $(use_enable sim) $(use_enable source-highlight) $(use multitarget && echo --enable-targets=all) $(use_with python python "${EPYTHON}") $(use_with xxhash) $(use_with guile) + $(use_with zstd) + + # Find libraries using the toolchain sysroot rather than the configured + # prefix. Needed when cross-compiling. + # + # Check which libraries to apply this to with: + # "${S}"/gdb/configure --help | grep without-lib | sort + --without-lib{babeltrace,expat,gmp,iconv,ipt,lzma,mpfr,xxhash}-prefix ) - if use sparc-solaris || use x86-solaris ; then - # Disable largefile support - # https://sourceware.org/ml/gdb-patches/2014-12/msg00058.html - myconf+=( --disable-largefile ) - fi - # source-highlight is detected with pkg-config: bug #716558 export ac_cv_path_pkg_config_prog_path="$(tc-getPKG_CONFIG)" @@ -226,6 +237,18 @@ src_compile() { emake V=1 } +src_test() { + # Run the unittests (nabbed invocation from Fedora's spec file) at least + emake -k -C gdb run GDBFLAGS='-batch -ex "maintenance selftest"' + + # Too many failures + # In fact, gdb's test suite needs some work to get passing. + # See e.g. https://sourceware.org/gdb/wiki/TestingGDB. + # As of 11.2, on amd64: "# of unexpected failures 8600" + # Also, ia64 kernel crashes when gdb testsuite is running. + #emake -k check +} + src_install() { emake V=1 DESTDIR="${D}" install @@ -268,10 +291,6 @@ src_install() { dodoc gdbserver/README fi - if [[ -n ${PATCH_VER} ]] ; then - dodoc "${WORKDIR}"/extra/gdbinit.sample - fi - # Remove shared info pages rm -f "${ED}"/usr/share/info/{annotate,bfd,configure,ctf-spec,standards}.info* diff --git a/sys-devel/gdb/gdb-12.1-r3.ebuild b/sys-devel/gdb/gdb-13.1.90_p20230429.ebuild index 8eb1d3628dc8..1593ff281134 100644 --- a/sys-devel/gdb/gdb-12.1-r3.ebuild +++ b/sys-devel/gdb/gdb-13.1.90_p20230429.ebuild @@ -3,6 +3,9 @@ EAPI=8 +# See https://sourceware.org/gdb/wiki/DistroAdvice for general packaging +# tips & notes. + PYTHON_COMPAT=( python3_{9..11} ) inherit flag-o-matic python-single-r1 strip-linguas toolchain-funcs @@ -23,48 +26,64 @@ case ${PV} in inherit git-r3 SRC_URI="" ;; - *.*.50.2???????) - # weekly snapshots - SRC_URI="ftp://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${PV}.tar.xz" + *.*.50_p2???????|*.*.90_p2???????) + # Weekly snapshots + MY_PV="${PV/_p/.}" + SRC_URI=" + https://sourceware.org/pub/gdb/snapshots/branch/gdb-weekly-${MY_PV}.tar.xz + https://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${MY_PV}.tar.xz + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/gdb-weekly-${MY_PV}.tar.xz + " + S="${WORKDIR}/${PN}-${MY_PV}" + + # e.g. 13.1.90_p20230325 is a snapshot on the stable branch, so it's fine + if [[ ${PV} == *.[123456789].9?_p2??????? ]] ; then + REGULAR_RELEASE=1 + fi + ;; + *.*.9?) + # Prereleases + MY_PV="${PV/_p/.}" + SRC_URI=" + https://sourceware.org/pub/gdb/snapshots/branch/gdb-${MY_PV}.tar.xz + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/gdb-${MY_PV}.tar.xz + " + S="${WORKDIR}/${PN}-${MY_PV}" ;; *) # Normal upstream release - SRC_URI="mirror://gnu/gdb/${P}.tar.xz - ftp://sourceware.org/pub/gdb/releases/${P}.tar.xz" - ;; + SRC_URI=" + mirror://gnu/gdb/${P}.tar.xz + https://sourceware.org/pub/gdb/releases/${P}.tar.xz + " + + REGULAR_RELEASE=1 esac +PATCH_DEV="" +PATCH_VER="" DESCRIPTION="GNU debugger" HOMEPAGE="https://sourceware.org/gdb/" -SRC_URI="${SRC_URI} - ${PATCH_DEV:+https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz} - ${PATCH_VER:+mirror://gentoo/${P}-patches-${PATCH_VER}.tar.xz}" +SRC_URI=" + ${SRC_URI} + ${PATCH_DEV:+https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${P}-patches-${PATCH_VER}.tar.xz} + ${PATCH_VER:+mirror://gentoo/${P}-patches-${PATCH_VER}.tar.xz} +" LICENSE="GPL-3+ LGPL-2.1+" SLOT="0" - -if [[ ${PV} != 9999* ]] ; then - KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="cet guile lzma multitarget nls +python +server sim source-highlight test vanilla xml xxhash zstd" +if [[ -n ${REGULAR_RELEASE} ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" fi - -IUSE="cet guile lzma multitarget nls +python +server sim source-highlight test vanilla xml xxhash" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - -# In fact, gdb's test suite needs some work to get passing. -# See e.g. https://sourceware.org/gdb/wiki/TestingGDB. -# As of 11.2, on amd64: "# of unexpected failures 8600" -# Also, ia64 kernel crashes when gdb testsuite is running. -RESTRICT=" - ia64? ( test ) - !test? ( test ) - test -" +RESTRICT="!test? ( test )" RDEPEND=" - dev-libs/mpfr:0= + dev-libs/mpfr:= dev-libs/gmp:= - >=sys-libs/ncurses-5.2-r2:0= - >=sys-libs/readline-7:0= + >=sys-libs/ncurses-5.2-r2:= + >=sys-libs/readline-7:= sys-libs/zlib elibc_glibc? ( net-libs/libnsl:= ) lzma? ( app-arch/xz-utils ) @@ -77,6 +96,7 @@ RDEPEND=" xxhash? ( dev-libs/xxhash ) + zstd? ( app-arch/zstd:= ) " DEPEND="${RDEPEND}" BDEPEND=" @@ -90,9 +110,8 @@ BDEPEND=" PATCHES=( "${FILESDIR}"/${PN}-8.3.1-verbose-build.patch - "${FILESDIR}"/${P}-readline-8.2-build.patch - "${FILESDIR}"/${P}-core-file-detach.patch - "${FILESDIR}"/${P}-configure-clang16.patch + "${FILESDIR}"/${PN}-13.1-Wenum-constexpr-conversion-clang16.patch + "${FILESDIR}"/${PN}-13.1-musl-lfs.patch ) pkg_setup() { @@ -139,7 +158,7 @@ src_configure() { --with-bugurl='https://bugs.gentoo.org/' --disable-werror # Disable modules that are in a combined binutils/gdb tree. bug #490566 - --disable-{binutils,etc,gas,gold,gprof,ld} + --disable-{binutils,etc,gas,gold,gprof,gprofng,ld} # avoid automagic dependency on (currently prefix) systems # systems with debuginfod library, bug #754753 @@ -152,21 +171,13 @@ src_configure() { # But the check does not quite work on i686: bug #760926. $(use_enable cet) - # We need to set both configure options, --with-sysroot and --libdir, - # to fix cross build issues that happen when configuring gmp. - # We explicitly need --libdir. Having only --with-sysroot without - # --libdir would not fix the build issues. - # For some reason, it is not enough to set only --with-sysroot, - # also not enough to pass --with-gmp-xxx options. - --with-sysroot="${ESYSROOT}" - --libdir="${ESYSROOT}/usr/$(get_libdir)" + # Helps when cross-compiling. Not to be confused with --with-sysroot. + --with-build-sysroot="${ESYSROOT}" ) - local sysroot="${EPREFIX}/usr/${CTARGET}" - is_cross && myconf+=( - --with-sysroot="${sysroot}" - --includedir="${sysroot}/usr/include" + --with-sysroot="\${prefix}/${CTARGET}" + --includedir="\${prefix}/include/${CTARGET}" --with-gdb-datadir="\${datadir}/gdb/${CTARGET}" ) @@ -202,14 +213,16 @@ src_configure() { $(use_with python python "${EPYTHON}") $(use_with xxhash) $(use_with guile) + $(use_with zstd) + + # Find libraries using the toolchain sysroot rather than the configured + # prefix. Needed when cross-compiling. + # + # Check which libraries to apply this to with: + # "${S}"/gdb/configure --help | grep without-lib | sort + --without-lib{babeltrace,expat,gmp,iconv,ipt,lzma,mpfr,xxhash}-prefix ) - if use sparc-solaris || use x86-solaris ; then - # Disable largefile support - # https://sourceware.org/ml/gdb-patches/2014-12/msg00058.html - myconf+=( --disable-largefile ) - fi - # source-highlight is detected with pkg-config: bug #716558 export ac_cv_path_pkg_config_prog_path="$(tc-getPKG_CONFIG)" @@ -225,6 +238,18 @@ src_compile() { emake V=1 } +src_test() { + # Run the unittests (nabbed invocation from Fedora's spec file) at least + emake -k -C gdb run GDBFLAGS='-batch -ex "maintenance selftest"' + + # Too many failures + # In fact, gdb's test suite needs some work to get passing. + # See e.g. https://sourceware.org/gdb/wiki/TestingGDB. + # As of 11.2, on amd64: "# of unexpected failures 8600" + # Also, ia64 kernel crashes when gdb testsuite is running. + #emake -k check +} + src_install() { emake V=1 DESTDIR="${D}" install @@ -267,10 +292,6 @@ src_install() { dodoc gdbserver/README fi - if [[ -n ${PATCH_VER} ]] ; then - dodoc "${WORKDIR}"/extra/gdbinit.sample - fi - # Remove shared info pages rm -f "${ED}"/usr/share/info/{annotate,bfd,configure,ctf-spec,standards}.info* diff --git a/sys-devel/gdb/gdb-13.0.90_p20230110.ebuild b/sys-devel/gdb/gdb-13.2.ebuild index 5a1837450675..f234645144c8 100644 --- a/sys-devel/gdb/gdb-13.0.90_p20230110.ebuild +++ b/sys-devel/gdb/gdb-13.2.ebuild @@ -3,7 +3,10 @@ EAPI=8 -PYTHON_COMPAT=( python3_{9..11} ) +# See https://sourceware.org/gdb/wiki/DistroAdvice for general packaging +# tips & notes. + +PYTHON_COMPAT=( python3_{10..11} ) inherit flag-o-matic python-single-r1 strip-linguas toolchain-funcs export CTARGET=${CTARGET:-${CHOST}} @@ -23,12 +26,27 @@ case ${PV} in inherit git-r3 SRC_URI="" ;; - *.*.50_p2???????| *.*.90_p2???????) + *.*.50_p2???????|*.*.90_p2???????) # Weekly snapshots MY_PV="${PV/_p/.}" SRC_URI=" https://sourceware.org/pub/gdb/snapshots/branch/gdb-weekly-${MY_PV}.tar.xz https://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${MY_PV}.tar.xz + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/gdb-weekly-${MY_PV}.tar.xz + " + S="${WORKDIR}/${PN}-${MY_PV}" + + # e.g. 13.1.90_p20230325 is a snapshot on the stable branch, so it's fine + if [[ ${PV} == *.[123456789].9?_p2??????? ]] ; then + REGULAR_RELEASE=1 + fi + ;; + *.*.9?) + # Prereleases + MY_PV="${PV/_p/.}" + SRC_URI=" + https://sourceware.org/pub/gdb/snapshots/branch/gdb-${MY_PV}.tar.xz + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/gdb-${MY_PV}.tar.xz " S="${WORKDIR}/${PN}-${MY_PV}" ;; @@ -38,42 +56,34 @@ case ${PV} in mirror://gnu/gdb/${P}.tar.xz https://sourceware.org/pub/gdb/releases/${P}.tar.xz " - ;; + + REGULAR_RELEASE=1 esac +PATCH_DEV="" +PATCH_VER="" DESCRIPTION="GNU debugger" HOMEPAGE="https://sourceware.org/gdb/" -SRC_URI="${SRC_URI} - ${PATCH_DEV:+https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz} - ${PATCH_VER:+mirror://gentoo/${P}-patches-${PATCH_VER}.tar.xz}" +SRC_URI=" + ${SRC_URI} + ${PATCH_DEV:+https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${P}-patches-${PATCH_VER}.tar.xz} + ${PATCH_VER:+mirror://gentoo/${P}-patches-${PATCH_VER}.tar.xz} +" LICENSE="GPL-3+ LGPL-2.1+" SLOT="0" - -if [[ ${PV} != 9999* ]] ; then - # for testing on loong only - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" - KEYWORDS="~loong" -fi - IUSE="cet guile lzma multitarget nls +python +server sim source-highlight test vanilla xml xxhash zstd" +if [[ -n ${REGULAR_RELEASE} ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" +fi REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - -# In fact, gdb's test suite needs some work to get passing. -# See e.g. https://sourceware.org/gdb/wiki/TestingGDB. -# As of 11.2, on amd64: "# of unexpected failures 8600" -# Also, ia64 kernel crashes when gdb testsuite is running. -RESTRICT=" - ia64? ( test ) - !test? ( test ) - test -" +RESTRICT="!test? ( test )" RDEPEND=" - dev-libs/mpfr:0= + dev-libs/mpfr:= dev-libs/gmp:= - >=sys-libs/ncurses-5.2-r2:0= - >=sys-libs/readline-7:0= + >=sys-libs/ncurses-5.2-r2:= + >=sys-libs/readline-7:= sys-libs/zlib elibc_glibc? ( net-libs/libnsl:= ) lzma? ( app-arch/xz-utils ) @@ -146,7 +156,7 @@ src_configure() { --with-bugurl='https://bugs.gentoo.org/' --disable-werror # Disable modules that are in a combined binutils/gdb tree. bug #490566 - --disable-{binutils,etc,gas,gold,gprof,ld} + --disable-{binutils,etc,gas,gold,gprof,gprofng,ld} # avoid automagic dependency on (currently prefix) systems # systems with debuginfod library, bug #754753 @@ -159,21 +169,13 @@ src_configure() { # But the check does not quite work on i686: bug #760926. $(use_enable cet) - # We need to set both configure options, --with-sysroot and --libdir, - # to fix cross build issues that happen when configuring gmp. - # We explicitly need --libdir. Having only --with-sysroot without - # --libdir would not fix the build issues. - # For some reason, it is not enough to set only --with-sysroot, - # also not enough to pass --with-gmp-xxx options. - --with-sysroot="${ESYSROOT}" - --libdir="${ESYSROOT}/usr/$(get_libdir)" + # Helps when cross-compiling. Not to be confused with --with-sysroot. + --with-build-sysroot="${ESYSROOT}" ) - local sysroot="${EPREFIX}/usr/${CTARGET}" - is_cross && myconf+=( - --with-sysroot="${sysroot}" - --includedir="${sysroot}/usr/include" + --with-sysroot="\${prefix}/${CTARGET}" + --includedir="\${prefix}/include/${CTARGET}" --with-gdb-datadir="\${datadir}/gdb/${CTARGET}" ) @@ -210,13 +212,14 @@ src_configure() { $(use_with xxhash) $(use_with guile) $(use_with zstd) - ) - if use sparc-solaris || use x86-solaris ; then - # Disable largefile support - # https://sourceware.org/ml/gdb-patches/2014-12/msg00058.html - myconf+=( --disable-largefile ) - fi + # Find libraries using the toolchain sysroot rather than the configured + # prefix. Needed when cross-compiling. + # + # Check which libraries to apply this to with: + # "${S}"/gdb/configure --help | grep without-lib | sort + --without-lib{babeltrace,expat,gmp,iconv,ipt,lzma,mpfr,xxhash}-prefix + ) # source-highlight is detected with pkg-config: bug #716558 export ac_cv_path_pkg_config_prog_path="$(tc-getPKG_CONFIG)" @@ -233,6 +236,18 @@ src_compile() { emake V=1 } +src_test() { + # Run the unittests (nabbed invocation from Fedora's spec file) at least + emake -k -C gdb run GDBFLAGS='-batch -ex "maintenance selftest"' + + # Too many failures + # In fact, gdb's test suite needs some work to get passing. + # See e.g. https://sourceware.org/gdb/wiki/TestingGDB. + # As of 11.2, on amd64: "# of unexpected failures 8600" + # Also, ia64 kernel crashes when gdb testsuite is running. + #emake -k check +} + src_install() { emake V=1 DESTDIR="${D}" install @@ -275,10 +290,6 @@ src_install() { dodoc gdbserver/README fi - if [[ -n ${PATCH_VER} ]] ; then - dodoc "${WORKDIR}"/extra/gdbinit.sample - fi - # Remove shared info pages rm -f "${ED}"/usr/share/info/{annotate,bfd,configure,ctf-spec,standards}.info* diff --git a/sys-devel/gdb/gdb-9999.ebuild b/sys-devel/gdb/gdb-9999.ebuild index 9eb29deacc90..f234645144c8 100644 --- a/sys-devel/gdb/gdb-9999.ebuild +++ b/sys-devel/gdb/gdb-9999.ebuild @@ -6,7 +6,7 @@ EAPI=8 # See https://sourceware.org/gdb/wiki/DistroAdvice for general packaging # tips & notes. -PYTHON_COMPAT=( python3_{9..11} ) +PYTHON_COMPAT=( python3_{10..11} ) inherit flag-o-matic python-single-r1 strip-linguas toolchain-funcs export CTARGET=${CTARGET:-${CHOST}} @@ -26,12 +26,27 @@ case ${PV} in inherit git-r3 SRC_URI="" ;; - *.*.50_p2???????| *.*.90_p2???????) + *.*.50_p2???????|*.*.90_p2???????) # Weekly snapshots MY_PV="${PV/_p/.}" SRC_URI=" https://sourceware.org/pub/gdb/snapshots/branch/gdb-weekly-${MY_PV}.tar.xz https://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${MY_PV}.tar.xz + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/gdb-weekly-${MY_PV}.tar.xz + " + S="${WORKDIR}/${PN}-${MY_PV}" + + # e.g. 13.1.90_p20230325 is a snapshot on the stable branch, so it's fine + if [[ ${PV} == *.[123456789].9?_p2??????? ]] ; then + REGULAR_RELEASE=1 + fi + ;; + *.*.9?) + # Prereleases + MY_PV="${PV/_p/.}" + SRC_URI=" + https://sourceware.org/pub/gdb/snapshots/branch/gdb-${MY_PV}.tar.xz + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/gdb-${MY_PV}.tar.xz " S="${WORKDIR}/${PN}-${MY_PV}" ;; @@ -41,7 +56,8 @@ case ${PV} in mirror://gnu/gdb/${P}.tar.xz https://sourceware.org/pub/gdb/releases/${P}.tar.xz " - ;; + + REGULAR_RELEASE=1 esac PATCH_DEV="" @@ -56,22 +72,18 @@ SRC_URI=" LICENSE="GPL-3+ LGPL-2.1+" SLOT="0" - -if [[ ${PV} != 9999* ]] ; then - # for testing on loong only - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" - KEYWORDS="~loong" -fi - IUSE="cet guile lzma multitarget nls +python +server sim source-highlight test vanilla xml xxhash zstd" +if [[ -n ${REGULAR_RELEASE} ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" +fi REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" RESTRICT="!test? ( test )" RDEPEND=" - dev-libs/mpfr:0= + dev-libs/mpfr:= dev-libs/gmp:= - >=sys-libs/ncurses-5.2-r2:0= - >=sys-libs/readline-7:0= + >=sys-libs/ncurses-5.2-r2:= + >=sys-libs/readline-7:= sys-libs/zlib elibc_glibc? ( net-libs/libnsl:= ) lzma? ( app-arch/xz-utils ) @@ -144,7 +156,7 @@ src_configure() { --with-bugurl='https://bugs.gentoo.org/' --disable-werror # Disable modules that are in a combined binutils/gdb tree. bug #490566 - --disable-{binutils,etc,gas,gold,gprof,ld} + --disable-{binutils,etc,gas,gold,gprof,gprofng,ld} # avoid automagic dependency on (currently prefix) systems # systems with debuginfod library, bug #754753 @@ -157,21 +169,13 @@ src_configure() { # But the check does not quite work on i686: bug #760926. $(use_enable cet) - # We need to set both configure options, --with-sysroot and --libdir, - # to fix cross build issues that happen when configuring gmp. - # We explicitly need --libdir. Having only --with-sysroot without - # --libdir would not fix the build issues. - # For some reason, it is not enough to set only --with-sysroot, - # also not enough to pass --with-gmp-xxx options. - --with-sysroot="${ESYSROOT}" - --libdir="${ESYSROOT}/usr/$(get_libdir)" + # Helps when cross-compiling. Not to be confused with --with-sysroot. + --with-build-sysroot="${ESYSROOT}" ) - local sysroot="${EPREFIX}/usr/${CTARGET}" - is_cross && myconf+=( - --with-sysroot="${sysroot}" - --includedir="${sysroot}/usr/include" + --with-sysroot="\${prefix}/${CTARGET}" + --includedir="\${prefix}/include/${CTARGET}" --with-gdb-datadir="\${datadir}/gdb/${CTARGET}" ) @@ -208,13 +212,14 @@ src_configure() { $(use_with xxhash) $(use_with guile) $(use_with zstd) - ) - if use sparc-solaris || use x86-solaris ; then - # Disable largefile support - # https://sourceware.org/ml/gdb-patches/2014-12/msg00058.html - myconf+=( --disable-largefile ) - fi + # Find libraries using the toolchain sysroot rather than the configured + # prefix. Needed when cross-compiling. + # + # Check which libraries to apply this to with: + # "${S}"/gdb/configure --help | grep without-lib | sort + --without-lib{babeltrace,expat,gmp,iconv,ipt,lzma,mpfr,xxhash}-prefix + ) # source-highlight is detected with pkg-config: bug #716558 export ac_cv_path_pkg_config_prog_path="$(tc-getPKG_CONFIG)" diff --git a/sys-devel/gettext/gettext-0.21.1.ebuild b/sys-devel/gettext/gettext-0.21.1.ebuild index 654d28fe3fbd..826f50a8376a 100644 --- a/sys-devel/gettext/gettext-0.21.1.ebuild +++ b/sys-devel/gettext/gettext-0.21.1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # Note: Keep version bumps in sync with dev-libs/libintl. @@ -6,7 +6,7 @@ EAPI=8 VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/gettext.asc -inherit java-pkg-opt-2 libtool multilib-minimal verify-sig +inherit java-pkg-opt-2 libtool multilib-minimal verify-sig toolchain-funcs DESCRIPTION="GNU locale utilities" HOMEPAGE="https://www.gnu.org/software/gettext/" @@ -17,13 +17,13 @@ if [[ ${PV} == *_rc* ]] ; then else SRC_URI="mirror://gnu/${PN}/${P}.tar.xz" SRC_URI+=" verify-sig? ( mirror://gnu/${PN}/${P}.tar.xz.sig )" - 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" + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi # Only libasprintf is under the LGPL (and libintl is in a sep package), # so put that license behind USE=cxx. LICENSE="GPL-3+ cxx? ( LGPL-2.1+ )" SLOT="0" -IUSE="acl cvs +cxx doc emacs git java ncurses nls openmp static-libs" +IUSE="acl +cxx doc emacs git java ncurses nls openmp static-libs" # only runtime goes multilib # Note: The version of libxml2 corresponds to the version bundled via gnulib. @@ -40,11 +40,9 @@ DEPEND=">=virtual/libiconv-0-r1[${MULTILIB_USEDEP}] ncurses? ( sys-libs/ncurses:0= ) java? ( virtual/jdk:1.8 )" RDEPEND="${DEPEND} - !git? ( cvs? ( dev-vcs/cvs ) ) git? ( dev-vcs/git ) java? ( virtual/jre:1.8 )" BDEPEND=" - !git? ( cvs? ( dev-vcs/cvs ) ) git? ( dev-vcs/git ) verify-sig? ( sec-keys/openpgp-keys-gettext )" PDEPEND="emacs? ( app-emacs/po-mode )" @@ -70,7 +68,12 @@ PATCHES=( QA_SONAME_NO_SYMLINK=".*/preloadable_libintl.so" +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp java-pkg-opt-2_pkg_setup } @@ -89,7 +92,9 @@ src_prepare() { elibtoolize - use elibc_musl && eapply "${FILESDIR}"/${PN}-0.21-musl-omit_setlocale_lock.patch + if use elibc_musl || use elibc_Darwin; then + eapply "${FILESDIR}"/${PN}-0.21-musl-omit_setlocale_lock.patch + fi } multilib_src_configure() { @@ -114,12 +119,12 @@ multilib_src_configure() { --without-included-libxml --disable-csharp + --without-cvs $(use_enable acl) $(use_enable cxx c++) $(use_enable cxx libasprintf) $(use_with git) - $(usex git --without-cvs $(use_with cvs)) $(multilib_native_use_enable java) $(use_enable ncurses curses) $(use_enable nls) diff --git a/sys-devel/gettext/metadata.xml b/sys-devel/gettext/metadata.xml index 502becbd6b66..aad767169a65 100644 --- a/sys-devel/gettext/metadata.xml +++ b/sys-devel/gettext/metadata.xml @@ -1,21 +1,14 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> -<maintainer type="project"> - <email>base-system@gentoo.org</email> - <name>Gentoo Base System</name> -</maintainer> -<use> - <flag name="cvs"> - When running `autopoint`, use cvs to store the internal development files; - this requires cvs at runtime, but will be faster/smaller than raw archives - </flag> - <flag name="git"> - When running `autopoint`, use git to store the internal development files; - this requires git at runtime, but will be faster/smaller than raw archives - </flag> -</use> -<upstream> - <remote-id type="cpe">cpe:/a:gnu:gettext</remote-id> -</upstream> + <maintainer type="project"> + <email>base-system@gentoo.org</email> + <name>Gentoo Base System</name> + </maintainer> + <use> + <flag name="git">When running `autopoint`, use git to store the internal development files; this requires git at runtime, but will be faster/smaller than raw archives</flag> + </use> + <upstream> + <remote-id type="cpe">cpe:/a:gnu:gettext</remote-id> + </upstream> </pkgmetadata> diff --git a/sys-devel/gnuconfig/Manifest b/sys-devel/gnuconfig/Manifest index 60579c526325..d704bd09bd58 100644 --- a/sys-devel/gnuconfig/Manifest +++ b/sys-devel/gnuconfig/Manifest @@ -1 +1,2 @@ DIST gnuconfig-20221007.tar.xz 71208 BLAKE2B 9112bd82af083043d5eae3a5ffde8174df842f3a817b1b42c17e3202a9189cff8e9f422e956e1cdd82e326949a23e27a353f72f98a6f63818e5a67096f650fed SHA512 91ca2faca02d5d78f937da70a4af026b1ba585519b9eaa2463cacd79f0f6a85ef6e1f7e0bed4243474b6e880c0b6387ca09f00eb2d40a27c3a26b6817b1bb70a +DIST gnuconfig-20230121.tar.xz 71276 BLAKE2B c136c11f2836cc01c4a75b54853b14943b1e4b29a99102360b436854b1a6e445f578fea494b5c7fe2f744d35941c0ea888a08a386dff716b99dd231a308bffcf SHA512 5ac6c50b9c0abe7c007717aeff2d2d6a8e616d7c8514ed22489ad0164c16966cf44f2312bc3295765f5beaf98bb14022d91c5c59e9fb41e920617092a22d42ec diff --git a/sys-devel/gnuconfig/files/99999999/0001-add-ps2-targets-to-config.sub.patch b/sys-devel/gnuconfig/files/99999999/0001-add-ps2-targets-to-config.sub.patch deleted file mode 100644 index a95e7ad3d5d8..000000000000 --- a/sys-devel/gnuconfig/files/99999999/0001-add-ps2-targets-to-config.sub.patch +++ /dev/null @@ -1,64 +0,0 @@ -From f1a763afa41654e25cbf73aae5ed56ca0909be63 Mon Sep 17 00:00:00 2001 -From: Mike Frysinger <vapier@gentoo.org> -Date: Thu, 9 Oct 2008 15:51:35 -0400 -Subject: [PATCH] add ps2 targets to config.sub - -We no longer carry the "ps2" target as that conflicts with the long -standing shortcut for the i386-ibm-aix target. ---- - config.sub | 25 +++++++++++++++++++++++-- - 1 file changed, 23 insertions(+), 2 deletions(-) - -diff --git a/config.sub b/config.sub -index b0f8492..4d89efe 100755 ---- a/config.sub -+++ b/config.sub -@@ -813,6 +813,27 @@ case $basic_machine in - vendor=atari - basic_os=mint - ;; -+ mipsEE* | ee) -+ cpu=mips64r5900el -+ vendor=scei -+ case $os in -+ linux*) -+ ;; -+ *) -+ os=elf -+ ;; -+ esac -+ ;; -+ iop) -+ cpu=mipsel -+ vendor=scei -+ os=irx -+ ;; -+ dvp) -+ cpu=dvp -+ vendor=scei -+ os=elf -+ ;; - news-3600 | risc-news) - cpu=mips - vendor=sony -@@ -1174,7 +1195,7 @@ case $cpu-$vendor in - | bfin | bpf | bs2000 \ - | c[123]* | c30 | [cjt]90 | c4x \ - | c8051 | clipper | craynv | csky | cydra \ -- | d10v | d30v | dlx | dsp16xx \ -+ | d10v | d30v | dlx | dsp16xx | dvp \ - | e2k | elxsi | epiphany \ - | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ - | h8300 | h8500 \ -@@ -1715,7 +1736,7 @@ case $os in - | uxpv* | beos* | mpeix* | udk* | moxiebox* \ - | interix* | uwin* | mks* | rhapsody* | darwin* \ - | openstep* | oskit* | conix* | pw32* | nonstopux* \ -- | storm-chaos* | tops10* | tenex* | tops20* | its* \ -+ | storm-chaos* | tops10* | tenex* | tops20* | its* | irx* \ - | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ - | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ - | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ --- -2.30.0 - diff --git a/sys-devel/gnuconfig/gnuconfig-20221007.ebuild b/sys-devel/gnuconfig/gnuconfig-20221007.ebuild index 135754812a30..344e27cd9ff9 100644 --- a/sys-devel/gnuconfig/gnuconfig-20221007.ebuild +++ b/sys-devel/gnuconfig/gnuconfig-20221007.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -9,7 +9,7 @@ if [[ ${PV} == 99999999 ]] ; then inherit git-r3 else SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz" - 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" + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" S="${WORKDIR}" fi diff --git a/sys-devel/gnuconfig/gnuconfig-20230121.ebuild b/sys-devel/gnuconfig/gnuconfig-20230121.ebuild new file mode 100644 index 000000000000..bbfd2430e73e --- /dev/null +++ b/sys-devel/gnuconfig/gnuconfig-20230121.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} == 99999999 ]] ; then + EGIT_REPO_URI="https://git.savannah.gnu.org/r/config.git" + + inherit git-r3 +else + SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + S="${WORKDIR}" +fi + +DESCRIPTION="Updated config.sub and config.guess file from GNU" +HOMEPAGE="https://savannah.gnu.org/projects/config" + +LICENSE="GPL-3+-with-autoconf-exception" +SLOT="0" + +maint_pkg_create() { + cd "${S}" || die + + emake ChangeLog + local ver=$(gawk '{ gsub(/-/, "", $1); print $1; exit }' ChangeLog) + [[ ${#ver} != 8 ]] && die "invalid version '${ver}'" + + local tar="${T}/gnuconfig-${ver}.tar.xz" + tar -Jcf "${tar}" ./* || die "creating tar failed" + einfo "Packaged tar now available:" + einfo "$(du -b "${tar}")" +} + +src_unpack() { + if [[ ${PV} == 99999999 ]] ; then + git-r3_src_unpack + maint_pkg_create + else + unpack ${A} + fi +} + +src_install() { + insinto /usr/share/${PN} + doins config.{sub,guess} + fperms +x /usr/share/${PN}/config.{sub,guess} + dodoc ChangeLog +} diff --git a/sys-devel/gnuconfig/gnuconfig-99999999.ebuild b/sys-devel/gnuconfig/gnuconfig-99999999.ebuild index 712d8c0126e5..bbfd2430e73e 100644 --- a/sys-devel/gnuconfig/gnuconfig-99999999.ebuild +++ b/sys-devel/gnuconfig/gnuconfig-99999999.ebuild @@ -1,7 +1,7 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 if [[ ${PV} == 99999999 ]] ; then EGIT_REPO_URI="https://git.savannah.gnu.org/r/config.git" @@ -9,7 +9,7 @@ if [[ ${PV} == 99999999 ]] ; then inherit git-r3 else SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz" - 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" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" S="${WORKDIR}" fi diff --git a/sys-devel/kgcc64/Manifest b/sys-devel/kgcc64/Manifest index dcbdd672a599..47feb4f58fe9 100644 --- a/sys-devel/kgcc64/Manifest +++ b/sys-devel/kgcc64/Manifest @@ -3,6 +3,12 @@ DIST gcc-10.4.0-patches-5.tar.xz 17056 BLAKE2B f336d69a8ad105b8c4a84e8248a5b8a88 DIST gcc-10.4.0.tar.xz 75018092 BLAKE2B ec1169025d3896b70ab80a4b8ce5040763a95529fc7e120c6bc3a3eb1db5cf938ebde347c1e595a8ff7d4081e79ded6252702d7a1a09648449b7a0783188e434 SHA512 440c08ca746da450d9a1b35e8fd2305cb27e7e6987cd9d0f7d375f3b1fc9e4b0bd7acb3cd7bf795e72fcbead59cdef5b6c152862f5d35cd9fbfe6902101ce648 DIST gcc-11.3.0-patches-4.tar.bz2 14030 BLAKE2B cdd555f329c7c0b993cd3527489681bfcc2162db0997611b66337e6b287356761c7deccd3b9f9bb8980a32df0574017a52c5e445e24db746757d87ffccb1ea89 SHA512 cb227599d01734ae9f9fc7ae2c8dd4cae1da80d6ab398ec6f112535239ac76ce8e91fbac88e19c2f75cb08ab75f966c1d1ad4af80ede67e953fbbafc7baefa58 DIST gcc-11.3.0.tar.xz 81141364 BLAKE2B 7e562d25446ca4ab9fe8cdb714866f66aba3744d78bf84f31bfb097c1a981e4c7f990cb1e6bcfec5ae6671836a4984e2b70eb8fed81dcef5e244f88da8623469 SHA512 f0be5ad705c73b84477128a69c047f57dd47002f375eb60e1e842e08cf2009a509e92152bca345823926d550b7395ae6d4de7db51d1ee371c2dc37313881fca7 +DIST gcc-12-20230512.tar.xz 79749352 BLAKE2B a2dd7c780d2adf1915cb01f6835d6f95242376d9d7c14ec0fea8e905858f0ce20b90dd3f47fef983b9d1a6f519f0c3d4cfa41d887f477454378a12407e9aaeb8 SHA512 3bf04b2489b0b0d062f8e8e66c31622fe7aa6ef6c9ba7d51f387eae714a813a089594cebdb046fa04e53da24a9788879711eedb054c3a37721035386b94ff0f0 DIST gcc-12.2.0-musl-patches-1.tar.xz 3844 BLAKE2B 004432806696f7d0a32366270ac45695e858abee73a255e44dc6e0a225339e4cad40aab0d51dfe9a55d5aa4b4001f5726064bb2eea3212a0874b2d27e229abd7 SHA512 c354edcd641a9dfaf902a0ff4c44c75065d0cf1c36bbf6c3c35c2e23bff22b8f70bcf4458a5a0ef86371e9f2fafca8a54ca822e35820ff442c9458a2819c3606 DIST gcc-12.2.0-patches-1.tar.xz 12864 BLAKE2B a5ae0a85dfc1b6f0bd968f0d5262ebed14ec9cdb3249e3a4c571578c54eda0e53708ee7fe8e03e506366c7f3cf7926eced9b390d9dee948c1249298c0fabd9fb SHA512 f3d793b89a2a0385d596162fb0c653d4acdf21ae418cb792c1786a01fde0391bd0719715dbf07d53636f127168f5cd99108a1dc11cf6cea889b7d82385bcc258 DIST gcc-12.2.0.tar.xz 84645292 BLAKE2B 715574af9ad678f9dc8cfd19c866bf910c7edfd479e7e9681337feaa9b54e5d304ddb85483816b8d89754d502405823ae2eff0d1e444538763f40be8e428d8da SHA512 e9e857bd81bf7a370307d6848c81b2f5403db8c7b5207f54bce3f3faac3bde63445684092c2bc1a2427cddb6f7746496d9fbbef05fbbd77f2810b2998f1f9173 +DIST gcc-12.3.0-musl-patches-1.tar.xz 3572 BLAKE2B c7bf65f7c9ea8023ddaac821ee2b778622fa310ac72a72b2f7032494a8f304eac86217f9204622e6c21aaef9952bece0d09bc126facd4f42b602927909815ab5 SHA512 babc279fea2c1fd4c018815f2f5630214fd46015ce9f365c28af242681d51818eaca30ce298eddcab1eed5ac5f2759e2b47b2335afab9d722b4469a6d4fec326 +DIST gcc-12.3.0-patches-2.tar.xz 14236 BLAKE2B 06c43662c9abb0fa3cf90d5e2273c69aecb9158e6cf6f23c04754ed5d686be2616e81e2502eb16f4298ddd50518ca7677e13249da9e9b091162d3931ff65e4fe SHA512 b0d4b85dbf1a54aaaa1997203b872e3106906b4ad49cde57e1428bc22b2f8e2d73b8cb10ae0d0b792aebaf664594da4d1dea04c44ddc34e59047410766db04d1 +DIST gcc-13.1.0.tar.xz 87451196 BLAKE2B b956a773cffe8b43bd6c9a99fe614f53f665438925a6b320975d301f547923e45d4d6fa577a143467fb03e0a9c1bab2b6719a1011d672367f3e644433a2d7606 SHA512 6cf06dfc48f57f5e67f7efe3248019329a14d690c728d9f2f7ef5fa0d58f1816f309586ba7ea2eac20d0b60a2d1b701f68392e9067dd46f827ba0efd7192db33 +DIST gcc-13.2.0-musl-patches-2.tar.xz 5292 BLAKE2B c057d6574d03c05854edaa9f3fd40e9149662b04f3ac7a7db3eb078d73a7b535726d1bf52e5b12736dedb2f9898ad731f2e48a6421fcfbf7b90f929dee072fcb SHA512 a691da0c87c443a5e9d23731f4005f27871c5b12bc9102873ffa24d374aa7b9fbd187c4f5635d23fa9ffb17e351e76173c2d3fdf40646e355c4cb314b538de69 +DIST gcc-13.2.0-patches-1.tar.xz 15792 BLAKE2B 2ffa9ac013c0f9a91eb93e87e3bc6c378d02cca32ad3f8a84d1249e257eb02b206ec10fa425738a4bae2ffb7db8506afcee2a8dd855357e4b48636608aa24e50 SHA512 917ea178f3696724f9ec08aebb6976f03c5edf8ee21bb4bad7e2d820507452f6dace6e847c4f342a52870642550f34da0346ee635a60ba0c1bff667e0e31d195 diff --git a/sys-devel/kgcc64/files/gcc-12.3-ccache-ICE.patch b/sys-devel/kgcc64/files/gcc-12.3-ccache-ICE.patch new file mode 100644 index 000000000000..9a170f5db77e --- /dev/null +++ b/sys-devel/kgcc64/files/gcc-12.3-ccache-ICE.patch @@ -0,0 +1,67 @@ +https://bugs.gentoo.org/906310 +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109850 +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109241 + +https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=396a4e76afec30d2461638f569cae18955eb4ad2 + +From 396a4e76afec30d2461638f569cae18955eb4ad2 Mon Sep 17 00:00:00 2001 +From: Jason Merrill <jason@redhat.com> +Date: Wed, 22 Mar 2023 16:11:47 -0400 +Subject: [PATCH] c++: local class in nested generic lambda [PR109241] + +In this testcase, the tree walk to look for bare parameter packs was +confused by finding a type with no TREE_BINFO. But it should be fine that +it's unset; we already checked for unexpanded packs at parse time. + +I also tried doing the partial instantiation of the local class, which is +probably the long-term direction we want to go, but for stage 4 let's go +with this safer change. + + PR c++/109241 + +gcc/cp/ChangeLog: + + * pt.cc (find_parameter_packs_r): Handle null TREE_BINFO. + +gcc/testsuite/ChangeLog: + + * g++.dg/cpp1y/lambda-generic-local-class2.C: New test. +--- a/gcc/cp/pt.cc ++++ b/gcc/cp/pt.cc +@@ -4106,10 +4106,14 @@ find_parameter_packs_r (tree *tp, int *walk_subtrees, void* data) + case TAG_DEFN: + t = TREE_TYPE (t); + if (CLASS_TYPE_P (t)) +- /* Local class, need to look through the whole definition. */ +- for (tree bb : BINFO_BASE_BINFOS (TYPE_BINFO (t))) +- cp_walk_tree (&BINFO_TYPE (bb), &find_parameter_packs_r, +- ppd, ppd->visited); ++ { ++ /* Local class, need to look through the whole definition. ++ TYPE_BINFO might be unset for a partial instantiation. */ ++ if (TYPE_BINFO (t)) ++ for (tree bb : BINFO_BASE_BINFOS (TYPE_BINFO (t))) ++ cp_walk_tree (&BINFO_TYPE (bb), &find_parameter_packs_r, ++ ppd, ppd->visited); ++ } + else + /* Enum, look at the values. */ + for (tree l = TYPE_VALUES (t); l; l = TREE_CHAIN (l)) +--- /dev/null ++++ b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-local-class2.C +@@ -0,0 +1,13 @@ ++// PR c++/109241 ++// { dg-do compile { target c++14 } } ++// { dg-options "" } no pedantic ++ ++void g() { ++ [](auto) { ++ [](auto) { ++ ({ ++ struct A {}; ++ }); ++ }; ++ }(1); ++} +-- +2.31.1 diff --git a/sys-devel/kgcc64/kgcc64-12.3.1_p20230512-r1.ebuild b/sys-devel/kgcc64/kgcc64-12.3.1_p20230512-r1.ebuild new file mode 100644 index 000000000000..886da7c53eb0 --- /dev/null +++ b/sys-devel/kgcc64/kgcc64-12.3.1_p20230512-r1.ebuild @@ -0,0 +1,50 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +case ${CHOST} in + hppa*) CTARGET=hppa64-${CHOST#*-};; + mips*) CTARGET=${CHOST/mips/mips64};; + powerpc*) CTARGET=${CHOST/powerpc/powerpc64};; + s390*) CTARGET=${CHOST/s390/s390x};; + sparc*) CTARGET=${CHOST/sparc/sparc64};; + i?86*) CTARGET=x86_64-${CHOST#*-};; +esac +export CTARGET +TOOLCHAIN_ALLOWED_LANGS="c" +TOOLCHAIN_PATCH_DEV="sam" +PATCH_VER="2" +PATCH_GCC_VER="12.3.0" +MUSL_VER="1" +MUSL_GCC_VER="12.3.0" +GCC_TARGET_NO_MULTILIB=true +inherit toolchain + +DESCRIPTION="64bit kernel compiler" + +# Works on hppa and mips; all other archs, refer to bug #228115 +KEYWORDS="~hppa" + +# unlike every other target, hppa has not unified the 32/64 bit +# ports in binutils yet +BDEPEND="hppa? ( sys-devel/binutils-hppa64 )" + +src_prepare() { + toolchain_src_prepare + eapply "${FILESDIR}"/gcc-12.3-ccache-ICE.patch +} + +pkg_postinst() { + toolchain_pkg_postinst + + cd "${ROOT}"/usr/bin + local x + for x in gcc cpp ; do + cat <<-EOF >${CTARGET%%-*}-linux-${x} + #!/bin/sh + exec ${CTARGET}-${x} "\$@" + EOF + chmod a+rx ${CTARGET%%-*}-linux-${x} + done +} diff --git a/sys-devel/kgcc64/kgcc64-13.1.0.ebuild b/sys-devel/kgcc64/kgcc64-13.1.0.ebuild new file mode 100644 index 000000000000..ebb15a3712fb --- /dev/null +++ b/sys-devel/kgcc64/kgcc64-13.1.0.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +case ${CHOST} in + hppa*) CTARGET=hppa64-${CHOST#*-};; + mips*) CTARGET=${CHOST/mips/mips64};; + powerpc*) CTARGET=${CHOST/powerpc/powerpc64};; + s390*) CTARGET=${CHOST/s390/s390x};; + sparc*) CTARGET=${CHOST/sparc/sparc64};; + i?86*) CTARGET=x86_64-${CHOST#*-};; +esac +export CTARGET +TOOLCHAIN_ALLOWED_LANGS="c" +TOOLCHAIN_PATCH_DEV="sam" +PATCH_VER="1" +PATCH_GCC_VER="13.2.0" +MUSL_VER="2" +MUSL_GCC_VER="13.2.0" +GCC_TARGET_NO_MULTILIB=true +inherit toolchain + +DESCRIPTION="64bit kernel compiler" + +# Works on hppa and mips; all other archs, refer to bug #228115 +KEYWORDS="~hppa" + +# unlike every other target, hppa has not unified the 32/64 bit +# ports in binutils yet +BDEPEND="hppa? ( sys-devel/binutils-hppa64 )" + +pkg_postinst() { + toolchain_pkg_postinst + + cd "${ROOT}"/usr/bin + local x + for x in gcc cpp ; do + cat <<-EOF >${CTARGET%%-*}-linux-${x} + #!/bin/sh + exec ${CTARGET}-${x} "\$@" + EOF + chmod a+rx ${CTARGET%%-*}-linux-${x} + done +} diff --git a/sys-devel/libtool/files/libtool-2.4.6-mint.patch b/sys-devel/libtool/files/libtool-2.4.6-mint.patch deleted file mode 100644 index 4fe5bcede5a3..000000000000 --- a/sys-devel/libtool/files/libtool-2.4.6-mint.patch +++ /dev/null @@ -1,46 +0,0 @@ -Patch by Alan Hourihane - -http://bugs.gentoo.org/show_bug.cgi?id=266984 - ---- a/configure -+++ b/configure -@@ -5897,6 +5897,11 @@ - lt_cv_sys_max_cmd_len=8192; - ;; - -+ mint*) -+ # On MiNT this can take a long time and run out of memory. -+ lt_cv_sys_max_cmd_len=8192; -+ ;; -+ - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. ---- a/libltdl/configure -+++ b/libltdl/configure -@@ -4782,6 +4782,11 @@ - lt_cv_sys_max_cmd_len=8192; - ;; - -+ mint*) -+ # On MiNT this can take a long time and run out of memory. -+ lt_cv_sys_max_cmd_len=8192; -+ ;; -+ - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. ---- a/m4/libtool.m4 -+++ b/m4/libtool.m4 -@@ -1708,6 +1708,11 @@ - lt_cv_sys_max_cmd_len=8192; - ;; - -+ mint*) -+ # On MiNT this can take a long time and run out of memory. -+ lt_cv_sys_max_cmd_len=8192; -+ ;; -+ - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. diff --git a/sys-devel/libtool/files/libtool-2.4.7-grep-3.8.patch b/sys-devel/libtool/files/libtool-2.4.7-grep-3.8.patch new file mode 100644 index 000000000000..8f1de478aece --- /dev/null +++ b/sys-devel/libtool/files/libtool-2.4.7-grep-3.8.patch @@ -0,0 +1,31 @@ +https://bugs.gentoo.org/892635 +https://lists.gnu.org/archive/html/libtool-patches/2022-12/msg00004.html + +From 414deacee0f564afdf2d7750450274c581330a59 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20B=C3=A9rat?= <fberat@redhat.com> +Date: Wed, 21 Dec 2022 13:14:03 +0100 +Subject: [PATCH] tests: Fix grep warning about stray \ before / + +Recent version of grep emit a warning if stray \ is found before /. +This leads to the link-order test failure. + + * tests/link-order.at: Remove unneeded \ before / +--- a/tests/link-order.at ++++ b/tests/link-order.at +@@ -99,12 +99,12 @@ aix* | interix*) ;; # These systems have different path syntax + case $hardcode_direct$hardcode_direct_absolute in + yesno) + AT_CHECK([if $EGREP relinking stderr; then +- $EGREP " .*\/new\/lib/libb$shared_ext .*\/old\/lib/libcee$shared_ext" stdout ++ $EGREP " .*/new/lib/libb$shared_ext .*/old/lib/libcee$shared_ext" stdout + else :; fi], [0], [ignore], [], [echo "wrong link order"]) + ;; + *) + AT_CHECK([if $EGREP relinking stderr; then +- $EGREP " -L.*\/new\/lib -lb -L.*\/old\/lib -lcee" stdout ++ $EGREP " -L.*/new/lib -lb -L.*/old/lib -lcee" stdout + else :; fi], [0], [ignore], [], [echo "wrong link order"]) + ;; + esac +-- +2.38.1 diff --git a/sys-devel/libtool/libtool-2.4.7-r1.ebuild b/sys-devel/libtool/libtool-2.4.7-r1.ebuild index 1572a76ebece..a098f7ae0b1d 100644 --- a/sys-devel/libtool/libtool-2.4.7-r1.ebuild +++ b/sys-devel/libtool/libtool-2.4.7-r1.ebuild @@ -15,7 +15,7 @@ if [[ ${PV} == *9999 ]] ; then inherit git-r3 else SRC_URI="mirror://gnu/${PN}/${P}.tar.xz" - 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" + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi DESCRIPTION="A shared library tool for developers" @@ -30,7 +30,8 @@ RDEPEND=" sys-devel/gnuconfig >=sys-devel/autoconf-2.69:* >=sys-devel/automake-1.13:* - >=dev-libs/libltdl-2.4.7" + >=dev-libs/libltdl-2.4.7 +" DEPEND="${RDEPEND}" [[ ${PV} == *9999 ]] && BDEPEND="sys-apps/help2man" @@ -40,10 +41,10 @@ PATCHES=( # bug #581314 "${FILESDIR}"/${PN}-2.4.6-ppc64le.patch - "${FILESDIR}"/${PN}-2.4.6-mint.patch "${FILESDIR}"/${PN}-2.2.6a-darwin-module-bundle.patch "${FILESDIR}"/${PN}-2.4.6-darwin-use-linux-version.patch "${FILESDIR}"/${PN}-2.4.7-werror-lto.patch + "${FILESDIR}"/${PN}-2.4.7-grep-3.8.patch ) src_prepare() { diff --git a/sys-devel/libtool/libtool-2.4.7.ebuild b/sys-devel/libtool/libtool-2.4.7.ebuild index 7b2a962644b8..8f3e8b1e3397 100644 --- a/sys-devel/libtool/libtool-2.4.7.ebuild +++ b/sys-devel/libtool/libtool-2.4.7.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -15,7 +15,7 @@ if [[ ${PV} == *9999 ]] ; then inherit git-r3 else SRC_URI="mirror://gnu/${PN}/${P}.tar.xz" - 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" + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi DESCRIPTION="A shared library tool for developers" @@ -40,7 +40,6 @@ PATCHES=( # bug #581314 "${FILESDIR}"/${PN}-2.4.6-ppc64le.patch - "${FILESDIR}"/${PN}-2.4.6-mint.patch "${FILESDIR}"/${PN}-2.2.6a-darwin-module-bundle.patch "${FILESDIR}"/${PN}-2.4.6-darwin-use-linux-version.patch ) diff --git a/sys-devel/libtool/libtool-9999.ebuild b/sys-devel/libtool/libtool-9999.ebuild index ae3d351ad479..a27b9abcb010 100644 --- a/sys-devel/libtool/libtool-9999.ebuild +++ b/sys-devel/libtool/libtool-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -15,7 +15,7 @@ if [[ ${PV} == *9999 ]] ; then inherit git-r3 else SRC_URI="mirror://gnu/${PN}/${P}.tar.xz" - 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" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi DESCRIPTION="A shared library tool for developers" @@ -30,7 +30,8 @@ RDEPEND=" sys-devel/gnuconfig >=sys-devel/autoconf-2.69:* >=sys-devel/automake-1.13:* - >=dev-libs/libltdl-2.4.7" + >=dev-libs/libltdl-2.4.7 +" DEPEND="${RDEPEND}" [[ ${PV} == *9999 ]] && BDEPEND="sys-apps/help2man" @@ -40,9 +41,9 @@ PATCHES=( # bug #581314 "${FILESDIR}"/${PN}-2.4.6-ppc64le.patch - "${FILESDIR}"/${PN}-2.4.6-mint.patch "${FILESDIR}"/${PN}-2.2.6a-darwin-module-bundle.patch "${FILESDIR}"/${PN}-2.4.6-darwin-use-linux-version.patch + "${FILESDIR}"/${PN}-2.4.7-grep-3.8.patch ) src_prepare() { diff --git a/sys-devel/lld-toolchain-symlinks/lld-toolchain-symlinks-16-r2.ebuild b/sys-devel/lld-toolchain-symlinks/lld-toolchain-symlinks-16-r2.ebuild index 75dc4a1de3c4..062d273129c7 100644 --- a/sys-devel/lld-toolchain-symlinks/lld-toolchain-symlinks-16-r2.ebuild +++ b/sys-devel/lld-toolchain-symlinks/lld-toolchain-symlinks-16-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 2022 Gentoo Authors +# Copyright 2022-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -12,8 +12,7 @@ S=${WORKDIR} LICENSE="public-domain" SLOT="${PV}" -KEYWORDS="" -PROPERTIES="live" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86" IUSE="multilib-symlinks +native-symlinks" RDEPEND=" diff --git a/sys-devel/lld/Manifest b/sys-devel/lld/Manifest index 4037ff77248d..d616caaf795e 100644 --- a/sys-devel/lld/Manifest +++ b/sys-devel/lld/Manifest @@ -2,6 +2,9 @@ DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6 DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78af36b0826a1dfd9a337992499bf701e33149665bfc47d5e14978e38f342559629a559f8b2ce328705ba34fdf6830f5ae9721a5 SHA512 4836d3603f32e8e54434cbfa8ef33d9d473ac5dc20ebf9c67132653c73f4524931abd1084655eaee5f20bcfcb91bcc4bbc5c4a0b603ad0c9029c556e14dc4c52 DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df SHA512 fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2 -DIST llvm-project-46d5a57801bc37e5ebb1a4d6b2acc0fa99c01e8d.tar.gz 180436731 BLAKE2B 51c30c3f11dd55a225b8ebe4ded752ce9e8eb58751e7458c29901dbdd3673f94892d337d111d696e779e3f7ef0bca6c7d79709e2072a4bf3a001d8813125d571 SHA512 ebbe0f8becac39d63433dcc3de474c40f1215fc8faab94fa2ba869d28e66b27e4fe088377bd7ae64575a6d7b07017b88bf92e5488a3185a753e647d8da352bbf -DIST llvm-project-6dc85bd3fde7df2999fda07e9e9f2e83d52c6125.tar.gz 175208511 BLAKE2B cf87cf7e9bf7c74aab8ccda0f153369cb81798047fdd48025c3c7030857b128babbaafb667385a5c8e9916e16038b14fee39f1623d329471e73c39c2f2d7bbfa SHA512 e6dc0cacd6c079be8a00364e4c244782d764d9a8d514d65f9078427cb4a0c1663ff88761bfbc1e955a1a990451439110497c2cb7af7f56b2c91f2e9db4389894 -DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f +DIST llvm-project-16.0.3.src.tar.xz 117998136 BLAKE2B 6117586a117c30515e9a5623ab91d29ba65d33c8041274de0ecdbce08ae4fe1c8c3b120db9ca625f42fdbb2301537b4ffe8f7add701c178282be4f583fa0c8ca SHA512 2eb5eca1cbee92a499d7fba5729b61f31186353bc0545b17eefa300cf2b27c8d9a2f307443b2c1c9fe1b0ba412abf5143fdd4d25aaeb33d975a9a834221d7602 +DIST llvm-project-16.0.3.src.tar.xz.sig 566 BLAKE2B bbd96268b006fecffd7402452ae7559bd2ea42c7b771999f58893a48d66b1b056b476a7022c70e2ab8f11dba8318ccc141f97a05ece3b9ed3b4405a6890b0c3a SHA512 cdd5e1c2a252ba58f9b7f8687d6cf9a330c188988707bd72f4632a8158a2db9ac180b3936da99b87e7e99886c39cb8517ebbb04b7d1be198e76964e31ec8dc58 +DIST llvm-project-16.0.4.src.tar.xz 117996332 BLAKE2B 2ea3ef25290ce6180d271e42fbf5e02da973a21e3929c1ac8d1e3e7b268d39db97611e15654ca7e6527add24542d0eed0ee2b1b9d85dfd0ba661e55356bac5d3 SHA512 860bcb999005f55bed25691304983d7bf707f8e3246000595b412b9e88f4a1614be0adb43bbff9c30f49b969373fa0becab02a56ac37915a5f83c52ca8ea3f95 +DIST llvm-project-16.0.4.src.tar.xz.sig 566 BLAKE2B 43cb2147f12f98f864797158e8efcfed9c6780fae3b5c71c0f1aea19a4131ee91c36bdf5b10e44f478f2370c8d22a9038038ecd607f25a95f2d3e33628eb9ac0 SHA512 c902d1b652e6e144fcf74f550539f56665475b6bdf673ba5bf2f1731c3bb8f5717ed56433d488c54bbf2f429b432da84e0bfb4b5fb5f2b7fa208b4f24f682be7 +DIST llvm-project-a2684acfb61d40f441e240035d7f1ba50da637c8.tar.gz 184900914 BLAKE2B fb1f836738415a640bc84283722f6a7355a06bc8ac05b544dd4ad4ac9552dcf70040b82b0493c5b4485b28610412279ec0adcf467e71915167aa7d010c08216e SHA512 c08ff8abc166399e692d3166ccf65eb4b647893cba8ffc10bcda815bc914a944855bac036d6349f6d820a6ff43d5417170e6ff8620d97a2a144a0898e95d09e3 +DIST llvm-project-abbb22cc0c9c33dedb8d53c2bd3e703f92baace7.tar.gz 183193919 BLAKE2B 75c63d39918f7ec0faca0b1d03ba17dbd7d39a6f1d3a031dcb005ae1729933d8481f0bd745ec029ab21779525b2ddaf2989eaca2aed2b0e9b60c50ef71c7fc11 SHA512 f0c1b6fe2e087db202d32de05613b7570bd9a82dfef2e464014c9d4c9ba02c20d423cb783aa40ce5e9c9e074288efb2e5b6d70d55913bd285108e747400f55e7 diff --git a/sys-devel/lld/lld-15.0.7.ebuild b/sys-devel/lld/lld-15.0.7.ebuild index 7bccf83c3662..9f1faebcbbbf 100644 --- a/sys-devel/lld/lld-15.0.7.ebuild +++ b/sys-devel/lld/lld-15.0.7.ebuild @@ -4,7 +4,7 @@ EAPI=8 PYTHON_COMPAT=( python3_{9..11} ) -inherit cmake flag-o-matic llvm llvm.org python-any-r1 +inherit cmake flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs DESCRIPTION="The LLVM linker (link editor)" HOMEPAGE="https://llvm.org/" @@ -24,6 +24,7 @@ RDEPEND=" !sys-devel/lld:0 " BDEPEND=" + sys-devel/llvm:${LLVM_MAJOR} test? ( >=dev-util/cmake-3.16 $(python_gen_any_dep ">=dev-python/lit-${PV}[\${PYTHON_USEDEP}]") @@ -69,12 +70,18 @@ src_configure() { -DLLVM_INCLUDE_TESTS=$(usex test) -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" ) + use test && mycmakeargs+=( -DLLVM_BUILD_TESTS=ON -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" -DLLVM_LIT_ARGS="$(get_lit_flags)" -DPython3_EXECUTABLE="${PYTHON}" ) + + tc-is-cross-compiler && mycmakeargs+=( + -DLLVM_TABLEGEN_EXE="${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-tblgen" + ) + cmake_src_configure } diff --git a/sys-devel/lld/lld-16.0.0_pre20230127.ebuild b/sys-devel/lld/lld-16.0.3.ebuild index a540e3ab0cb3..7ddfd8f8a755 100644 --- a/sys-devel/lld/lld-16.0.0_pre20230127.ebuild +++ b/sys-devel/lld/lld-16.0.3.ebuild @@ -4,14 +4,14 @@ EAPI=8 PYTHON_COMPAT=( python3_{9..11} ) -inherit cmake flag-o-matic llvm llvm.org python-any-r1 +inherit cmake flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs DESCRIPTION="The LLVM linker (link editor)" HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" SLOT="${LLVM_MAJOR}/${LLVM_SOABI}" -KEYWORDS="" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86" IUSE="debug test zstd" RESTRICT="!test? ( test )" @@ -25,6 +25,7 @@ RDEPEND=" !sys-devel/lld:0 " BDEPEND=" + sys-devel/llvm:${LLVM_MAJOR} test? ( >=dev-util/cmake-3.16 $(python_gen_any_dep ">=dev-python/lit-${PV}[\${PYTHON_USEDEP}]") @@ -69,11 +70,17 @@ src_configure() { -DBUILD_SHARED_LIBS=ON -DLLVM_INCLUDE_TESTS=$(usex test) ) + use test && mycmakeargs+=( -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" -DLLVM_LIT_ARGS="$(get_lit_flags)" -DPython3_EXECUTABLE="${PYTHON}" ) + + tc-is-cross-compiler && mycmakeargs+=( + -DLLVM_TABLEGEN_EXE="${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-tblgen" + ) + cmake_src_configure } diff --git a/sys-devel/lld/lld-16.0.0.9999.ebuild b/sys-devel/lld/lld-16.0.4.ebuild index a540e3ab0cb3..7ddfd8f8a755 100644 --- a/sys-devel/lld/lld-16.0.0.9999.ebuild +++ b/sys-devel/lld/lld-16.0.4.ebuild @@ -4,14 +4,14 @@ EAPI=8 PYTHON_COMPAT=( python3_{9..11} ) -inherit cmake flag-o-matic llvm llvm.org python-any-r1 +inherit cmake flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs DESCRIPTION="The LLVM linker (link editor)" HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" SLOT="${LLVM_MAJOR}/${LLVM_SOABI}" -KEYWORDS="" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86" IUSE="debug test zstd" RESTRICT="!test? ( test )" @@ -25,6 +25,7 @@ RDEPEND=" !sys-devel/lld:0 " BDEPEND=" + sys-devel/llvm:${LLVM_MAJOR} test? ( >=dev-util/cmake-3.16 $(python_gen_any_dep ">=dev-python/lit-${PV}[\${PYTHON_USEDEP}]") @@ -69,11 +70,17 @@ src_configure() { -DBUILD_SHARED_LIBS=ON -DLLVM_INCLUDE_TESTS=$(usex test) ) + use test && mycmakeargs+=( -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" -DLLVM_LIT_ARGS="$(get_lit_flags)" -DPython3_EXECUTABLE="${PYTHON}" ) + + tc-is-cross-compiler && mycmakeargs+=( + -DLLVM_TABLEGEN_EXE="${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-tblgen" + ) + cmake_src_configure } diff --git a/sys-devel/lld/lld-16.0.0_pre20230107.ebuild b/sys-devel/lld/lld-16.0.5.9999.ebuild index a540e3ab0cb3..d22c1fb13951 100644 --- a/sys-devel/lld/lld-16.0.0_pre20230107.ebuild +++ b/sys-devel/lld/lld-16.0.5.9999.ebuild @@ -4,7 +4,7 @@ EAPI=8 PYTHON_COMPAT=( python3_{9..11} ) -inherit cmake flag-o-matic llvm llvm.org python-any-r1 +inherit cmake flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs DESCRIPTION="The LLVM linker (link editor)" HOMEPAGE="https://llvm.org/" @@ -25,6 +25,7 @@ RDEPEND=" !sys-devel/lld:0 " BDEPEND=" + sys-devel/llvm:${LLVM_MAJOR} test? ( >=dev-util/cmake-3.16 $(python_gen_any_dep ">=dev-python/lit-${PV}[\${PYTHON_USEDEP}]") @@ -69,11 +70,17 @@ src_configure() { -DBUILD_SHARED_LIBS=ON -DLLVM_INCLUDE_TESTS=$(usex test) ) + use test && mycmakeargs+=( -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" -DLLVM_LIT_ARGS="$(get_lit_flags)" -DPython3_EXECUTABLE="${PYTHON}" ) + + tc-is-cross-compiler && mycmakeargs+=( + -DLLVM_TABLEGEN_EXE="${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-tblgen" + ) + cmake_src_configure } diff --git a/sys-devel/lld/lld-17.0.0.9999.ebuild b/sys-devel/lld/lld-17.0.0.9999.ebuild index a540e3ab0cb3..5d38213eefc3 100644 --- a/sys-devel/lld/lld-17.0.0.9999.ebuild +++ b/sys-devel/lld/lld-17.0.0.9999.ebuild @@ -4,7 +4,7 @@ EAPI=8 PYTHON_COMPAT=( python3_{9..11} ) -inherit cmake flag-o-matic llvm llvm.org python-any-r1 +inherit cmake flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs DESCRIPTION="The LLVM linker (link editor)" HOMEPAGE="https://llvm.org/" @@ -12,11 +12,11 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" SLOT="${LLVM_MAJOR}/${LLVM_SOABI}" KEYWORDS="" -IUSE="debug test zstd" +IUSE="+debug test zstd" RESTRICT="!test? ( test )" DEPEND=" - ~sys-devel/llvm-${PV}[zstd=] + ~sys-devel/llvm-${PV}[debug=,zstd=] sys-libs/zlib:= zstd? ( app-arch/zstd:= ) " @@ -25,6 +25,7 @@ RDEPEND=" !sys-devel/lld:0 " BDEPEND=" + sys-devel/llvm:${LLVM_MAJOR} test? ( >=dev-util/cmake-3.16 $(python_gen_any_dep ">=dev-python/lit-${PV}[\${PYTHON_USEDEP}]") @@ -35,7 +36,6 @@ PDEPEND=" " LLVM_COMPONENTS=( lld cmake libunwind/include/mach-o ) -LLVM_TEST_COMPONENTS=( llvm/utils third-party ) llvm.org_set_globals python_check_deps() { @@ -69,11 +69,17 @@ src_configure() { -DBUILD_SHARED_LIBS=ON -DLLVM_INCLUDE_TESTS=$(usex test) ) + use test && mycmakeargs+=( -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" -DLLVM_LIT_ARGS="$(get_lit_flags)" -DPython3_EXECUTABLE="${PYTHON}" ) + + tc-is-cross-compiler && mycmakeargs+=( + -DLLVM_TABLEGEN_EXE="${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-tblgen" + ) + cmake_src_configure } diff --git a/sys-devel/lld/lld-13.0.1-r1.ebuild b/sys-devel/lld/lld-17.0.0_pre20230520.ebuild index 5712cb6ffe16..5d38213eefc3 100644 --- a/sys-devel/lld/lld-13.0.1-r1.ebuild +++ b/sys-devel/lld/lld-17.0.0_pre20230520.ebuild @@ -3,34 +3,39 @@ EAPI=8 -PYTHON_COMPAT=( python3_{9..10} ) -inherit cmake flag-o-matic llvm llvm.org python-any-r1 +PYTHON_COMPAT=( python3_{9..11} ) +inherit cmake flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs DESCRIPTION="The LLVM linker (link editor)" HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" SLOT="${LLVM_MAJOR}/${LLVM_SOABI}" -KEYWORDS="amd64 arm arm64 ~ppc ppc64 ~riscv x86" -IUSE="debug test" +KEYWORDS="" +IUSE="+debug test zstd" RESTRICT="!test? ( test )" DEPEND=" - ~sys-devel/llvm-${PV} + ~sys-devel/llvm-${PV}[debug=,zstd=] + sys-libs/zlib:= + zstd? ( app-arch/zstd:= ) " RDEPEND=" ${DEPEND} !sys-devel/lld:0 " BDEPEND=" + sys-devel/llvm:${LLVM_MAJOR} test? ( >=dev-util/cmake-3.16 $(python_gen_any_dep ">=dev-python/lit-${PV}[\${PYTHON_USEDEP}]") ) " +PDEPEND=" + >=sys-devel/lld-toolchain-symlinks-16-r2:${LLVM_MAJOR} +" -LLVM_COMPONENTS=( lld libunwind/include/mach-o ) -LLVM_TEST_COMPONENTS=( llvm/utils/{lit,unittest} ) +LLVM_COMPONENTS=( lld cmake libunwind/include/mach-o ) llvm.org_set_globals python_check_deps() { @@ -63,14 +68,18 @@ src_configure() { -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}" -DBUILD_SHARED_LIBS=ON -DLLVM_INCLUDE_TESTS=$(usex test) - -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" ) + use test && mycmakeargs+=( - -DLLVM_BUILD_TESTS=ON -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" -DLLVM_LIT_ARGS="$(get_lit_flags)" -DPython3_EXECUTABLE="${PYTHON}" ) + + tc-is-cross-compiler && mycmakeargs+=( + -DLLVM_TABLEGEN_EXE="${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-tblgen" + ) + cmake_src_configure } diff --git a/sys-devel/lld/lld-17.0.0_pre20230526.ebuild b/sys-devel/lld/lld-17.0.0_pre20230526.ebuild new file mode 100644 index 000000000000..5d38213eefc3 --- /dev/null +++ b/sys-devel/lld/lld-17.0.0_pre20230526.ebuild @@ -0,0 +1,89 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..11} ) +inherit cmake flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs + +DESCRIPTION="The LLVM linker (link editor)" +HOMEPAGE="https://llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" +SLOT="${LLVM_MAJOR}/${LLVM_SOABI}" +KEYWORDS="" +IUSE="+debug test zstd" +RESTRICT="!test? ( test )" + +DEPEND=" + ~sys-devel/llvm-${PV}[debug=,zstd=] + sys-libs/zlib:= + zstd? ( app-arch/zstd:= ) +" +RDEPEND=" + ${DEPEND} + !sys-devel/lld:0 +" +BDEPEND=" + sys-devel/llvm:${LLVM_MAJOR} + test? ( + >=dev-util/cmake-3.16 + $(python_gen_any_dep ">=dev-python/lit-${PV}[\${PYTHON_USEDEP}]") + ) +" +PDEPEND=" + >=sys-devel/lld-toolchain-symlinks-16-r2:${LLVM_MAJOR} +" + +LLVM_COMPONENTS=( lld cmake libunwind/include/mach-o ) +llvm.org_set_globals + +python_check_deps() { + python_has_version ">=dev-python/lit-${PV}[${PYTHON_USEDEP}]" +} + +pkg_setup() { + LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup + use test && python-any-r1_pkg_setup +} + +src_unpack() { + llvm.org_src_unpack + + # Directory ${WORKDIR}/llvm does not exist with USE="-test", + # but LLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" is set below, + # and ${LLVM_MAIN_SRC_DIR}/../libunwind/include is used by build system + # (lld/MachO/CMakeLists.txt) and is expected to be resolvable + # to existent directory ${WORKDIR}/libunwind/include. + mkdir -p "${WORKDIR}/llvm" || die +} + +src_configure() { + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + + use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152 + + local mycmakeargs=( + -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}" + -DBUILD_SHARED_LIBS=ON + -DLLVM_INCLUDE_TESTS=$(usex test) + ) + + use test && mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags)" + -DPython3_EXECUTABLE="${PYTHON}" + ) + + tc-is-cross-compiler && mycmakeargs+=( + -DLLVM_TABLEGEN_EXE="${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-tblgen" + ) + + cmake_src_configure +} + +src_test() { + local -x LIT_PRESERVES_TMP=1 + cmake_build check-lld +} diff --git a/sys-devel/llvm-common/Manifest b/sys-devel/llvm-common/Manifest index 4037ff77248d..d616caaf795e 100644 --- a/sys-devel/llvm-common/Manifest +++ b/sys-devel/llvm-common/Manifest @@ -2,6 +2,9 @@ DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6 DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78af36b0826a1dfd9a337992499bf701e33149665bfc47d5e14978e38f342559629a559f8b2ce328705ba34fdf6830f5ae9721a5 SHA512 4836d3603f32e8e54434cbfa8ef33d9d473ac5dc20ebf9c67132653c73f4524931abd1084655eaee5f20bcfcb91bcc4bbc5c4a0b603ad0c9029c556e14dc4c52 DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df SHA512 fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2 -DIST llvm-project-46d5a57801bc37e5ebb1a4d6b2acc0fa99c01e8d.tar.gz 180436731 BLAKE2B 51c30c3f11dd55a225b8ebe4ded752ce9e8eb58751e7458c29901dbdd3673f94892d337d111d696e779e3f7ef0bca6c7d79709e2072a4bf3a001d8813125d571 SHA512 ebbe0f8becac39d63433dcc3de474c40f1215fc8faab94fa2ba869d28e66b27e4fe088377bd7ae64575a6d7b07017b88bf92e5488a3185a753e647d8da352bbf -DIST llvm-project-6dc85bd3fde7df2999fda07e9e9f2e83d52c6125.tar.gz 175208511 BLAKE2B cf87cf7e9bf7c74aab8ccda0f153369cb81798047fdd48025c3c7030857b128babbaafb667385a5c8e9916e16038b14fee39f1623d329471e73c39c2f2d7bbfa SHA512 e6dc0cacd6c079be8a00364e4c244782d764d9a8d514d65f9078427cb4a0c1663ff88761bfbc1e955a1a990451439110497c2cb7af7f56b2c91f2e9db4389894 -DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f +DIST llvm-project-16.0.3.src.tar.xz 117998136 BLAKE2B 6117586a117c30515e9a5623ab91d29ba65d33c8041274de0ecdbce08ae4fe1c8c3b120db9ca625f42fdbb2301537b4ffe8f7add701c178282be4f583fa0c8ca SHA512 2eb5eca1cbee92a499d7fba5729b61f31186353bc0545b17eefa300cf2b27c8d9a2f307443b2c1c9fe1b0ba412abf5143fdd4d25aaeb33d975a9a834221d7602 +DIST llvm-project-16.0.3.src.tar.xz.sig 566 BLAKE2B bbd96268b006fecffd7402452ae7559bd2ea42c7b771999f58893a48d66b1b056b476a7022c70e2ab8f11dba8318ccc141f97a05ece3b9ed3b4405a6890b0c3a SHA512 cdd5e1c2a252ba58f9b7f8687d6cf9a330c188988707bd72f4632a8158a2db9ac180b3936da99b87e7e99886c39cb8517ebbb04b7d1be198e76964e31ec8dc58 +DIST llvm-project-16.0.4.src.tar.xz 117996332 BLAKE2B 2ea3ef25290ce6180d271e42fbf5e02da973a21e3929c1ac8d1e3e7b268d39db97611e15654ca7e6527add24542d0eed0ee2b1b9d85dfd0ba661e55356bac5d3 SHA512 860bcb999005f55bed25691304983d7bf707f8e3246000595b412b9e88f4a1614be0adb43bbff9c30f49b969373fa0becab02a56ac37915a5f83c52ca8ea3f95 +DIST llvm-project-16.0.4.src.tar.xz.sig 566 BLAKE2B 43cb2147f12f98f864797158e8efcfed9c6780fae3b5c71c0f1aea19a4131ee91c36bdf5b10e44f478f2370c8d22a9038038ecd607f25a95f2d3e33628eb9ac0 SHA512 c902d1b652e6e144fcf74f550539f56665475b6bdf673ba5bf2f1731c3bb8f5717ed56433d488c54bbf2f429b432da84e0bfb4b5fb5f2b7fa208b4f24f682be7 +DIST llvm-project-a2684acfb61d40f441e240035d7f1ba50da637c8.tar.gz 184900914 BLAKE2B fb1f836738415a640bc84283722f6a7355a06bc8ac05b544dd4ad4ac9552dcf70040b82b0493c5b4485b28610412279ec0adcf467e71915167aa7d010c08216e SHA512 c08ff8abc166399e692d3166ccf65eb4b647893cba8ffc10bcda815bc914a944855bac036d6349f6d820a6ff43d5417170e6ff8620d97a2a144a0898e95d09e3 +DIST llvm-project-abbb22cc0c9c33dedb8d53c2bd3e703f92baace7.tar.gz 183193919 BLAKE2B 75c63d39918f7ec0faca0b1d03ba17dbd7d39a6f1d3a031dcb005ae1729933d8481f0bd745ec029ab21779525b2ddaf2989eaca2aed2b0e9b60c50ef71c7fc11 SHA512 f0c1b6fe2e087db202d32de05613b7570bd9a82dfef2e464014c9d4c9ba02c20d423cb783aa40ce5e9c9e074288efb2e5b6d70d55913bd285108e747400f55e7 diff --git a/sys-devel/llvm-common/llvm-common-13.0.1.ebuild b/sys-devel/llvm-common/llvm-common-16.0.3.ebuild index c8abb7bab805..4dd4fe395fe7 100644 --- a/sys-devel/llvm-common/llvm-common-13.0.1.ebuild +++ b/sys-devel/llvm-common/llvm-common-16.0.3.ebuild @@ -1,7 +1,7 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 inherit llvm.org @@ -10,10 +10,11 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" SLOT="0" -KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~ppc-macos ~x64-macos" -IUSE="" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~ppc-macos ~x64-macos" -RDEPEND="!sys-devel/llvm:0" +RDEPEND=" + !sys-devel/llvm:0 +" LLVM_COMPONENTS=( llvm/utils/vim ) llvm.org_set_globals diff --git a/sys-devel/llvm-common/llvm-common-16.0.4.ebuild b/sys-devel/llvm-common/llvm-common-16.0.4.ebuild new file mode 100644 index 000000000000..4dd4fe395fe7 --- /dev/null +++ b/sys-devel/llvm-common/llvm-common-16.0.4.ebuild @@ -0,0 +1,28 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit llvm.org + +DESCRIPTION="Common files shared between multiple slots of LLVM" +HOMEPAGE="https://llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~ppc-macos ~x64-macos" + +RDEPEND=" + !sys-devel/llvm:0 +" + +LLVM_COMPONENTS=( llvm/utils/vim ) +llvm.org_set_globals + +src_install() { + insinto /usr/share/vim/vimfiles + doins -r */ + # some users may find it useful + newdoc README README.vim + dodoc vimrc +} diff --git a/sys-devel/llvm-common/llvm-common-16.0.0_pre20230127.ebuild b/sys-devel/llvm-common/llvm-common-16.0.5.9999.ebuild index ce5f03ca34a5..ce5f03ca34a5 100644 --- a/sys-devel/llvm-common/llvm-common-16.0.0_pre20230127.ebuild +++ b/sys-devel/llvm-common/llvm-common-16.0.5.9999.ebuild diff --git a/sys-devel/llvm-common/llvm-common-16.0.0_pre20230107.ebuild b/sys-devel/llvm-common/llvm-common-17.0.0_pre20230520.ebuild index 54af5bde6db7..ce5f03ca34a5 100644 --- a/sys-devel/llvm-common/llvm-common-16.0.0_pre20230107.ebuild +++ b/sys-devel/llvm-common/llvm-common-17.0.0_pre20230520.ebuild @@ -10,7 +10,7 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" SLOT="0" -KEYWORDS="~loong" +KEYWORDS="" RDEPEND=" !sys-devel/llvm:0 diff --git a/sys-devel/llvm-common/llvm-common-16.0.0.9999.ebuild b/sys-devel/llvm-common/llvm-common-17.0.0_pre20230526.ebuild index df37476f6fbc..ce5f03ca34a5 100644 --- a/sys-devel/llvm-common/llvm-common-16.0.0.9999.ebuild +++ b/sys-devel/llvm-common/llvm-common-17.0.0_pre20230526.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 diff --git a/sys-devel/llvm-roc/Manifest b/sys-devel/llvm-roc/Manifest deleted file mode 100644 index b9b116396d77..000000000000 --- a/sys-devel/llvm-roc/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST llvm-rocm-ocl-5.0.2.tar.gz 150281451 BLAKE2B e4363266e05e13af761dd6f440dbfc30905f219e428fa3b2595800ba0c80c97cd7e2615d68acd9aea4fc66454ee8a3ff7a52a60d3aed4e93af5007050277e5fe SHA512 9be9f1a0ad1a0089aa27858174ce37c7a02902b6dedc338382f42ed0567823cc4bb11b68c130470590c16d4d92ab2735a06c27d248237ffa2d394253328f6705 diff --git a/sys-devel/llvm-roc/files/llvm-roc-4.0.0-remove-isystem-usr-include.patch b/sys-devel/llvm-roc/files/llvm-roc-4.0.0-remove-isystem-usr-include.patch deleted file mode 100644 index f14ec4ac0db2..000000000000 --- a/sys-devel/llvm-roc/files/llvm-roc-4.0.0-remove-isystem-usr-include.patch +++ /dev/null @@ -1,29 +0,0 @@ -Author: Wilfried (justxi) Holzke - -Adopted from https://github.com/justxi/rocm/blob/master/sys-devel/llvm-roc/files/llvm-roc-4.0.0-remove-isystem-usr-include.patch - -Index: llvm-project-rocm-4.0.0/clang/lib/Driver/ToolChains/AMDGPU.cpp -=================================================================== ---- llvm-project-rocm-4.0.0.orig/clang/lib/Driver/ToolChains/AMDGPU.cpp -+++ llvm-project-rocm-4.0.0/clang/lib/Driver/ToolChains/AMDGPU.cpp -@@ -326,11 +326,6 @@ void RocmInstallationDetector::AddHIPInc - // - // ROCm 3.5 does not fully support the wrapper headers. Therefore it needs - // a workaround. -- SmallString<128> P(D.ResourceDir); -- if (UsesRuntimeWrapper) -- llvm::sys::path::append(P, "include", "cuda_wrappers"); -- CC1Args.push_back("-internal-isystem"); -- CC1Args.push_back(DriverArgs.MakeArgString(P)); - } - - if (DriverArgs.hasArg(options::OPT_nogpuinc)) -@@ -341,8 +336,6 @@ void RocmInstallationDetector::AddHIPInc - return; - } - -- CC1Args.push_back("-internal-isystem"); -- CC1Args.push_back(DriverArgs.MakeArgString(getIncludePath())); - if (UsesRuntimeWrapper) - CC1Args.append({"-include", "__clang_hip_runtime_wrapper.h"}); - } diff --git a/sys-devel/llvm-roc/files/llvm-roc-4.2.0-current_pos.patch b/sys-devel/llvm-roc/files/llvm-roc-4.2.0-current_pos.patch deleted file mode 100644 index 0f3398951b07..000000000000 --- a/sys-devel/llvm-roc/files/llvm-roc-4.2.0-current_pos.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff -Naur a/include/llvm/Support/raw_ostream.h b/include/llvm/Support/raw_ostream.h ---- a/include/llvm/Support/raw_ostream.h 2021-05-22 19:56:44.779955686 +0200 -+++ b/include/llvm/Support/raw_ostream.h 2021-05-22 20:00:49.449954752 +0200 -@@ -610,9 +610,7 @@ - /// See raw_ostream::write_impl. - void write_impl(const char *Ptr, size_t Size) override; - -- /// Return the current position within the stream, not counting the bytes -- /// currently in the buffer. -- uint64_t current_pos() const override { return OS.size(); } -+ uint64_t current_pos() const override; - - public: - explicit raw_string_ostream(std::string &O) : OS(O) { -diff -Naur a/lib/Support/raw_ostream.cpp b/lib/Support/raw_ostream.cpp ---- a/lib/Support/raw_ostream.cpp 2021-05-22 19:59:05.651955148 +0200 -+++ b/lib/Support/raw_ostream.cpp 2021-05-22 20:01:22.929954625 +0200 -@@ -938,6 +938,10 @@ - // raw_string_ostream - //===----------------------------------------------------------------------===// - -+/// Return the current position within the stream, not counting the bytes -+/// currently in the buffer. -+uint64_t raw_string_ostream::current_pos() const { return OS.size(); } -+ - raw_string_ostream::~raw_string_ostream() { - flush(); - } diff --git a/sys-devel/llvm-roc/files/llvm-roc-5.0.0-add_GNU-stack.patch b/sys-devel/llvm-roc/files/llvm-roc-5.0.0-add_GNU-stack.patch deleted file mode 100644 index f57989c8c8a3..000000000000 --- a/sys-devel/llvm-roc/files/llvm-roc-5.0.0-add_GNU-stack.patch +++ /dev/null @@ -1,14 +0,0 @@ -Add .note.GNU-stack to mitigate QA notice according to -https://wiki.gentoo.org/wiki/Hardened/GNU_stack_quickstart -=================================================================== ---- llvm-project-rocm-5.0.0.orig/compiler-rt/lib/orc/elfnix_tls.x86-64.S -+++ llvm-project-rocm-5.0.0/compiler-rt/lib/orc/elfnix_tls.x86-64.S -@@ -61,4 +61,8 @@ ___orc_rt_elfnix_tls_get_addr: - popq %rbp - ret - -+#if defined(__linux__) && defined(__ELF__) -+ .section .note.GNU-stack,"",%progbits -+#endif -+ - #endif // defined(__x86_64__) diff --git a/sys-devel/llvm-roc/files/llvm-roc-5.0.0-hip-location.patch b/sys-devel/llvm-roc/files/llvm-roc-5.0.0-hip-location.patch deleted file mode 100644 index 614a16d1e810..000000000000 --- a/sys-devel/llvm-roc/files/llvm-roc-5.0.0-hip-location.patch +++ /dev/null @@ -1,206 +0,0 @@ -replace hardcoded hip finder with Gentoo paths. - -It is not necessary to check HIP runtime each time. - -Author: Benda Xu <heroxbd@gentoo.org> -Author: Yiyang Wu <xgreenlandforwyy@gmail.com> - -Index: llvm-project-rocm-5.0.1/clang/lib/Driver/ToolChains/AMDGPU.cpp -=================================================================== ---- llvm-project-rocm-5.0.1.orig/clang/lib/Driver/ToolChains/AMDGPU.cpp -+++ llvm-project-rocm-5.0.1/clang/lib/Driver/ToolChains/AMDGPU.cpp -@@ -169,139 +169,8 @@ bool RocmInstallationDetector::parseHIPV - /// cached and populated only once. - const SmallVectorImpl<RocmInstallationDetector::Candidate> & - RocmInstallationDetector::getInstallationPathCandidates() { -- -- // Return the cached candidate list if it has already been populated. -- if (!ROCmSearchDirs.empty()) -- return ROCmSearchDirs; -- -- auto DoPrintROCmSearchDirs = [&]() { -- if (PrintROCmSearchDirs) -- for (auto Cand : ROCmSearchDirs) { -- llvm::errs() << "ROCm installation search path"; -- if (Cand.isSPACK()) -- llvm::errs() << " (Spack " << Cand.SPACKReleaseStr << ")"; -- llvm::errs() << ": " << Cand.Path << '\n'; -- } -- }; -- -- // For candidate specified by --rocm-path we do not do strict check, i.e., -- // checking existence of HIP version file and device library files. -- if (!RocmPathArg.empty()) { -- ROCmSearchDirs.emplace_back(RocmPathArg.str()); -- DoPrintROCmSearchDirs(); -- return ROCmSearchDirs; -- } else if (const char *RocmPathEnv = ::getenv("ROCM_PATH")) { -- if (!StringRef(RocmPathEnv).empty()) { -- ROCmSearchDirs.emplace_back(RocmPathEnv); -- DoPrintROCmSearchDirs(); -- return ROCmSearchDirs; -- } -- } -- -- // Try to find relative to the compiler binary. -- const char *InstallDir = D.getInstalledDir(); -- -- // Check both a normal Unix prefix position of the clang binary, as well as -- // the Windows-esque layout the ROCm packages use with the host architecture -- // subdirectory of bin. -- auto DeduceROCmPath = [](StringRef ClangPath) { -- // Strip off directory (usually bin) -- StringRef ParentDir = llvm::sys::path::parent_path(ClangPath); -- StringRef ParentName = llvm::sys::path::filename(ParentDir); -- -- // Some builds use bin/{host arch}, so go up again. -- if (ParentName == "bin") { -- ParentDir = llvm::sys::path::parent_path(ParentDir); -- ParentName = llvm::sys::path::filename(ParentDir); -- } -- -- // Detect ROCm packages built with SPACK. -- // clang is installed at -- // <rocm_root>/llvm-amdgpu-<rocm_release_string>-<hash>/bin directory. -- // We only consider the parent directory of llvm-amdgpu package as ROCm -- // installation candidate for SPACK. -- if (ParentName.startswith("llvm-amdgpu-")) { -- auto SPACKPostfix = -- ParentName.drop_front(strlen("llvm-amdgpu-")).split('-'); -- auto SPACKReleaseStr = SPACKPostfix.first; -- if (!SPACKReleaseStr.empty()) { -- ParentDir = llvm::sys::path::parent_path(ParentDir); -- return Candidate(ParentDir.str(), /*StrictChecking=*/true, -- SPACKReleaseStr); -- } -- } -- -- // Some versions of the rocm llvm package install to /opt/rocm/llvm/bin -- // Some versions of the aomp package install to /opt/rocm/aomp/bin -- if (ParentName == "llvm" || ParentName.startswith("aomp")) -- ParentDir = llvm::sys::path::parent_path(ParentDir); -- // Some versions of the aomp package install to /opt/rocm/aomp/bin -- // and it seems ParentDir is already pointing to correct place. -- return Candidate(ParentDir.str(), /*StrictChecking=*/true); -- }; -- -- // Deduce ROCm path by the path used to invoke clang. Do not resolve symbolic -- // link of clang itself. -- ROCmSearchDirs.emplace_back(DeduceROCmPath(InstallDir)); -- -- // Deduce ROCm path by the real path of the invoked clang, resolving symbolic -- // link of clang itself. -- llvm::SmallString<256> RealClangPath; -- llvm::sys::fs::real_path(D.getClangProgramPath(), RealClangPath); -- auto ParentPath = llvm::sys::path::parent_path(RealClangPath); -- if (ParentPath != InstallDir) -- ROCmSearchDirs.emplace_back(DeduceROCmPath(ParentPath)); -- -- // Device library may be installed in clang or resource directory. -- auto ClangRoot = llvm::sys::path::parent_path(InstallDir); -- auto RealClangRoot = llvm::sys::path::parent_path(ParentPath); -- ROCmSearchDirs.emplace_back(ClangRoot.str(), /*StrictChecking=*/true); -- if (RealClangRoot != ClangRoot) -- ROCmSearchDirs.emplace_back(RealClangRoot.str(), /*StrictChecking=*/true); -- ROCmSearchDirs.emplace_back(D.ResourceDir, -- /*StrictChecking=*/true); -- -- ROCmSearchDirs.emplace_back(D.SysRoot + "/opt/rocm", -- /*StrictChecking=*/true); -- -- // Find the latest /opt/rocm-{release} directory. -- std::error_code EC; -- std::string LatestROCm; -- llvm::VersionTuple LatestVer; -- // Get ROCm version from ROCm directory name. -- auto GetROCmVersion = [](StringRef DirName) { -- llvm::VersionTuple V; -- std::string VerStr = DirName.drop_front(strlen("rocm-")).str(); -- // The ROCm directory name follows the format of -- // rocm-{major}.{minor}.{subMinor}[-{build}] -- std::replace(VerStr.begin(), VerStr.end(), '-', '.'); -- V.tryParse(VerStr); -- return V; -- }; -- for (llvm::vfs::directory_iterator -- File = D.getVFS().dir_begin(D.SysRoot + "/opt", EC), -- FileEnd; -- File != FileEnd && !EC; File.increment(EC)) { -- llvm::StringRef FileName = llvm::sys::path::filename(File->path()); -- if (!FileName.startswith("rocm-")) -- continue; -- if (LatestROCm.empty()) { -- LatestROCm = FileName.str(); -- LatestVer = GetROCmVersion(LatestROCm); -- continue; -- } -- auto Ver = GetROCmVersion(FileName); -- if (LatestVer < Ver) { -- LatestROCm = FileName.str(); -- LatestVer = Ver; -- } -- } -- if (!LatestROCm.empty()) -- ROCmSearchDirs.emplace_back(D.SysRoot + "/opt/" + LatestROCm, -- /*StrictChecking=*/true); -- -- DoPrintROCmSearchDirs(); -- return ROCmSearchDirs; -+ ROCmSearchDirs.emplace_back(D.SysRoot + "/usr", /*StrictChecking=*/true); -+ return ROCmSearchDirs; - } - - RocmInstallationDetector::RocmInstallationDetector( -@@ -410,7 +279,7 @@ void RocmInstallationDetector::detectDev - // - ${ROCM_ROOT}/lib/bitcode/* - // so try to detect these layouts. - static constexpr std::array<const char *, 2> SubDirsList[] = { -- {"amdgcn", "bitcode"}, -+ {"lib/amdgcn", "bitcode"}, - {"lib", ""}, - {"lib", "bitcode"}, - }; -@@ -433,42 +302,7 @@ void RocmInstallationDetector::detectDev - } - - void RocmInstallationDetector::detectHIPRuntime() { -- SmallVector<Candidate, 4> HIPSearchDirs; -- if (!HIPPathArg.empty()) -- HIPSearchDirs.emplace_back(HIPPathArg.str(), /*StrictChecking=*/true); -- else -- HIPSearchDirs.append(getInstallationPathCandidates()); -- auto &FS = D.getVFS(); -- -- for (const auto &Candidate : HIPSearchDirs) { -- InstallPath = Candidate.Path; -- if (InstallPath.empty() || !FS.exists(InstallPath)) -- continue; -- // HIP runtime built by SPACK is installed to -- // <rocm_root>/hip-<rocm_release_string>-<hash> directory. -- auto SPACKPath = findSPACKPackage(Candidate, "hip"); -- InstallPath = SPACKPath.empty() ? InstallPath : SPACKPath; -- -- BinPath = InstallPath; -- llvm::sys::path::append(BinPath, "bin"); -- IncludePath = InstallPath; -- llvm::sys::path::append(IncludePath, "include"); -- LibPath = InstallPath; -- llvm::sys::path::append(LibPath, "lib"); -- -- llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> VersionFile = -- FS.getBufferForFile(BinPath + "/.hipVersion"); -- if (!VersionFile && Candidate.StrictChecking) -- continue; -- -- if (HIPVersionArg.empty() && VersionFile) -- if (parseHIPVersionFile((*VersionFile)->getBuffer())) -- continue; -- -- HasHIPRuntime = true; -- return; -- } -- HasHIPRuntime = false; -+ HasHIPRuntime = true; - } - - void RocmInstallationDetector::print(raw_ostream &OS) const { diff --git a/sys-devel/llvm-roc/files/llvm-roc-5.0.0-linkdl.patch b/sys-devel/llvm-roc/files/llvm-roc-5.0.0-linkdl.patch deleted file mode 100644 index 80598c6f990d..000000000000 --- a/sys-devel/llvm-roc/files/llvm-roc-5.0.0-linkdl.patch +++ /dev/null @@ -1,11 +0,0 @@ -LLVMOffloadArch should link libdl to fix undefined symbol 'dlsym' when linking ---- llvm.orig/lib/OffloadArch/offload-arch/CMakeLists.txt -+++ llvm/lib/OffloadArch/offload-arch/CMakeLists.txt -@@ -3,6 +3,7 @@ add_llvm_tool(offload-arch - ${CMAKE_CURRENT_SOURCE_DIR}/offload-arch.cpp - DEPENDS generated-table LLVMOffloadArch - ) -+target_link_libraries(LLVMOffloadArch PRIVATE ${CMAKE_DL_LIBS}) - target_link_libraries(offload-arch PRIVATE LLVMOffloadArch) - - if(CMAKE_HOST_UNIX) diff --git a/sys-devel/llvm-roc/llvm-roc-5.0.2.ebuild b/sys-devel/llvm-roc/llvm-roc-5.0.2.ebuild deleted file mode 100644 index 6dc4f6a23e2c..000000000000 --- a/sys-devel/llvm-roc/llvm-roc-5.0.2.ebuild +++ /dev/null @@ -1,97 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake - -DESCRIPTION="Radeon Open Compute llvm,lld,clang" -HOMEPAGE="https://github.com/RadeonOpenCompute/ROCm/" -SRC_URI="https://github.com/RadeonOpenCompute/llvm-project/archive/rocm-${PV}.tar.gz -> llvm-rocm-ocl-${PV}.tar.gz" - -LICENSE="UoI-NCSA rc BSD public-domain" -SLOT="0" -KEYWORDS="~amd64" -IUSE="debug +runtime" - -RDEPEND=" - dev-libs/libxml2 - sys-libs/zlib - sys-libs/ncurses:=" -DEPEND="${RDEPEND}" - -S="${WORKDIR}/llvm-project-rocm-${PV}/llvm" - -PATCHES=( - "${FILESDIR}/${PN}-4.2.0-current_pos.patch" - "${FILESDIR}/${PN}-5.0.0-linkdl.patch" -) - -CMAKE_BUILD_TYPE=RelWithDebInfo - -src_prepare() { - pushd "${WORKDIR}/llvm-project-rocm-${PV}" || die - eapply "${FILESDIR}/${PN}-4.0.0-remove-isystem-usr-include.patch" - eapply "${FILESDIR}/${PN}-5.0.0-hip-location.patch" - eapply "${FILESDIR}/${PN}-5.0.0-add_GNU-stack.patch" - popd || die - - if [[ -n ${EPREFIX} ]]; then - pushd "${S}"/../clang >/dev/null || die - sed -i -e "s@DEFAULT_SYSROOT \"\"@DEFAULT_SYSROOT \"${EPREFIX}\"@" CMakeLists.txt || die - eend $? - ebegin "Use "${EPREFIX}" as default sysroot" - cd lib/Driver/ToolChains >/dev/null || die - ebegin "Use dynamic linker from ${EPREFIX}" - sed -i -e "/LibDir.*Loader/s@return \"\/\"@return \"${EPREFIX}/\"@" Linux.cpp || die - eend $? - - ebegin "Remove --sysroot call on ld for native toolchain" - sed -i -e "$(grep -n -B1 sysroot= Gnu.cpp | sed -ne '{1s/-.*//;1p}'),+1 d" Gnu.cpp || die - eend $? - popd >/dev/null || die - fi - - # handled by sysroot, don't prefixify here. - sed -e 's:/opt/rocm:/usr/lib/hip:' \ - -i "${S}"/../clang/lib/Driver/ToolChains/AMDGPU.cpp || die - - eapply_user - cmake_src_prepare -} - -src_configure() { - PROJECTS="clang;lld;llvm" - - if usex runtime; then - PROJECTS+=";compiler-rt" - fi - - local mycmakeargs=( - -Wno-dev - -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/roc" - -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=ON - -DLLVM_ENABLE_PROJECTS="${PROJECTS}" - -DLLVM_TARGETS_TO_BUILD="AMDGPU;X86" - -DLLVM_BUILD_DOCS=NO - -DLLVM_ENABLE_BINDINGS=OFF - -DLLVM_ENABLE_OCAMLDOC=OFF - -DLLVM_ENABLE_SPHINX=NO - -DLLVM_ENABLE_DOXYGEN=OFF - -DLLVM_BUILD_UTILS=ON - -DLLVM_VERSION_SUFFIX=roc - -DOCAMLFIND=NO - ) - - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" - - cmake_src_configure -} - -src_install() { - cmake_src_install - cat > "99${PN}" <<-EOF - LDPATH="${EPREFIX}/usr/lib/llvm/roc/lib" - EOF - doenvd "99${PN}" -} diff --git a/sys-devel/llvm-roc/metadata.xml b/sys-devel/llvm-roc/metadata.xml deleted file mode 100644 index e9e51b8f323e..000000000000 --- a/sys-devel/llvm-roc/metadata.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>candrews@gentoo.org</email> - <name>Craig Andrews</name> - </maintainer> - <upstream> - <remote-id type="github">RadeonOpenCompute/llvm-project</remote-id> - </upstream> - <use> - <flag name="runtime">Builds the compiler runtime libraries.</flag> - </use> -</pkgmetadata> diff --git a/sys-devel/llvm-toolchain-symlinks/llvm-toolchain-symlinks-16-r1.ebuild b/sys-devel/llvm-toolchain-symlinks/llvm-toolchain-symlinks-16-r1.ebuild index c24f550dfe79..3d5290db05a7 100644 --- a/sys-devel/llvm-toolchain-symlinks/llvm-toolchain-symlinks-16-r1.ebuild +++ b/sys-devel/llvm-toolchain-symlinks/llvm-toolchain-symlinks-16-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 2022 Gentoo Authors +# Copyright 2022-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -12,7 +12,7 @@ S=${WORKDIR} LICENSE="public-domain" SLOT="${PV}" -KEYWORDS="~loong" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~ppc-macos ~x64-macos" IUSE="multilib-symlinks +native-symlinks" RDEPEND=" diff --git a/sys-devel/llvm/Manifest b/sys-devel/llvm/Manifest index d36dfbea9dcc..ff5880eb5322 100644 --- a/sys-devel/llvm/Manifest +++ b/sys-devel/llvm/Manifest @@ -1,13 +1,18 @@ -DIST llvm-13.0.1-manpages.tar.bz2 202187 BLAKE2B 32a761426dbe4c3c355d30660254305cd88b6d513faee04c78e370cea9d38761108a9be4c4b4ac39b6a74400af1f9d37ffd11ab05acd7340175c8d66845ae7d9 SHA512 9495e1daf588540fdb8b9ee905a9b6be4693bd70b7f42c8e8a0d667242fc24dc853c45918d3bc09d02f0761ad61541bc9749c1498e312da129abdab638a0d572 DIST llvm-14.0.6-manpages.tar.bz2 218186 BLAKE2B 4491296e490936a2d7b518e19a0ff6312b89abeef3fbe5da5d0b93bb2add1088ddf64a0b00ec8846062d19b1ad31e53eadee7ce03c9034aab554e183d1baccf6 SHA512 f8328dc2ec1e8d941d47e583ee31fae7bdcebb3f854b5c8a4a84bd19a79bf5427ad204012c81349bc05a291e41cf48e5129b4578bbd5d4490dd01e1c0b5823bf DIST llvm-15.0.7-manpages.tar.bz2 228425 BLAKE2B 573b030a32407cfe241fb2c8c62bed8e7c54f9daf4b8cffdd2d4e5ca2e40b5ec5ed3724475aedf77119be1a4d9de847a989e933d315e6d94908e407a19c98047 SHA512 86d5eeea2757b0a627c8d2d6e70a3265fc0207085f4e473cdd6e8b624c719625dead23fd1737742a1bea27b1c4631ef3e8e3041a1122a85fcb49859e5bfbee49 -DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01 +DIST llvm-16.0.3-manpages.tar.bz2 245859 BLAKE2B ea98ac1a777bb2fe52a576e7a733030e88debc50dbfceb70f20814fd960da6a56d06986272cb2792c86701961e4e39006e5a3aa105eefb8c59e3b99e528078ec SHA512 6669105c9ac66ec0c21ccc788635935b5133b035b97ff31af049ebb8064fa7d257d54c5d9fda79674aa6037668e3ddfd2a09f716dbfd7cd356b0e193242aa9fc +DIST llvm-16.0.4-manpages.tar.bz2 243154 BLAKE2B 69308e3ec19d750e7249b7c8cd79224c466b879c67dd900e201339486fa7fa4dd6ef9ef5b033b2443b32c3530cc76564fe2856a76f9b466fdab2b5c64148f089 SHA512 2d2b711adbd20a233d0611f81393faa29a2f32f0e64799a9a48185876045023ca1320becd2da110fbcbfce019a38df0d7c13fcaea3770b4fc23aa732eb11321b DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679cb09cc8e00e6a954df195c86c2af4dbf1b68334a405b8dcc45f2e28b5e5e0b7e9d5eb7ba907337027927371b7a3b7784ff8aae7e0 SHA512 8a5ea71c30fc0727cc855dd812bbcb6d5f51c80c98eb3d5b80258d5c5eaab1310edc9d53ae63c2ca827abec68e2912c4b69ef0da351ff883fb30545a61e1d09c +DIST llvm-gentoo-patchset-14.0.6-r4.tar.xz 19360 BLAKE2B 814dd617d237b0bd9c80bdd9d921196b8f93248b731083e79455d4609a05dd15b6847fc227359624abce683ecdaadaefea71dc9b65b7edd1fc3912123fa55054 SHA512 9ac57abc87a63cf31ecd021e6dd44f5f11cd6136fa3b92e89c52a6d13e0ed471f88e6e96160baeac4615eedff7943048a35a98c8d37387894c9c2d1f5df277ce +DIST llvm-gentoo-patchset-15.0.7-r3.tar.xz 24268 BLAKE2B 6531ae385ecea87bc26dba8ce19b4cde8ff224c80fd81f04c6ded131e305ecfdeb8d29ebd3b68a641d240805dc83eb0ebc7cc85124f02ad0ee66e0f201b91d7e SHA512 66cb33f8b423736b990fb75d4f2d1e5f14c0b03308f403297204dd1a352d72f85f34220fd66d3de5d6df328cdf2ffce03c2a111cb0bb57791cf68a88069ac7df DIST llvm-gentoo-patchset-15.0.7.tar.xz 19300 BLAKE2B b70e81d744c2eba5cd851e7b690ce8979b3064973f522be7c93bfb541860000a4bc8b17219f8788dfc8a527217dd13946cf7836640698ddd3d4b3fde493dfbf8 SHA512 daffff6ae4a0874aff1a423b4bb36701ecb5a35a36ae91d4ed7fda58b83e50ffcdc30498c84be4711fd3e1f227bf312dbe930019203e0a131944439af2aa94f7 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6 DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78af36b0826a1dfd9a337992499bf701e33149665bfc47d5e14978e38f342559629a559f8b2ce328705ba34fdf6830f5ae9721a5 SHA512 4836d3603f32e8e54434cbfa8ef33d9d473ac5dc20ebf9c67132653c73f4524931abd1084655eaee5f20bcfcb91bcc4bbc5c4a0b603ad0c9029c556e14dc4c52 DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df SHA512 fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2 -DIST llvm-project-46d5a57801bc37e5ebb1a4d6b2acc0fa99c01e8d.tar.gz 180436731 BLAKE2B 51c30c3f11dd55a225b8ebe4ded752ce9e8eb58751e7458c29901dbdd3673f94892d337d111d696e779e3f7ef0bca6c7d79709e2072a4bf3a001d8813125d571 SHA512 ebbe0f8becac39d63433dcc3de474c40f1215fc8faab94fa2ba869d28e66b27e4fe088377bd7ae64575a6d7b07017b88bf92e5488a3185a753e647d8da352bbf -DIST llvm-project-6dc85bd3fde7df2999fda07e9e9f2e83d52c6125.tar.gz 175208511 BLAKE2B cf87cf7e9bf7c74aab8ccda0f153369cb81798047fdd48025c3c7030857b128babbaafb667385a5c8e9916e16038b14fee39f1623d329471e73c39c2f2d7bbfa SHA512 e6dc0cacd6c079be8a00364e4c244782d764d9a8d514d65f9078427cb4a0c1663ff88761bfbc1e955a1a990451439110497c2cb7af7f56b2c91f2e9db4389894 -DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f +DIST llvm-project-16.0.3.src.tar.xz 117998136 BLAKE2B 6117586a117c30515e9a5623ab91d29ba65d33c8041274de0ecdbce08ae4fe1c8c3b120db9ca625f42fdbb2301537b4ffe8f7add701c178282be4f583fa0c8ca SHA512 2eb5eca1cbee92a499d7fba5729b61f31186353bc0545b17eefa300cf2b27c8d9a2f307443b2c1c9fe1b0ba412abf5143fdd4d25aaeb33d975a9a834221d7602 +DIST llvm-project-16.0.3.src.tar.xz.sig 566 BLAKE2B bbd96268b006fecffd7402452ae7559bd2ea42c7b771999f58893a48d66b1b056b476a7022c70e2ab8f11dba8318ccc141f97a05ece3b9ed3b4405a6890b0c3a SHA512 cdd5e1c2a252ba58f9b7f8687d6cf9a330c188988707bd72f4632a8158a2db9ac180b3936da99b87e7e99886c39cb8517ebbb04b7d1be198e76964e31ec8dc58 +DIST llvm-project-16.0.4.src.tar.xz 117996332 BLAKE2B 2ea3ef25290ce6180d271e42fbf5e02da973a21e3929c1ac8d1e3e7b268d39db97611e15654ca7e6527add24542d0eed0ee2b1b9d85dfd0ba661e55356bac5d3 SHA512 860bcb999005f55bed25691304983d7bf707f8e3246000595b412b9e88f4a1614be0adb43bbff9c30f49b969373fa0becab02a56ac37915a5f83c52ca8ea3f95 +DIST llvm-project-16.0.4.src.tar.xz.sig 566 BLAKE2B 43cb2147f12f98f864797158e8efcfed9c6780fae3b5c71c0f1aea19a4131ee91c36bdf5b10e44f478f2370c8d22a9038038ecd607f25a95f2d3e33628eb9ac0 SHA512 c902d1b652e6e144fcf74f550539f56665475b6bdf673ba5bf2f1731c3bb8f5717ed56433d488c54bbf2f429b432da84e0bfb4b5fb5f2b7fa208b4f24f682be7 +DIST llvm-project-a2684acfb61d40f441e240035d7f1ba50da637c8.tar.gz 184900914 BLAKE2B fb1f836738415a640bc84283722f6a7355a06bc8ac05b544dd4ad4ac9552dcf70040b82b0493c5b4485b28610412279ec0adcf467e71915167aa7d010c08216e SHA512 c08ff8abc166399e692d3166ccf65eb4b647893cba8ffc10bcda815bc914a944855bac036d6349f6d820a6ff43d5417170e6ff8620d97a2a144a0898e95d09e3 +DIST llvm-project-abbb22cc0c9c33dedb8d53c2bd3e703f92baace7.tar.gz 183193919 BLAKE2B 75c63d39918f7ec0faca0b1d03ba17dbd7d39a6f1d3a031dcb005ae1729933d8481f0bd745ec029ab21779525b2ddaf2989eaca2aed2b0e9b60c50ef71c7fc11 SHA512 f0c1b6fe2e087db202d32de05613b7570bd9a82dfef2e464014c9d4c9ba02c20d423cb783aa40ce5e9c9e074288efb2e5b6d70d55913bd285108e747400f55e7 diff --git a/sys-devel/llvm/llvm-14.0.6-r2.ebuild b/sys-devel/llvm/llvm-14.0.6-r2.ebuild index 4c18c1ba4aa7..d6511d6ae49f 100644 --- a/sys-devel/llvm/llvm-14.0.6-r2.ebuild +++ b/sys-devel/llvm/llvm-14.0.6-r2.ebuild @@ -5,7 +5,7 @@ EAPI=8 PYTHON_COMPAT=( python3_{9..10} ) inherit cmake llvm.org multilib-minimal pax-utils python-any-r1 \ - toolchain-funcs + toolchain-funcs flag-o-matic DESCRIPTION="Low Level Virtual Machine" HOMEPAGE="https://llvm.org/" @@ -24,7 +24,6 @@ RESTRICT="!test? ( test )" RDEPEND=" sys-libs/zlib:0=[${MULTILIB_USEDEP}] - binutils-plugin? ( >=sys-devel/binutils-2.31.1-r4:*[plugins] ) exegesis? ( dev-libs/libpfm:= ) libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] ) libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] ) @@ -321,12 +320,13 @@ get_distribution_components() { } multilib_src_configure() { + tc-is-gcc && filter-lto # GCC miscompiles LLVM, bug #873670 + local ffi_cflags ffi_ldflags if use libffi; then ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi) ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi) fi - local libdir=$(get_libdir) local mycmakeargs=( # disable appending VCS revision to the version to improve diff --git a/sys-devel/llvm/llvm-13.0.1.ebuild b/sys-devel/llvm/llvm-14.0.6-r4.ebuild index 4257c602aa0e..47ffe6b5d74b 100644 --- a/sys-devel/llvm/llvm-13.0.1.ebuild +++ b/sys-devel/llvm/llvm-14.0.6-r4.ebuild @@ -1,7 +1,7 @@ # Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 PYTHON_COMPAT=( python3_{9..10} ) inherit cmake llvm.org multilib-minimal pax-utils python-any-r1 \ @@ -18,23 +18,26 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc" SLOT="$(ver_cut 1)" -KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~ppc-macos ~x64-macos" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~ppc-macos ~x64-macos" IUSE="+binutils-plugin debug doc exegesis libedit +libffi ncurses test xar xml z3" RESTRICT="!test? ( test )" RDEPEND=" sys-libs/zlib:0=[${MULTILIB_USEDEP}] - binutils-plugin? ( >=sys-devel/binutils-2.31.1-r4:*[plugins] ) exegesis? ( dev-libs/libpfm:= ) libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] ) libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] ) ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] ) xar? ( app-arch/xar ) xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] ) - z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] )" -DEPEND="${RDEPEND} - binutils-plugin? ( sys-libs/binutils-libs )" + z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] ) +" +DEPEND=" + ${RDEPEND} + binutils-plugin? ( sys-libs/binutils-libs ) +" BDEPEND=" + ${PYTHON_DEPS} dev-lang/perl >=dev-util/cmake-3.16 sys-devel/gnuconfig @@ -50,25 +53,29 @@ BDEPEND=" test? ( sys-apps/which ) - ${PYTHON_DEPS}" +" # There are no file collisions between these versions but having :0 # installed means llvm-config there will take precedence. -RDEPEND="${RDEPEND} - !sys-devel/llvm:0" -PDEPEND="sys-devel/llvm-common - binutils-plugin? ( >=sys-devel/llvmgold-${SLOT} )" - -LLVM_COMPONENTS=( llvm ) +RDEPEND=" + ${RDEPEND} + !sys-devel/llvm:0 +" +PDEPEND=" + sys-devel/llvm-common + binutils-plugin? ( >=sys-devel/llvmgold-${SLOT} ) +" + +LLVM_COMPONENTS=( llvm cmake third-party ) LLVM_MANPAGES=1 -LLVM_PATCHSET=${PV/_/-} +LLVM_PATCHSET=${PV}-r4 LLVM_USE_TARGETS=provide llvm.org_set_globals python_check_deps() { use doc || return 0 - python_has_version "dev-python/recommonmark[${PYTHON_USEDEP}]" && - python_has_version "dev-python/sphinx[${PYTHON_USEDEP}]" + python_has_version -b "dev-python/recommonmark[${PYTHON_USEDEP}]" && + python_has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]" } check_uptodate() { @@ -172,6 +179,10 @@ src_prepare() { check_uptodate llvm.org_src_prepare + + # remove regressing test + # https://github.com/llvm/llvm-project/issues/55761 + rm test/Other/ChangePrinters/DotCfg/print-changed-dot-cfg.ll || die } get_distribution_components() { @@ -226,6 +237,7 @@ get_distribution_components() { llvm-cxxdump llvm-cxxfilt llvm-cxxmap + llvm-debuginfod-find llvm-diff llvm-dis llvm-dlltool @@ -271,6 +283,7 @@ get_distribution_components() { llvm-strip llvm-symbolizer llvm-tapi-diff + llvm-tli-checker llvm-undname llvm-windres llvm-xray @@ -312,7 +325,6 @@ multilib_src_configure() { ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi) ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi) fi - local libdir=$(get_libdir) local mycmakeargs=( # disable appending VCS revision to the version to improve @@ -428,6 +440,9 @@ multilib_src_configure() { use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" cmake_src_configure + grep -q -E "^CMAKE_PROJECT_VERSION_MAJOR(:.*)?=$(ver_cut 1)$" \ + CMakeCache.txt || + die "Incorrect version, did you update _LLVM_MASTER_MAJOR?" multilib_is_native_abi && check_distribution_components } diff --git a/sys-devel/llvm/llvm-15.0.7-r3.ebuild b/sys-devel/llvm/llvm-15.0.7-r3.ebuild new file mode 100644 index 000000000000..8d7b56680c92 --- /dev/null +++ b/sys-devel/llvm/llvm-15.0.7-r3.ebuild @@ -0,0 +1,520 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..11} ) +inherit cmake llvm.org multilib-minimal pax-utils python-any-r1 \ + toolchain-funcs + +DESCRIPTION="Low Level Virtual Machine" +HOMEPAGE="https://llvm.org/" + +# Additional licenses: +# 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD. +# 2. xxhash: BSD. +# 3. MD5 code: public-domain. +# 4. ConvertUTF.h: TODO. + +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc" +SLOT="${LLVM_MAJOR}/${LLVM_SOABI}" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~ppc-macos ~x64-macos" +IUSE=" + +binutils-plugin debug doc exegesis libedit +libffi ncurses test xar + xml z3 zstd +" +RESTRICT="!test? ( test )" + +RDEPEND=" + sys-libs/zlib:0=[${MULTILIB_USEDEP}] + exegesis? ( dev-libs/libpfm:= ) + libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] ) + libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] ) + ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] ) + xar? ( app-arch/xar ) + xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] ) + z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] ) + zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] ) +" +DEPEND=" + ${RDEPEND} + binutils-plugin? ( sys-libs/binutils-libs ) +" +BDEPEND=" + ${PYTHON_DEPS} + dev-lang/perl + >=dev-util/cmake-3.16 + sys-devel/gnuconfig + kernel_Darwin? ( + <sys-libs/libcxx-${LLVM_VERSION}.9999 + >=sys-devel/binutils-apple-5.1 + ) + doc? ( $(python_gen_any_dep ' + dev-python/recommonmark[${PYTHON_USEDEP}] + dev-python/sphinx[${PYTHON_USEDEP}] + ') ) + libffi? ( virtual/pkgconfig ) +" +# There are no file collisions between these versions but having :0 +# installed means llvm-config there will take precedence. +RDEPEND=" + ${RDEPEND} + !sys-devel/llvm:0 +" +PDEPEND=" + sys-devel/llvm-common + sys-devel/llvm-toolchain-symlinks:${LLVM_MAJOR} + binutils-plugin? ( >=sys-devel/llvmgold-${LLVM_MAJOR} ) +" + +LLVM_COMPONENTS=( llvm cmake third-party ) +LLVM_MANPAGES=1 +LLVM_PATCHSET=${PV/_/-}-r3 +LLVM_USE_TARGETS=provide +llvm.org_set_globals + +python_check_deps() { + use doc || return 0 + + python_has_version -b "dev-python/recommonmark[${PYTHON_USEDEP}]" && + python_has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]" +} + +check_uptodate() { + local prod_targets=( + $(sed -n -e '/set(LLVM_ALL_TARGETS/,/)/p' CMakeLists.txt \ + | tail -n +2 | head -n -1) + ) + local all_targets=( + lib/Target/*/ + ) + all_targets=( "${all_targets[@]#lib/Target/}" ) + all_targets=( "${all_targets[@]%/}" ) + + local exp_targets=() i + for i in "${all_targets[@]}"; do + has "${i}" "${prod_targets[@]}" || exp_targets+=( "${i}" ) + done + + if [[ ${exp_targets[*]} != ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]} ]]; then + eqawarn "ALL_LLVM_EXPERIMENTAL_TARGETS is outdated!" + eqawarn " Have: ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]}" + eqawarn "Expected: ${exp_targets[*]}" + eqawarn + fi + + if [[ ${prod_targets[*]} != ${ALL_LLVM_PRODUCTION_TARGETS[*]} ]]; then + eqawarn "ALL_LLVM_PRODUCTION_TARGETS is outdated!" + eqawarn " Have: ${ALL_LLVM_PRODUCTION_TARGETS[*]}" + eqawarn "Expected: ${prod_targets[*]}" + fi +} + +check_distribution_components() { + if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then + local all_targets=() my_targets=() l + cd "${BUILD_DIR}" || die + + while read -r l; do + if [[ ${l} == install-*-stripped:* ]]; then + l=${l#install-} + l=${l%%-stripped*} + + case ${l} in + # shared libs + LLVM|LLVMgold) + ;; + # TableGen lib + deps + LLVMDemangle|LLVMSupport|LLVMTableGen) + ;; + # static libs + LLVM*) + continue + ;; + # meta-targets + distribution|llvm-libraries) + continue + ;; + # used only w/ USE=doc + docs-llvm-html) + use doc || continue + ;; + esac + + all_targets+=( "${l}" ) + fi + done < <(${NINJA} -t targets all) + + while read -r l; do + my_targets+=( "${l}" ) + done < <(get_distribution_components $"\n") + + local add=() remove=() + for l in "${all_targets[@]}"; do + if ! has "${l}" "${my_targets[@]}"; then + add+=( "${l}" ) + fi + done + for l in "${my_targets[@]}"; do + if ! has "${l}" "${all_targets[@]}"; then + remove+=( "${l}" ) + fi + done + + if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then + eqawarn "get_distribution_components() is outdated!" + eqawarn " Add: ${add[*]}" + eqawarn "Remove: ${remove[*]}" + fi + cd - >/dev/null || die + fi +} + +src_prepare() { + # disable use of SDK on OSX, bug #568758 + sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die + + # Update config.guess to support more systems + cp "${BROOT}/usr/share/gnuconfig/config.guess" cmake/ || die + + # Verify that the ebuild is up-to-date + check_uptodate + + llvm.org_src_prepare +} + +get_distribution_components() { + local sep=${1-;} + + local out=( + # shared libs + LLVM + LTO + Remarks + + # tools + llvm-config + + # common stuff + cmake-exports + llvm-headers + + # libraries needed for clang-tblgen + LLVMDemangle + LLVMSupport + LLVMTableGen + ) + + if multilib_is_native_abi; then + out+=( + # utilities + llvm-tblgen + FileCheck + llvm-PerfectShuffle + count + not + yaml-bench + UnicodeNameMappingGenerator + + # tools + bugpoint + dsymutil + llc + lli + lli-child-target + llvm-addr2line + llvm-ar + llvm-as + llvm-bcanalyzer + llvm-bitcode-strip + llvm-c-test + llvm-cat + llvm-cfi-verify + llvm-config + llvm-cov + llvm-cvtres + llvm-cxxdump + llvm-cxxfilt + llvm-cxxmap + llvm-debuginfod + llvm-debuginfod-find + llvm-diff + llvm-dis + llvm-dlltool + llvm-dwarfdump + llvm-dwarfutil + llvm-dwp + llvm-exegesis + llvm-extract + llvm-gsymutil + llvm-ifs + llvm-install-name-tool + llvm-jitlink + llvm-jitlink-executor + llvm-lib + llvm-libtool-darwin + llvm-link + llvm-lipo + llvm-lto + llvm-lto2 + llvm-mc + llvm-mca + llvm-ml + llvm-modextract + llvm-mt + llvm-nm + llvm-objcopy + llvm-objdump + llvm-opt-report + llvm-otool + llvm-pdbutil + llvm-profdata + llvm-profgen + llvm-ranlib + llvm-rc + llvm-readelf + llvm-readobj + llvm-reduce + llvm-remark-size-diff + llvm-rtdyld + llvm-sim + llvm-size + llvm-split + llvm-stress + llvm-strings + llvm-strip + llvm-symbolizer + llvm-tapi-diff + llvm-tli-checker + llvm-undname + llvm-windres + llvm-xray + obj2yaml + opt + sancov + sanstats + split-file + verify-uselistorder + yaml2obj + + # python modules + opt-viewer + ) + + if llvm_are_manpages_built; then + out+=( + # manpages + docs-dsymutil-man + docs-llvm-dwarfdump-man + docs-llvm-man + ) + fi + use doc && out+=( + docs-llvm-html + ) + + use binutils-plugin && out+=( + LLVMgold + ) + fi + + printf "%s${sep}" "${out[@]}" +} + +multilib_src_configure() { + local ffi_cflags ffi_ldflags + if use libffi; then + ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi) + ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi) + fi + + local libdir=$(get_libdir) + local mycmakeargs=( + # disable appending VCS revision to the version to improve + # direct cache hit ratio + -DLLVM_APPEND_VC_REV=OFF + -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}" + -DLLVM_LIBDIR_SUFFIX=${libdir#lib} + + -DBUILD_SHARED_LIBS=OFF + -DLLVM_BUILD_LLVM_DYLIB=ON + -DLLVM_LINK_LLVM_DYLIB=ON + -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components) + + # cheap hack: LLVM combines both anyway, and the only difference + # is that the former list is explicitly verified at cmake time + -DLLVM_TARGETS_TO_BUILD="" + -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}" + -DLLVM_BUILD_TESTS=$(usex test) + + -DLLVM_ENABLE_FFI=$(usex libffi) + -DLLVM_ENABLE_LIBEDIT=$(usex libedit) + -DLLVM_ENABLE_TERMINFO=$(usex ncurses) + -DLLVM_ENABLE_LIBXML2=$(usex xml) + -DLLVM_ENABLE_ASSERTIONS=$(usex debug) + -DLLVM_ENABLE_LIBPFM=$(usex exegesis) + -DLLVM_ENABLE_EH=ON + -DLLVM_ENABLE_RTTI=ON + -DLLVM_ENABLE_Z3_SOLVER=$(usex z3) + -DLLVM_ENABLE_ZSTD=$(usex zstd) + + -DLLVM_HOST_TRIPLE="${CHOST}" + + -DFFI_INCLUDE_DIR="${ffi_cflags#-I}" + -DFFI_LIBRARY_DIR="${ffi_ldflags#-L}" + # used only for llvm-objdump tool + -DLLVM_HAVE_LIBXAR=$(multilib_native_usex xar 1 0) + + -DPython3_EXECUTABLE="${PYTHON}" + + # disable OCaml bindings (now in dev-ml/llvm-ocaml) + -DOCAMLFIND=NO + ) + + if [[ $(tc-get-cxx-stdlib) == libc++ ]]; then + # Smart hack: alter version suffix -> SOVERSION when linking + # against libc++. This way we won't end up mixing LLVM libc++ + # libraries with libstdc++ clang, and the other way around. + mycmakeargs+=( + -DLLVM_VERSION_SUFFIX="libcxx" + -DLLVM_ENABLE_LIBCXX=ON + ) + fi + +# Note: go bindings have no CMake rules at the moment +# but let's kill the check in case they are introduced +# if ! multilib_is_native_abi || ! use go; then + mycmakeargs+=( + -DGO_EXECUTABLE=GO_EXECUTABLE-NOTFOUND + ) +# fi + + use test && mycmakeargs+=( + -DLLVM_LIT_ARGS="$(get_lit_flags)" + ) + + if multilib_is_native_abi; then + local build_docs=OFF + if llvm_are_manpages_built; then + build_docs=ON + mycmakeargs+=( + -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man" + -DLLVM_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html" + -DSPHINX_WARNINGS_AS_ERRORS=OFF + ) + fi + + mycmakeargs+=( + -DLLVM_BUILD_DOCS=${build_docs} + -DLLVM_ENABLE_OCAMLDOC=OFF + -DLLVM_ENABLE_SPHINX=${build_docs} + -DLLVM_ENABLE_DOXYGEN=OFF + -DLLVM_INSTALL_UTILS=ON + ) + use binutils-plugin && mycmakeargs+=( + -DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include + ) + fi + + if tc-is-cross-compiler; then + local tblgen="${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-tblgen" + [[ -x "${tblgen}" ]] \ + || die "${tblgen} not found or usable" + mycmakeargs+=( + -DCMAKE_CROSSCOMPILING=ON + -DLLVM_TABLEGEN="${tblgen}" + ) + fi + + # workaround BMI bug in gcc-7 (fixed in 7.4) + # https://bugs.gentoo.org/649880 + # apply only to x86, https://bugs.gentoo.org/650506 + if tc-is-gcc && [[ ${MULTILIB_ABI_FLAG} == abi_x86* ]] && + [[ $(gcc-major-version) -eq 7 && $(gcc-minor-version) -lt 4 ]] + then + local CFLAGS="${CFLAGS} -mno-bmi" + local CXXFLAGS="${CXXFLAGS} -mno-bmi" + fi + + # LLVM can have very high memory consumption while linking, + # exhausting the limit on 32-bit linker executable + use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory" + + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + cmake_src_configure + + grep -q -E "^CMAKE_PROJECT_VERSION_MAJOR(:.*)?=${LLVM_MAJOR}$" \ + CMakeCache.txt || + die "Incorrect version, did you update _LLVM_MASTER_MAJOR?" + multilib_is_native_abi && check_distribution_components +} + +multilib_src_compile() { + tc-env_build cmake_build distribution + + pax-mark m "${BUILD_DIR}"/bin/llvm-rtdyld + pax-mark m "${BUILD_DIR}"/bin/lli + pax-mark m "${BUILD_DIR}"/bin/lli-child-target + + if use test; then + pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/Orc/OrcJITTests + pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/MCJIT/MCJITTests + pax-mark m "${BUILD_DIR}"/unittests/Support/SupportTests + fi +} + +multilib_src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + cmake_build check +} + +src_install() { + local MULTILIB_CHOST_TOOLS=( + /usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-config + ) + + local MULTILIB_WRAPPED_HEADERS=( + /usr/include/llvm/Config/llvm-config.h + ) + + local LLVM_LDPATHS=() + multilib-minimal_src_install + + # move wrapped headers back + mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include || die +} + +multilib_src_install() { + DESTDIR=${D} cmake_build install-distribution + + # move headers to /usr/include for wrapping + rm -rf "${ED}"/usr/include || die + mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include "${ED}"/usr/include || die + + LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)" ) +} + +multilib_src_install_all() { + local revord=$(( 9999 - ${LLVM_MAJOR} )) + newenvd - "60llvm-${revord}" <<-_EOF_ + PATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin" + # we need to duplicate it in ROOTPATH for Portage to respect... + ROOTPATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin" + MANPATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man" + LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )" + _EOF_ + + docompress "/usr/lib/llvm/${LLVM_MAJOR}/share/man" + llvm_install_manpages +} + +pkg_postinst() { + elog "You can find additional opt-viewer utility scripts in:" + elog " ${EROOT}/usr/lib/llvm/${LLVM_MAJOR}/share/opt-viewer" + elog "To use these scripts, you will need Python along with the following" + elog "packages:" + elog " dev-python/pygments (for opt-viewer)" + elog " dev-python/pyyaml (for all of them)" +} diff --git a/sys-devel/llvm/llvm-15.0.7.ebuild b/sys-devel/llvm/llvm-15.0.7.ebuild index 1b490e20948d..9201481c03bf 100644 --- a/sys-devel/llvm/llvm-15.0.7.ebuild +++ b/sys-devel/llvm/llvm-15.0.7.ebuild @@ -5,7 +5,7 @@ EAPI=8 PYTHON_COMPAT=( python3_{9..11} ) inherit cmake llvm.org multilib-minimal pax-utils python-any-r1 \ - toolchain-funcs + toolchain-funcs flag-o-matic DESCRIPTION="Low Level Virtual Machine" HOMEPAGE="https://llvm.org/" @@ -27,7 +27,6 @@ RESTRICT="!test? ( test )" RDEPEND=" sys-libs/zlib:0=[${MULTILIB_USEDEP}] - binutils-plugin? ( >=sys-devel/binutils-2.31.1-r4:*[plugins] ) exegesis? ( dev-libs/libpfm:= ) libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] ) libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] ) @@ -323,6 +322,8 @@ get_distribution_components() { } multilib_src_configure() { + tc-is-gcc && filter-lto # GCC miscompiles LLVM, bug #873670 + local ffi_cflags ffi_ldflags if use libffi; then ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi) diff --git a/sys-devel/llvm/llvm-16.0.0_pre20230107.ebuild b/sys-devel/llvm/llvm-16.0.3.ebuild index 21023c3bf7e4..164977c556dc 100644 --- a/sys-devel/llvm/llvm-16.0.0_pre20230107.ebuild +++ b/sys-devel/llvm/llvm-16.0.3.ebuild @@ -5,7 +5,7 @@ EAPI=8 PYTHON_COMPAT=( python3_{9..11} ) inherit cmake llvm.org multilib-minimal pax-utils python-any-r1 \ - toolchain-funcs + toolchain-funcs flag-o-matic DESCRIPTION="Low Level Virtual Machine" HOMEPAGE="https://llvm.org/" @@ -18,7 +18,7 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc" SLOT="${LLVM_MAJOR}/${LLVM_SOABI}" -KEYWORDS="~loong" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~ppc-macos ~x64-macos" IUSE=" +binutils-plugin debug doc exegesis libedit +libffi ncurses test xar xml z3 zstd @@ -27,7 +27,6 @@ RESTRICT="!test? ( test )" RDEPEND=" sys-libs/zlib:0=[${MULTILIB_USEDEP}] - binutils-plugin? ( >=sys-devel/binutils-2.31.1-r4:*[plugins] ) exegesis? ( dev-libs/libpfm:= ) libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] ) libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] ) @@ -325,6 +324,8 @@ get_distribution_components() { } multilib_src_configure() { + tc-is-gcc && filter-lto # GCC miscompiles LLVM, bug #873670 + local ffi_cflags ffi_ldflags if use libffi; then ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi) @@ -358,6 +359,8 @@ multilib_src_configure() { -DLLVM_ENABLE_LIBXML2=$(usex xml) -DLLVM_ENABLE_ASSERTIONS=$(usex debug) -DLLVM_ENABLE_LIBPFM=$(usex exegesis) + -DLLVM_ENABLE_EH=ON + -DLLVM_ENABLE_RTTI=ON -DLLVM_ENABLE_Z3_SOLVER=$(usex z3) -DLLVM_ENABLE_ZSTD=$(usex zstd) diff --git a/sys-devel/llvm/llvm-16.0.0_pre20230127.ebuild b/sys-devel/llvm/llvm-16.0.4.ebuild index d4655d4dc33f..2d844e82840c 100644 --- a/sys-devel/llvm/llvm-16.0.0_pre20230127.ebuild +++ b/sys-devel/llvm/llvm-16.0.4.ebuild @@ -4,8 +4,9 @@ EAPI=8 PYTHON_COMPAT=( python3_{9..11} ) -inherit cmake llvm.org multilib-minimal pax-utils python-any-r1 \ - toolchain-funcs + +inherit cmake llvm.org multilib-minimal pax-utils python-any-r1 +inherit toolchain-funcs DESCRIPTION="Low Level Virtual Machine" HOMEPAGE="https://llvm.org/" @@ -18,7 +19,7 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc" SLOT="${LLVM_MAJOR}/${LLVM_SOABI}" -KEYWORDS="" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~ppc-macos ~x64-macos" IUSE=" +binutils-plugin debug doc exegesis libedit +libffi ncurses test xar xml z3 zstd @@ -27,7 +28,6 @@ RESTRICT="!test? ( test )" RDEPEND=" sys-libs/zlib:0=[${MULTILIB_USEDEP}] - binutils-plugin? ( >=sys-devel/binutils-2.31.1-r4:*[plugins] ) exegesis? ( dev-libs/libpfm:= ) libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] ) libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] ) @@ -358,6 +358,8 @@ multilib_src_configure() { -DLLVM_ENABLE_LIBXML2=$(usex xml) -DLLVM_ENABLE_ASSERTIONS=$(usex debug) -DLLVM_ENABLE_LIBPFM=$(usex exegesis) + -DLLVM_ENABLE_EH=ON + -DLLVM_ENABLE_RTTI=ON -DLLVM_ENABLE_Z3_SOLVER=$(usex z3) -DLLVM_ENABLE_ZSTD=$(usex zstd) diff --git a/sys-devel/llvm/llvm-16.0.0.9999.ebuild b/sys-devel/llvm/llvm-16.0.5.9999.ebuild index d4655d4dc33f..840748f0601b 100644 --- a/sys-devel/llvm/llvm-16.0.0.9999.ebuild +++ b/sys-devel/llvm/llvm-16.0.5.9999.ebuild @@ -4,8 +4,9 @@ EAPI=8 PYTHON_COMPAT=( python3_{9..11} ) -inherit cmake llvm.org multilib-minimal pax-utils python-any-r1 \ - toolchain-funcs + +inherit cmake llvm.org multilib-minimal pax-utils python-any-r1 +inherit toolchain-funcs DESCRIPTION="Low Level Virtual Machine" HOMEPAGE="https://llvm.org/" @@ -27,7 +28,6 @@ RESTRICT="!test? ( test )" RDEPEND=" sys-libs/zlib:0=[${MULTILIB_USEDEP}] - binutils-plugin? ( >=sys-devel/binutils-2.31.1-r4:*[plugins] ) exegesis? ( dev-libs/libpfm:= ) libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] ) libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] ) @@ -358,6 +358,8 @@ multilib_src_configure() { -DLLVM_ENABLE_LIBXML2=$(usex xml) -DLLVM_ENABLE_ASSERTIONS=$(usex debug) -DLLVM_ENABLE_LIBPFM=$(usex exegesis) + -DLLVM_ENABLE_EH=ON + -DLLVM_ENABLE_RTTI=ON -DLLVM_ENABLE_Z3_SOLVER=$(usex z3) -DLLVM_ENABLE_ZSTD=$(usex zstd) diff --git a/sys-devel/llvm/llvm-17.0.0.9999.ebuild b/sys-devel/llvm/llvm-17.0.0.9999.ebuild index d4655d4dc33f..c2c2d7c6b628 100644 --- a/sys-devel/llvm/llvm-17.0.0.9999.ebuild +++ b/sys-devel/llvm/llvm-17.0.0.9999.ebuild @@ -4,8 +4,9 @@ EAPI=8 PYTHON_COMPAT=( python3_{9..11} ) -inherit cmake llvm.org multilib-minimal pax-utils python-any-r1 \ - toolchain-funcs + +inherit cmake llvm.org multilib-minimal pax-utils python-any-r1 +inherit toolchain-funcs DESCRIPTION="Low Level Virtual Machine" HOMEPAGE="https://llvm.org/" @@ -20,14 +21,17 @@ LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc" SLOT="${LLVM_MAJOR}/${LLVM_SOABI}" KEYWORDS="" IUSE=" - +binutils-plugin debug doc exegesis libedit +libffi ncurses test xar - xml z3 zstd + +binutils-plugin +debug debuginfod doc exegesis libedit +libffi + ncurses test xar xml z3 zstd " RESTRICT="!test? ( test )" RDEPEND=" sys-libs/zlib:0=[${MULTILIB_USEDEP}] - binutils-plugin? ( >=sys-devel/binutils-2.31.1-r4:*[plugins] ) + debuginfod? ( + net-misc/curl:= + dev-cpp/cpp-httplib:= + ) exegesis? ( dev-libs/libpfm:= ) libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] ) libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] ) @@ -68,8 +72,7 @@ PDEPEND=" binutils-plugin? ( >=sys-devel/llvmgold-${LLVM_MAJOR} ) " -LLVM_COMPONENTS=( llvm cmake ) -LLVM_TEST_COMPONENTS=( third-party ) +LLVM_COMPONENTS=( llvm cmake third-party ) LLVM_MANPAGES=1 LLVM_USE_TARGETS=provide llvm.org_set_globals @@ -128,6 +131,9 @@ check_distribution_components() { # TableGen lib + deps LLVMDemangle|LLVMSupport|LLVMTableGen) ;; + # testing libraries + LLVMTestingAnnotations|LLVMTestingSupport) + ;; # static libs LLVM*) continue @@ -204,6 +210,12 @@ get_distribution_components() { LLVMDemangle LLVMSupport LLVMTableGen + + # testing libraries + llvm_gtest + llvm_gtest_main + LLVMTestingAnnotations + LLVMTestingSupport ) if multilib_is_native_abi; then @@ -238,7 +250,6 @@ get_distribution_components() { llvm-cxxfilt llvm-cxxmap llvm-debuginfo-analyzer - llvm-debuginfod llvm-debuginfod-find llvm-diff llvm-dis @@ -319,6 +330,9 @@ get_distribution_components() { use binutils-plugin && out+=( LLVMgold ) + use debuginfod && out+=( + llvm-debuginfod + ) fi printf "%s${sep}" "${out[@]}" @@ -349,8 +363,9 @@ multilib_src_configure() { -DLLVM_TARGETS_TO_BUILD="" -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}" -DLLVM_INCLUDE_BENCHMARKS=OFF - -DLLVM_INCLUDE_TESTS=$(usex test) + -DLLVM_INCLUDE_TESTS=ON -DLLVM_BUILD_TESTS=$(usex test) + -DLLVM_INSTALL_GTEST=ON -DLLVM_ENABLE_FFI=$(usex libffi) -DLLVM_ENABLE_LIBEDIT=$(usex libedit) @@ -358,8 +373,12 @@ multilib_src_configure() { -DLLVM_ENABLE_LIBXML2=$(usex xml) -DLLVM_ENABLE_ASSERTIONS=$(usex debug) -DLLVM_ENABLE_LIBPFM=$(usex exegesis) + -DLLVM_ENABLE_EH=ON + -DLLVM_ENABLE_RTTI=ON -DLLVM_ENABLE_Z3_SOLVER=$(usex z3) -DLLVM_ENABLE_ZSTD=$(usex zstd) + -DLLVM_ENABLE_CURL=$(usex debuginfod) + -DLLVM_ENABLE_HTTPLIB=$(usex debuginfod) -DLLVM_HOST_TRIPLE="${CHOST}" diff --git a/sys-devel/llvm/llvm-17.0.0_pre20230520.ebuild b/sys-devel/llvm/llvm-17.0.0_pre20230520.ebuild new file mode 100644 index 000000000000..c2c2d7c6b628 --- /dev/null +++ b/sys-devel/llvm/llvm-17.0.0_pre20230520.ebuild @@ -0,0 +1,533 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..11} ) + +inherit cmake llvm.org multilib-minimal pax-utils python-any-r1 +inherit toolchain-funcs + +DESCRIPTION="Low Level Virtual Machine" +HOMEPAGE="https://llvm.org/" + +# Additional licenses: +# 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD. +# 2. xxhash: BSD. +# 3. MD5 code: public-domain. +# 4. ConvertUTF.h: TODO. + +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc" +SLOT="${LLVM_MAJOR}/${LLVM_SOABI}" +KEYWORDS="" +IUSE=" + +binutils-plugin +debug debuginfod doc exegesis libedit +libffi + ncurses test xar xml z3 zstd +" +RESTRICT="!test? ( test )" + +RDEPEND=" + sys-libs/zlib:0=[${MULTILIB_USEDEP}] + debuginfod? ( + net-misc/curl:= + dev-cpp/cpp-httplib:= + ) + exegesis? ( dev-libs/libpfm:= ) + libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] ) + libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] ) + ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] ) + xar? ( app-arch/xar ) + xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] ) + z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] ) + zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] ) +" +DEPEND=" + ${RDEPEND} + binutils-plugin? ( sys-libs/binutils-libs ) +" +BDEPEND=" + ${PYTHON_DEPS} + dev-lang/perl + >=dev-util/cmake-3.16 + sys-devel/gnuconfig + kernel_Darwin? ( + <sys-libs/libcxx-${LLVM_VERSION}.9999 + >=sys-devel/binutils-apple-5.1 + ) + doc? ( $(python_gen_any_dep ' + dev-python/recommonmark[${PYTHON_USEDEP}] + dev-python/sphinx[${PYTHON_USEDEP}] + ') ) + libffi? ( virtual/pkgconfig ) +" +# There are no file collisions between these versions but having :0 +# installed means llvm-config there will take precedence. +RDEPEND=" + ${RDEPEND} + !sys-devel/llvm:0 +" +PDEPEND=" + sys-devel/llvm-common + sys-devel/llvm-toolchain-symlinks:${LLVM_MAJOR} + binutils-plugin? ( >=sys-devel/llvmgold-${LLVM_MAJOR} ) +" + +LLVM_COMPONENTS=( llvm cmake third-party ) +LLVM_MANPAGES=1 +LLVM_USE_TARGETS=provide +llvm.org_set_globals + +python_check_deps() { + use doc || return 0 + + python_has_version -b "dev-python/recommonmark[${PYTHON_USEDEP}]" && + python_has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]" +} + +check_uptodate() { + local prod_targets=( + $(sed -n -e '/set(LLVM_ALL_TARGETS/,/)/p' CMakeLists.txt \ + | tail -n +2 | head -n -1) + ) + local all_targets=( + lib/Target/*/ + ) + all_targets=( "${all_targets[@]#lib/Target/}" ) + all_targets=( "${all_targets[@]%/}" ) + + local exp_targets=() i + for i in "${all_targets[@]}"; do + has "${i}" "${prod_targets[@]}" || exp_targets+=( "${i}" ) + done + + if [[ ${exp_targets[*]} != ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]} ]]; then + eqawarn "ALL_LLVM_EXPERIMENTAL_TARGETS is outdated!" + eqawarn " Have: ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]}" + eqawarn "Expected: ${exp_targets[*]}" + eqawarn + fi + + if [[ ${prod_targets[*]} != ${ALL_LLVM_PRODUCTION_TARGETS[*]} ]]; then + eqawarn "ALL_LLVM_PRODUCTION_TARGETS is outdated!" + eqawarn " Have: ${ALL_LLVM_PRODUCTION_TARGETS[*]}" + eqawarn "Expected: ${prod_targets[*]}" + fi +} + +check_distribution_components() { + if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then + local all_targets=() my_targets=() l + cd "${BUILD_DIR}" || die + + while read -r l; do + if [[ ${l} == install-*-stripped:* ]]; then + l=${l#install-} + l=${l%%-stripped*} + + case ${l} in + # shared libs + LLVM|LLVMgold) + ;; + # TableGen lib + deps + LLVMDemangle|LLVMSupport|LLVMTableGen) + ;; + # testing libraries + LLVMTestingAnnotations|LLVMTestingSupport) + ;; + # static libs + LLVM*) + continue + ;; + # meta-targets + distribution|llvm-libraries) + continue + ;; + # used only w/ USE=doc + docs-llvm-html) + use doc || continue + ;; + esac + + all_targets+=( "${l}" ) + fi + done < <(${NINJA} -t targets all) + + while read -r l; do + my_targets+=( "${l}" ) + done < <(get_distribution_components $"\n") + + local add=() remove=() + for l in "${all_targets[@]}"; do + if ! has "${l}" "${my_targets[@]}"; then + add+=( "${l}" ) + fi + done + for l in "${my_targets[@]}"; do + if ! has "${l}" "${all_targets[@]}"; then + remove+=( "${l}" ) + fi + done + + if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then + eqawarn "get_distribution_components() is outdated!" + eqawarn " Add: ${add[*]}" + eqawarn "Remove: ${remove[*]}" + fi + cd - >/dev/null || die + fi +} + +src_prepare() { + # disable use of SDK on OSX, bug #568758 + sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die + + # Update config.guess to support more systems + cp "${BROOT}/usr/share/gnuconfig/config.guess" cmake/ || die + + # Verify that the ebuild is up-to-date + check_uptodate + + llvm.org_src_prepare +} + +get_distribution_components() { + local sep=${1-;} + + local out=( + # shared libs + LLVM + LTO + Remarks + + # tools + llvm-config + + # common stuff + cmake-exports + llvm-headers + + # libraries needed for clang-tblgen + LLVMDemangle + LLVMSupport + LLVMTableGen + + # testing libraries + llvm_gtest + llvm_gtest_main + LLVMTestingAnnotations + LLVMTestingSupport + ) + + if multilib_is_native_abi; then + out+=( + # utilities + llvm-tblgen + FileCheck + llvm-PerfectShuffle + count + not + yaml-bench + UnicodeNameMappingGenerator + + # tools + bugpoint + dsymutil + llc + lli + lli-child-target + llvm-addr2line + llvm-ar + llvm-as + llvm-bcanalyzer + llvm-bitcode-strip + llvm-c-test + llvm-cat + llvm-cfi-verify + llvm-config + llvm-cov + llvm-cvtres + llvm-cxxdump + llvm-cxxfilt + llvm-cxxmap + llvm-debuginfo-analyzer + llvm-debuginfod-find + llvm-diff + llvm-dis + llvm-dlltool + llvm-dwarfdump + llvm-dwarfutil + llvm-dwp + llvm-exegesis + llvm-extract + llvm-gsymutil + llvm-ifs + llvm-install-name-tool + llvm-jitlink + llvm-jitlink-executor + llvm-lib + llvm-libtool-darwin + llvm-link + llvm-lipo + llvm-lto + llvm-lto2 + llvm-mc + llvm-mca + llvm-ml + llvm-modextract + llvm-mt + llvm-nm + llvm-objcopy + llvm-objdump + llvm-opt-report + llvm-otool + llvm-pdbutil + llvm-profdata + llvm-profgen + llvm-ranlib + llvm-rc + llvm-readelf + llvm-readobj + llvm-reduce + llvm-remark-size-diff + llvm-remarkutil + llvm-rtdyld + llvm-sim + llvm-size + llvm-split + llvm-stress + llvm-strings + llvm-strip + llvm-symbolizer + llvm-tapi-diff + llvm-tli-checker + llvm-undname + llvm-windres + llvm-xray + obj2yaml + opt + sancov + sanstats + split-file + verify-uselistorder + yaml2obj + + # python modules + opt-viewer + ) + + if llvm_are_manpages_built; then + out+=( + # manpages + docs-dsymutil-man + docs-llvm-dwarfdump-man + docs-llvm-man + ) + fi + use doc && out+=( + docs-llvm-html + ) + + use binutils-plugin && out+=( + LLVMgold + ) + use debuginfod && out+=( + llvm-debuginfod + ) + fi + + printf "%s${sep}" "${out[@]}" +} + +multilib_src_configure() { + local ffi_cflags ffi_ldflags + if use libffi; then + ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi) + ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi) + fi + + local libdir=$(get_libdir) + local mycmakeargs=( + # disable appending VCS revision to the version to improve + # direct cache hit ratio + -DLLVM_APPEND_VC_REV=OFF + -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}" + -DLLVM_LIBDIR_SUFFIX=${libdir#lib} + + -DBUILD_SHARED_LIBS=OFF + -DLLVM_BUILD_LLVM_DYLIB=ON + -DLLVM_LINK_LLVM_DYLIB=ON + -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components) + + # cheap hack: LLVM combines both anyway, and the only difference + # is that the former list is explicitly verified at cmake time + -DLLVM_TARGETS_TO_BUILD="" + -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}" + -DLLVM_INCLUDE_BENCHMARKS=OFF + -DLLVM_INCLUDE_TESTS=ON + -DLLVM_BUILD_TESTS=$(usex test) + -DLLVM_INSTALL_GTEST=ON + + -DLLVM_ENABLE_FFI=$(usex libffi) + -DLLVM_ENABLE_LIBEDIT=$(usex libedit) + -DLLVM_ENABLE_TERMINFO=$(usex ncurses) + -DLLVM_ENABLE_LIBXML2=$(usex xml) + -DLLVM_ENABLE_ASSERTIONS=$(usex debug) + -DLLVM_ENABLE_LIBPFM=$(usex exegesis) + -DLLVM_ENABLE_EH=ON + -DLLVM_ENABLE_RTTI=ON + -DLLVM_ENABLE_Z3_SOLVER=$(usex z3) + -DLLVM_ENABLE_ZSTD=$(usex zstd) + -DLLVM_ENABLE_CURL=$(usex debuginfod) + -DLLVM_ENABLE_HTTPLIB=$(usex debuginfod) + + -DLLVM_HOST_TRIPLE="${CHOST}" + + -DFFI_INCLUDE_DIR="${ffi_cflags#-I}" + -DFFI_LIBRARY_DIR="${ffi_ldflags#-L}" + # used only for llvm-objdump tool + -DLLVM_HAVE_LIBXAR=$(multilib_native_usex xar 1 0) + + -DPython3_EXECUTABLE="${PYTHON}" + + # disable OCaml bindings (now in dev-ml/llvm-ocaml) + -DOCAMLFIND=NO + ) + + local suffix= + if [[ -n ${EGIT_VERSION} && ${EGIT_BRANCH} != release/* ]]; then + # the ABI of the main branch is not stable, so let's include + # the commit id in the SOVERSION to contain the breakage + suffix+="git${EGIT_VERSION::8}" + fi + if [[ $(tc-get-cxx-stdlib) == libc++ ]]; then + # Smart hack: alter version suffix -> SOVERSION when linking + # against libc++. This way we won't end up mixing LLVM libc++ + # libraries with libstdc++ clang, and the other way around. + suffix+="+libcxx" + mycmakeargs+=( + -DLLVM_ENABLE_LIBCXX=ON + ) + fi + mycmakeargs+=( + -DLLVM_VERSION_SUFFIX="${suffix}" + ) + + use test && mycmakeargs+=( + -DLLVM_LIT_ARGS="$(get_lit_flags)" + ) + + if multilib_is_native_abi; then + local build_docs=OFF + if llvm_are_manpages_built; then + build_docs=ON + mycmakeargs+=( + -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man" + -DLLVM_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html" + -DSPHINX_WARNINGS_AS_ERRORS=OFF + ) + fi + + mycmakeargs+=( + -DLLVM_BUILD_DOCS=${build_docs} + -DLLVM_ENABLE_OCAMLDOC=OFF + -DLLVM_ENABLE_SPHINX=${build_docs} + -DLLVM_ENABLE_DOXYGEN=OFF + -DLLVM_INSTALL_UTILS=ON + ) + use binutils-plugin && mycmakeargs+=( + -DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include + ) + fi + + # workaround BMI bug in gcc-7 (fixed in 7.4) + # https://bugs.gentoo.org/649880 + # apply only to x86, https://bugs.gentoo.org/650506 + if tc-is-gcc && [[ ${MULTILIB_ABI_FLAG} == abi_x86* ]] && + [[ $(gcc-major-version) -eq 7 && $(gcc-minor-version) -lt 4 ]] + then + local CFLAGS="${CFLAGS} -mno-bmi" + local CXXFLAGS="${CXXFLAGS} -mno-bmi" + fi + + # LLVM can have very high memory consumption while linking, + # exhausting the limit on 32-bit linker executable + use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory" + + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + cmake_src_configure + + grep -q -E "^CMAKE_PROJECT_VERSION_MAJOR(:.*)?=${LLVM_MAJOR}$" \ + CMakeCache.txt || + die "Incorrect version, did you update _LLVM_MASTER_MAJOR?" + multilib_is_native_abi && check_distribution_components +} + +multilib_src_compile() { + tc-env_build cmake_build distribution + + pax-mark m "${BUILD_DIR}"/bin/llvm-rtdyld + pax-mark m "${BUILD_DIR}"/bin/lli + pax-mark m "${BUILD_DIR}"/bin/lli-child-target + + if use test; then + pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/Orc/OrcJITTests + pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/MCJIT/MCJITTests + pax-mark m "${BUILD_DIR}"/unittests/Support/SupportTests + fi +} + +multilib_src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + cmake_build check +} + +src_install() { + local MULTILIB_CHOST_TOOLS=( + /usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-config + ) + + local MULTILIB_WRAPPED_HEADERS=( + /usr/include/llvm/Config/llvm-config.h + ) + + local LLVM_LDPATHS=() + multilib-minimal_src_install + + # move wrapped headers back + mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include || die +} + +multilib_src_install() { + DESTDIR=${D} cmake_build install-distribution + + # move headers to /usr/include for wrapping + rm -rf "${ED}"/usr/include || die + mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include "${ED}"/usr/include || die + + LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)" ) +} + +multilib_src_install_all() { + local revord=$(( 9999 - ${LLVM_MAJOR} )) + newenvd - "60llvm-${revord}" <<-_EOF_ + PATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin" + # we need to duplicate it in ROOTPATH for Portage to respect... + ROOTPATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin" + MANPATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man" + LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )" + _EOF_ + + docompress "/usr/lib/llvm/${LLVM_MAJOR}/share/man" + llvm_install_manpages +} + +pkg_postinst() { + elog "You can find additional opt-viewer utility scripts in:" + elog " ${EROOT}/usr/lib/llvm/${LLVM_MAJOR}/share/opt-viewer" + elog "To use these scripts, you will need Python along with the following" + elog "packages:" + elog " dev-python/pygments (for opt-viewer)" + elog " dev-python/pyyaml (for all of them)" +} diff --git a/sys-devel/llvm/llvm-17.0.0_pre20230526.ebuild b/sys-devel/llvm/llvm-17.0.0_pre20230526.ebuild new file mode 100644 index 000000000000..c2c2d7c6b628 --- /dev/null +++ b/sys-devel/llvm/llvm-17.0.0_pre20230526.ebuild @@ -0,0 +1,533 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..11} ) + +inherit cmake llvm.org multilib-minimal pax-utils python-any-r1 +inherit toolchain-funcs + +DESCRIPTION="Low Level Virtual Machine" +HOMEPAGE="https://llvm.org/" + +# Additional licenses: +# 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD. +# 2. xxhash: BSD. +# 3. MD5 code: public-domain. +# 4. ConvertUTF.h: TODO. + +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc" +SLOT="${LLVM_MAJOR}/${LLVM_SOABI}" +KEYWORDS="" +IUSE=" + +binutils-plugin +debug debuginfod doc exegesis libedit +libffi + ncurses test xar xml z3 zstd +" +RESTRICT="!test? ( test )" + +RDEPEND=" + sys-libs/zlib:0=[${MULTILIB_USEDEP}] + debuginfod? ( + net-misc/curl:= + dev-cpp/cpp-httplib:= + ) + exegesis? ( dev-libs/libpfm:= ) + libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] ) + libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] ) + ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] ) + xar? ( app-arch/xar ) + xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] ) + z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] ) + zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] ) +" +DEPEND=" + ${RDEPEND} + binutils-plugin? ( sys-libs/binutils-libs ) +" +BDEPEND=" + ${PYTHON_DEPS} + dev-lang/perl + >=dev-util/cmake-3.16 + sys-devel/gnuconfig + kernel_Darwin? ( + <sys-libs/libcxx-${LLVM_VERSION}.9999 + >=sys-devel/binutils-apple-5.1 + ) + doc? ( $(python_gen_any_dep ' + dev-python/recommonmark[${PYTHON_USEDEP}] + dev-python/sphinx[${PYTHON_USEDEP}] + ') ) + libffi? ( virtual/pkgconfig ) +" +# There are no file collisions between these versions but having :0 +# installed means llvm-config there will take precedence. +RDEPEND=" + ${RDEPEND} + !sys-devel/llvm:0 +" +PDEPEND=" + sys-devel/llvm-common + sys-devel/llvm-toolchain-symlinks:${LLVM_MAJOR} + binutils-plugin? ( >=sys-devel/llvmgold-${LLVM_MAJOR} ) +" + +LLVM_COMPONENTS=( llvm cmake third-party ) +LLVM_MANPAGES=1 +LLVM_USE_TARGETS=provide +llvm.org_set_globals + +python_check_deps() { + use doc || return 0 + + python_has_version -b "dev-python/recommonmark[${PYTHON_USEDEP}]" && + python_has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]" +} + +check_uptodate() { + local prod_targets=( + $(sed -n -e '/set(LLVM_ALL_TARGETS/,/)/p' CMakeLists.txt \ + | tail -n +2 | head -n -1) + ) + local all_targets=( + lib/Target/*/ + ) + all_targets=( "${all_targets[@]#lib/Target/}" ) + all_targets=( "${all_targets[@]%/}" ) + + local exp_targets=() i + for i in "${all_targets[@]}"; do + has "${i}" "${prod_targets[@]}" || exp_targets+=( "${i}" ) + done + + if [[ ${exp_targets[*]} != ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]} ]]; then + eqawarn "ALL_LLVM_EXPERIMENTAL_TARGETS is outdated!" + eqawarn " Have: ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]}" + eqawarn "Expected: ${exp_targets[*]}" + eqawarn + fi + + if [[ ${prod_targets[*]} != ${ALL_LLVM_PRODUCTION_TARGETS[*]} ]]; then + eqawarn "ALL_LLVM_PRODUCTION_TARGETS is outdated!" + eqawarn " Have: ${ALL_LLVM_PRODUCTION_TARGETS[*]}" + eqawarn "Expected: ${prod_targets[*]}" + fi +} + +check_distribution_components() { + if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then + local all_targets=() my_targets=() l + cd "${BUILD_DIR}" || die + + while read -r l; do + if [[ ${l} == install-*-stripped:* ]]; then + l=${l#install-} + l=${l%%-stripped*} + + case ${l} in + # shared libs + LLVM|LLVMgold) + ;; + # TableGen lib + deps + LLVMDemangle|LLVMSupport|LLVMTableGen) + ;; + # testing libraries + LLVMTestingAnnotations|LLVMTestingSupport) + ;; + # static libs + LLVM*) + continue + ;; + # meta-targets + distribution|llvm-libraries) + continue + ;; + # used only w/ USE=doc + docs-llvm-html) + use doc || continue + ;; + esac + + all_targets+=( "${l}" ) + fi + done < <(${NINJA} -t targets all) + + while read -r l; do + my_targets+=( "${l}" ) + done < <(get_distribution_components $"\n") + + local add=() remove=() + for l in "${all_targets[@]}"; do + if ! has "${l}" "${my_targets[@]}"; then + add+=( "${l}" ) + fi + done + for l in "${my_targets[@]}"; do + if ! has "${l}" "${all_targets[@]}"; then + remove+=( "${l}" ) + fi + done + + if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then + eqawarn "get_distribution_components() is outdated!" + eqawarn " Add: ${add[*]}" + eqawarn "Remove: ${remove[*]}" + fi + cd - >/dev/null || die + fi +} + +src_prepare() { + # disable use of SDK on OSX, bug #568758 + sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die + + # Update config.guess to support more systems + cp "${BROOT}/usr/share/gnuconfig/config.guess" cmake/ || die + + # Verify that the ebuild is up-to-date + check_uptodate + + llvm.org_src_prepare +} + +get_distribution_components() { + local sep=${1-;} + + local out=( + # shared libs + LLVM + LTO + Remarks + + # tools + llvm-config + + # common stuff + cmake-exports + llvm-headers + + # libraries needed for clang-tblgen + LLVMDemangle + LLVMSupport + LLVMTableGen + + # testing libraries + llvm_gtest + llvm_gtest_main + LLVMTestingAnnotations + LLVMTestingSupport + ) + + if multilib_is_native_abi; then + out+=( + # utilities + llvm-tblgen + FileCheck + llvm-PerfectShuffle + count + not + yaml-bench + UnicodeNameMappingGenerator + + # tools + bugpoint + dsymutil + llc + lli + lli-child-target + llvm-addr2line + llvm-ar + llvm-as + llvm-bcanalyzer + llvm-bitcode-strip + llvm-c-test + llvm-cat + llvm-cfi-verify + llvm-config + llvm-cov + llvm-cvtres + llvm-cxxdump + llvm-cxxfilt + llvm-cxxmap + llvm-debuginfo-analyzer + llvm-debuginfod-find + llvm-diff + llvm-dis + llvm-dlltool + llvm-dwarfdump + llvm-dwarfutil + llvm-dwp + llvm-exegesis + llvm-extract + llvm-gsymutil + llvm-ifs + llvm-install-name-tool + llvm-jitlink + llvm-jitlink-executor + llvm-lib + llvm-libtool-darwin + llvm-link + llvm-lipo + llvm-lto + llvm-lto2 + llvm-mc + llvm-mca + llvm-ml + llvm-modextract + llvm-mt + llvm-nm + llvm-objcopy + llvm-objdump + llvm-opt-report + llvm-otool + llvm-pdbutil + llvm-profdata + llvm-profgen + llvm-ranlib + llvm-rc + llvm-readelf + llvm-readobj + llvm-reduce + llvm-remark-size-diff + llvm-remarkutil + llvm-rtdyld + llvm-sim + llvm-size + llvm-split + llvm-stress + llvm-strings + llvm-strip + llvm-symbolizer + llvm-tapi-diff + llvm-tli-checker + llvm-undname + llvm-windres + llvm-xray + obj2yaml + opt + sancov + sanstats + split-file + verify-uselistorder + yaml2obj + + # python modules + opt-viewer + ) + + if llvm_are_manpages_built; then + out+=( + # manpages + docs-dsymutil-man + docs-llvm-dwarfdump-man + docs-llvm-man + ) + fi + use doc && out+=( + docs-llvm-html + ) + + use binutils-plugin && out+=( + LLVMgold + ) + use debuginfod && out+=( + llvm-debuginfod + ) + fi + + printf "%s${sep}" "${out[@]}" +} + +multilib_src_configure() { + local ffi_cflags ffi_ldflags + if use libffi; then + ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi) + ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi) + fi + + local libdir=$(get_libdir) + local mycmakeargs=( + # disable appending VCS revision to the version to improve + # direct cache hit ratio + -DLLVM_APPEND_VC_REV=OFF + -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}" + -DLLVM_LIBDIR_SUFFIX=${libdir#lib} + + -DBUILD_SHARED_LIBS=OFF + -DLLVM_BUILD_LLVM_DYLIB=ON + -DLLVM_LINK_LLVM_DYLIB=ON + -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components) + + # cheap hack: LLVM combines both anyway, and the only difference + # is that the former list is explicitly verified at cmake time + -DLLVM_TARGETS_TO_BUILD="" + -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}" + -DLLVM_INCLUDE_BENCHMARKS=OFF + -DLLVM_INCLUDE_TESTS=ON + -DLLVM_BUILD_TESTS=$(usex test) + -DLLVM_INSTALL_GTEST=ON + + -DLLVM_ENABLE_FFI=$(usex libffi) + -DLLVM_ENABLE_LIBEDIT=$(usex libedit) + -DLLVM_ENABLE_TERMINFO=$(usex ncurses) + -DLLVM_ENABLE_LIBXML2=$(usex xml) + -DLLVM_ENABLE_ASSERTIONS=$(usex debug) + -DLLVM_ENABLE_LIBPFM=$(usex exegesis) + -DLLVM_ENABLE_EH=ON + -DLLVM_ENABLE_RTTI=ON + -DLLVM_ENABLE_Z3_SOLVER=$(usex z3) + -DLLVM_ENABLE_ZSTD=$(usex zstd) + -DLLVM_ENABLE_CURL=$(usex debuginfod) + -DLLVM_ENABLE_HTTPLIB=$(usex debuginfod) + + -DLLVM_HOST_TRIPLE="${CHOST}" + + -DFFI_INCLUDE_DIR="${ffi_cflags#-I}" + -DFFI_LIBRARY_DIR="${ffi_ldflags#-L}" + # used only for llvm-objdump tool + -DLLVM_HAVE_LIBXAR=$(multilib_native_usex xar 1 0) + + -DPython3_EXECUTABLE="${PYTHON}" + + # disable OCaml bindings (now in dev-ml/llvm-ocaml) + -DOCAMLFIND=NO + ) + + local suffix= + if [[ -n ${EGIT_VERSION} && ${EGIT_BRANCH} != release/* ]]; then + # the ABI of the main branch is not stable, so let's include + # the commit id in the SOVERSION to contain the breakage + suffix+="git${EGIT_VERSION::8}" + fi + if [[ $(tc-get-cxx-stdlib) == libc++ ]]; then + # Smart hack: alter version suffix -> SOVERSION when linking + # against libc++. This way we won't end up mixing LLVM libc++ + # libraries with libstdc++ clang, and the other way around. + suffix+="+libcxx" + mycmakeargs+=( + -DLLVM_ENABLE_LIBCXX=ON + ) + fi + mycmakeargs+=( + -DLLVM_VERSION_SUFFIX="${suffix}" + ) + + use test && mycmakeargs+=( + -DLLVM_LIT_ARGS="$(get_lit_flags)" + ) + + if multilib_is_native_abi; then + local build_docs=OFF + if llvm_are_manpages_built; then + build_docs=ON + mycmakeargs+=( + -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man" + -DLLVM_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html" + -DSPHINX_WARNINGS_AS_ERRORS=OFF + ) + fi + + mycmakeargs+=( + -DLLVM_BUILD_DOCS=${build_docs} + -DLLVM_ENABLE_OCAMLDOC=OFF + -DLLVM_ENABLE_SPHINX=${build_docs} + -DLLVM_ENABLE_DOXYGEN=OFF + -DLLVM_INSTALL_UTILS=ON + ) + use binutils-plugin && mycmakeargs+=( + -DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include + ) + fi + + # workaround BMI bug in gcc-7 (fixed in 7.4) + # https://bugs.gentoo.org/649880 + # apply only to x86, https://bugs.gentoo.org/650506 + if tc-is-gcc && [[ ${MULTILIB_ABI_FLAG} == abi_x86* ]] && + [[ $(gcc-major-version) -eq 7 && $(gcc-minor-version) -lt 4 ]] + then + local CFLAGS="${CFLAGS} -mno-bmi" + local CXXFLAGS="${CXXFLAGS} -mno-bmi" + fi + + # LLVM can have very high memory consumption while linking, + # exhausting the limit on 32-bit linker executable + use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory" + + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + cmake_src_configure + + grep -q -E "^CMAKE_PROJECT_VERSION_MAJOR(:.*)?=${LLVM_MAJOR}$" \ + CMakeCache.txt || + die "Incorrect version, did you update _LLVM_MASTER_MAJOR?" + multilib_is_native_abi && check_distribution_components +} + +multilib_src_compile() { + tc-env_build cmake_build distribution + + pax-mark m "${BUILD_DIR}"/bin/llvm-rtdyld + pax-mark m "${BUILD_DIR}"/bin/lli + pax-mark m "${BUILD_DIR}"/bin/lli-child-target + + if use test; then + pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/Orc/OrcJITTests + pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/MCJIT/MCJITTests + pax-mark m "${BUILD_DIR}"/unittests/Support/SupportTests + fi +} + +multilib_src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + cmake_build check +} + +src_install() { + local MULTILIB_CHOST_TOOLS=( + /usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-config + ) + + local MULTILIB_WRAPPED_HEADERS=( + /usr/include/llvm/Config/llvm-config.h + ) + + local LLVM_LDPATHS=() + multilib-minimal_src_install + + # move wrapped headers back + mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include || die +} + +multilib_src_install() { + DESTDIR=${D} cmake_build install-distribution + + # move headers to /usr/include for wrapping + rm -rf "${ED}"/usr/include || die + mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include "${ED}"/usr/include || die + + LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)" ) +} + +multilib_src_install_all() { + local revord=$(( 9999 - ${LLVM_MAJOR} )) + newenvd - "60llvm-${revord}" <<-_EOF_ + PATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin" + # we need to duplicate it in ROOTPATH for Portage to respect... + ROOTPATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin" + MANPATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man" + LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )" + _EOF_ + + docompress "/usr/lib/llvm/${LLVM_MAJOR}/share/man" + llvm_install_manpages +} + +pkg_postinst() { + elog "You can find additional opt-viewer utility scripts in:" + elog " ${EROOT}/usr/lib/llvm/${LLVM_MAJOR}/share/opt-viewer" + elog "To use these scripts, you will need Python along with the following" + elog "packages:" + elog " dev-python/pygments (for opt-viewer)" + elog " dev-python/pyyaml (for all of them)" +} diff --git a/sys-devel/llvm/metadata.xml b/sys-devel/llvm/metadata.xml index 084e1821104b..d9ba661926c8 100644 --- a/sys-devel/llvm/metadata.xml +++ b/sys-devel/llvm/metadata.xml @@ -11,6 +11,7 @@ 4. LLVM does not imply things that you would expect from a high-level virtual machine. It does not require garbage collection or run-time code generation (In fact, LLVM makes a great static compiler!). Note that optional LLVM components can be used to build high-level virtual machines and other systems that need these services.</longdescription> <use> <flag name="binutils-plugin">Build the binutils plugin</flag> + <flag name="debuginfod">Install llvm-debuginfod (requires <pkg>net-misc/curl</pkg> and <pkg>dev-cpp/cpp-httplib</pkg>)</flag> <flag name="doc">Build and install the HTML documentation and regenerate the man pages</flag> <flag name="exegesis">Enable performance counter support for llvm-exegesis tool that can be used to measure host machine instruction characteristics</flag> diff --git a/sys-devel/llvmgold/llvmgold-13-r2.ebuild b/sys-devel/llvmgold/llvmgold-13-r2.ebuild deleted file mode 100644 index c5b814adfa63..000000000000 --- a/sys-devel/llvmgold/llvmgold-13-r2.ebuild +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="LLVMgold plugin symlink for autoloading" -HOMEPAGE="https://llvm.org/" -SRC_URI="" - -LICENSE="public-domain" -SLOT="0" -KEYWORDS="amd64 arm arm64 ~ppc ppc64 ~riscv ~sparc x86 ~amd64-linux" - -RDEPEND=" - sys-devel/llvm:${PV}[binutils-plugin(-)] - !sys-devel/llvm:0" - -S=${WORKDIR} - -src_install() { - dodir "/usr/${CHOST}/binutils-bin/lib/bfd-plugins" - dosym "../../../../lib/llvm/${PV}/$(get_libdir)/LLVMgold.so" \ - "/usr/${CHOST}/binutils-bin/lib/bfd-plugins/LLVMgold.so" -} diff --git a/sys-devel/llvmgold/llvmgold-16.ebuild b/sys-devel/llvmgold/llvmgold-16.ebuild index 17566e8e5d16..83a4359d7099 100644 --- a/sys-devel/llvmgold/llvmgold-16.ebuild +++ b/sys-devel/llvmgold/llvmgold-16.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -9,7 +9,7 @@ S=${WORKDIR} LICENSE="public-domain" SLOT="0" -KEYWORDS="~loong" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux" RDEPEND=" sys-devel/llvm:${PV}[binutils-plugin] diff --git a/sys-devel/m4/m4-1.4.19-r1.ebuild b/sys-devel/m4/m4-1.4.19-r1.ebuild deleted file mode 100644 index 83b5384aa9a8..000000000000 --- a/sys-devel/m4/m4-1.4.19-r1.ebuild +++ /dev/null @@ -1,101 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/m4.asc -inherit verify-sig - -DESCRIPTION="GNU macro processor" -HOMEPAGE="https://www.gnu.org/software/m4/m4.html" -if [[ ${PV} == *_beta* ]] ; then - MY_P="${PN}-1.4.18d" - SRC_URI="https://alpha.gnu.org/gnu/${PN}/${MY_P}.tar.xz" - SRC_URI+=" verify-sig? ( https://alpha.gnu.org/gnu/${PN}/${MY_P}.tar.xz.sig )" - S="${WORKDIR}/${MY_P}" -else - SRC_URI="mirror://gnu/${PN}/${P}.tar.xz" - SRC_URI+=" https://dev.gentoo.org/~floppym/dist/${P}-test-198-sysval-r1.patch.gz" - SRC_URI+=" verify-sig? ( mirror://gnu/${PN}/${P}.tar.xz.sig )" - 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" -fi - -LICENSE="GPL-3" -SLOT="0" -IUSE="examples nls" - -RDEPEND=" - virtual/libiconv - nls? ( - sys-devel/gettext - virtual/libintl - )" -DEPEND="${RDEPEND}" -# Remember: cannot dep on autoconf since it needs us -BDEPEND="app-arch/xz-utils - nls? ( sys-devel/gettext ) - verify-sig? ( sec-keys/openpgp-keys-m4 )" - -PATCHES=( - "${FILESDIR}"/ppc-musl.patch - "${FILESDIR}"/loong-fix-build.patch - "${FILESDIR}"/${PN}-1.4.19-make-4.4-tests.patch - "${WORKDIR}"/${P}-test-198-sysval-r1.patch - "${FILESDIR}"/${PN}-1.4.19-fortify-source.patch -) - -src_unpack() { - if use verify-sig ; then - # Needed for downloaded patch (which is unsigned, which is fine) - verify-sig_verify_detached "${DISTDIR}"/${P}.tar.xz{,.sig} - fi - - default -} - -src_prepare() { - default - - # touch generated files after patching m4, to avoid activating maintainer - # mode - # remove when loong-fix-build.patch is no longer necessary - touch ./aclocal.m4 ./lib/config.hin ./configure ./doc/stamp-vti || die - find . -name Makefile.in -exec touch {} + || die -} - -src_configure() { - local -a myeconfargs=( - --enable-changeword - - --with-packager="Gentoo Linux" - --with-packager-version="${PVR}" - --with-packager-bug-reports="https://bugs.gentoo.org/" - - $(usex nls '' '--disable-nls') - - # Disable automagic dependency over libsigsegv; see bug #278026 - ac_cv_libsigsegv=no - ) - - [[ ${USERLAND} != GNU ]] && myeconfargs+=( --program-prefix=g ) - - econf "${myeconfargs[@]}" -} - -src_test() { - [[ -d /none ]] && die "m4 tests will fail with /none/" #244396 - emake check -} - -src_install() { - default - - # autoconf-2.60 for instance, first checks gm4, then m4. If we don't have - # gm4, it might find gm4 from outside the prefix on for instance Darwin - use prefix && dosym m4 /usr/bin/gm4 - - if use examples ; then - dodoc -r examples - rm -f "${ED}"/usr/share/doc/${PF}/examples/Makefile* - fi -} diff --git a/sys-devel/m4/m4-1.4.19.ebuild b/sys-devel/m4/m4-1.4.19-r2.ebuild index fab597f0fcad..f30969b49eab 100644 --- a/sys-devel/m4/m4-1.4.19.ebuild +++ b/sys-devel/m4/m4-1.4.19-r2.ebuild @@ -1,7 +1,7 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/m4.asc inherit verify-sig @@ -17,7 +17,7 @@ else SRC_URI="mirror://gnu/${PN}/${P}.tar.xz" SRC_URI+=" https://dev.gentoo.org/~floppym/dist/${P}-test-198-sysval-r1.patch.gz" SRC_URI+=" verify-sig? ( mirror://gnu/${PN}/${P}.tar.xz.sig )" - 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" + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi LICENSE="GPL-3" @@ -41,6 +41,7 @@ PATCHES=( "${FILESDIR}"/loong-fix-build.patch "${FILESDIR}"/${PN}-1.4.19-make-4.4-tests.patch "${WORKDIR}"/${P}-test-198-sysval-r1.patch + "${FILESDIR}"/${PN}-1.4.19-fortify-source.patch ) src_unpack() { @@ -76,8 +77,6 @@ src_configure() { ac_cv_libsigsegv=no ) - [[ ${USERLAND} != GNU ]] && myeconfargs+=( --program-prefix=g ) - econf "${myeconfargs[@]}" } diff --git a/sys-devel/make/Manifest b/sys-devel/make/Manifest index cb6f278d5cb1..ceee9e83b6c7 100644 --- a/sys-devel/make/Manifest +++ b/sys-devel/make/Manifest @@ -1,6 +1,4 @@ DIST make-4.3.tar.gz 2317073 BLAKE2B 5a82ce1f30eb034366ac3b87d2ec6698aae17d7b1a611941cf42136b2453b34236ab55382eab0a593c43cee8b036ba4a054f966c41ba766fdbd2862942be5dff SHA512 9a1185cc468368f4ec06478b1cfa343bf90b5cd7c92c0536567db0315b0ee909af53ecce3d44cfd93dd137dbca1ed13af5713e8663590c4fdd21ea635d78496b DIST make-4.3.tar.gz.sig 566 BLAKE2B 75bf71602e60f97ec8efa81676329047746d960257ef310b89a059144c00628b6a1ddf7a16a2ac2c3e935b8591475f5043a7c7546668ab39abbc4717c75a6528 SHA512 bf13e2943593b153457c8111179e8ae11cef2d9185a986106a1e70946a260bd930505a5e10002c5a60888e11affc07713c367b8680fd511ad87b2e124d303a99 -DIST make-4.4.0.90.tar.gz 2328399 BLAKE2B fc260a3c942b00d57bc64fc037e4e4a510000ec281194122e3315f0ca7c6fe3507877c84bff62e197f5df45e1d5d95aae347085e225377788ebd466a1327cb25 SHA512 e693e6146871dcaf5b65b6c05b620047b6c2a3474b02ecc58cf4698f88107cc7a7b0d35551eb209c772b09ea7db2ffde13fe984d6227339974ca54a68b99839b -DIST make-4.4.0.90.tar.gz.sig 833 BLAKE2B b0a2d98f5a99ee29523c6b25be4b29bfb193773ab5b70ce26adf75a066e30ca95d79b111eedc656e817246cfaf7f9345014626b12de5a381e44e4b6f8ddd5be1 SHA512 7a20c6058221b1003a26806f65d7b568575f88187562b89b7593c67dfc2b15569cd92c75c23056b2a3ff7577f96794835f1b6d5d9f5f5b92c59acb3af8efc944 -DIST make-4.4.tar.gz 2307891 BLAKE2B 5b8a2fcd7610c33347c2e552fdc4f2698c9a4c468de588c9687cd11d15f120a37768bcd521231adf32359e3b48b27ab7b142746fd18b1a8d15578d34344f487e SHA512 4be73f494295dcfa10034531b0d920cfdb5438bc20625f863f5c878549c140e1e67195162580c53060c3c11c67a2c739c09051f02cdd283e5aa9ebcd68975a1f -DIST make-4.4.tar.gz.sig 566 BLAKE2B 879e85eccd748a9e6687e8beaaf1321ad84986990290c34d34285eab96fe9d493db1e6f20178aa5374796da9c8fb58f87065ea2de44a6daa55dd23dcc8b09c8f SHA512 76b7ecb3aa38b0a6867fd0379e42d2cae6632f102d902ac604e7ea3265ac1c1090da8e5676bd56b9946dc291e57c06bb05c953f76714fe8bd27b924bb39301e6 +DIST make-4.4.1.tar.gz 2348200 BLAKE2B 09a4ad8060259e36854b525ab610fd317a86f4926e44e3ab8adba75dccc8d4b445df9dd25ccfb4c25a54bc0e98238a9127e36401d74cbc3503a329eadcdf4995 SHA512 145260cbd6a8226cef3dfef0c8baba31847beaebc7e6b65d39d02715fd4f4cab9b139b6c3772e550088d4f9ae80c6d3ed20b9a7664c693644dfb96b4cb60e67c +DIST make-4.4.1.tar.gz.sig 833 BLAKE2B d5f9a33b0262d4a9216f47718f6596884852662a692e708191a7007964007940da1c06549db28ae1d13683c4a949b9ee86da9dedd9a80da8f8b09e71e659e9a1 SHA512 d7a5531c10f216d690ec036f3875c7f314fa53006e138568c60132d506db48d1a59201623e168091dafa4465b005991019e42f81ff1a96a44610b6b18de08b09 diff --git a/sys-devel/make/files/make-4.4-default-cxx.patch b/sys-devel/make/files/make-4.4-default-cxx.patch new file mode 100644 index 000000000000..4a56df5da2c8 --- /dev/null +++ b/sys-devel/make/files/make-4.4-default-cxx.patch @@ -0,0 +1,11 @@ +--- a/src/default.c ++++ b/src/default.c +@@ -542,7 +542,7 @@ static const char *default_variables[] = + "CXX", "gcc", + # endif /* __MSDOS__ */ + # else +- "CXX", "g++", ++ "CXX", "c++", + # endif + #endif + /* This expands to $(CO) $(COFLAGS) $< $@ if $@ does not exist, diff --git a/sys-devel/make/make-4.3.ebuild b/sys-devel/make/make-4.3-r1.ebuild index e924bf762998..6edaa75e0a51 100644 --- a/sys-devel/make/make-4.3.ebuild +++ b/sys-devel/make/make-4.3-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -17,7 +17,7 @@ elif [[ $(ver_cut 3) -ge 90 ]] ; then else SRC_URI="mirror://gnu//make/${P}.tar.gz" SRC_URI+=" verify-sig? ( mirror://gnu//make/${P}.tar.gz.sig )" - 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" + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi LICENSE="GPL-3+" @@ -67,10 +67,7 @@ src_configure() { src_install() { emake DESTDIR="${D}" install dodoc AUTHORS NEWS README* - if [[ ${USERLAND} == "GNU" ]] ; then - # we install everywhere as 'gmake' but on GNU systems, - # symlink 'make' to 'gmake' - dosym gmake /usr/bin/make - dosym gmake.1 /usr/share/man/man1/make.1 - fi + + dosym gmake /usr/bin/make + dosym gmake.1 /usr/share/man/man1/make.1 } diff --git a/sys-devel/make/make-4.4.0.90.ebuild b/sys-devel/make/make-4.4.1-r1.ebuild index abb820aa6eb6..c66255da0f38 100644 --- a/sys-devel/make/make-4.4.0.90.ebuild +++ b/sys-devel/make/make-4.4.1-r1.ebuild @@ -17,7 +17,7 @@ elif [[ $(ver_cut 3) -ge 90 || $(ver_cut 4) -ge 90 ]] ; then else SRC_URI="mirror://gnu/make/${P}.tar.gz" SRC_URI+=" verify-sig? ( mirror://gnu/make/${P}.tar.gz.sig )" - 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" + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi LICENSE="GPL-3+" @@ -25,14 +25,17 @@ SLOT="0" IUSE="guile nls static" DEPEND="guile? ( >=dev-scheme/guile-1.8:= )" -BDEPEND="nls? ( sys-devel/gettext ) - verify-sig? ( sec-keys/openpgp-keys-make )" -RDEPEND="${DEPEND} - nls? ( virtual/libintl )" +RDEPEND=" + ${DEPEND} + nls? ( virtual/libintl ) +" +BDEPEND=" + nls? ( sys-devel/gettext ) + verify-sig? ( sec-keys/openpgp-keys-make ) +" PATCHES=( - "${FILESDIR}"/${PN}-3.82-darwin-library_search-dylib.patch - "${FILESDIR}"/${PN}-4.2-default-cxx.patch + "${FILESDIR}"/${PN}-4.4-default-cxx.patch ) src_unpack() { @@ -67,10 +70,7 @@ src_configure() { src_install() { emake DESTDIR="${D}" install dodoc AUTHORS NEWS README* - if [[ ${USERLAND} == "GNU" ]] ; then - # we install everywhere as 'gmake' but on GNU systems, - # symlink 'make' to 'gmake' - dosym gmake /usr/bin/make - dosym gmake.1 /usr/share/man/man1/make.1 - fi + + dosym gmake /usr/bin/make + dosym gmake.1 /usr/share/man/man1/make.1 } diff --git a/sys-devel/make/make-4.4.ebuild b/sys-devel/make/make-4.4.ebuild deleted file mode 100644 index 73a2aedb6375..000000000000 --- a/sys-devel/make/make-4.4.ebuild +++ /dev/null @@ -1,76 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/make.asc -inherit flag-o-matic verify-sig - -DESCRIPTION="Standard tool to compile source trees" -HOMEPAGE="https://www.gnu.org/software/make/make.html" -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://git.savannah.gnu.org/git/make.git" - inherit autotools git-r3 -elif [[ $(ver_cut 3) -ge 90 ]] ; then - SRC_URI="https://alpha.gnu.org/gnu/make/${P}.tar.gz" - SRC_URI+=" verify-sig? ( https://alpha.gnu.org/gnu/make/${P}.tar.gz.sig )" -else - SRC_URI="mirror://gnu/make/${P}.tar.gz" - SRC_URI+=" verify-sig? ( mirror://gnu/make/${P}.tar.gz.sig )" - 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" -fi - -LICENSE="GPL-3+" -SLOT="0" -IUSE="guile nls static" - -DEPEND="guile? ( >=dev-scheme/guile-1.8:= )" -BDEPEND="nls? ( sys-devel/gettext ) - verify-sig? ( sec-keys/openpgp-keys-make )" -RDEPEND="${DEPEND} - nls? ( virtual/libintl )" - -PATCHES=( - "${FILESDIR}"/${PN}-3.82-darwin-library_search-dylib.patch - "${FILESDIR}"/${PN}-4.2-default-cxx.patch -) - -src_unpack() { - if [[ ${PV} == 9999 ]] ; then - git-r3_src_unpack - - cd "${S}" || die - ./bootstrap || die - else - default - fi -} - -src_prepare() { - default - - if [[ ${PV} == 9999 ]] ; then - eautoreconf - fi -} - -src_configure() { - use static && append-ldflags -static - local myeconfargs=( - --program-prefix=g - $(use_with guile) - $(use_enable nls) - ) - econf "${myeconfargs[@]}" -} - -src_install() { - emake DESTDIR="${D}" install - dodoc AUTHORS NEWS README* - if [[ ${USERLAND} == "GNU" ]] ; then - # we install everywhere as 'gmake' but on GNU systems, - # symlink 'make' to 'gmake' - dosym gmake /usr/bin/make - dosym gmake.1 /usr/share/man/man1/make.1 - fi -} diff --git a/sys-devel/make/make-9999.ebuild b/sys-devel/make/make-9999.ebuild index abb820aa6eb6..be23c7c0dfbd 100644 --- a/sys-devel/make/make-9999.ebuild +++ b/sys-devel/make/make-9999.ebuild @@ -17,7 +17,7 @@ elif [[ $(ver_cut 3) -ge 90 || $(ver_cut 4) -ge 90 ]] ; then else SRC_URI="mirror://gnu/make/${P}.tar.gz" SRC_URI+=" verify-sig? ( mirror://gnu/make/${P}.tar.gz.sig )" - 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" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi LICENSE="GPL-3+" @@ -25,14 +25,17 @@ SLOT="0" IUSE="guile nls static" DEPEND="guile? ( >=dev-scheme/guile-1.8:= )" -BDEPEND="nls? ( sys-devel/gettext ) - verify-sig? ( sec-keys/openpgp-keys-make )" -RDEPEND="${DEPEND} - nls? ( virtual/libintl )" +RDEPEND=" + ${DEPEND} + nls? ( virtual/libintl ) +" +BDEPEND=" + nls? ( sys-devel/gettext ) + verify-sig? ( sec-keys/openpgp-keys-make ) +" PATCHES=( - "${FILESDIR}"/${PN}-3.82-darwin-library_search-dylib.patch - "${FILESDIR}"/${PN}-4.2-default-cxx.patch + "${FILESDIR}"/${PN}-4.4-default-cxx.patch ) src_unpack() { @@ -67,10 +70,7 @@ src_configure() { src_install() { emake DESTDIR="${D}" install dodoc AUTHORS NEWS README* - if [[ ${USERLAND} == "GNU" ]] ; then - # we install everywhere as 'gmake' but on GNU systems, - # symlink 'make' to 'gmake' - dosym gmake /usr/bin/make - dosym gmake.1 /usr/share/man/man1/make.1 - fi + + dosym gmake /usr/bin/make + dosym gmake.1 /usr/share/man/man1/make.1 } diff --git a/sys-devel/make/metadata.xml b/sys-devel/make/metadata.xml index fee78a624e6a..068fc3567c55 100644 --- a/sys-devel/make/metadata.xml +++ b/sys-devel/make/metadata.xml @@ -7,5 +7,6 @@ </maintainer> <upstream> <remote-id type="cpe">cpe:/a:gnu:make</remote-id> + <remote-id type="savannah">make</remote-id> </upstream> </pkgmetadata> diff --git a/sys-devel/mold/Manifest b/sys-devel/mold/Manifest index 9735bd00497b..331edf201d83 100644 --- a/sys-devel/mold/Manifest +++ b/sys-devel/mold/Manifest @@ -1,3 +1,2 @@ DIST mold-1.10.1.tar.gz 8173701 BLAKE2B 142b4ec6297f1d4eb7576d16603a214244216592df7320639da3fce32890fc3d13e681dcb79ed23e4c0c7dba1f97eb10c622052c67787b6699925ae67ddb1d15 SHA512 b9df5ddc3a3a022523506638309373c3440128f3c702a7db69c44c180177148e92fbf73347be0c4e0e890395cfb2a5b12d2650ee267f9f58212ccfa981519bbf -DIST mold-1.8.0.tar.gz 8155820 BLAKE2B cd4285953ec56fa437d32c74b928617a50508c0b947dd0c0a3fac6813d7b929d9499f24aa2641faab78d5e81fbced48d734389c61313d752f509d25d2e1f9c61 SHA512 923158563c7abd39c7111e3871a90c7f6f17e0b2412c5de0c9924f3fb55d7fe57db4a83d8a20c3d4966b7b117d1c95cf4a59f63d5076db422b9aa5c3485fd7f8 -DIST mold-1.9.0.tar.gz 8163212 BLAKE2B 09ce66e4214c184ea2f36720bc0f839f77ff2a708d56a5767d29758d62310eaf1193394d581c4352404958052c29c0cbc55a4826d10285beda50afb20bd51c80 SHA512 c1c45bced963d4f7c9b67905177157d6f76c518b234fe3eefa2a9ba6c35a08dd6659e64b7939744355ebcd72ae343ef0249ef6a0c80b4d77b1e69e327eb3ba19 +DIST mold-1.11.0.tar.gz 8210923 BLAKE2B b3854a14a956dd568625fc28c96636e7cadf81b9a93954601b03e249db0aedf726a5a1f24c0758c8189a936501ebb778b472ee6e958fe9f43cb3c3093b2dda2a SHA512 a9068600dd2db757552cce027f358c0b9e6af0941b92f81c1e99e2dde674bd06cc3533d432258e42a2197d9b3f8e7bb263de281928357a79e4fb17fb19719bc0 diff --git a/sys-devel/mold/mold-1.10.1.ebuild b/sys-devel/mold/mold-1.10.1.ebuild index ea88934048d6..a574dbeb3b3a 100644 --- a/sys-devel/mold/mold-1.10.1.ebuild +++ b/sys-devel/mold/mold-1.10.1.ebuild @@ -12,7 +12,7 @@ if [[ ${PV} == 9999 ]] ; then inherit git-r3 else SRC_URI="https://github.com/rui314/mold/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~amd64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 ~ppc64 ~riscv ~x86" fi # mold (AGPL-3) diff --git a/sys-devel/mold/mold-1.8.0-r1.ebuild b/sys-devel/mold/mold-1.11.0.ebuild index 11b57176b2ba..4ce10d6ee43c 100644 --- a/sys-devel/mold/mold-1.8.0-r1.ebuild +++ b/sys-devel/mold/mold-1.11.0.ebuild @@ -12,7 +12,7 @@ if [[ ${PV} == 9999 ]] ; then inherit git-r3 else SRC_URI="https://github.com/rui314/mold/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 ~riscv ~x86" + KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" fi # mold (AGPL-3) diff --git a/sys-devel/mold/mold-1.9.0.ebuild b/sys-devel/mold/mold-1.9.0.ebuild deleted file mode 100644 index 8063ade34f39..000000000000 --- a/sys-devel/mold/mold-1.9.0.ebuild +++ /dev/null @@ -1,89 +0,0 @@ -# Copyright 2021-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake toolchain-funcs - -DESCRIPTION="A Modern Linker" -HOMEPAGE="https://github.com/rui314/mold" -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://github.com/rui314/mold.git" - inherit git-r3 -else - SRC_URI="https://github.com/rui314/mold/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~amd64 ~riscv ~x86" -fi - -# mold (AGPL-3) -# - xxhash (BSD-2) -LICENSE="AGPL-3 BSD-2" -SLOT="0" - -RDEPEND=" - app-arch/zstd:= - >=dev-cpp/tbb-2021.7.0-r1:= - sys-libs/zlib - !kernel_Darwin? ( - >=dev-libs/mimalloc-2:= - dev-libs/openssl:= - ) -" -DEPEND="${RDEPEND}" - -pkg_pretend() { - # Requires a c++20 compiler, see #831473 - if [[ ${MERGE_TYPE} != binary ]]; then - if tc-is-gcc && [[ $(gcc-major-version) -lt 10 ]]; then - die "${PN} needs at least gcc 10" - elif tc-is-clang && [[ $(clang-major-version) -lt 12 ]]; then - die "${PN} needs at least clang 12" - fi - fi -} - -src_prepare() { - cmake_src_prepare - - # Needs unpackaged dwarfdump - rm test/elf/{{dead,compress}-debug-sections,compressed-debug-info}.sh || die - - # Heavy tests, need qemu - rm test/elf/gdb-index-{compress-output,dwarf{2,3,4,5}}.sh || die - rm test/elf/lto-{archive,dso,gcc,llvm,version-script}.sh || die - - # Sandbox sadness - rm test/elf/run.sh || die - sed -i 's|`pwd`/mold-wrapper.so|"& ${LD_PRELOAD}"|' \ - test/elf/mold-wrapper{,2}.sh || die - - # static-pie tests require glibc built with static-pie support - if ! has_version -d 'sys-libs/glibc[static-pie(+)]'; then - rm test/elf/{,ifunc-}static-pie.sh || die - fi -} - -src_configure() { - local mycmakeargs=( - -DMOLD_ENABLE_QEMU_TESTS=OFF - -DMOLD_LTO=OFF # Should be up to the user to decide this with CXXFLAGS. - -DMOLD_USE_SYSTEM_MIMALLOC=ON - -DMOLD_USE_SYSTEM_TBB=ON - ) - cmake_src_configure -} - -src_install() { - dobin "${BUILD_DIR}"/${PN} - - # https://bugs.gentoo.org/872773 - insinto /usr/$(get_libdir)/mold - doins "${BUILD_DIR}"/${PN}-wrapper.so - - dodoc docs/{design,execstack}.md - doman docs/${PN}.1 - - dosym ${PN} /usr/bin/ld.${PN} - dosym ${PN} /usr/bin/ld64.${PN} - dosym ../../../usr/bin/${PN} /usr/libexec/${PN}/ld -} diff --git a/sys-devel/native-cctools/native-cctools-4.ebuild b/sys-devel/native-cctools/native-cctools-4.ebuild index f961a43cc039..695e5c5a8da0 100644 --- a/sys-devel/native-cctools/native-cctools-4.ebuild +++ b/sys-devel/native-cctools/native-cctools-4.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="6" @@ -12,9 +12,7 @@ SRC_URI="" LICENSE="GPL-2" # actually, we don't know, the wrapper is SLOT="0" -AIX_V='aix-2' - -KEYWORDS="~ppc-macos ~x64-macos ~x64-solaris ~x86-solaris" +KEYWORDS="~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="" @@ -39,18 +37,9 @@ src_install() { *-solaris*) nativepath=/usr/sfw/bin ;; - *-aix*) - nativepath=/usr/ccs/bin - wrappers=("${wrappers[@]}" "ld=${FILESDIR}/${AIX_V}/ld") - wrappers=("${wrappers[@]}" "nm=${FILESDIR}/${AIX_V}/nm") - wrappers=("${wrappers[@]}" "mkexpfile=${FILESDIR}/${AIX_V}/mkexpfile") - ;; - *-apple-darwin*|*-netbsd*|*-openbsd*) + *-apple-darwin*) nativepath=/usr/bin ;; - *-interix*) - nativepath=/opt/gcc.3.3/bin - ;; *) die "Don't know where the native linker for your platform is" ;; diff --git a/sys-devel/native-cctools/native-cctools-5.ebuild b/sys-devel/native-cctools/native-cctools-5.ebuild index 821c9fafacdf..11840006b901 100644 --- a/sys-devel/native-cctools/native-cctools-5.ebuild +++ b/sys-devel/native-cctools/native-cctools-5.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="6" @@ -12,9 +12,7 @@ SRC_URI="" LICENSE="GPL-2" # actually, we don't know, the wrapper is SLOT="0" -AIX_V='aix-2' - -KEYWORDS="~ppc-macos ~x64-macos ~x64-solaris ~x86-solaris" +KEYWORDS="~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="" @@ -39,18 +37,9 @@ src_install() { *-solaris*) nativepath=/usr/sfw/bin ;; - *-aix*) - nativepath=/usr/ccs/bin - wrappers=("${wrappers[@]}" "ld=${FILESDIR}/${AIX_V}/ld") - wrappers=("${wrappers[@]}" "nm=${FILESDIR}/${AIX_V}/nm") - wrappers=("${wrappers[@]}" "mkexpfile=${FILESDIR}/${AIX_V}/mkexpfile") - ;; - *-apple-darwin*|*-netbsd*|*-openbsd*) + *-apple-darwin*) nativepath=/usr/bin ;; - *-interix*) - nativepath=/opt/gcc.3.3/bin - ;; *) die "Don't know where the native linker for your platform is" ;; diff --git a/sys-devel/nvptx-tools/Manifest b/sys-devel/nvptx-tools/Manifest new file mode 100644 index 000000000000..59a28d80175c --- /dev/null +++ b/sys-devel/nvptx-tools/Manifest @@ -0,0 +1 @@ +DIST nvptx-tools-0_pre20230122.tar.gz 789116 BLAKE2B f05b922827c0215a2484c4f91f3424ca866bb91435a3d60559fc9f1f63c06559377f1c8071c9e8e5607ec4dbff1c22d095385ac86d35f43ade29d9df6699f3ff SHA512 9d3bceef2ef7942ea6ec8b6c6b1b9144f0a020bfabc2583ba4ef73db8ef299ffadbc6dbe27748c728bd16aee0ecd6f0fbe1f8bb064bde986bb4e0475b2494870 diff --git a/sys-devel/nvptx-tools/metadata.xml b/sys-devel/nvptx-tools/metadata.xml new file mode 100644 index 000000000000..6b28014927dc --- /dev/null +++ b/sys-devel/nvptx-tools/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>toolchain@gentoo.org</email> + <name>Gentoo Toolchain Project</name> + </maintainer> + <upstream> + <remote-id type="github">MentorEmbedded/nvptx-tools</remote-id> + </upstream> +</pkgmetadata> diff --git a/sys-devel/nvptx-tools/nvptx-tools-0_pre20230122.ebuild b/sys-devel/nvptx-tools/nvptx-tools-0_pre20230122.ebuild new file mode 100644 index 000000000000..e960beb57623 --- /dev/null +++ b/sys-devel/nvptx-tools/nvptx-tools-0_pre20230122.ebuild @@ -0,0 +1,52 @@ +# Copyright 2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Collection of tools for use with nvptx-none GCC toolchains" +HOMEPAGE="https://github.com/MentorEmbedded/nvptx-tools https://gcc.gnu.org/wiki/nvptx" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/MentorEmbedded/nvptx-tools" + inherit git-r3 +else + MY_COMMIT="93e00909ceb9cbbc104f0fcba56c0361ffb3ca4b" + SRC_URI="https://github.com/MentorEmbedded/nvptx-tools/archive/${MY_COMMIT}.tar.gz -> ${P}.tar.gz" + S="${WORKDIR}"/${PN}-${MY_COMMIT} + + KEYWORDS="~amd64" +fi + +LICENSE="GPL-3" +SLOT="0" +IUSE="test" +RESTRICT="!test? ( test )" + +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi + +BDEPEND=" + test? ( + dev-python/lit + dev-util/dejagnu + ) +" + +is_crosscompile() { + [[ ${CHOST} != ${CTARGET} ]] +} + +pkg_setup() { + # Reject newlib-on-glibc type installs + if [[ ${CTARGET} == ${CHOST} ]] ; then + case ${CHOST} in + *-newlib|nvptx-*) ;; + *) die "Use sys-devel/crossdev to build a nvptx(-none) toolchain" ;; + esac + fi +} diff --git a/sys-devel/nvptx-tools/nvptx-tools-9999.ebuild b/sys-devel/nvptx-tools/nvptx-tools-9999.ebuild new file mode 100644 index 000000000000..e960beb57623 --- /dev/null +++ b/sys-devel/nvptx-tools/nvptx-tools-9999.ebuild @@ -0,0 +1,52 @@ +# Copyright 2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Collection of tools for use with nvptx-none GCC toolchains" +HOMEPAGE="https://github.com/MentorEmbedded/nvptx-tools https://gcc.gnu.org/wiki/nvptx" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/MentorEmbedded/nvptx-tools" + inherit git-r3 +else + MY_COMMIT="93e00909ceb9cbbc104f0fcba56c0361ffb3ca4b" + SRC_URI="https://github.com/MentorEmbedded/nvptx-tools/archive/${MY_COMMIT}.tar.gz -> ${P}.tar.gz" + S="${WORKDIR}"/${PN}-${MY_COMMIT} + + KEYWORDS="~amd64" +fi + +LICENSE="GPL-3" +SLOT="0" +IUSE="test" +RESTRICT="!test? ( test )" + +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi + +BDEPEND=" + test? ( + dev-python/lit + dev-util/dejagnu + ) +" + +is_crosscompile() { + [[ ${CHOST} != ${CTARGET} ]] +} + +pkg_setup() { + # Reject newlib-on-glibc type installs + if [[ ${CTARGET} == ${CHOST} ]] ; then + case ${CHOST} in + *-newlib|nvptx-*) ;; + *) die "Use sys-devel/crossdev to build a nvptx(-none) toolchain" ;; + esac + fi +} diff --git a/sys-devel/parity/parity-2.0.1.ebuild b/sys-devel/parity/parity-2.0.1.ebuild index 3de370518ab4..6828908aeff8 100644 --- a/sys-devel/parity/parity-2.0.1.ebuild +++ b/sys-devel/parity/parity-2.0.1.ebuild @@ -9,7 +9,7 @@ if [[ ${PV} == 9999 ]]; then BDEPEND="dev-util/confix" else SRC_URI="https://github.com/ssi-schaefer/${PN}/releases/download/${PV}/${P}.tar.bz2" - KEYWORDS="~x64-cygwin" + KEYWORDS="" fi DESCRIPTION="A POSIX to native Win32 Cross-Compiler Tool (requires Visual Studio)" HOMEPAGE="https://github.com/ssi-schaefer/parity" diff --git a/sys-devel/patch/patch-2.7.6-r4.ebuild b/sys-devel/patch/patch-2.7.6-r4.ebuild index 25e164eeee97..7db97266369b 100644 --- a/sys-devel/patch/patch-2.7.6-r4.ebuild +++ b/sys-devel/patch/patch-2.7.6-r4.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="7" @@ -13,7 +13,7 @@ SRC_URI+=" verify-sig? ( mirror://gnu/patch/${P}.tar.xz.sig )" LICENSE="GPL-3+" SLOT="0" -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" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="static test xattr" RESTRICT="!test? ( test )" diff --git a/sys-devel/patch/patch-2.7.6-r5.ebuild b/sys-devel/patch/patch-2.7.6-r5.ebuild index 1f64ef5366c6..79b920486079 100644 --- a/sys-devel/patch/patch-2.7.6-r5.ebuild +++ b/sys-devel/patch/patch-2.7.6-r5.ebuild @@ -13,7 +13,7 @@ SRC_URI+=" verify-sig? ( mirror://gnu/patch/${P}.tar.xz.sig )" LICENSE="GPL-3+" SLOT="0" -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" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="static test xattr" RESTRICT="!test? ( test )" diff --git a/sys-devel/pmake/pmake-1.111.3.3.ebuild b/sys-devel/pmake/pmake-1.111.3.3-r1.ebuild index 53db11c875df..ff51a3b25bbc 100644 --- a/sys-devel/pmake/pmake-1.111.3.3.ebuild +++ b/sys-devel/pmake/pmake-1.111.3.3-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -44,10 +44,7 @@ src_compile() { -DMACHINE=\\\"gentoo\\\" -DMACHINE_ARCH=\\\"$(tc-arch-kernel)\\\" \ -D_PATH_DEFSHELLDIR=\\\"${EPREFIX}/bin\\\" \ -D_PATH_DEFSYSPATH=\\\"${EPREFIX}/usr/share/mk\\\" \ - -DHAVE_VSNPRINTF" - if [[ "${USERLAND}" == "GNU" ]]; then - CFLAGS="${CFLAGS} -D_PATH_DEFSYSPATH=\\\"${EPREFIX}/usr/share/mk/${PN}\\\"" - fi + -DHAVE_VSNPRINTF -D_PATH_DEFSYSPATH=\\\"${EPREFIX}/usr/share/mk/${PN}\\\"" emake -f Makefile.boot \ CC="$(tc-getCC)" \ @@ -55,11 +52,8 @@ src_compile() { } src_install() { - # Don't install these on BSD, else they conflict - if [[ ${USERLAND} == GNU ]]; then - insinto /usr/share/mk/${PN} - doins -r mk/. - fi + insinto /usr/share/mk/${PN} + doins -r mk/. newbin bmake pmake dobin mkdep @@ -68,9 +62,4 @@ src_install() { newman make.1 pmake.1 dodoc PSD.doc/tutorial.ms - - if [[ ${USERLAND} == BSD ]]; then - dosym pmake /usr/bin/make - dosym pmake.1.gz /usr/share/man/man1/make.1.gz - fi } diff --git a/sys-devel/qbe/Manifest b/sys-devel/qbe/Manifest index fd1f19c3fece..487bf9581e4a 100644 --- a/sys-devel/qbe/Manifest +++ b/sys-devel/qbe/Manifest @@ -1 +1,2 @@ DIST qbe-1.0.tar.xz 237756 BLAKE2B ca6e1ee81f7329a8aee1f4597de391dcc44595fb8371468360fbcf1a5fc9fa404c614d49e4668fba568fa8d11e753d10b4c46380884fa635a56331b059b69abd SHA512 7f53d4440fda36b21dbf390aa8b9c17ae7c137a6e034dd73ca1c2068d84dbe236a452d86cab8d8bce0b3d66c3f08e70f2bf54bc7cc2e93208cc1900014c18ad1 +DIST qbe-1.1.tar.xz 244740 BLAKE2B fdadca56ff5a6b56f30e0a99724908e356b3c1b545e5b35a27080a92ca0d417ff53deb8f4c0a31b9289acab58fb79568384669004b0275cddd83afb198a7a5aa SHA512 1e5d7d1df3d73849dbf19dd1d84c9bba63a5041622823a5a239496032f9d82bd1640dd2bbd03e28c8a180b8e66a1fe10deb940b5d8fde996bf593f7e8d943e8b diff --git a/sys-devel/qbe/qbe-1.1.ebuild b/sys-devel/qbe/qbe-1.1.ebuild new file mode 100644 index 000000000000..c32cbd4d13b6 --- /dev/null +++ b/sys-devel/qbe/qbe-1.1.ebuild @@ -0,0 +1,35 @@ +# Copyright 2021-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="git://c9x.me/qbe.git" + inherit git-r3 +else + SRC_URI="https://c9x.me/compile/release/${P}.tar.xz" + + # 64-bit RISC-V only + KEYWORDS="~amd64 ~arm64 ~riscv" +fi + +DESCRIPTION="Pure-C embeddable compiler backend" +HOMEPAGE="https://c9x.me/compile/" + +LICENSE="MIT" +SLOT="0" + +DOCS=( README doc ) + +src_compile() { + tc-export CC + + emake CFLAGS="-std=c99 ${CPPFLAGS} ${CFLAGS}" +} + +src_install() { + einstalldocs + emake install DESTDIR="${ED}" PREFIX=/usr +} diff --git a/sys-devel/reflex/Manifest b/sys-devel/reflex/Manifest index d474ae993adc..ef14edd3e006 100644 --- a/sys-devel/reflex/Manifest +++ b/sys-devel/reflex/Manifest @@ -1,2 +1,8 @@ DIST reflex-20221012.tgz 476024 BLAKE2B 63d9c0ea10d3d86651c88da4f901928d2f112d64b7e3462a6c2b4d6580a138372f2980e18d0b813579a9700084f05d77dfe2547171efa0992c24629ad31ff66e SHA512 9fcf3cd49f598af5ef0e561845c1e8b2fd50e811f5449279692820748b91e9a6a3922d3fe4224820f2c10a2f3aee3049c4f584ace4a058820db21539aa89accc DIST reflex-20221012.tgz.asc 729 BLAKE2B 1f35909edb7e9c8a2f7fe30f430c23580a6f192cad8efa65d2b7a282aa107523b90f300908b43f4beb623041988c164da1ff04642a09558c8c24bb77fc777919 SHA512 d98d2dc2b3163784a55f197b0b00157c1906dcbdf3fbc39022d867d786c47f32e5d858eafa3cb83e068454e7198ebdae6283b49b22c6b0ae5ee38ba2ea977a7b +DIST reflex-20230206.tgz 476372 BLAKE2B d1619518546d8dbb4865f818b538624b8b88947e2f870b6fe7c26c05cc9b9d63e374bfea11c291a6d8284fcf681489345533c1480106690126b3187b2e252187 SHA512 dbbe6150145162de6cf1ec4dadcf156ba320819fc0d034a2e38443fbe2834cf342fcb47f2dbe4578f2825ba7aefe87bf7c9b6667f1733a7003b4c7fe139e8ccb +DIST reflex-20230206.tgz.asc 729 BLAKE2B 5d2e1a7baa6fc0c8c7da32884e14c6a8b647d29d830be72b381fe2e0134eeb829f78500af2be71ed81f86b9bad9a26ddcd98b233b23810eddad7d035e04363d5 SHA512 8cefa7a27e676c56de8b898a2383b6ce591ff7e704cbbd6cb7a598696a5d0d67e2b89af4a9fdcf138d728a831a80a2fb67cc7c82d21f0b9e470027e28d41ff72 +DIST reflex-20230521.tgz 480866 BLAKE2B a6f5562de3dd10343e8f11bf286256cbbd8f4f0c6d5801ba55321ad0e2599b6a591aa2436f3fcd0251426f57a2da05cf357d55e14b68fc6c75cf44d99ec41b74 SHA512 789dfa4a2f412cbfed34435a14abf70d972487f226b1df82047f1269c173edb3881bc06ac92ffa2551e34a568553832c26e2a85cb70ea718f573ae1e631b1da3 +DIST reflex-20230521.tgz.asc 729 BLAKE2B 4ae6532ffd70b46d34948eb134f5780da913e86ba86bb515da0c31ac25278ce64cdd5e66b50009854d032761264996b0085952c3b238f9fd82c613dea295dd9a SHA512 ea479a810a418c192d52b5d7180212e06b4426048525f2a845b17afd0ab9918b5e2779e545d2857f9abf89f3d56ee37fbed6330fefe4f2b81eb9ec11e0cea364 +DIST reflex-20230523.tgz 480999 BLAKE2B a7306367bdf5bfb542a44f29c382a5d889a176059d95539916ab3132de06401edfd0c6a476ec66f433d56398039524d79c6879e1f24b4e813ebbba98ea434ed3 SHA512 9704b6dc3327bc017175bef21f34f53ff6614a76692deacb4af99c29bd4330e5fb7f71af6497d233acceab148bc8a7911d41d3ca224110812e5883c90cc801f2 +DIST reflex-20230523.tgz.asc 729 BLAKE2B 0249d1bc4f6d6395be0f51f90e1f9834bc63cd7e4b5565e71ff0502746f45ea04b611c8db70d62513dfe95d492512cf1935f4e70d582c960f38d11e06853f54f SHA512 48e2f84c8932a038366159ea6a26eac73510bb69b6bc3c5027195682ade4ef3a33ade082b41e4d08af0c23c6692abc8ee46b261796d72709aa9568070c16c20b diff --git a/sys-devel/reflex/files/reflex-20230206-parallel-build.patch b/sys-devel/reflex/files/reflex-20230206-parallel-build.patch new file mode 100644 index 000000000000..ecfadc14639f --- /dev/null +++ b/sys-devel/reflex/files/reflex-20230206-parallel-build.patch @@ -0,0 +1,54 @@ +From 16cc516dfbb6dac01fcd0bfcb717a681b132c0b4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Arsen=20Arsenovi=C4=87?= <arsen@gentoo.org> +Date: Thu, 9 Feb 2023 20:34:48 +0100 +Subject: [PATCH] Remove .bootstrap and scan.c target race + +If the parallelism of a make invocation is great enough to generate both +.bootstrap and scan.c simultaneously, there's a great chance that the +rule in .bootstrap will be overruled by the (possibly failing) +redirection in the scan.c, resulting in an empty scan.c and a failing +build. Instead, we can use an empty scan.c as an (inaccurate) proxy for +the boostrap. + +Bug: https://bugs.gentoo.org/883611 +--- a/Makefile.in ++++ b/Makefile.in +@@ -126,14 +126,9 @@ PERF_REPORT = -p + + all: $(FLEX) + +-$(FLEX): .bootstrap $(OBJECTS) $(FLEXLIB) ++$(FLEX): $(OBJECTS) $(FLEXLIB) + @ECHO_LD@$(CC) $(CFLAGS) -o $(FLEX) $(LDFLAGS) $(OBJECTS) $(FLEXLIB) $(LIBS) + +-.bootstrap: initscan.c +- @rm -f scan.c +- cp $(srcdir)/initscan.c scan.c +- touch .bootstrap +- + parse.c: parse.y + $(YACC) -d $(srcdir)/parse.y + @sed '/extern char.*malloc/d' <y.tab.c >parse.tmp +@@ -145,6 +140,7 @@ parse.h: parse.c + + scan.c: scan.l + $(SHELL) $(srcdir)/mkscan.sh $(FLEX_EXEC) $(FLEX_FLAGS) $(COMPRESSION) $(srcdir)/scan.l >scan.c ++ grep . $@ || cp initscan.c scan.c + + scan$o: scan.c parse.h flexdef.h config.h + yylex$o: yylex.c parse.h flexdef.h config.h +@@ -259,8 +255,8 @@ clean :: mostlyclean + $(FLEXLIB) config.log config.cache + + distclean :: clean +- rm -f .bootstrap $(FLEX) scan.c tags TAGS Makefile man2html.tmp \ +- config.status config.h stamp-h config.log config.cache ++ rm -f $(FLEX) scan.c tags TAGS Makefile man2html.tmp config.status \ ++ config.h stamp-h config.log config.cache + + maintainer-clean: distclean + @echo "This command is intended for maintainers to use;" +-- +2.39.1 + + diff --git a/sys-devel/reflex/reflex-20230206.ebuild b/sys-devel/reflex/reflex-20230206.ebuild new file mode 100644 index 000000000000..90e5689c06c3 --- /dev/null +++ b/sys-devel/reflex/reflex-20230206.ebuild @@ -0,0 +1,31 @@ +# Copyright 2022-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/thomasdickey.asc +inherit verify-sig + +DESCRIPTION="This is a variant of the flex fast lexical scanner" +HOMEPAGE="https://invisible-island.net/reflex/" +SRC_URI="https://invisible-island.net/archives/${PN}/${P}.tgz" +SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${P}.tgz.asc )" + +LICENSE="FLEX" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ppc ppc64 ~riscv ~s390 sparc x86" + +BDEPEND="verify-sig? ( sec-keys/openpgp-keys-thomasdickey )" + +PATCHES=( + "${FILESDIR}"/reflex-20230206-parallel-build.patch +) + +src_install() { + default + + # Workaround assumption of gzip compressed manpage + # Reported upstream via email + rm "${ED}"/usr/share/man/man1/reflex++.1.gz || die + dosym reflex.1 /usr/share/man/man1/reflex++.1 || die +} diff --git a/sys-devel/reflex/reflex-20230521.ebuild b/sys-devel/reflex/reflex-20230521.ebuild new file mode 100644 index 000000000000..40734b6c5168 --- /dev/null +++ b/sys-devel/reflex/reflex-20230521.ebuild @@ -0,0 +1,22 @@ +# Copyright 2022-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/thomasdickey.asc +inherit verify-sig + +DESCRIPTION="This is a variant of the flex fast lexical scanner" +HOMEPAGE="https://invisible-island.net/reflex/" +SRC_URI="https://invisible-island.net/archives/${PN}/${P}.tgz" +SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${P}.tgz.asc )" + +LICENSE="FLEX" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +BDEPEND="verify-sig? ( sec-keys/openpgp-keys-thomasdickey )" + +src_configure() { + econf --with-manpage-format=formatted +} diff --git a/sys-devel/reflex/reflex-20230523.ebuild b/sys-devel/reflex/reflex-20230523.ebuild new file mode 100644 index 000000000000..40734b6c5168 --- /dev/null +++ b/sys-devel/reflex/reflex-20230523.ebuild @@ -0,0 +1,22 @@ +# Copyright 2022-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/thomasdickey.asc +inherit verify-sig + +DESCRIPTION="This is a variant of the flex fast lexical scanner" +HOMEPAGE="https://invisible-island.net/reflex/" +SRC_URI="https://invisible-island.net/archives/${PN}/${P}.tgz" +SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${P}.tgz.asc )" + +LICENSE="FLEX" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +BDEPEND="verify-sig? ( sec-keys/openpgp-keys-thomasdickey )" + +src_configure() { + econf --with-manpage-format=formatted +} diff --git a/sys-devel/rust-std/Manifest b/sys-devel/rust-std/Manifest index 94306c397950..7b09a15e9b9e 100644 --- a/sys-devel/rust-std/Manifest +++ b/sys-devel/rust-std/Manifest @@ -1 +1 @@ -DIST rustc-1.59.0-src.tar.xz 128942756 BLAKE2B b28114f14c9a0fec7db56fde79a985360fd8438c3b14eede49ed12e540c2636be960d0fd800c569af193886ac76fe8bf604d5dae59214ae08cb0cc6cc0ca404e SHA512 acace866871d13a55d365f65d7e15c192c3cd33096862571df6317e066b7474d668b95ae281e0244967778c05f1e33966c3c55616218bd25d3770a2b2d4f0365 +DIST rustc-1.68.2-src.tar.xz 147835648 BLAKE2B 4b6deab818d915afe67a96f4d32a758c15a832041a77d9da5d065a903ea2718e0e7ebbc0cd1baaa436b655bdb93a62e0fb76f9e37aed595c064e0857201bb091 SHA512 8b085d0351e19100e9abc24b10c44a0939a1d35ba23421da4ece345d7373f7dbad1dc6a2ae153c1259404dd96b41e2682e711cf2b0b63fd03a196760cddbcdd3 diff --git a/sys-devel/rust-std/rust-std-1.59.0.ebuild b/sys-devel/rust-std/rust-std-1.68.2.ebuild index eeb0b3f1fe49..dec75d768962 100644 --- a/sys-devel/rust-std/rust-std-1.59.0.ebuild +++ b/sys-devel/rust-std/rust-std-1.68.2.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{9..10} ) +PYTHON_COMPAT=( python3_{9..11} ) inherit flag-o-matic multiprocessing python-any-r1 rust-toolchain toolchain-funcs diff --git a/sys-devel/slibtool/slibtool-0.5.34.ebuild b/sys-devel/slibtool/slibtool-0.5.34.ebuild index c176e886d89c..747b80b4a308 100644 --- a/sys-devel/slibtool/slibtool-0.5.34.ebuild +++ b/sys-devel/slibtool/slibtool-0.5.34.ebuild @@ -1,7 +1,7 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 inherit toolchain-funcs @@ -32,6 +32,7 @@ src_configure() { --compiler="$(tc-getCC)" \ --host=${CHOST} \ --prefix="${EPREFIX}"/usr \ - --libdir="$(get_libdir)" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --shell="${EPREFIX}"/bin/sh \ || die } diff --git a/sys-devel/slibtool/slibtool-9999.ebuild b/sys-devel/slibtool/slibtool-9999.ebuild index 200a19a514d4..74b39d4339b5 100644 --- a/sys-devel/slibtool/slibtool-9999.ebuild +++ b/sys-devel/slibtool/slibtool-9999.ebuild @@ -1,7 +1,7 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 inherit toolchain-funcs @@ -32,6 +32,6 @@ src_configure() { --compiler="$(tc-getCC)" \ --host=${CHOST} \ --prefix="${EPREFIX}"/usr \ - --libdir="$(get_libdir)" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ || die } diff --git a/sys-devel/ucpp/ucpp-1.3.5.ebuild b/sys-devel/ucpp/ucpp-1.3.5.ebuild index 0dad3938bd69..a96add67de86 100644 --- a/sys-devel/ucpp/ucpp-1.3.5.ebuild +++ b/sys-devel/ucpp/ucpp-1.3.5.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -9,7 +9,7 @@ SRC_URI="https://gitlab.com/scarabeusiv/${PN}/uploads/79f08e39c676f15ed8a59335f6 LICENSE="BSD" SLOT="0" -KEYWORDS="amd64 ~arm arm64 ~loong ppc ~ppc64 x86 ~amd64-linux" +KEYWORDS="amd64 ~arm arm64 ~loong ppc ~ppc64 ~riscv x86 ~amd64-linux" src_configure() { econf \ |