diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2021-02-13 21:41:11 +0000 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2021-02-13 21:41:11 +0000 |
commit | c8d60dada2ec8eb48b2d2b290cd6683ccec40e39 (patch) | |
tree | c44943ee0563a3fa957716de909fed683117fcb9 /sys-devel | |
parent | 69051588e2f955485fe5d45d45e616bc60a2de57 (diff) |
gentoo (valentine's day) resync : 14.02.2021
Diffstat (limited to 'sys-devel')
39 files changed, 2607 insertions, 162 deletions
diff --git a/sys-devel/Manifest.gz b/sys-devel/Manifest.gz Binary files differindex 1cce436bfaff..427f60c45d3c 100644 --- a/sys-devel/Manifest.gz +++ b/sys-devel/Manifest.gz diff --git a/sys-devel/bc/Manifest b/sys-devel/bc/Manifest index 34c233ce1680..ae078d432830 100644 --- a/sys-devel/bc/Manifest +++ b/sys-devel/bc/Manifest @@ -1,6 +1,6 @@ AUX bc-1.06.95-mem-leak.patch 588 BLAKE2B b81094c82c02c47bc60d949f8aa50e1a9d00bb678d6759f9ac3a695d2e01d38b942a426a024f2e3023d4c67b3c7b40f1c968a9b066573da99823c0bccbcfbf6e SHA512 3a1f354b8979586b39e6e3f93f2df7d38c2f221fb00ceef7db6cb6b51712c0fc27dbbd75635a8e4e9e2f8f100c5a39cdc1d4c1cfc32bd6c406af94edef37e40d AUX bc-1.06.95-void_uninitialized.patch 351 BLAKE2B ad293d5efcebc2cf85a2d1a99e850f5c104e57b92cb3070739719f578d3eac38bfb92ba4b5cd5040fe8a711db5b77a4a673e080e27b233878adf1457cbc49073 SHA512 6d2803d831d8a3137c3d867606f8d40455a6f984bfe844e10e276e24cbd5d9fd1ff21b81ea91775dd7e1e55484cdde7bf859fa3e9a17887bdf548b32cdc46dae -AUX bc-1.07.1-no-ed-its-sed.patch 441 BLAKE2B 52a6b47ea4d4847ca53e731a1ddc5ba4d5c9e41ab46e50f874247dd4e4f4ad039fd4e9631d1eab5cad03947ea570298f031f106d0474d776e80275a46ba12e54 SHA512 43c8e2e30def9f35174559bc8fa4dd3bc9ea4794e716f3405399f8d36a690303832f9d3fe762beb6d4632df66d0d8fa6153e1c10994239289af915bf493e0e75 +AUX bc-1.07.1-no-ed-its-sed.patch 452 BLAKE2B cb45680860706b3c240593bf8001be836a835cf749c1d1fa95d6821f069e118779d9f05e44d70acdac8d573fc2967eff0f3c6fb3e1e54a4c8d4b6cf657dcc003 SHA512 4e7481895d61edb51dfc40b88e4f37cb492d8566083a55713dac7a66f065ab2357f8f909acd44e34997b2e09c54dffcbd434b731015c1e1d331ff1829687ec07 AUX bc-1.07.1-use-system-bc.patch 556 BLAKE2B 822c525fa2fd90822498fad72b9cda91b2af5d0318fc33e74dd407e3bc2a29c8d12b9cc38e80ebd7f3a084f78e302efe38b44eb70c780b8a2a76895d4d7afddb SHA512 2074adf83ac9d7c2210fc62cc5b98bde3a4f6a4d4e4cb81eb95d32ad7a8432cffc21e11b63a7b3f7090f5b814d739dabfbd6c891ec6f5bf0a9d27ace9d0582d6 DIST bc-1.06.95.tar.bz2 290069 BLAKE2B 774f07b1f85b4de7c4707baa355caed5a9fc7b3a5ee1a14f4e9fd59f47a4bbdf34bcb76dc05de4dd8c65615284c3588ad7961fa493ed559a0e8880647835bda0 SHA512 16ec13f87ef76ad4de77d378ef8d65a582adca1bf661c9d7675e78d940680c77e81a00a01817fde7c1ad1524562d6f933caa5c42a0686f3f85aadbb39393afb1 DIST bc-1.07.1.tar.gz 419850 BLAKE2B dcedc193be5521aa0fa3a19746233ed65bc1fe8ef12e15155341706de6fbeecb6dd7ee4ab11e2d4b3aca2ae7097cce89e389b3573493bbc893e00b4ed3239594 SHA512 02126d0db6b6ed06d56cfc292d6f5475ff1e574779d7e69c7809bbb1e13f946f57ea07da2a7666baa092507a951a822044b0970075f75eefe65a5c1999b75d34 diff --git a/sys-devel/bc/files/bc-1.07.1-no-ed-its-sed.patch b/sys-devel/bc/files/bc-1.07.1-no-ed-its-sed.patch index ce8e456186b7..2fc7519191fb 100644 --- a/sys-devel/bc/files/bc-1.07.1-no-ed-its-sed.patch +++ b/sys-devel/bc/files/bc-1.07.1-no-ed-its-sed.patch @@ -6,8 +6,9 @@ to use sed instead of ed. the changes are straight forward: --- a/bc/fix-libmath_h +++ b/bc/fix-libmath_h -@@ -1,9 +1,6 @@ +@@ -1,9 +1,7 @@ -ed libmath.h <<EOS-EOS ++#!/bin/sh +sed -i libmath.h -e ' 1,1s/^/{"/ -1,\$s/\$/",/ diff --git a/sys-devel/binutils-hppa64/Manifest b/sys-devel/binutils-hppa64/Manifest index 8577a2f3e9af..6770bd4d08e4 100644 --- a/sys-devel/binutils-hppa64/Manifest +++ b/sys-devel/binutils-hppa64/Manifest @@ -6,11 +6,14 @@ DIST binutils-2.34-patches-6.tar.xz 103028 BLAKE2B d0e866d0941d2b550c7d7f23530c6 DIST binutils-2.34.tar.xz 21637796 BLAKE2B 07dd23916a7d27f71c3f160c8c16abe2bd4fce294c738c665a012a3be6a87dbe8160d0c38740524f9025e01d438e99b2a94bcf9f9f79ee214f5dd033de8aad3d SHA512 2c7976939dcf5e8c5b7374cccd39bfe803b1bec73c6abfa0eb17c24e1942574c6bdb874c66a092a82adc443182eacd8a5a8001c19a76101f0c7ba40c27de0bbd DIST binutils-2.35.1-patches-2.tar.xz 72236 BLAKE2B 584cb3edbda28c69171ed64e941535f992150d86f25201cadd07b63daaa36bf76b07dc0aa8a4837da17d1672feb47a7b15f83efdeec5409e695965a10142147a SHA512 b704ebe82c4402f058f9c96991a89256a6b369d28f844bf020ed2c77766894d9a2ca0596cd609de7b389fa8cd52bfab674b6deb10ea2096e50aa57921be2083e DIST binutils-2.35.1.tar.xz 22031720 BLAKE2B d3468da90b75e9b5fa7fbd64d3fdb0a4bc445e4cb7da5ae058f73a1e9d948b3e9438bc9f1b5b351db369b76a25960c9c1f58f828fd2c7646f555de45fa3c052b SHA512 94ff72708403413b70b247f3af4099ebaa882b6659249869f1ed9941a0f1912e313f08357d470f9fd2359e7f5e5b0eb86285e5eaf883fa8187789d6b1bd304eb -DIST binutils-2.36-patches-1.tar.xz 13200 BLAKE2B 82e8ef3c51984d4418466d7b838fa5c0a5a72c3bbe3e631b8aeb28503fd8b81e2b187908a2a4e1b286eba8af0db25eafadc5ffe42dd07677e6bd659cf5483b07 SHA512 88c5ac42d25d131c1507d94992fdd11a15700a0304da10cedd3b0db9bc689d3387189d6d97f847d77e8a5d053619b174695a0a6b3c6c1bb66ea8f122f0b38d63 -DIST binutils-2.36.tar.xz 22760136 BLAKE2B 6666841e26c89a07b7e6c1144d893bab112278906d7917f3ca6273aa78094951686f0d5893857cae1edde1e1ecd7c6798bc14eac88d03c5a1e6e3e480a788f9c SHA512 0b89b70d4ad5cfe5bd0011dc7e342ae9de96efdbfc3442a0d6b5f7660e38bbcad36f2c72ba8f074323f02bde022ff1cd723ae99f0ea55cf94ee2dbbc0e4efdb2 +DIST binutils-2.35.2-patches-1.tar.xz 11836 BLAKE2B 0141349c9618992d1ab1e0309f7ed8fbc43b60a58be1dfed05eae8a8fee857241d9e112ae673da6fc9778767675f536ece818cb85567367bb1c8f87a0693623f SHA512 35de5f227c745c5fb800784fe657b2a6216faf43e2498e8481e7b0dc79b0d2f86b3b6a10b896e060319a77a51c61d2e1b7a951ae962b3a6ef8c1a2a261d9bb6c +DIST binutils-2.35.2.tar.xz 22056908 BLAKE2B 9c392e0db2b482442f9476f30bd80cf2796321cbf7be79cf21af7bef167b6074c4ae009dcf9b438d2f2f4a23381c935176b2cfa85de1a526ab46e0fd844a7ca5 SHA512 9974ede5978d32e0d68fef23da48fa00bd06b0bff7ec45b00ca075c126d6bbe0cf2defc03ecc3f17bc6cc85b64271a13009c4049d7ba17de26e84e3a6e2c0348 +DIST binutils-2.36.1-patches-1.tar.xz 11392 BLAKE2B 8112dda3f000d29952cbf58101f842ca519054bf9de6e22908881fe4d46cc1ea9a26db74ab00c64aedd3746eb058c19a978b8dc025ad8de07b6365c70a1803b2 SHA512 c6f5645b09d0c149f2eef8e992ff7181716dfb961f1155207a1349168f2d2fb76857cc224c27b4d764cfbc4ddec0630ef8c0a91d7bac489896f28de64651b367 +DIST binutils-2.36.1.tar.xz 22772248 BLAKE2B 03fbfbedd6dba2beaa836b1ed254eddd7a54a163d3061fd93edd2b9591cae24ba049b26658c524b5ccecc2f22d431dfa168218d2531aa356945c994fbbe896fa SHA512 cc24590bcead10b90763386b6f96bb027d7594c659c2d95174a6352e8b98465a50ec3e4088d0da038428abe059bbc4ae5f37b269f31a40fc048072c8a234f4e9 EBUILD binutils-hppa64-2.32-r1.ebuild 12648 BLAKE2B aa452384823e5b0be386bc4a7501d49b2de644af4492a05992f7dddd680c5e87481dbf5a38fff342526e571e271adc6af68b33bda2e83059877a307b4d892b81 SHA512 df21c036804f909f7c8b3ccec6119c6f35189cfe3988390be4dbe3f36cc7ead39eea4415cae689dcdcaa9387bb7d97477e50f329c7a11f75d28880a6f676b1eb EBUILD binutils-hppa64-2.33.1.ebuild 12302 BLAKE2B 84e6b959af5995933200f19231c033fbc7bec57f54c7a28d92733556a2194e963120469d68ca488788e32f3199312bf2f08351e1d541e847c15e67d451648b79 SHA512 4b1330e3070fb3ccbaea43f261ce9a96786779d3c876d41fa4e80e73206395ef1586bc7e82e959b744ebe0c6ca798aaa41d48a19c77380b627f0824aad405bba EBUILD binutils-hppa64-2.34-r2.ebuild 12447 BLAKE2B 84e65ce3f3dabab20ac002cbbe67b0545e1f15adfc262c5319d579320c1fcc30eefbac6618d320802c2160d351ade699f0cf8964209268f44ca1e97512719d50 SHA512 8f4e0cc1d2771c9d2323e623bc4667ab5199929631877802fbd69b48ede3f7055df305e237a021c8f0e38801eabebcc15c411e6d85e013a4a3115e5976810665 -EBUILD binutils-hppa64-2.35.1-r1.ebuild 12203 BLAKE2B 382ae2ec708e84aa69633aa64666e7b853903e63dfbd990d99dfaa4e4709e76dfe130397fb893892602d6a23c6278d73e547a5202589d2d2aa038b9bd458bdf5 SHA512 f5318c41f475f177591d21cce9c01509f674197d49f6accba271c4e3ee58b5f8c42832db70f0ebff5e492ee08a152320171e900116be2a1e4338099e32938099 -EBUILD binutils-hppa64-2.36.ebuild 12206 BLAKE2B 26debdbaa7c693fe5aa42fb61630144486568c4de1b0d4f2fc6d2f46997b6a3b9405803b1b22900bebd64bbfbbebc768da6a15c5b56b85277b674d1b5ec0d6d5 SHA512 34bbf63b477ae3dfa1675f140397ec2fdb7c03088d49b60b1a8889ae4e8866a841d9b20e72dd58361d15269decdc10411cba3dd39137af5905581ac7baaa3bf7 -MISC metadata.xml 691 BLAKE2B ce21a0c95e69ad1f656373ec843f43ff5300b0145e0d89b92c7d7ae664886db9ba5afd4c39c7d7fe0d4f898b43d98bab6ba562b06945e5016a2abf62e1c4119f SHA512 97ff085ad4b3273a5867d37bb70dc9586a7bc3ffbf9ca1b6c68e224c340afe102afbfc034b339533732afd032a7f8be584e31c8572cd76df90f4db93bac3baa3 +EBUILD binutils-hppa64-2.35.1-r1.ebuild 12393 BLAKE2B 52eb4c3c75920657e10a20023df6d9b848fcfe4014f2d6f50df85ec410ee08e571b3c92228aed0086e814352e901193f8c9ea3729b61e5591e977c79f2153d09 SHA512 d9905891fa19ecd7175d7db2002bd1d927611707827732f940a6fff7a558c56da620225d7f8dc09ac1fdb7817da5ed0c7b8ae7fa7f0f86c7ac3c36583115d653 +EBUILD binutils-hppa64-2.35.2.ebuild 12394 BLAKE2B 418cf14a934738593ddbaf20ad55d4d50c0c5af0abc500fa7a95874dceed3cfe6518895e275e4cb782f3a41f3934bf54e34816596575a637e27bd0527463ed26 SHA512 94a87156986f3e59156fd64a0592dfd2886965f8de44c0c1c5f903e1b8a9a32c9ee76bc975fe863d57a956dad00287350db17bc43237d88c3b9518f297ace29e +EBUILD binutils-hppa64-2.36.1.ebuild 12396 BLAKE2B 2481e18aafed7bca0175fe03769affd89fcb5f6ce71b14bce641ff0114a02279c29e91846e5824f7b285e5befdc1ee1815d15b0b8de443abac503b7bed592b53 SHA512 963aa742e0d208434ff6145f50f7051602f18b12683490f9e60637c6ee274be3cdaf46c31b6046e525d98c252f3b5cab51ce63510ffd8dfa9765d78865763b59 +MISC metadata.xml 767 BLAKE2B 1b1533f4fce4b4ea9e2bebbe19c55d55d226120dd255fa421b46971ac554696209fa9df92e40279561876895392827415ee77f7502fec5b0ac684a60f0697de6 SHA512 3aa7ebfd1f6efc14d1d6b19406e08c100854c1e1b933cd8682e90825e8fcb71ec3086e2772422931fe88797c1b54d02422e0700488637f6bd594bf6d1d6181a9 diff --git a/sys-devel/binutils-hppa64/binutils-hppa64-2.35.1-r1.ebuild b/sys-devel/binutils-hppa64/binutils-hppa64-2.35.1-r1.ebuild index 5a302e9061f3..303efe28c2d3 100644 --- a/sys-devel/binutils-hppa64/binutils-hppa64-2.35.1-r1.ebuild +++ b/sys-devel/binutils-hppa64/binutils-hppa64-2.35.1-r1.ebuild @@ -10,7 +10,7 @@ inherit eutils libtool flag-o-matic gnuconfig multilib toolchain-funcs DESCRIPTION="Tools necessary to build programs" HOMEPAGE="https://sourceware.org/binutils/" LICENSE="GPL-3+" -IUSE="default-gold doc +gold multitarget +nls +plugins static-libs test" +IUSE="cet default-gold doc +gold multitarget +nls +plugins static-libs test" REQUIRED_USE="default-gold? ( gold )" # Variables that can be set here: @@ -253,6 +253,11 @@ src_configure() { # avoid automagic dependency on (currently prefix) systems # systems with debuginfod library, bug #754753 --without-debuginfod + + # Allow user to opt into CET for host libraries. + # Ideally we would like automagic-or-disabled here. + # But the check does not quite work on i686: bug #760926. + $(use_enable cet) ) echo ./configure "${myconf[@]}" "${S}"/configure "${myconf[@]}" || die diff --git a/sys-devel/binutils-hppa64/binutils-hppa64-2.35.2.ebuild b/sys-devel/binutils-hppa64/binutils-hppa64-2.35.2.ebuild new file mode 100644 index 000000000000..97aa5834c6b7 --- /dev/null +++ b/sys-devel/binutils-hppa64/binutils-hppa64-2.35.2.ebuild @@ -0,0 +1,439 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +export CTARGET=hppa64-${CHOST#*-} + +inherit eutils libtool flag-o-matic gnuconfig multilib toolchain-funcs + +DESCRIPTION="Tools necessary to build programs" +HOMEPAGE="https://sourceware.org/binutils/" +LICENSE="GPL-3+" +IUSE="cet default-gold doc +gold multitarget +nls +plugins static-libs test" +REQUIRED_USE="default-gold? ( gold )" + +# Variables that can be set here: +# 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=1 +PATCH_DEV=dilfridge + +case ${PV} in + 9999) + EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git" + inherit git-r3 + S=${WORKDIR}/binutils + EGIT_CHECKOUT_DIR=${S} + SLOT=${PV} + ;; + *) + SRC_URI="mirror://gnu/binutils/binutils-${PV}.tar.xz" + SLOT=$(ver_cut 1-2) + KEYWORDS="-* ~hppa" + ;; +esac + +# +# The Gentoo patchset +# +PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}} +PATCH_DEV=${PATCH_DEV:-slyfox} + +[[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI} + https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz" + +# +# 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 ) + nls? ( sys-devel/gettext ) + sys-devel/flex + virtual/yacc +" + +RESTRICT="!test? ( test )" + +MY_BUILDDIR=${WORKDIR}/build +S=${WORKDIR}/${P/-hppa64/} + +src_unpack() { + case ${PV} in + *9999) + git-r3_src_unpack + ;; + *) + ;; + esac + default + mkdir -p "${MY_BUILDDIR}" +} + +src_prepare() { + if [[ ! -z ${PATCH_VER} ]] ; then + einfo "Applying binutils-${PATCH_BINUTILS_VER} patchset ${PATCH_VER}" + eapply "${WORKDIR}/patch"/*.patch + fi + + # This check should probably go somewhere else, like pkg_pretend. + if [[ ${CTARGET} == *-uclibc* ]] ; then + if grep -qs 'linux-gnu' "${S}"/ltconfig ; then + die "sorry, but this binutils doesn't yet support uClibc :(" + fi + fi + + # Make sure our explicit libdir paths don't get clobbered. #562460 + sed -i \ + -e 's:@bfdlibdir@:@libdir@:g' \ + -e 's:@bfdincludedir@:@includedir@:g' \ + {bfd,opcodes}/Makefile.in || die + + # Fix locale issues if possible #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 + + # Fix conflicts with newer glibc #272594 + if [[ -e libiberty/testsuite/test-demangle.c ]] ; then + sed -i 's:\<getline\>:get_line:g' libiberty/testsuite/test-demangle.c + 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() { + # 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 #42033 + strip-linguas -u */po + + # Keep things sane + strip-flags + + local x + echo + for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do + einfo "$(printf '%10s' ${x}:) ${!x}" + done + echo + + cd "${MY_BUILDDIR}" + 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. #446946 + # We used to do it for everyone, but it's slow on 32bit arches. #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 + ) + + # glibc-2.3.6 lacks support for this ... so rather than force glibc-2.5+ + # on everyone in alpha (for now), we'll just enable it when possible + has_version ">=${CATEGORY}/glibc-2.5" && myconf+=( --enable-secureplt ) + has_version ">=sys-libs/glibc-2.5" && 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. #497268 + --enable-install-libiberty + --disable-werror + --with-bugurl="$(toolchain-binutils_bugurl)" + --with-pkgversion="$(toolchain-binutils_pkgversion)" + $(use_enable static-libs static) + ${EXTRA_ECONF} + # Disable modules that are in a combined binutils/gdb tree. #490566 + --disable-{gdb,libdecnumber,readline,sim} + # Strip out broken static link flags. + # https://gcc.gnu.org/PR56750 + --without-stage1-ldflags + # Change SONAME to avoid conflict across + # {native,cross}/binutils, binutils-libs. #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 + + # 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) + ) + echo ./configure "${myconf[@]}" + "${S}"/configure "${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}" + # see Note [tooldir hack for ldscripts] + emake tooldir="${EPREFIX}${TOOLPATH}" all + + # only build info pages if the user wants them + if use doc ; then + emake 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}" + # bug 637066 + filter-flags -Wall -Wreturn-type + emake -k check +} + +src_install() { + local x d + + cd "${MY_BUILDDIR}" + # see Note [tooldir hack for ldscripts] + emake DESTDIR="${D}" tooldir="${EPREFIX}${LIBPATH}" install + rm -rf "${ED}"/${LIBPATH}/bin + use static-libs || find "${ED}" -name '*.la' -delete + + # Newer versions of binutils get fancy with ${LIBPATH} #171905 + cd "${ED}"/${LIBPATH} + 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} + for x in * ; do + mv ${x} ${x/${CTARGET}-} + 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}/ + 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}" + 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 + + # 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.36.ebuild b/sys-devel/binutils-hppa64/binutils-hppa64-2.36.1.ebuild index f26da6552ae3..e4ac93eb4d76 100644 --- a/sys-devel/binutils-hppa64/binutils-hppa64-2.36.ebuild +++ b/sys-devel/binutils-hppa64/binutils-hppa64-2.36.1.ebuild @@ -10,7 +10,7 @@ inherit eutils libtool flag-o-matic gnuconfig multilib toolchain-funcs DESCRIPTION="Tools necessary to build programs" HOMEPAGE="https://sourceware.org/binutils/" LICENSE="GPL-3+" -IUSE="default-gold doc +gold multitarget +nls +plugins static-libs test" +IUSE="cet default-gold doc +gold multitarget +nls +plugins static-libs test" REQUIRED_USE="default-gold? ( gold )" # Variables that can be set here: @@ -253,6 +253,11 @@ src_configure() { # avoid automagic dependency on (currently prefix) systems # systems with debuginfod library, bug #754753 --without-debuginfod + + # Allow user to opt into CET for host libraries. + # Ideally we would like automagic-or-disabled here. + # But the check does not quite work on i686: bug #760926. + $(use_enable cet) ) echo ./configure "${myconf[@]}" "${S}"/configure "${myconf[@]}" || die diff --git a/sys-devel/binutils-hppa64/metadata.xml b/sys-devel/binutils-hppa64/metadata.xml index 028ab8dc65cc..35c85c00a3ae 100644 --- a/sys-devel/binutils-hppa64/metadata.xml +++ b/sys-devel/binutils-hppa64/metadata.xml @@ -10,6 +10,7 @@ <name>Gentoo Toolchain Project</name> </maintainer> <use> + <flag name="cet">Enable Intel Control-flow Enforcement Technology.</flag> <flag name="default-gold">Set ld to point to ld.gold instead of ld.bfd</flag> <flag name="gold">Build ld.gold linker</flag> <flag name="plugins">Enable plugin support in tools</flag> diff --git a/sys-devel/binutils/Manifest b/sys-devel/binutils/Manifest index 94a0cf4f414f..a0ec0f75fc54 100644 --- a/sys-devel/binutils/Manifest +++ b/sys-devel/binutils/Manifest @@ -11,13 +11,16 @@ DIST binutils-2.34-patches-6.tar.xz 103028 BLAKE2B d0e866d0941d2b550c7d7f23530c6 DIST binutils-2.34.tar.xz 21637796 BLAKE2B 07dd23916a7d27f71c3f160c8c16abe2bd4fce294c738c665a012a3be6a87dbe8160d0c38740524f9025e01d438e99b2a94bcf9f9f79ee214f5dd033de8aad3d SHA512 2c7976939dcf5e8c5b7374cccd39bfe803b1bec73c6abfa0eb17c24e1942574c6bdb874c66a092a82adc443182eacd8a5a8001c19a76101f0c7ba40c27de0bbd DIST binutils-2.35.1-patches-2.tar.xz 72236 BLAKE2B 584cb3edbda28c69171ed64e941535f992150d86f25201cadd07b63daaa36bf76b07dc0aa8a4837da17d1672feb47a7b15f83efdeec5409e695965a10142147a SHA512 b704ebe82c4402f058f9c96991a89256a6b369d28f844bf020ed2c77766894d9a2ca0596cd609de7b389fa8cd52bfab674b6deb10ea2096e50aa57921be2083e DIST binutils-2.35.1.tar.xz 22031720 BLAKE2B d3468da90b75e9b5fa7fbd64d3fdb0a4bc445e4cb7da5ae058f73a1e9d948b3e9438bc9f1b5b351db369b76a25960c9c1f58f828fd2c7646f555de45fa3c052b SHA512 94ff72708403413b70b247f3af4099ebaa882b6659249869f1ed9941a0f1912e313f08357d470f9fd2359e7f5e5b0eb86285e5eaf883fa8187789d6b1bd304eb -DIST binutils-2.36-patches-1.tar.xz 13200 BLAKE2B 82e8ef3c51984d4418466d7b838fa5c0a5a72c3bbe3e631b8aeb28503fd8b81e2b187908a2a4e1b286eba8af0db25eafadc5ffe42dd07677e6bd659cf5483b07 SHA512 88c5ac42d25d131c1507d94992fdd11a15700a0304da10cedd3b0db9bc689d3387189d6d97f847d77e8a5d053619b174695a0a6b3c6c1bb66ea8f122f0b38d63 -DIST binutils-2.36.tar.xz 22760136 BLAKE2B 6666841e26c89a07b7e6c1144d893bab112278906d7917f3ca6273aa78094951686f0d5893857cae1edde1e1ecd7c6798bc14eac88d03c5a1e6e3e480a788f9c SHA512 0b89b70d4ad5cfe5bd0011dc7e342ae9de96efdbfc3442a0d6b5f7660e38bbcad36f2c72ba8f074323f02bde022ff1cd723ae99f0ea55cf94ee2dbbc0e4efdb2 +DIST binutils-2.35.2-patches-1.tar.xz 11836 BLAKE2B 0141349c9618992d1ab1e0309f7ed8fbc43b60a58be1dfed05eae8a8fee857241d9e112ae673da6fc9778767675f536ece818cb85567367bb1c8f87a0693623f SHA512 35de5f227c745c5fb800784fe657b2a6216faf43e2498e8481e7b0dc79b0d2f86b3b6a10b896e060319a77a51c61d2e1b7a951ae962b3a6ef8c1a2a261d9bb6c +DIST binutils-2.35.2.tar.xz 22056908 BLAKE2B 9c392e0db2b482442f9476f30bd80cf2796321cbf7be79cf21af7bef167b6074c4ae009dcf9b438d2f2f4a23381c935176b2cfa85de1a526ab46e0fd844a7ca5 SHA512 9974ede5978d32e0d68fef23da48fa00bd06b0bff7ec45b00ca075c126d6bbe0cf2defc03ecc3f17bc6cc85b64271a13009c4049d7ba17de26e84e3a6e2c0348 +DIST binutils-2.36.1-patches-1.tar.xz 11392 BLAKE2B 8112dda3f000d29952cbf58101f842ca519054bf9de6e22908881fe4d46cc1ea9a26db74ab00c64aedd3746eb058c19a978b8dc025ad8de07b6365c70a1803b2 SHA512 c6f5645b09d0c149f2eef8e992ff7181716dfb961f1155207a1349168f2d2fb76857cc224c27b4d764cfbc4ddec0630ef8c0a91d7bac489896f28de64651b367 +DIST binutils-2.36.1.tar.xz 22772248 BLAKE2B 03fbfbedd6dba2beaa836b1ed254eddd7a54a163d3061fd93edd2b9591cae24ba049b26658c524b5ccecc2f22d431dfa168218d2531aa356945c994fbbe896fa SHA512 cc24590bcead10b90763386b6f96bb027d7594c659c2d95174a6352e8b98465a50ec3e4088d0da038428abe059bbc4ae5f37b269f31a40fc048072c8a234f4e9 EBUILD binutils-2.32-r1.ebuild 12354 BLAKE2B 1771cb776e87efa9b0ad69a78df051db44b2078e323645ce185815987a540ffd4e82ed2ae5b3d92ffa3837f117ec7737188b9920f59b8b5e0f55cda03afbf888 SHA512 4233627432a43ab46dac5e10d90a07dc9e085455f3140fb0a731fdb1ef2bfd2245dae3c47e9ba32bdb7a8650f32e7a9f49b911999ee32a18d41c32be4c697fcd EBUILD binutils-2.32-r2.ebuild 12173 BLAKE2B fb2dd9286d25b3e9b6bfbebfd70965e72b0458b3d87830be8f8e2f14866818441118f809392c34f2ea535d2f54821c3460108ed71bbd9e78286cad1190a669c3 SHA512 cb442d2e13a2c33fd3e89cd948b5bfbb453d7f37ba18cd061c21c69fceb8cdcfb047d4b009d1ec5d6f3d90c37ad9fa30cdfaf2422ccc6c410720ee0989c11cae EBUILD binutils-2.33.1-r1.ebuild 11908 BLAKE2B 7d4a576a037a162d329977822aa08807115e7d6775df73a047bc1c82bdf1cfb3a7f51e31c21c2682553673dca8bbb5db0359a65f3f9722fe751b7871b2bcf91a SHA512 2837ab896d900e9dbb19e7d5584bede1fa19e50ba0dc432d02644ee4c8c791a1219b6fb35213b5e8f50d2d11d24ac1cb393cfd2db20346e7eafc23a8a0da82a7 EBUILD binutils-2.34-r2.ebuild 12004 BLAKE2B 7ac248b26ace7c134b4cc1cba28e53fb703209584bda66f9916c86f0406384697af77f4e3e10c78f63c3b3f002255232050dbf11fd2e86692125df3bd563b999 SHA512 cfa9314e1d4851e20bd42ca481a3c97a8c6978f2c38616f7f73585f432fbe50304a091a9b1ee4c5e20e550ccbfd06c728a6f63bb26981e01d9b09407bceb61a8 -EBUILD binutils-2.35.1-r1.ebuild 12616 BLAKE2B 425c617130a659789bafd1b9586795ee5c882137543bb424f3075f9c382055d40a19b39ddc6fe48ca067dfbbe644e54742d4abf70ad96892f2de1e2c8374b6d3 SHA512 1811e1c66dc9c70516da8099a422dda41b2b9778fc89c6683564a61c2058e614c56f12a98326ff6ad3bc14b2e49f7cb8bb8a299e3772a60bd4fa85a8ca673859 -EBUILD binutils-2.36.ebuild 12606 BLAKE2B 994f6e56a554671a0ce97a3ea6bf333e7c9249811a4420efa925b45d4327181f7935ba54a5ead5a51ff792506575841e3519da7a6aab48a74b37390171552ada SHA512 dd28aaf4b71048be1b255eb1941f64947b607d4adf21c36b7c968d6f5a978068cfc6a3fd55bd3585d142e318e2fd2c31d71d04687dc319efc3318b16fed2ef18 -EBUILD binutils-9999.ebuild 12621 BLAKE2B 4974483205aa411089ad0bcfe67d66398884283fbdf6f3df8549a75a9770fcb2cdfe0c99b58a73b0cbab1dfd61cebc1f73eb242b9930de1c93782d07cfef27f4 SHA512 c0b4c3b3cd05f69031c1d33bce59ec277d3bd1b1c445944a5bb53ac06c101b56c523811fb6c179b15d86b3a3370175942454bb367b7aa376e4a5a081be5c7444 -MISC metadata.xml 650 BLAKE2B 5f0547bb9a41a09f28afc7feb1d6f2da32205924d860a88f64a7970a5e24749b961531c023a8647720e119ffbf2bdcab9384f10726a3371a8ec750b808233eaf SHA512 9057a779adcdf1da85c7e26fdd134303e4fe53ba015dda84761f5e4894833ba50f1411c1e96102319479fb1becf6c02e23984737b3660a7c24101d0cf0d404b2 +EBUILD binutils-2.35.1-r1.ebuild 12806 BLAKE2B 48e5c1c2d72d207623959040fcb756bf54c7ae5bb7f7dcc73cacf8c50abd8f8407648e8e17fe13041027c712de14df0af6362b837dcedd27919ef41a12ff7022 SHA512 ca1b42bebcea74bd23682076a69cc98fe8981dfdf90fa17d7f25e196f02a915bda77fba4023621c93bd371390e97dbbc0a05b091ce73fe65d5617a4b732af660 +EBUILD binutils-2.35.2.ebuild 12795 BLAKE2B af37eb6dd1a76ed2998bb234040b949ff160a1c09bba9e359449c2a6c019952263e7b635b18e8581bca9470b81312c5173b77cbc603fa1cf84c3250ca290aed1 SHA512 3cd888e0708f36f7da7272c05905526b968506153f9b729dde8625629c817530ab1358f2890c43349bfbdcb338a6d00850cd5dfd393df6f90dc6e838ead72558 +EBUILD binutils-2.36.1.ebuild 12796 BLAKE2B 33e53f714ddbc47b18be1b835f8d3dcba54f249f5c5d81c518d5ec5b0866be7a657ec27d9e07e4760cf37cb575155ff9975970e02c1626966b3696b29d76794c SHA512 7c64865173b208671d035d6b0dc070938bc73a7e87d5c0f6763254cb1a5a786672df2df73ed87b0a25060f550db4b17bb2589d6db4bca6bc624f35f297330581 +EBUILD binutils-9999.ebuild 12811 BLAKE2B e2e34afd60867af801e379645a92ccee1375cac16b9844792c8642c24d39a4449df9791ac404ac4d8ea3a7f054f64f475bafc6e6fdf32245fd24c953a15433a9 SHA512 4493d0ee24f5bc06184c8febd5418f415fa9c1b256f85a4c37e34b83d1dfc10cb45fce2a75371bbb7aa8253d52701cb48f5414d0f203d45a114e66d617a1c23c +MISC metadata.xml 726 BLAKE2B 152b58d7d48d653882735395f6cb40b3634b0480c1f9c7ac2bf2055e7f821962c4ee8d7de85f418258a713c1b17fc991cbcfcbe127b91ca2058ef7a71b5b6d17 SHA512 dfb3c44075c587ba6ce24ad280c387d4383b440077c5fa0fb4df1a715e4fdcde3898da866a30df862f8b1975939643f873fddc92fc575f254976d87fc53adbfd diff --git a/sys-devel/binutils/binutils-2.35.1-r1.ebuild b/sys-devel/binutils/binutils-2.35.1-r1.ebuild index a98e259e36a6..516f5642244a 100644 --- a/sys-devel/binutils/binutils-2.35.1-r1.ebuild +++ b/sys-devel/binutils/binutils-2.35.1-r1.ebuild @@ -8,7 +8,7 @@ inherit eutils libtool flag-o-matic gnuconfig multilib toolchain-funcs DESCRIPTION="Tools necessary to build programs" HOMEPAGE="https://sourceware.org/binutils/" LICENSE="GPL-3+" -IUSE="default-gold doc +gold multitarget +nls +plugins static-libs test vanilla" +IUSE="cet default-gold doc +gold multitarget +nls +plugins static-libs test vanilla" REQUIRED_USE="default-gold? ( gold )" # Variables that can be set here (ignored for live ebuilds) @@ -265,6 +265,11 @@ src_configure() { # avoid automagic dependency on (currently prefix) systems # systems with debuginfod library, bug #754753 --without-debuginfod + + # Allow user to opt into CET for host libraries. + # Ideally we would like automagic-or-disabled here. + # But the check does not quite work on i686: bug #760926. + $(use_enable cet) ) echo ./configure "${myconf[@]}" "${S}"/configure "${myconf[@]}" || die diff --git a/sys-devel/binutils/binutils-2.35.2.ebuild b/sys-devel/binutils/binutils-2.35.2.ebuild new file mode 100644 index 000000000000..2aff27700144 --- /dev/null +++ b/sys-devel/binutils/binutils-2.35.2.ebuild @@ -0,0 +1,448 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit eutils libtool flag-o-matic gnuconfig multilib toolchain-funcs + +DESCRIPTION="Tools necessary to build programs" +HOMEPAGE="https://sourceware.org/binutils/" +LICENSE="GPL-3+" +IUSE="cet default-gold doc +gold multitarget +nls +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=1 +PATCH_DEV=dilfridge + +if [[ ${PV} == 9999* ]]; then + inherit git-r3 + SLOT=${PV} +else + PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}} + PATCH_DEV=${PATCH_DEV:-slyfox} + SRC_URI="mirror://gnu/binutils/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 ~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 +" +DEPEND="${RDEPEND}" +BDEPEND=" + doc? ( sys-apps/texinfo ) + test? ( + dev-util/dejagnu + sys-devel/bc + ) + nls? ( sys-devel/gettext ) + sys-devel/flex + virtual/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}.tar.xz + + cd "${WORKDIR}" || die + unpack binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz + 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 [[ ! -z ${PATCH_VER} ]] || [[ ${PV} == 9999* ]] ; then + if ! use vanilla; then + einfo "Applying binutils patchset ${patchsetname}" + eapply "${WORKDIR}/patch" + einfo "Done." + fi + fi + + # This check should probably go somewhere else, like pkg_pretend. + if [[ ${CTARGET} == *-uclibc* ]] ; then + if grep -qs 'linux-gnu' "${S}"/ltconfig ; then + die "sorry, but this binutils doesn't yet support uClibc :(" + fi + fi + + # Make sure our explicit libdir paths don't get clobbered. #562460 + sed -i \ + -e 's:@bfdlibdir@:@libdir@:g' \ + -e 's:@bfdincludedir@:@includedir@:g' \ + {bfd,opcodes}/Makefile.in || die + + # Fix locale issues if possible #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 + + # Fix conflicts with newer glibc #272594 + if [[ -e libiberty/testsuite/test-demangle.c ]] ; then + sed -i 's:\<getline\>:get_line:g' libiberty/testsuite/test-demangle.c + 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() { + # 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 #42033 + strip-linguas -u */po + + # Keep things sane + strip-flags + + local x + echo + for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do + einfo "$(printf '%10s' ${x}:) ${!x}" + done + echo + + cd "${MY_BUILDDIR}" + 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. #446946 + # We used to do it for everyone, but it's slow on 32bit arches. #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 + ) + + # glibc-2.3.6 lacks support for this ... so rather than force glibc-2.5+ + # on everyone in alpha (for now), we'll just enable it when possible + has_version ">=${CATEGORY}/glibc-2.5" && myconf+=( --enable-secureplt ) + has_version ">=sys-libs/glibc-2.5" && 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. #497268 + --enable-install-libiberty + # Available from 2.35 on + --enable-textrel-check=warning + --disable-werror + --with-bugurl="$(toolchain-binutils_bugurl)" + --with-pkgversion="$(toolchain-binutils_pkgversion)" + $(use_enable static-libs static) + ${EXTRA_ECONF} + # Disable modules that are in a combined binutils/gdb tree. #490566 + --disable-{gdb,libdecnumber,readline,sim} + # Strip out broken static link flags. + # https://gcc.gnu.org/PR56750 + --without-stage1-ldflags + # Change SONAME to avoid conflict across + # {native,cross}/binutils, binutils-libs. #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 + + # 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) + ) + echo ./configure "${myconf[@]}" + "${S}"/configure "${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}" + # see Note [tooldir hack for ldscripts] + emake tooldir="${EPREFIX}${TOOLPATH}" all + + # only build info pages if the user wants them + if use doc ; then + emake 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}" + + # bug 637066 + filter-flags -Wall -Wreturn-type + + emake -k check +} + +src_install() { + local x d + + cd "${MY_BUILDDIR}" + # see Note [tooldir hack for ldscripts] + emake DESTDIR="${D}" tooldir="${EPREFIX}${LIBPATH}" install + rm -rf "${ED}"/${LIBPATH}/bin + use static-libs || find "${ED}" -name '*.la' -delete + + # Newer versions of binutils get fancy with ${LIBPATH} #171905 + cd "${ED}"/${LIBPATH} + 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} + for x in * ; do + mv ${x} ${x/${CTARGET}-} + 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}/ + 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}" + 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.36.ebuild b/sys-devel/binutils/binutils-2.36.1.ebuild index 209b2daf9dbb..3d820fcc6f81 100644 --- a/sys-devel/binutils/binutils-2.36.ebuild +++ b/sys-devel/binutils/binutils-2.36.1.ebuild @@ -8,7 +8,7 @@ inherit eutils libtool flag-o-matic gnuconfig multilib toolchain-funcs DESCRIPTION="Tools necessary to build programs" HOMEPAGE="https://sourceware.org/binutils/" LICENSE="GPL-3+" -IUSE="default-gold doc +gold multitarget +nls +plugins static-libs test vanilla" +IUSE="cet default-gold doc +gold multitarget +nls +plugins static-libs test vanilla" REQUIRED_USE="default-gold? ( gold )" # Variables that can be set here (ignored for live ebuilds) @@ -264,6 +264,11 @@ src_configure() { # avoid automagic dependency on (currently prefix) systems # systems with debuginfod library, bug #754753 --without-debuginfod + + # Allow user to opt into CET for host libraries. + # Ideally we would like automagic-or-disabled here. + # But the check does not quite work on i686: bug #760926. + $(use_enable cet) ) echo ./configure "${myconf[@]}" "${S}"/configure "${myconf[@]}" || die diff --git a/sys-devel/binutils/binutils-9999.ebuild b/sys-devel/binutils/binutils-9999.ebuild index 50d528443d77..014a2d716125 100644 --- a/sys-devel/binutils/binutils-9999.ebuild +++ b/sys-devel/binutils/binutils-9999.ebuild @@ -8,7 +8,7 @@ inherit eutils libtool flag-o-matic gnuconfig multilib toolchain-funcs DESCRIPTION="Tools necessary to build programs" HOMEPAGE="https://sourceware.org/binutils/" LICENSE="GPL-3+" -IUSE="default-gold doc +gold multitarget +nls +plugins static-libs test vanilla" +IUSE="cet default-gold doc +gold multitarget +nls +plugins static-libs test vanilla" REQUIRED_USE="default-gold? ( gold )" # Variables that can be set here (ignored for live ebuilds) @@ -265,6 +265,11 @@ src_configure() { # avoid automagic dependency on (currently prefix) systems # systems with debuginfod library, bug #754753 --without-debuginfod + + # Allow user to opt into CET for host libraries. + # Ideally we would like automagic-or-disabled here. + # But the check does not quite work on i686: bug #760926. + $(use_enable cet) ) echo ./configure "${myconf[@]}" "${S}"/configure "${myconf[@]}" || die diff --git a/sys-devel/binutils/metadata.xml b/sys-devel/binutils/metadata.xml index 66f4f23df42b..165a135caf69 100644 --- a/sys-devel/binutils/metadata.xml +++ b/sys-devel/binutils/metadata.xml @@ -6,6 +6,7 @@ <name>Gentoo Toolchain Project</name> </maintainer> <use> + <flag name="cet">Enable Intel Control-flow Enforcement Technology.</flag> <flag name="default-gold">Set ld to point to ld.gold instead of ld.bfd</flag> <flag name="gold">Build ld.gold linker</flag> <flag name="plugins">Enable plugin support in tools</flag> diff --git a/sys-devel/bmake/Manifest b/sys-devel/bmake/Manifest index 1a5ed63cc2b1..b8ca9a1abe76 100644 --- a/sys-devel/bmake/Manifest +++ b/sys-devel/bmake/Manifest @@ -1,5 +1,5 @@ AUX bmake-20181221-fix-gcc10-fno-common.patch 575 BLAKE2B f8e767c442683332b258cb4df3cad965cc2cb2903ce404e6f0f923c6ff1135e3e51d28e3b1855fe0ac27e5db839ae117236ead9cf8fed3bef6706dff9754e56f SHA512 d6986497844239b7c67e721b76387c391a7bf71a7122dfa54aadbada6add5bf3d810aea0f8f119d47c76445266f90a2cc39bef23b398cb3ee396de6cefa0020b -AUX bmake-20201117-tests.patch 425 BLAKE2B 55f487ddf626698b0b5de6fc37cb06ba90f1fdca6a43d63fc74429615ef27ab3ac74d0e073f7741cbc6b92f328e0a7b1b70c97a3e34d870525a1e8810b36d87f SHA512 7a6521e6a94cb71d8afdf231ca25958737ccc8daa8b3ec9e12cb4032804c7aeaecea9d4abbcd1289e477de349780da818fb862c4d13d324f0b0cd066916b47f2 +AUX bmake-20201117-tests.patch 796 BLAKE2B e30d5584e9fa36203ed54bd969b174a082f188b191ce0c3990a6b798ea938d71d14a208f7e5e1963cc74ddb85548aec20ba0b63c059c6b042e7cd04298455fc8 SHA512 270bcc2f4353e0aeba97215f92e6cf51e858b24c44d761b1d588d66604c61471b9a69e259900ad68ea71b0efe92942524763a39e4be081e24e246790f92bad78 AUX bmake-20210110-tests.patch 670 BLAKE2B 0b3f10933d5608781b231a0e198839e5aa6ab1dbcb2509412746bdfe04a92f000be1fd999b320128d9eaf5ffba0a75578db72de3c77510913a55bcfbfa26676c SHA512 0c7ac61f93dcdef6af48ac03e8789a04960c1884166ef40dfcd06d0df73bf7d89b238c2325c1ce40e5e3c1bf0420ff673d042a3d469e31b88b7d227e97a52ace DIST bmake-20200318.tar.gz 572827 BLAKE2B f10c6f3e87497508e26154acb3e8a07b78daeba083228478023443b5ccaf540385c1d594fb968ed1fe9ccad30680e7c527db48fc3787c01930f62f88f1fb6699 SHA512 a405226e8f4a9a985ed00dc359390da7890d70f8a7b7e134db05da34ebc3c6ee2373497a9e44e0d75bb64edd81f860fd0cc204bdf7f392dd4e9d2e6a5fe9e507 DIST bmake-20201117.tar.gz 696371 BLAKE2B e92568e844d74f1ace157d68ea029c7a999351b18c3afab50ab584abb8c41691dee5fe4f2e1fd7936103cbbabe33dbbd6c7b2b0af2e0cc199dbb83150b237f8c SHA512 b78e6f6276032fe68a67196d18b6786556b1079109998b1c9a585a9d58e9245294ee01b3b787329a04e7f024fa72763c109351a8da9ec09f8bf8407393758588 diff --git a/sys-devel/bmake/files/bmake-20201117-tests.patch b/sys-devel/bmake/files/bmake-20201117-tests.patch index 8955f1d89bd2..185f45232e1e 100644 --- a/sys-devel/bmake/files/bmake-20201117-tests.patch +++ b/sys-devel/bmake/files/bmake-20201117-tests.patch @@ -16,3 +16,19 @@ TESTS+= shell-custom .if exists(/bin/ksh) TESTS+= shell-ksh +@@ -287,7 +285,6 @@ + TESTS+= var-op-assign + TESTS+= var-op-default + TESTS+= var-op-expand +-TESTS+= var-op-shell + TESTS+= var-op-sunsh + TESTS+= var-recursive + TESTS+= varcmd +@@ -300,7 +297,6 @@ + TESTS+= varmod-edge + TESTS+= varmod-exclam-shell + TESTS+= varmod-extension +-TESTS+= varmod-gmtime + TESTS+= varmod-hash + TESTS+= varmod-head + TESTS+= varmod-ifelse diff --git a/sys-devel/clang-common/Manifest b/sys-devel/clang-common/Manifest index 38bea12c9fb9..3bdf3cc7256c 100644 --- a/sys-devel/clang-common/Manifest +++ b/sys-devel/clang-common/Manifest @@ -3,6 +3,7 @@ DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc DIST llvmorg-11.0.1.tar.gz 122790338 BLAKE2B 0130996b4a8c4d9f757136fd7fb318068c9bfdc565060dec0d4336480c4ab66c4ae3185a7fdb05f13cf9ee8fd4123b09df938881b75d6e5d3689595114b7e32a SHA512 f5e6ef0b3111aae08a89cd01adb2ff4abfa9ef779c68b9190421d0447efd25c2cc00e5aae9f4764805f5fa31434866043d1510ae7389817e28ae53a5442e2fdf DIST llvmorg-11.1.0-rc1.tar.gz 122793491 BLAKE2B f4777455f5903cffea284eaffd872be6c287c6c1ebbd0c4b5b5473f146d7f5476f3551998a58d3e976ab90cde7b0d05db2b3be97f4e8e2c3474755ff38739268 SHA512 44e281486c44fa1611042ab658b9833a75f9613b7f896863613cfb99de66d13607fb1e9064f42ea3d89ca7951113465a90fd96ca4544262f165f78bd5261f5a8 DIST llvmorg-11.1.0-rc2.tar.gz 122794772 BLAKE2B ab533f078d9d6c37e27c578866a07896344a0b4cf4ebf6402f4fa490213e017310d1c882bf63e552e99a5b4f6d1d8c01413420713b200bfa6732eff64f3c47a9 SHA512 88d8f1d938f0ba7ec39478d03a35c09a30bea51735276205494265b1061621b3ebcda8ee4211e896783b1b99a377c9fa68046118b0d6cb7fcb7bea1e960f95b7 +DIST llvmorg-11.1.0-rc3.tar.gz 122785838 BLAKE2B d0998219471476be1a1249b3a2444750585a352047d4dc14de6fec87eb3407d0f4b848757340200d3423cb4090554ae033fb4ec3797446e46556fbb566bb77a3 SHA512 b67874cb127f3f929a3796558cdfbf509b384c4247f4936ba08cecf88ca880a167cf67c23d78104b5bab4a98efd9435d1b923deb7ae7367875414e6c896957d1 DIST llvmorg-12.0.0-rc1.tar.gz 134164708 BLAKE2B d4261ff7d9586b47f4cfda3d2cda4b76534f9e17fbd5cdb8861895b8eb466021962f4608bfcdeb52f8fce78850a994fd5eda0560f7211e5c8d1ac9330a738a36 SHA512 3d07d013d0705bb99f56898cc55d054d0d95aeb53b3c756cfab80b4c9097cc4935bcea89b9efde2e503a899b9fccf0dacc0073c9991c8ea352755c5ec68a757a DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59 EBUILD clang-common-10.0.1.ebuild 573 BLAKE2B a2e0ed9b70b470ade3c22d56ea097befd935702369dcb21b367f3baa95635e1edea1f62760ffe3b678a72410b8b20091167bc5c38d75350004f52b24d7497cae SHA512 da407fe94951d7b6edfe8a237d761bda0114a8e34fd3fe59933c4605851b6a414f9278204e6b7f83d3f6ac9334f80660a7733484b64291ad58c84364015585a4 @@ -10,6 +11,7 @@ EBUILD clang-common-11.0.0.ebuild 580 BLAKE2B 3affe14fc54fa11d15701312b51cce47b1 EBUILD clang-common-11.0.1.ebuild 586 BLAKE2B 695ae16044b48bb9718d7d2afd9e77b2da305599cd8138b0100ded12496a7a1ff49c038ed020582340ec16d309e52688698150f8a97553eaeda0c115c578a30b SHA512 aef092bacfe504ec8a081c5ea25c2c96ba8efaf0074afe2089a83f4f3091644694d62bcf6c92ec61d9533f5706d949927f20bdd45ef7f3faca086bfbb5cb440b EBUILD clang-common-11.1.0_rc1.ebuild 514 BLAKE2B 7b27ed67c1ec7fdaee393ebe4685597f1a982232ca452e4ecb54f5e6078ea44bd2c8a56d061bace32bfc81e7506edd3f12aa6e54bad4d9f80a8bad4165cbe6f8 SHA512 302824c98bc818f78992db66c1e3bc3881fd9466fef0b14ce165e13575a0b4643b7f868b4d8914f5ac40bddd6963f17f15b2f9488667882238dd4a10c2d0c2bb EBUILD clang-common-11.1.0_rc2.ebuild 514 BLAKE2B 7b27ed67c1ec7fdaee393ebe4685597f1a982232ca452e4ecb54f5e6078ea44bd2c8a56d061bace32bfc81e7506edd3f12aa6e54bad4d9f80a8bad4165cbe6f8 SHA512 302824c98bc818f78992db66c1e3bc3881fd9466fef0b14ce165e13575a0b4643b7f868b4d8914f5ac40bddd6963f17f15b2f9488667882238dd4a10c2d0c2bb +EBUILD clang-common-11.1.0_rc3.ebuild 514 BLAKE2B 7b27ed67c1ec7fdaee393ebe4685597f1a982232ca452e4ecb54f5e6078ea44bd2c8a56d061bace32bfc81e7506edd3f12aa6e54bad4d9f80a8bad4165cbe6f8 SHA512 302824c98bc818f78992db66c1e3bc3881fd9466fef0b14ce165e13575a0b4643b7f868b4d8914f5ac40bddd6963f17f15b2f9488667882238dd4a10c2d0c2bb EBUILD clang-common-12.0.0.9999.ebuild 514 BLAKE2B fdd7858dc5690225fc806afe2f2c85f212546c443a5ee725df19b460507855392ec5639cf304d3fa00db199f9f141b841e198c9c853076332c55bfae6b9d9ae2 SHA512 7dac5188645661066ccab55b360e61cba561fc4ece7ab2974e31c4b41d2c110a6a75295f7ec6be9902e9e74fcb210e70c29c4baf0e8ee1c0fb6250084f465d2a EBUILD clang-common-12.0.0_rc1.ebuild 514 BLAKE2B 7b27ed67c1ec7fdaee393ebe4685597f1a982232ca452e4ecb54f5e6078ea44bd2c8a56d061bace32bfc81e7506edd3f12aa6e54bad4d9f80a8bad4165cbe6f8 SHA512 302824c98bc818f78992db66c1e3bc3881fd9466fef0b14ce165e13575a0b4643b7f868b4d8914f5ac40bddd6963f17f15b2f9488667882238dd4a10c2d0c2bb EBUILD clang-common-13.0.0.9999.ebuild 514 BLAKE2B 7b27ed67c1ec7fdaee393ebe4685597f1a982232ca452e4ecb54f5e6078ea44bd2c8a56d061bace32bfc81e7506edd3f12aa6e54bad4d9f80a8bad4165cbe6f8 SHA512 302824c98bc818f78992db66c1e3bc3881fd9466fef0b14ce165e13575a0b4643b7f868b4d8914f5ac40bddd6963f17f15b2f9488667882238dd4a10c2d0c2bb diff --git a/sys-devel/clang-common/clang-common-11.1.0_rc3.ebuild b/sys-devel/clang-common/clang-common-11.1.0_rc3.ebuild new file mode 100644 index 000000000000..03e4441b91b9 --- /dev/null +++ b/sys-devel/clang-common/clang-common-11.1.0_rc3.ebuild @@ -0,0 +1,24 @@ +# Copyright 1999-2021 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="" +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-runtime/Manifest b/sys-devel/clang-runtime/Manifest index 33eefe4e5746..c6d28794a936 100644 --- a/sys-devel/clang-runtime/Manifest +++ b/sys-devel/clang-runtime/Manifest @@ -3,6 +3,7 @@ EBUILD clang-runtime-11.0.0.ebuild 692 BLAKE2B 5703e482af3e2983d4c7a5c6345fb33d2 EBUILD clang-runtime-11.0.1.ebuild 697 BLAKE2B 63a0a06a94e6166e01da2fddcee1e0d627a6fa43fe4ec80cae9cafa96cdbae99522e74eefc781e9cf9441752352b13e9d7e8963e1e556847001f6f715c06e726 SHA512 dc8c30f3ce306c18005609017ab693a41081198ce8f2759276c1e49b4ea4538a719e52c921cdc5dd6298c0159fbc19e4a83247bc5a75263654d31f2ef3873ce4 EBUILD clang-runtime-11.1.0_rc1.ebuild 625 BLAKE2B a45dbed81c7f2414802077e5185c9015c85b02715d03ce6320f307855287ee90ef317760340b95770667f4ad5adcc55e9b8e37a80a1d93baf23304097c209c18 SHA512 949151ce8e3244fe4293c162deb918ee6bc41b98fceb977c53e68399c12c0f31e022c0b6d203f616313ff01c314a1ce57aef602a875fb999fdb7c9d512ec9ee8 EBUILD clang-runtime-11.1.0_rc2.ebuild 625 BLAKE2B a45dbed81c7f2414802077e5185c9015c85b02715d03ce6320f307855287ee90ef317760340b95770667f4ad5adcc55e9b8e37a80a1d93baf23304097c209c18 SHA512 949151ce8e3244fe4293c162deb918ee6bc41b98fceb977c53e68399c12c0f31e022c0b6d203f616313ff01c314a1ce57aef602a875fb999fdb7c9d512ec9ee8 +EBUILD clang-runtime-11.1.0_rc3.ebuild 625 BLAKE2B a45dbed81c7f2414802077e5185c9015c85b02715d03ce6320f307855287ee90ef317760340b95770667f4ad5adcc55e9b8e37a80a1d93baf23304097c209c18 SHA512 949151ce8e3244fe4293c162deb918ee6bc41b98fceb977c53e68399c12c0f31e022c0b6d203f616313ff01c314a1ce57aef602a875fb999fdb7c9d512ec9ee8 EBUILD clang-runtime-12.0.0.9999.ebuild 643 BLAKE2B d40d0fe357437cd1953be01751c4f31b0545bd48df6130aa0ffbd5b8cce5826ae1bf721e74fcf60b98528f402a734862f9ae495710e72c2d236741191e845dd3 SHA512 a70d29e6ee013f5eaebaa004655617f221ca47457d99f5b6b99ef1fd3c5ee1b0d082267c6436a34d523ebb96a5f9746f4659baa2f8241946be08517c9a5d6d97 EBUILD clang-runtime-12.0.0_rc1.ebuild 643 BLAKE2B 350729e0dfcd606089836e7d8f40e6f080a2dcc9553e9283df027c39ab041f93584162a9d299f5a2fea49c448019c9d19d0df6f1fd40d53b51324a0ad7495020 SHA512 c383b8976ca5e5b5a0a8f724854c019e1f6800d8b47594a2f9203c6b9c0831675a862218acfcaa93267f114a5904ca7041e281b746f9f1fbaeddfbfc08235c4f EBUILD clang-runtime-13.0.0.9999.ebuild 643 BLAKE2B 350729e0dfcd606089836e7d8f40e6f080a2dcc9553e9283df027c39ab041f93584162a9d299f5a2fea49c448019c9d19d0df6f1fd40d53b51324a0ad7495020 SHA512 c383b8976ca5e5b5a0a8f724854c019e1f6800d8b47594a2f9203c6b9c0831675a862218acfcaa93267f114a5904ca7041e281b746f9f1fbaeddfbfc08235c4f diff --git a/sys-devel/clang-runtime/clang-runtime-11.1.0_rc3.ebuild b/sys-devel/clang-runtime/clang-runtime-11.1.0_rc3.ebuild new file mode 100644 index 000000000000..b83335d9b8c8 --- /dev/null +++ b/sys-devel/clang-runtime/clang-runtime-11.1.0_rc3.ebuild @@ -0,0 +1,24 @@ +# Copyright 1999-2021 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="" +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/Manifest b/sys-devel/clang/Manifest index 9ca9012f0ce3..d3ab6b1b783e 100644 --- a/sys-devel/clang/Manifest +++ b/sys-devel/clang/Manifest @@ -11,6 +11,7 @@ DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc DIST llvmorg-11.0.1.tar.gz 122790338 BLAKE2B 0130996b4a8c4d9f757136fd7fb318068c9bfdc565060dec0d4336480c4ab66c4ae3185a7fdb05f13cf9ee8fd4123b09df938881b75d6e5d3689595114b7e32a SHA512 f5e6ef0b3111aae08a89cd01adb2ff4abfa9ef779c68b9190421d0447efd25c2cc00e5aae9f4764805f5fa31434866043d1510ae7389817e28ae53a5442e2fdf DIST llvmorg-11.1.0-rc1.tar.gz 122793491 BLAKE2B f4777455f5903cffea284eaffd872be6c287c6c1ebbd0c4b5b5473f146d7f5476f3551998a58d3e976ab90cde7b0d05db2b3be97f4e8e2c3474755ff38739268 SHA512 44e281486c44fa1611042ab658b9833a75f9613b7f896863613cfb99de66d13607fb1e9064f42ea3d89ca7951113465a90fd96ca4544262f165f78bd5261f5a8 DIST llvmorg-11.1.0-rc2.tar.gz 122794772 BLAKE2B ab533f078d9d6c37e27c578866a07896344a0b4cf4ebf6402f4fa490213e017310d1c882bf63e552e99a5b4f6d1d8c01413420713b200bfa6732eff64f3c47a9 SHA512 88d8f1d938f0ba7ec39478d03a35c09a30bea51735276205494265b1061621b3ebcda8ee4211e896783b1b99a377c9fa68046118b0d6cb7fcb7bea1e960f95b7 +DIST llvmorg-11.1.0-rc3.tar.gz 122785838 BLAKE2B d0998219471476be1a1249b3a2444750585a352047d4dc14de6fec87eb3407d0f4b848757340200d3423cb4090554ae033fb4ec3797446e46556fbb566bb77a3 SHA512 b67874cb127f3f929a3796558cdfbf509b384c4247f4936ba08cecf88ca880a167cf67c23d78104b5bab4a98efd9435d1b923deb7ae7367875414e6c896957d1 DIST llvmorg-12.0.0-rc1.tar.gz 134164708 BLAKE2B d4261ff7d9586b47f4cfda3d2cda4b76534f9e17fbd5cdb8861895b8eb466021962f4608bfcdeb52f8fce78850a994fd5eda0560f7211e5c8d1ac9330a738a36 SHA512 3d07d013d0705bb99f56898cc55d054d0d95aeb53b3c756cfab80b4c9097cc4935bcea89b9efde2e503a899b9fccf0dacc0073c9991c8ea352755c5ec68a757a DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59 EBUILD clang-10.0.1.ebuild 11828 BLAKE2B 3ff2f3db61fc380440be52b1f3b12a823c55f1583a4f7ce7ce8d02e1e168956c5d5d2fb7e2600230066762fba3cdf3021c51ff9b7d8c8c12cbd8095876e298d2 SHA512 4aeff4db14e3da3c69e8054fa028b51a5120981e896524c332ee869810ba2ec8fdefa25e044e9b536e6394b27658a98742756cf7a14f9fe997f7d777d9ca427c @@ -18,6 +19,7 @@ EBUILD clang-11.0.0.ebuild 11810 BLAKE2B 3e9edfd30b00b692e70ae86d105f3f955119f77 EBUILD clang-11.0.1.ebuild 11816 BLAKE2B 3bb17a7da9d6c7fcb79463ad277a9d289e26daf76c1380bffd2acffeb8c77af4bf1f4bd037d822e5ffb6f18e531590658f7855a79751c1777e4b9511ee3d8a31 SHA512 787e26418f7342b0ca833999cd26e96a15c4313f6aadf3c3255b62206ebe1aa00cc4f5e4c23545dfb01b41b86345f5b77c792186255b4b34df8446e3eab58413 EBUILD clang-11.1.0_rc1.ebuild 11748 BLAKE2B 938af2b457745dc7efbaa75d5185a18619709d412df481521e24d046940d42a8a2e9376c17183798040297b07a6ac1ffcbbe8a1c9cf51e35273f54af2e76b582 SHA512 e61f58c9e67d0bee6c3afdf5acdc9518f0d583bb508c2454deef98ccdb5be92747412c03983179dd913ccd417fd3b7f22d271ab3c100b30d7ad212f3a6163012 EBUILD clang-11.1.0_rc2.ebuild 11817 BLAKE2B baee9189224b04ae293ae21d65daa4574b5642f7bc97292bf9464fd0ffca254d6abf5d6e68f9299dbbd6a3ac8c63a4c9cb7acfeff53ff46d7d4daa26298c2824 SHA512 ca3c34ab80a33b664b5c50a551c39cad2e91778f6bed80f874d09657d08f5a176e334254f2a95f6fd39ad1f212a18bc4ef862000ee790c9f52b507db6c3430d1 +EBUILD clang-11.1.0_rc3.ebuild 11817 BLAKE2B baee9189224b04ae293ae21d65daa4574b5642f7bc97292bf9464fd0ffca254d6abf5d6e68f9299dbbd6a3ac8c63a4c9cb7acfeff53ff46d7d4daa26298c2824 SHA512 ca3c34ab80a33b664b5c50a551c39cad2e91778f6bed80f874d09657d08f5a176e334254f2a95f6fd39ad1f212a18bc4ef862000ee790c9f52b507db6c3430d1 EBUILD clang-12.0.0.9999.ebuild 11683 BLAKE2B 87afbf175dc095b7585e5f5b6211b9ec3c2c23c3d5d02ea147edd0d0ae424ae8b4bbdc4a4b0eed044abb2be628ac4a1cc7cf1d28ed0c3b8e9418ab0fa62bb392 SHA512 ba54b1b430ba957ef3179d38688eac2f90e5243142abac536d1e9e90ffeda14230c7fb407529a67ff46d8cd2418df58c867c0d79c92a4e7929b33457d52b6cc9 EBUILD clang-12.0.0_rc1.ebuild 11683 BLAKE2B 87afbf175dc095b7585e5f5b6211b9ec3c2c23c3d5d02ea147edd0d0ae424ae8b4bbdc4a4b0eed044abb2be628ac4a1cc7cf1d28ed0c3b8e9418ab0fa62bb392 SHA512 ba54b1b430ba957ef3179d38688eac2f90e5243142abac536d1e9e90ffeda14230c7fb407529a67ff46d8cd2418df58c867c0d79c92a4e7929b33457d52b6cc9 EBUILD clang-13.0.0.9999.ebuild 11683 BLAKE2B 87afbf175dc095b7585e5f5b6211b9ec3c2c23c3d5d02ea147edd0d0ae424ae8b4bbdc4a4b0eed044abb2be628ac4a1cc7cf1d28ed0c3b8e9418ab0fa62bb392 SHA512 ba54b1b430ba957ef3179d38688eac2f90e5243142abac536d1e9e90ffeda14230c7fb407529a67ff46d8cd2418df58c867c0d79c92a4e7929b33457d52b6cc9 diff --git a/sys-devel/clang/clang-11.1.0_rc3.ebuild b/sys-devel/clang/clang-11.1.0_rc3.ebuild new file mode 100644 index 000000000000..ec60fe799a77 --- /dev/null +++ b/sys-devel/clang/clang-11.1.0_rc3.ebuild @@ -0,0 +1,439 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{7..9} ) +inherit cmake llvm llvm.org multilib-minimal pax-utils \ + prefix python-single-r1 toolchain-funcs + +DESCRIPTION="C language family frontend for LLVM" +HOMEPAGE="https://llvm.org/" + +# Keep in sync with sys-devel/llvm +ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC VE ) +ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430 + NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore + "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}" ) +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) + +# MSVCSetupApi.h: MIT +# sorttable.js: MIT + +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT" +SLOT="$(ver_cut 1)/$(ver_cut 1-2)" +KEYWORDS="" +IUSE="debug default-compiler-rt default-libcxx default-lld + doc +static-analyzer test xml kernel_FreeBSD ${ALL_LLVM_TARGETS[*]}" +REQUIRED_USE="${PYTHON_REQUIRED_USE} + || ( ${ALL_LLVM_TARGETS[*]} )" +RESTRICT="!test? ( test )" + +RDEPEND=" + ~sys-devel/llvm-${PV}:${SLOT%/*}=[debug=,${MULTILIB_USEDEP}] + static-analyzer? ( dev-lang/perl:* ) + xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] ) + ${PYTHON_DEPS}" +for x in "${ALL_LLVM_TARGETS[@]}"; do + RDEPEND+=" + ${x}? ( ~sys-devel/llvm-${PV}:${SLOT%/*}[${x}] )" +done +unset x + +DEPEND="${RDEPEND}" +BDEPEND=" + >=dev-util/cmake-3.16 + doc? ( dev-python/sphinx ) + xml? ( virtual/pkgconfig ) + ${PYTHON_DEPS}" +RDEPEND="${RDEPEND} + !<sys-devel/llvm-4.0.0_rc:0 + !sys-devel/clang:0" +PDEPEND=" + sys-devel/clang-common + ~sys-devel/clang-runtime-${PV} + default-compiler-rt? ( =sys-libs/compiler-rt-${PV%_*}* ) + default-libcxx? ( >=sys-libs/libcxx-${PV} ) + default-lld? ( sys-devel/lld )" + +LLVM_COMPONENTS=( clang clang-tools-extra ) +LLVM_MANPAGES=build +LLVM_TEST_COMPONENTS=( + llvm/lib/Testing/Support + llvm/utils/{lit,llvm-lit,unittest} + llvm/utils/{UpdateTestChecks,update_cc_test_checks.py} +) +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). + +PATCHES=( + "${FILESDIR}"/9999/prefix-dirs.patch +) + +pkg_setup() { + LLVM_MAX_SLOT=${SLOT%/*} 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 + + mv ../clang-tools-extra tools/extra || die + + # add Gentoo Portage Prefix for Darwin (see prefix-dirs.patch) + eprefixify \ + lib/Frontend/InitHeaderSearch.cpp \ + lib/Driver/ToolChains/Darwin.cpp || die +} + +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 + ;; + # headers for clang-tidy static library + clang-tidy-headers) + 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 + + # 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-wrapper + clang-refactor + clang-rename + clang-scan-deps + diagtool + hmaptool + + # extra tools + clang-apply-replacements + clang-change-namespace + clang-doc + clang-include-fixer + clang-move + clang-query + clang-reorder-fields + clang-tidy + clangd + find-all-symbols + modularize + pp-trace + ) + + if llvm_are_manpages_built; then + out+=( + # manpages + docs-clang-man + docs-clang-tools-man + ) + fi + + use doc && out+=( + docs-clang-html + docs-clang-tools-html + ) + + use static-analyzer && out+=( + clang-check + clang-extdef-mapping + scan-build + scan-view + ) + fi + + printf "%s${sep}" "${out[@]}" +} + +multilib_src_configure() { + local llvm_version=$(llvm-config --version) || die + local clang_version=$(ver_cut 1-3 "${llvm_version}") + + local mycmakeargs=( + -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" + # relative to bindir + -DCLANG_RESOURCE_DIR="../../../../lib/clang/${clang_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 + + # override default stdlib and rtlib + -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_ENABLE_ARCMT=$(usex static-analyzer) + -DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer) + + -DPython3_EXECUTABLE="${PYTHON}" + ) + use test && mycmakeargs+=( + -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" + -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" + -DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra" + -DSPHINX_WARNINGS_AS_ERRORS=OFF + ) + fi + + mycmakeargs+=( + # normally copied from LLVM_INCLUDE_DOCS but the latter + # is lacking value in stand-alone builds + -DCLANG_INCLUDE_DOCS=${build_docs} + -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 + [[ -x "/usr/bin/clang-tblgen" ]] \ + || die "/usr/bin/clang-tblgen not found or usable" + mycmakeargs+=( + -DCMAKE_CROSSCOMPILING=ON + -DCLANG_TABLEGEN=/usr/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 + cmake_build check-clang + multilib_is_native_abi && + cmake_build check-clang-tools check-clangd +} + +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 + mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${SLOT%/*}/include || die + + # Apply CHOST and version suffix to clang tools + # note: we use two version components here (vs 3 in runtime path) + local llvm_version=$(llvm-config --version) || die + local clang_version=$(ver_cut 1 "${llvm_version}") + local clang_full_version=$(ver_cut 1-3 "${llvm_version}") + 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/${SLOT%/*}/bin/${i}" || die + dosym "clang-${clang_version}" "/usr/lib/llvm/${SLOT%/*}/bin/${i}-${clang_version}" + dosym "${i}-${clang_version}" "/usr/lib/llvm/${SLOT%/*}/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}-${clang_version}" \ + "/usr/lib/llvm/${SLOT%/*}/bin/${abi_chost}-${i}-${clang_version}" + dosym "${abi_chost}-${i}-${clang_version}" \ + "/usr/lib/llvm/${SLOT%/*}/bin/${abi_chost}-${i}" + done + done + + # Remove unnecessary headers on FreeBSD, bug #417171 + if use kernel_FreeBSD; then + rm "${ED}"/usr/lib/clang/${clang_full_version}/include/{std,float,iso,limits,tgmath,varargs}*.h || die + fi +} + +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/${SLOT%/*}/include "${ED}"/usr/include || die + mv "${ED}"/usr/lib/llvm/${SLOT%/*}/$(get_libdir)/clang "${ED}"/usr/include/clangrt || die +} + +multilib_src_install_all() { + python_fix_shebang "${ED}" + if use static-analyzer; then + python_optimize "${ED}"/usr/lib/llvm/${SLOT%/*}/share/scan-view + fi + + docompress "/usr/lib/llvm/${SLOT%/*}/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/${SLOT%/*}/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/${SLOT%/*}/share/clang" + 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" +} + +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/gdb/Manifest b/sys-devel/gdb/Manifest index 00ae828167ae..68fe9a4f6953 100644 --- a/sys-devel/gdb/Manifest +++ b/sys-devel/gdb/Manifest @@ -1,5 +1,5 @@ AUX gdb-8.3.1-verbose-build.patch 395 BLAKE2B e2e82307ceae64d16aa9b57a5e639eb5d217c4d977aed0847fdf125bb13ebc004906d9afb8e3f629c41efccca88df0040015e7799c1fd24de5fb50f62f5bbd90 SHA512 c2bb013e4fcabefddcd8042bd3cbb53471f83182cc8769fe0d19eed80ccc4a83bd84d120006fa25b3b7d0310dc2f2ec6b44a6ff74909cd312b7e491f371777a3 DIST gdb-10.1.tar.xz 21507112 BLAKE2B 69d79cd667ecb6e936b41a03817ade5dd9b761f97bc123d668b5f968d123c37d048fc8ec1289151e989f01bb01a43cc3d8b5b54f1807f1e3eb5f43e6bf0aa55b SHA512 0dc54380435c6853db60f1e388b94836d294dfa9ad7f518385a27db4edd03cb970f8717d5f1e9c9a0d4a33d7fcf91bc2e5d6c9cf9e4b561dcc74e65b806c1537 -EBUILD gdb-10.1.ebuild 7467 BLAKE2B d380247d229b8c6ca3a1d623e0e59116df58a3fc254231b735653a1fc7b614948c0b1e74a46c459f07d16fef3a5b37bbdcce3abf1c276d5b76b01f7e42ab3cf0 SHA512 31e11601a9dba5077b9d6705c29a9c02989f3358664dd6f0cba9df3c8b0466473dca3d69abd736094b7b863ee5cf8f3921c07ab48d4ced46cdddc3f9cb9c810d -EBUILD gdb-9999.ebuild 7475 BLAKE2B 23785ad23261b53c59329d8576298e767080b7429ee61cc4313c1514b742db97c273cd4dad25034f67638b29da0527fb6a9d0adc000f47514125cd27dbd4c965 SHA512 1ae91ea9bb84e4705d2095f0a2cfa55ac011f01295576da0da6a6e05a0aa7e3973e7fe9e97c9d8f67c82d915da32abcd81ae6814d226b0d9ab5f000a81d3fac0 -MISC metadata.xml 1185 BLAKE2B 524a340429b56430dcebf53fb141336f5c7b785865a9b2f407c548a79b0babb60b7771687a41a048d2877ced1d81ce2ab0e602bc8745abe01cce4d3baff48ea7 SHA512 cbd91ca72a0284fdb5b848af05f05f7e6895f68a35ecabe841c0b3d32aade02cc46f2bcc13c6a6a991097500487666410fff51959b38e278e1adc21d5691b01f +EBUILD gdb-10.1.ebuild 6938 BLAKE2B 66cc171af7c1f3e498437ab91eae73471ac65a9dc8916327e2a82b524895d070c7f9c3336296c6daf0ea7545bd4343450ba24497b32a741c508aa042c17ffc78 SHA512 ec07817e0c4483bf5341af718febbc0a1f65495d5a44345ae74d4a1b20a43734af42d20821ff1cac99dba9da026b39c041aea91cb1263768a118cbbf4b8a79b8 +EBUILD gdb-9999.ebuild 6946 BLAKE2B fd0befee5a30362660cacd8ad6e720a696117e6227d188faf783fe917fc69cdedaeb1dab1afd8bf89648b382b5fac875d112a2504624a24b92021d73cd812eb0 SHA512 e8196cb19cb137b92995165b5f0755c0071ac0bfeaca2be48bc718c806bb9f27796620943c4ecef1352601d42db072386e025da9f67daf194a85bf30a30a14c4 +MISC metadata.xml 1102 BLAKE2B 76a586ca542d54f382f13416d53729e9a26f05d8ee2e592cf0b0aa1851d0a9546b20d2058107ca250986682c5f4f86c38939f4cd627f36d9223be3589337caad SHA512 047a745a15e2fd6ecbf22d52e3771e0982a10ed2eb41513e30946574e5b6e813088a31bb3c32832181f19fbd4f5061575389723f66b1821e75839a863e422c0e diff --git a/sys-devel/gdb/gdb-10.1.ebuild b/sys-devel/gdb/gdb-10.1.ebuild index 940b142caef1..68826d3db64c 100644 --- a/sys-devel/gdb/gdb-10.1.ebuild +++ b/sys-devel/gdb/gdb-10.1.ebuild @@ -46,10 +46,9 @@ 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" fi -IUSE="cet +client lzma multitarget nls +python +server source-highlight test vanilla xml xxhash" +IUSE="cet lzma multitarget nls +python +server source-highlight test vanilla xml xxhash" REQUIRED_USE=" python? ( ${PYTHON_REQUIRED_USE} ) - || ( client server ) " # ia64 kernel crashes when gdb testsuite is running @@ -60,15 +59,13 @@ RESTRICT=" " RDEPEND=" - client? ( - dev-libs/mpfr:0= - >=sys-libs/ncurses-5.2-r2:0= - >=sys-libs/readline-7:0= - lzma? ( app-arch/xz-utils ) - python? ( ${PYTHON_DEPS} ) - xml? ( dev-libs/expat ) - sys-libs/zlib - ) + dev-libs/mpfr:0= + >=sys-libs/ncurses-5.2-r2:0= + >=sys-libs/readline-7:0= + sys-libs/zlib + lzma? ( app-arch/xz-utils ) + python? ( ${PYTHON_DEPS} ) + xml? ( dev-libs/expat ) source-highlight? ( dev-util/source-highlight ) @@ -80,11 +77,10 @@ DEPEND="${RDEPEND}" BDEPEND=" app-arch/xz-utils sys-apps/texinfo - client? ( - virtual/yacc - test? ( dev-util/dejagnu ) - nls? ( sys-devel/gettext ) - )" + virtual/yacc + nls? ( sys-devel/gettext ) + test? ( dev-util/dejagnu ) +" PATCHES=( "${FILESDIR}"/${PN}-8.3.1-verbose-build.patch @@ -146,49 +142,39 @@ src_configure() { --with-gdb-datadir="\${datadir}/gdb/${CTARGET}" ) - if use server && ! use client ; then - # just configure+build in the gdbserver subdir to speed things up - cd gdbserver - myconf+=( --program-transform-name='' ) - else - # gdbserver only works for native targets (CHOST==CTARGET). - # it also doesn't support all targets, so rather than duplicate - # the target list (which changes between versions), use the - # "auto" value when things are turned on, which is triggered - # whenever no --enable or --disable is given - if is_cross || use !server ; then - myconf+=( --disable-gdbserver ) - fi + # gdbserver only works for native targets (CHOST==CTARGET). + # it also doesn't support all targets, so rather than duplicate + # the target list (which changes between versions), use the + # "auto" value when things are turned on, which is triggered + # whenever no --enable or --disable is given + if is_cross || use !server ; then + myconf+=( --disable-gdbserver ) fi - if ! ( use server && ! use client ) ; then - # if we are configuring in the top level, then use all - # the additional global options - myconf+=( - --enable-64-bit-bfd - --disable-install-libbfd - --disable-install-libiberty - # Disable guile for now as it requires guile-2.x #562902 - --without-guile - --enable-obsolete - # This only disables building in the readline subdir. - # For gdb itself, it'll use the system version. - --disable-readline - --with-system-readline - # This only disables building in the zlib subdir. - # For gdb itself, it'll use the system version. - --without-zlib - --with-system-zlib - --with-separate-debug-dir="${EPREFIX}"/usr/lib/debug - $(use_with xml expat) - $(use_with lzma) - $(use_enable nls) - $(use_enable source-highlight) - $(use multitarget && echo --enable-targets=all) - $(use_with python python "${EPYTHON}") - $(use_with xxhash) - ) - fi + myconf+=( + --enable-64-bit-bfd + --disable-install-libbfd + --disable-install-libiberty + # Disable guile for now as it requires guile-2.x #562902 + --without-guile + --enable-obsolete + # This only disables building in the readline subdir. + # For gdb itself, it'll use the system version. + --disable-readline + --with-system-readline + # This only disables building in the zlib subdir. + # For gdb itself, it'll use the system version. + --without-zlib + --with-system-zlib + --with-separate-debug-dir="${EPREFIX}"/usr/lib/debug + $(use_with xml expat) + $(use_with lzma) + $(use_enable nls) + $(use_enable source-highlight) + $(use multitarget && echo --enable-targets=all) + $(use_with python python "${EPYTHON}") + $(use_with xxhash) + ) if use sparc-solaris || use x86-solaris ; then # disable largefile support # https://sourceware.org/ml/gdb-patches/2014-12/msg00058.html @@ -202,13 +188,8 @@ src_configure() { } src_install() { - if use server && ! use client; then - cd gdbserver || die - fi default - if use client; then - find "${ED}"/usr -name libiberty.a -delete || die - fi + find "${ED}"/usr -name libiberty.a -delete || die # Delete translations that conflict with binutils-libs. #528088 # Note: Should figure out how to store these in an internal gdb dir. @@ -235,11 +216,9 @@ src_install() { # notes in src_configure above). [[ -e gdbserver/gdbreplay ]] && dobin gdbserver/gdbreplay - if use client ; then - docinto gdb - dodoc gdb/CONTRIBUTE gdb/README gdb/MAINTAINERS \ - gdb/NEWS gdb/ChangeLog gdb/PROBLEMS - fi + docinto gdb + dodoc gdb/CONTRIBUTE gdb/README gdb/MAINTAINERS \ + gdb/NEWS gdb/ChangeLog gdb/PROBLEMS docinto sim dodoc sim/{ChangeLog,MAINTAINERS,README-HACKING} if use server ; then diff --git a/sys-devel/gdb/gdb-9999.ebuild b/sys-devel/gdb/gdb-9999.ebuild index bcbe6b1cd2a8..ceab3a731e88 100644 --- a/sys-devel/gdb/gdb-9999.ebuild +++ b/sys-devel/gdb/gdb-9999.ebuild @@ -46,10 +46,9 @@ 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" fi -IUSE="cet +client lzma multitarget nls +python +server source-highlight test vanilla xml xxhash" +IUSE="cet lzma multitarget nls +python +server source-highlight test vanilla xml xxhash" REQUIRED_USE=" python? ( ${PYTHON_REQUIRED_USE} ) - || ( client server ) " # ia64 kernel crashes when gdb testsuite is running @@ -60,15 +59,13 @@ RESTRICT=" " RDEPEND=" - client? ( - dev-libs/mpfr:0= - >=sys-libs/ncurses-5.2-r2:0= - >=sys-libs/readline-7:0= - lzma? ( app-arch/xz-utils ) - python? ( ${PYTHON_DEPS} ) - xml? ( dev-libs/expat ) - sys-libs/zlib - ) + dev-libs/mpfr:0= + >=sys-libs/ncurses-5.2-r2:0= + >=sys-libs/readline-7:0= + sys-libs/zlib + lzma? ( app-arch/xz-utils ) + python? ( ${PYTHON_DEPS} ) + xml? ( dev-libs/expat ) source-highlight? ( dev-util/source-highlight ) @@ -80,11 +77,10 @@ DEPEND="${RDEPEND}" BDEPEND=" app-arch/xz-utils sys-apps/texinfo - client? ( - virtual/yacc - test? ( dev-util/dejagnu ) - nls? ( sys-devel/gettext ) - )" + virtual/yacc + nls? ( sys-devel/gettext ) + test? ( dev-util/dejagnu ) +" PATCHES=( "${FILESDIR}"/${PN}-8.3.1-verbose-build.patch @@ -146,49 +142,39 @@ src_configure() { --with-gdb-datadir="\${datadir}/gdb/${CTARGET}" ) - if use server && ! use client ; then - # just configure+build in the gdbserver subdir to speed things up - cd gdbserver - myconf+=( --program-transform-name='' ) - else - # gdbserver only works for native targets (CHOST==CTARGET). - # it also doesn't support all targets, so rather than duplicate - # the target list (which changes between versions), use the - # "auto" value when things are turned on, which is triggered - # whenever no --enable or --disable is given - if is_cross || use !server ; then - myconf+=( --disable-gdbserver ) - fi + # gdbserver only works for native targets (CHOST==CTARGET). + # it also doesn't support all targets, so rather than duplicate + # the target list (which changes between versions), use the + # "auto" value when things are turned on, which is triggered + # whenever no --enable or --disable is given + if is_cross || use !server ; then + myconf+=( --disable-gdbserver ) fi - if ! ( use server && ! use client ) ; then - # if we are configuring in the top level, then use all - # the additional global options - myconf+=( - --enable-64-bit-bfd - --disable-install-libbfd - --disable-install-libiberty - # Disable guile for now as it requires guile-2.x #562902 - --without-guile - --enable-obsolete - # This only disables building in the readline subdir. - # For gdb itself, it'll use the system version. - --disable-readline - --with-system-readline - # This only disables building in the zlib subdir. - # For gdb itself, it'll use the system version. - --without-zlib - --with-system-zlib - --with-separate-debug-dir="${EPREFIX}"/usr/lib/debug - $(use_with xml expat) - $(use_with lzma) - $(use_enable nls) - $(use_enable source-highlight) - $(use multitarget && echo --enable-targets=all) - $(use_with python python "${EPYTHON}") - $(use_with xxhash) - ) - fi + myconf+=( + --enable-64-bit-bfd + --disable-install-libbfd + --disable-install-libiberty + # Disable guile for now as it requires guile-2.x #562902 + --without-guile + --enable-obsolete + # This only disables building in the readline subdir. + # For gdb itself, it'll use the system version. + --disable-readline + --with-system-readline + # This only disables building in the zlib subdir. + # For gdb itself, it'll use the system version. + --without-zlib + --with-system-zlib + --with-separate-debug-dir="${EPREFIX}"/usr/lib/debug + $(use_with xml expat) + $(use_with lzma) + $(use_enable nls) + $(use_enable source-highlight) + $(use multitarget && echo --enable-targets=all) + $(use_with python python "${EPYTHON}") + $(use_with xxhash) + ) if use sparc-solaris || use x86-solaris ; then # disable largefile support # https://sourceware.org/ml/gdb-patches/2014-12/msg00058.html @@ -202,13 +188,8 @@ src_configure() { } src_install() { - if use server && ! use client; then - cd gdbserver || die - fi default - if use client; then - find "${ED}"/usr -name libiberty.a -delete || die - fi + find "${ED}"/usr -name libiberty.a -delete || die # Delete translations that conflict with binutils-libs. #528088 # Note: Should figure out how to store these in an internal gdb dir. @@ -235,11 +216,9 @@ src_install() { # notes in src_configure above). [[ -e gdbserver/gdbreplay ]] && dobin gdbserver/gdbreplay - if use client ; then - docinto gdb - dodoc gdb/CONTRIBUTE gdb/README gdb/MAINTAINERS \ - gdb/NEWS gdb/ChangeLog gdb/PROBLEMS - fi + docinto gdb + dodoc gdb/CONTRIBUTE gdb/README gdb/MAINTAINERS \ + gdb/NEWS gdb/ChangeLog gdb/PROBLEMS docinto sim dodoc sim/{ChangeLog,MAINTAINERS,README-HACKING} if use server ; then diff --git a/sys-devel/gdb/metadata.xml b/sys-devel/gdb/metadata.xml index 9595bbc9f457..36cae41ca5c8 100644 --- a/sys-devel/gdb/metadata.xml +++ b/sys-devel/gdb/metadata.xml @@ -7,7 +7,6 @@ </maintainer> <use> <flag name="cet">Enable Intel Control-flow Enforcement Technology.</flag> - <flag name="client">Install the main "gdb" program (most people want this)</flag> <flag name="lzma">Support lzma compression in ELF debug info</flag> <flag name="multitarget">Support all known targets in one gdb binary</flag> <flag name="python">Enable support for the new internal scripting language, as well as extended pretty printers</flag> diff --git a/sys-devel/lld/Manifest b/sys-devel/lld/Manifest index c1e356005fd6..628bec36ddcd 100644 --- a/sys-devel/lld/Manifest +++ b/sys-devel/lld/Manifest @@ -3,6 +3,7 @@ DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc DIST llvmorg-11.0.1.tar.gz 122790338 BLAKE2B 0130996b4a8c4d9f757136fd7fb318068c9bfdc565060dec0d4336480c4ab66c4ae3185a7fdb05f13cf9ee8fd4123b09df938881b75d6e5d3689595114b7e32a SHA512 f5e6ef0b3111aae08a89cd01adb2ff4abfa9ef779c68b9190421d0447efd25c2cc00e5aae9f4764805f5fa31434866043d1510ae7389817e28ae53a5442e2fdf DIST llvmorg-11.1.0-rc1.tar.gz 122793491 BLAKE2B f4777455f5903cffea284eaffd872be6c287c6c1ebbd0c4b5b5473f146d7f5476f3551998a58d3e976ab90cde7b0d05db2b3be97f4e8e2c3474755ff38739268 SHA512 44e281486c44fa1611042ab658b9833a75f9613b7f896863613cfb99de66d13607fb1e9064f42ea3d89ca7951113465a90fd96ca4544262f165f78bd5261f5a8 DIST llvmorg-11.1.0-rc2.tar.gz 122794772 BLAKE2B ab533f078d9d6c37e27c578866a07896344a0b4cf4ebf6402f4fa490213e017310d1c882bf63e552e99a5b4f6d1d8c01413420713b200bfa6732eff64f3c47a9 SHA512 88d8f1d938f0ba7ec39478d03a35c09a30bea51735276205494265b1061621b3ebcda8ee4211e896783b1b99a377c9fa68046118b0d6cb7fcb7bea1e960f95b7 +DIST llvmorg-11.1.0-rc3.tar.gz 122785838 BLAKE2B d0998219471476be1a1249b3a2444750585a352047d4dc14de6fec87eb3407d0f4b848757340200d3423cb4090554ae033fb4ec3797446e46556fbb566bb77a3 SHA512 b67874cb127f3f929a3796558cdfbf509b384c4247f4936ba08cecf88ca880a167cf67c23d78104b5bab4a98efd9435d1b923deb7ae7367875414e6c896957d1 DIST llvmorg-12.0.0-rc1.tar.gz 134164708 BLAKE2B d4261ff7d9586b47f4cfda3d2cda4b76534f9e17fbd5cdb8861895b8eb466021962f4608bfcdeb52f8fce78850a994fd5eda0560f7211e5c8d1ac9330a738a36 SHA512 3d07d013d0705bb99f56898cc55d054d0d95aeb53b3c756cfab80b4c9097cc4935bcea89b9efde2e503a899b9fccf0dacc0073c9991c8ea352755c5ec68a757a DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59 EBUILD lld-10.0.1.ebuild 1327 BLAKE2B c1933a141d5460f94cee3bdeac644760aec6d8e5906e3202e54a7a9da441a57d2de33b77d906dea4dcf6d7bac0bef97edd29c0a8d756093e9b56f81fbec07e01 SHA512 5901b7d0f5b2d07234d3287ab003e68b032a42e0887ab0d76fdd7a7af12feaea97a3ce07f06f3f1c428f7b5b4fa7f98daddf0909c8e3c0bf7ab2adc75363ed95 @@ -10,6 +11,7 @@ EBUILD lld-11.0.0.ebuild 1396 BLAKE2B 07a3d3579893dedf289ca83285ee2525eb8c9f540c EBUILD lld-11.0.1.ebuild 1404 BLAKE2B 69cba34c8e3a96d934004751ad61ce60cd41a25835b4fb849a7d70a0e975ccb5352f64ce581edb3848a4a2c1a45ad5461c95adf40a41301637c54135f4533cc7 SHA512 2a2dcf6d88fb2567b210414bb8c9cd203db9b953dc845e426047dd424920f074abd9a0ed34ae048cf93a12b54dc2919c182fde46197b70fedce2983d28c41365 EBUILD lld-11.1.0_rc1.ebuild 1367 BLAKE2B 58623e80fd719c1d4d882e3e73873c6521cf3c223680a9622470df2b72120f5dc6b26d19cb56fd9e88e5289f27621e11e497ae6aa62f568a14d18615aa000aeb SHA512 a52fb6331666b8acd702068b9f86159cff0c8bf18bca0b87e5d2eb1c15848c1a5d58d87abf4f74d36dd0e252a816b7542c48d0c1d638ad09834b193b05b12991 EBUILD lld-11.1.0_rc2.ebuild 1367 BLAKE2B 58623e80fd719c1d4d882e3e73873c6521cf3c223680a9622470df2b72120f5dc6b26d19cb56fd9e88e5289f27621e11e497ae6aa62f568a14d18615aa000aeb SHA512 a52fb6331666b8acd702068b9f86159cff0c8bf18bca0b87e5d2eb1c15848c1a5d58d87abf4f74d36dd0e252a816b7542c48d0c1d638ad09834b193b05b12991 +EBUILD lld-11.1.0_rc3.ebuild 1367 BLAKE2B 58623e80fd719c1d4d882e3e73873c6521cf3c223680a9622470df2b72120f5dc6b26d19cb56fd9e88e5289f27621e11e497ae6aa62f568a14d18615aa000aeb SHA512 a52fb6331666b8acd702068b9f86159cff0c8bf18bca0b87e5d2eb1c15848c1a5d58d87abf4f74d36dd0e252a816b7542c48d0c1d638ad09834b193b05b12991 EBUILD lld-12.0.0.9999.ebuild 1777 BLAKE2B 564bb221e5d58c20983d9b9f91453dcda59e65506ad3ecaa4db0b2d4a26a166c3a57d3be5e3230448acb57480def21ce0247dcd833909040b0881283bb5c73a2 SHA512 632b98440f211b65ab2d179499d32eface38b43cdbb3bbd8e8b75f78ccaa51c86cd059115ad488d38c7c97ce84e525f0f3038ba4db1f5e1eaf38a40f9024f563 EBUILD lld-12.0.0_rc1.ebuild 1777 BLAKE2B 06bcd235bd80c7b046b6b4707f65036e0aa8776e7ef47c47eaaa84b6f6c90b3eefa07bb57f4a6941a3a3cd531e8274292ed09d3b5f7e09fa7bcb47302d15d3da SHA512 615f86239bd70dd4e6cf80e8f056a75fcb53d2acd5901bb260c852b527af6a12f3d386f07c24106d27afd35e402958787282df1f1f2704238573a3dffca627c7 EBUILD lld-13.0.0.9999.ebuild 1777 BLAKE2B 06bcd235bd80c7b046b6b4707f65036e0aa8776e7ef47c47eaaa84b6f6c90b3eefa07bb57f4a6941a3a3cd531e8274292ed09d3b5f7e09fa7bcb47302d15d3da SHA512 615f86239bd70dd4e6cf80e8f056a75fcb53d2acd5901bb260c852b527af6a12f3d386f07c24106d27afd35e402958787282df1f1f2704238573a3dffca627c7 diff --git a/sys-devel/lld/lld-11.1.0_rc3.ebuild b/sys-devel/lld/lld-11.1.0_rc3.ebuild new file mode 100644 index 000000000000..cb021f0a9790 --- /dev/null +++ b/sys-devel/lld/lld-11.1.0_rc3.ebuild @@ -0,0 +1,65 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{7..9} ) +inherit cmake llvm llvm.org python-any-r1 + +DESCRIPTION="The LLVM linker (link editor)" +HOMEPAGE="https://llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" +SLOT="0" +KEYWORDS="" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND="~sys-devel/llvm-${PV}" +DEPEND="${RDEPEND}" +BDEPEND=" + test? ( + >=dev-util/cmake-3.16 + $(python_gen_any_dep "~dev-python/lit-${PV}[\${PYTHON_USEDEP}]") + )" + +LLVM_COMPONENTS=( lld ) +LLVM_TEST_COMPONENTS=( llvm/utils/{lit,unittest} ) +llvm.org_set_globals + +python_check_deps() { + has_version -b "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + LLVM_MAX_SLOT=${PV%%.*} llvm_pkg_setup + use test && python-any-r1_pkg_setup +} + +src_configure() { + local mycmakeargs=( + -DBUILD_SHARED_LIBS=OFF + + -DLLVM_INCLUDE_TESTS=$(usex test) + ) + use test && mycmakeargs+=( + -DLLVM_BUILD_TESTS=ON + -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags)" + -DPython3_EXECUTABLE="${PYTHON}" + ) + + cmake_src_configure +} + +src_test() { + local -x LIT_PRESERVES_TMP=1 + cmake_build check-lld +} + +src_install() { + cmake_src_install + # LLD has no shared libraries, so strip it all for the time being + rm -r "${ED}"/usr/{include,lib*} || die +} diff --git a/sys-devel/llvm-common/Manifest b/sys-devel/llvm-common/Manifest index 97f887aad0d1..bdc2233d9c34 100644 --- a/sys-devel/llvm-common/Manifest +++ b/sys-devel/llvm-common/Manifest @@ -3,6 +3,7 @@ DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc DIST llvmorg-11.0.1.tar.gz 122790338 BLAKE2B 0130996b4a8c4d9f757136fd7fb318068c9bfdc565060dec0d4336480c4ab66c4ae3185a7fdb05f13cf9ee8fd4123b09df938881b75d6e5d3689595114b7e32a SHA512 f5e6ef0b3111aae08a89cd01adb2ff4abfa9ef779c68b9190421d0447efd25c2cc00e5aae9f4764805f5fa31434866043d1510ae7389817e28ae53a5442e2fdf DIST llvmorg-11.1.0-rc1.tar.gz 122793491 BLAKE2B f4777455f5903cffea284eaffd872be6c287c6c1ebbd0c4b5b5473f146d7f5476f3551998a58d3e976ab90cde7b0d05db2b3be97f4e8e2c3474755ff38739268 SHA512 44e281486c44fa1611042ab658b9833a75f9613b7f896863613cfb99de66d13607fb1e9064f42ea3d89ca7951113465a90fd96ca4544262f165f78bd5261f5a8 DIST llvmorg-11.1.0-rc2.tar.gz 122794772 BLAKE2B ab533f078d9d6c37e27c578866a07896344a0b4cf4ebf6402f4fa490213e017310d1c882bf63e552e99a5b4f6d1d8c01413420713b200bfa6732eff64f3c47a9 SHA512 88d8f1d938f0ba7ec39478d03a35c09a30bea51735276205494265b1061621b3ebcda8ee4211e896783b1b99a377c9fa68046118b0d6cb7fcb7bea1e960f95b7 +DIST llvmorg-11.1.0-rc3.tar.gz 122785838 BLAKE2B d0998219471476be1a1249b3a2444750585a352047d4dc14de6fec87eb3407d0f4b848757340200d3423cb4090554ae033fb4ec3797446e46556fbb566bb77a3 SHA512 b67874cb127f3f929a3796558cdfbf509b384c4247f4936ba08cecf88ca880a167cf67c23d78104b5bab4a98efd9435d1b923deb7ae7367875414e6c896957d1 DIST llvmorg-12.0.0-rc1.tar.gz 134164708 BLAKE2B d4261ff7d9586b47f4cfda3d2cda4b76534f9e17fbd5cdb8861895b8eb466021962f4608bfcdeb52f8fce78850a994fd5eda0560f7211e5c8d1ac9330a738a36 SHA512 3d07d013d0705bb99f56898cc55d054d0d95aeb53b3c756cfab80b4c9097cc4935bcea89b9efde2e503a899b9fccf0dacc0073c9991c8ea352755c5ec68a757a DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59 EBUILD llvm-common-10.0.1.ebuild 588 BLAKE2B cd416d913d8ef3f7abc35f4d4db088cb116ba1881b6ce10760ad6a7302b91cc128c560ddf9b7d4ba0acbbbf9c88f2fdc57ddb15e117254d4feec03a601a7fb24 SHA512 c0e63e8e0b26e33133aa0982b21fef306e3d07ad07a9d9e6046e5dbe782162ec8ec701064d0db1aa741d61b6146854cd1de2a352938e6b579be22a21dde753fe @@ -10,6 +11,7 @@ EBUILD llvm-common-11.0.0.ebuild 595 BLAKE2B 4c0f992968a6e624cbcd73b430b37fd0ff5 EBUILD llvm-common-11.0.1.ebuild 601 BLAKE2B 570f3217864c54be4846d406b88c16ea8f8f7f8b11fccdd6dd81760cf7fe216cdd991cc5d090a59336bbb4d4eac448b15a809b14c7a248faaebede90cd42145b SHA512 8f85ddbabc6319c75f7e57f3a41d302db2cbcd215919682340d8a421f3117af509fb3c605d0bf79c57a76d226bab34f4ef392550dbe6dd5dd819294db6a7a23f EBUILD llvm-common-11.1.0_rc1.ebuild 529 BLAKE2B 1fb911ccad47efb5abf020ffb55999c598e2f3e3184f2aedf4083d99fd7b6c87370362f1bddfce76b3ed94da5bfa6df1bbc38161104dbd49892e0e5fe7f42169 SHA512 bbbde7b5ea8352ec4cb6953417b3f85374a0ad338aecb0794ff4557f9c58bc1974fbc1defb3c7be80adaca7184271b17a11bfc711dce269f4cee74b7a2c19ad7 EBUILD llvm-common-11.1.0_rc2.ebuild 529 BLAKE2B 1fb911ccad47efb5abf020ffb55999c598e2f3e3184f2aedf4083d99fd7b6c87370362f1bddfce76b3ed94da5bfa6df1bbc38161104dbd49892e0e5fe7f42169 SHA512 bbbde7b5ea8352ec4cb6953417b3f85374a0ad338aecb0794ff4557f9c58bc1974fbc1defb3c7be80adaca7184271b17a11bfc711dce269f4cee74b7a2c19ad7 +EBUILD llvm-common-11.1.0_rc3.ebuild 529 BLAKE2B 1fb911ccad47efb5abf020ffb55999c598e2f3e3184f2aedf4083d99fd7b6c87370362f1bddfce76b3ed94da5bfa6df1bbc38161104dbd49892e0e5fe7f42169 SHA512 bbbde7b5ea8352ec4cb6953417b3f85374a0ad338aecb0794ff4557f9c58bc1974fbc1defb3c7be80adaca7184271b17a11bfc711dce269f4cee74b7a2c19ad7 EBUILD llvm-common-12.0.0.9999.ebuild 529 BLAKE2B 07f65b41962ce9384c029cdd72ffaa7aa18afaf1d347a83b4cfc40442cc8e235720a423311ae0b8a208dc461288eb86f8962ea392c9e599dadd1902b12842bbe SHA512 68072c0ef398aac4b06e57c1b72fdb939fb055a4fbf18f702e2ab1e322e400d706582a42addad5dc307e955f1c010ab951c0a8cc4eaa74b4657290bc968a9723 EBUILD llvm-common-12.0.0_rc1.ebuild 529 BLAKE2B 1fb911ccad47efb5abf020ffb55999c598e2f3e3184f2aedf4083d99fd7b6c87370362f1bddfce76b3ed94da5bfa6df1bbc38161104dbd49892e0e5fe7f42169 SHA512 bbbde7b5ea8352ec4cb6953417b3f85374a0ad338aecb0794ff4557f9c58bc1974fbc1defb3c7be80adaca7184271b17a11bfc711dce269f4cee74b7a2c19ad7 EBUILD llvm-common-13.0.0.9999.ebuild 529 BLAKE2B 1fb911ccad47efb5abf020ffb55999c598e2f3e3184f2aedf4083d99fd7b6c87370362f1bddfce76b3ed94da5bfa6df1bbc38161104dbd49892e0e5fe7f42169 SHA512 bbbde7b5ea8352ec4cb6953417b3f85374a0ad338aecb0794ff4557f9c58bc1974fbc1defb3c7be80adaca7184271b17a11bfc711dce269f4cee74b7a2c19ad7 diff --git a/sys-devel/llvm-common/llvm-common-11.1.0_rc3.ebuild b/sys-devel/llvm-common/llvm-common-11.1.0_rc3.ebuild new file mode 100644 index 000000000000..53511a0a20e3 --- /dev/null +++ b/sys-devel/llvm-common/llvm-common-11.1.0_rc3.ebuild @@ -0,0 +1,27 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +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="" +IUSE="" + +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-roc/Manifest b/sys-devel/llvm-roc/Manifest index 670b5eaf1bd3..8a45d93d219a 100644 --- a/sys-devel/llvm-roc/Manifest +++ b/sys-devel/llvm-roc/Manifest @@ -1,17 +1,19 @@ AUX llvm-roc-3.0.0-add_libraries.patch 648 BLAKE2B a201718b8afdc1ba18ae5d7e85a73fde7ca2bb163eecabab33d37c5815ac6ab8c4f8d960ab40f95ad6df95da626a439fbda1d20c25abb9558a37bcdf64a77e64 SHA512 7a1892c8781146830aa5bf69db20bbe7329634f469aeef0946232b15138b55d332491092ed00a4cf698033f19d8f279f4a5b34f13168d5b9ff7eba4a229e82a0 AUX llvm-roc-3.7.0-current_pos.patch 1292 BLAKE2B 8481497e3f9c46c142034ae4c5455f94e79d9c10cc806945af64252043d46c558a3ba08078239a673937705edfd21ba85f618d1d3a5bff652d45efe4e1e70877 SHA512 6cd41988e4eb654b7040c238bef8fc10d8f5922bac9c0ba112c5ba1b57c769472d0b9deaea6822f2d6bbbfda0a27bed2c1df2bba93a79cb4bf08f24185843981 AUX llvm-roc-3.9.0-tensorflow.patch 1901 BLAKE2B 2fc2d2d77987e8a85c14e1190645f0453f431a6d606336696549e518cf216a15818bc4117bec7c270161ef86f0e6770c63c9fda84e12f3c3334c9dd04fa5ffbf SHA512 151b2f0fc9fd7193fc0af0c088d70b2e36fda484228f3c911dbf1a6c6e836107a8e156a98585dd2ffb6faea0953a05d769e986d72def0f2f530bc3da5c5521d7 -AUX llvm-roc-4.0.0-hip-location.patch 1850 BLAKE2B 718472b6bf81c3727746bb6dfc166e3492f8f0f45f68f8b26e9f70711b20e64f0feef0e531aed9efbd4a36a2d63dc1b65668080541f842a499942e48edba2ad6 SHA512 61f2d9eebdb22bf693ce8d287f0d44393b9395a6fecf482cf30cb96d8612be679860453f07e045a689a45d7edc3cdcd5c0712fb700e67639b7e0e869ee64ed4d +AUX llvm-roc-4.0.0-hip-location.patch 2956 BLAKE2B 9d139ea887f514ff62c1e0afbe1e27df617c9609f45356f77e851b76fa647a5153454effa5cd58813302c9d44a19aac0817376091c9009c6b06c56bbb2be455f SHA512 fb503f65ae109e81090e1cd92109110ce4b9fc875606ef0102f49ccc0b6e3aeae9970e5be308fd65510678e024fb731dcb037eb0644e2866108ac64cacbec428 AUX llvm-roc-4.0.0-remove-isystem-usr-include.patch 1187 BLAKE2B ec9043f7358373822c3f6ce53d267192470dfbf03cf649a0964bd93b8b843db8e0a794fee8bbf292f882a6a908d0fa26a1303e4b13d92233d60b6b41c461ce9f SHA512 c3e9f96cb393f702cebe4da8a18495b492ae7cab7877576f3f2a4e6555f77c499dff6eded623305c6939ccd2cd00307e1b5ee28f2c34c9fd3128568dbe88c887 DIST llvm-rocm-ocl-3.10.0.tar.gz 123600166 BLAKE2B 9b69dab6c7d1a8dfe0d90c76b54446ec7f8ef6e59c74ad328208ac07dbf8836ae412dc5c32fdcbfc926a2488e81cd8afef71c3ebca6cd8ff745205028ab380d8 SHA512 3bb7dac13d89cadfb61a231564155f49021437b7c35eae8735b88ceae4a23b7950643f17e3bfebb0868621297202a04d41120d50ea52b6ad8980dabe9bc75509 DIST llvm-rocm-ocl-3.7.0.tar.gz 116973132 BLAKE2B c1cc8a3b95292d726626d3cb59ec1b96549682bfcbec16030e47cf1318c6ea01bc76f3349f012ce4f1e4d8b9fe192c51a025c2d08cf593622c61fe7c61969ba6 SHA512 0626075bedb3898c96c0bb0be7a2aba4662050a1c738115f661bedc03d744ace7a4581b55c6325060740c13a0e50e72e09272bb02c1186c2c4a40fc9b961dcbe DIST llvm-rocm-ocl-3.8.0.tar.gz 117004300 BLAKE2B 13c3213f0fb951fb9d574e8f6d76bb6c632fecadfe93dbe68a9720baa22e35aa3269deef8b533c5a5ff50a2c1ee3dd7a1ea0fae4b8ab8573ec5bfc5ca5d04f4f SHA512 4eca387a132c9d1237ebec7c80319e99c80088766209d05a697d09890f4a82c56ba5f48a5c8c8749bb051c177bb5eab67e00405b04d3191681d0ac7cf1ae868c DIST llvm-rocm-ocl-3.9.0.tar.gz 123591368 BLAKE2B 54b44d705e7704921df1914bac6dc1da8e420f9383efb698a9cf6a339b653d71cad29aa077a9e24d6764ca81fb8dc55fa70abb0cfac004d40f7d811e20ec9945 SHA512 3404390506b33c1de1d05980fafb219692985f38b52d852e9a47ab94e57228caa25ccd0d0d69da656281de32c75e001f60cb9f22453e70fea7b39d065d4333af DIST llvm-rocm-ocl-4.0.0.tar.gz 123595983 BLAKE2B 69dd47a50a53cf7d8168f872778bcda0e028907c2341b165f40152bdf03b668ee6c209dc60fa1018dde2a946d891f15eb92a38cfbc12bb5798dd132c1ce79bf1 SHA512 2ac3d643e0bee72239089003cd2889711a7cd58dc588467fb0ca0a50bec264fda992aa2e3352d5210011a9dc1eea4dd9eacdc7d0c313cd69c7b491df126a4e4e +DIST llvm-rocm-ocl-4.0.1.tar.gz 123608276 BLAKE2B dd5a4d6bc198c7fb6fdc2514cd8c4533a2df6ded7a574c9b4762cda3cb65498a464a0e78427db94db05b468a29ce78d3d8131ac7c6e42953fc503896732474e3 SHA512 d23dceaee2badf46cda27aa725bce5b82bab2fba7d1c2220fedb4795eee455de5077b4ff7299ecd6850eeb0bbdb131ea12a699357f373aef818758d845550f04 EBUILD llvm-roc-3.10.0.ebuild 1536 BLAKE2B 60a1d393a5df2291d971e67f9bbd2675611f935530410e9f9f18cc2178606de298266200c258c2d23bd857198ff41b292d072d0e2c03154b9a640a9ecabf94af SHA512 46771c99d57027271c61dc45d057ee5848745affa5018d218da166dfd4c20f58a38ab2dfede1c42ccb306264b0c81ea6d267353bad34cb6a0d34c2d7255a3608 EBUILD llvm-roc-3.7.0-r1.ebuild 1397 BLAKE2B 08aec56b8ab26093f28a9118ca043adb35dcb84ae5899da5890cbeecb5d10f8d6b08e767a490272a5f35d1b3a5ee8d912a52b448ee57582cda9f99fce57ec8ec SHA512 745f2a9fa18bc3b9d76a324beb1e5165f9be8f720ef133b35e1509c08c08e48872ec4c7402e52d29a3b493e27729a43081fd0e90afe90d30b64d6da3f046e824 EBUILD llvm-roc-3.8.0.ebuild 1492 BLAKE2B 73fd9fd2c47a18b5de44222b84fead548f85b4e67c18838050c52917b6836debee77bc83db6aa0a378516b48a56e5daaac53dde84bdbe1dbefd02494b06498d8 SHA512 d45f0e60c2f12e9b98425310fe370aeeb5d29cd24bfa83b1b908bcbc25866a49e6e1fc7facb04e699bd897f1960a394f2e3a4c5a8308ad9af6177f735dc40631 EBUILD llvm-roc-3.9.0.ebuild 1529 BLAKE2B 07aac1728864214e61ed45cee3ca718c7830835502fe9e6c1e5ba5d6fc8303f3b644b0bb3476f8a1adcaabf09e961b3b55bfce34312b953e8ba855b7f36cdecb SHA512 5b9755c9c06ed465b58d8ca7c677211c04cb05eafaffee1e558b26d3d3bc033a1b8d6b1b3e69732441edd9f14cbf608da919f4eac3e283f5f4226dc332ffb68c -EBUILD llvm-roc-4.0.0-r1.ebuild 2374 BLAKE2B 3944380f53d89d30e8d93314f37a191c37359095dc10c23ce9ad85cc8e9b25eaf86907fa48cd9bf2ae0adc2348d57733bc56b134fa106104e84cae34b2f6432d SHA512 2204600e6e06c08baab1fa655e1d818e0b8b8bbb057b5d8cd838e7206f47ad0af1302f38d4bbf1420c566d5d2bc1023727a695244bc7e0fccf56ec592ddbe5f9 +EBUILD llvm-roc-4.0.0-r2.ebuild 2374 BLAKE2B 3944380f53d89d30e8d93314f37a191c37359095dc10c23ce9ad85cc8e9b25eaf86907fa48cd9bf2ae0adc2348d57733bc56b134fa106104e84cae34b2f6432d SHA512 2204600e6e06c08baab1fa655e1d818e0b8b8bbb057b5d8cd838e7206f47ad0af1302f38d4bbf1420c566d5d2bc1023727a695244bc7e0fccf56ec592ddbe5f9 EBUILD llvm-roc-4.0.0.ebuild 2209 BLAKE2B 69cb35d21ea261977032b7ba780bee60d1feda3a3246e81bb16b33f21b5b08fb094fbe34b117aa68e00d1cd42551a44fb53dd64bb40a74254bf02ba872f4cc32 SHA512 34a7d3f9cfd920adad596fe7532a15c347f56ccbd3cc9f66eb02fa77efa7b512ef3ba119c5377a059471cd6e256424c4ae34fac49dd08620674e0b22375d8268 +EBUILD llvm-roc-4.0.1.ebuild 2374 BLAKE2B 3944380f53d89d30e8d93314f37a191c37359095dc10c23ce9ad85cc8e9b25eaf86907fa48cd9bf2ae0adc2348d57733bc56b134fa106104e84cae34b2f6432d SHA512 2204600e6e06c08baab1fa655e1d818e0b8b8bbb057b5d8cd838e7206f47ad0af1302f38d4bbf1420c566d5d2bc1023727a695244bc7e0fccf56ec592ddbe5f9 MISC metadata.xml 461 BLAKE2B 5a060c417f0bb9bf1fba8375292e7bff20b2c50c3a2ab490bd436f81a954dbd370d61ba59b305b8bdaad9887e9c6a872eb30fea31c566dc6d74d3493b40d0a26 SHA512 a82c2186fc0642dab37608155dcf0aafd20701cb7e2769c6eb3aae88d4df6690743769a75f47efdb36fd8a3d6771f0feecd3efd01c98460fe195394c16d95660 diff --git a/sys-devel/llvm-roc/files/llvm-roc-4.0.0-hip-location.patch b/sys-devel/llvm-roc/files/llvm-roc-4.0.0-hip-location.patch index 8342299f1139..225adc709666 100644 --- a/sys-devel/llvm-roc/files/llvm-roc-4.0.0-hip-location.patch +++ b/sys-devel/llvm-roc/files/llvm-roc-4.0.0-hip-location.patch @@ -1,5 +1,7 @@ replace hardcoded hip finder with Gentoo paths. +It is not necessary to check HIP runtime each time. + Author: Benda Xu <heroxbd@gentoo.org> Index: llvm-project-rocm-4.0.0/clang/lib/Driver/ToolChains/AMDGPU.cpp @@ -12,7 +14,7 @@ Index: llvm-project-rocm-4.0.0/clang/lib/Driver/ToolChains/AMDGPU.cpp - // Try to find relative to the compiler binary. - const char *InstallDir = D.getInstalledDir(); -+ Candidates.emplace_back(D.SysRoot + "/usr/lib/hip", /*StrictChecking=*/true); ++ Candidates.emplace_back(D.SysRoot + "/usr", /*StrictChecking=*/true); - // 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 @@ -45,3 +47,38 @@ Index: llvm-project-rocm-4.0.0/clang/lib/Driver/ToolChains/AMDGPU.cpp return Candidates; } +@@ -273,33 +244,7 @@ void RocmInstallationDetector::detectDev + } + + void RocmInstallationDetector::detectHIPRuntime() { +- auto Candidates = getInstallationPathCandidates(); +- auto &FS = D.getVFS(); +- +- for (const auto &Candidate : Candidates) { +- InstallPath = Candidate.Path; +- if (InstallPath.empty() || !FS.exists(InstallPath)) +- continue; +- +- 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) +- ParseHIPVersionFile((*VersionFile)->getBuffer()); +- +- HasHIPRuntime = true; +- return; +- } +- HasHIPRuntime = false; ++ HasHIPRuntime = true; + } + + void RocmInstallationDetector::print(raw_ostream &OS) const { diff --git a/sys-devel/llvm-roc/llvm-roc-4.0.0-r1.ebuild b/sys-devel/llvm-roc/llvm-roc-4.0.0-r2.ebuild index 5714ae9b7198..5714ae9b7198 100644 --- a/sys-devel/llvm-roc/llvm-roc-4.0.0-r1.ebuild +++ b/sys-devel/llvm-roc/llvm-roc-4.0.0-r2.ebuild diff --git a/sys-devel/llvm-roc/llvm-roc-4.0.1.ebuild b/sys-devel/llvm-roc/llvm-roc-4.0.1.ebuild new file mode 100644 index 000000000000..5714ae9b7198 --- /dev/null +++ b/sys-devel/llvm-roc/llvm-roc-4.0.1.ebuild @@ -0,0 +1,94 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +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="virtual/cblas + dev-libs/libxml2 + sys-libs/zlib + sys-libs/ncurses:=" +DEPEND="${RDEPEND}" +PDEPEND="dev-libs/rocr-runtime" + +S="${WORKDIR}/llvm-project-rocm-${PV}/llvm" + +PATCHES=( + "${FILESDIR}/${PN}-3.7.0-current_pos.patch" + "${FILESDIR}/${PN}-3.9.0-tensorflow.patch" +) + +CMAKE_BUILD_TYPE=RelWithDebInfo + +src_prepare() { + cd "${WORKDIR}/llvm-project-rocm-${PV}" || die + eapply "${FILESDIR}/${PN}-3.0.0-add_libraries.patch" + eapply "${FILESDIR}/${PN}-4.0.0-remove-isystem-usr-include.patch" + eapply "${FILESDIR}/${PN}-4.0.0-hip-location.patch" + + if [[ -n ${EPREFIX} ]]; then + pushd "${S}"/../clang >/dev/null || die + sed -i -e "s@DEFAULT_SYSROOT \"\"@DEFAULT_SYSROOT \"${EPREFIX}\"@" CMakeLists.txt + 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 + 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 + 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 + + eapply_user + cmake_src_prepare +} + +src_configure() { + PROJECTS="clang;lld" + + if usex runtime; then + PROJECTS+=";compiler-rt" + fi + + local mycmakeargs=( + -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/roc" + -DLLVM_ENABLE_PROJECTS="${PROJECTS}" + -DLLVM_TARGETS_TO_BUILD="AMDGPU;X86" + -DLLVM_BUILD_DOCS=NO + -DLLVM_ENABLE_OCAMLDOC=OFF + -DLLVM_ENABLE_SPHINX=NO + -DLLVM_ENABLE_DOXYGEN=OFF + -DLLVM_INSTALL_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="${EROOT}/usr/lib/llvm/roc/lib" + EOF + doenvd "99${PN}" +} diff --git a/sys-devel/llvm/Manifest b/sys-devel/llvm/Manifest index a9fc968f2942..cd2be73ff90f 100644 --- a/sys-devel/llvm/Manifest +++ b/sys-devel/llvm/Manifest @@ -12,6 +12,7 @@ DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc DIST llvmorg-11.0.1.tar.gz 122790338 BLAKE2B 0130996b4a8c4d9f757136fd7fb318068c9bfdc565060dec0d4336480c4ab66c4ae3185a7fdb05f13cf9ee8fd4123b09df938881b75d6e5d3689595114b7e32a SHA512 f5e6ef0b3111aae08a89cd01adb2ff4abfa9ef779c68b9190421d0447efd25c2cc00e5aae9f4764805f5fa31434866043d1510ae7389817e28ae53a5442e2fdf DIST llvmorg-11.1.0-rc1.tar.gz 122793491 BLAKE2B f4777455f5903cffea284eaffd872be6c287c6c1ebbd0c4b5b5473f146d7f5476f3551998a58d3e976ab90cde7b0d05db2b3be97f4e8e2c3474755ff38739268 SHA512 44e281486c44fa1611042ab658b9833a75f9613b7f896863613cfb99de66d13607fb1e9064f42ea3d89ca7951113465a90fd96ca4544262f165f78bd5261f5a8 DIST llvmorg-11.1.0-rc2.tar.gz 122794772 BLAKE2B ab533f078d9d6c37e27c578866a07896344a0b4cf4ebf6402f4fa490213e017310d1c882bf63e552e99a5b4f6d1d8c01413420713b200bfa6732eff64f3c47a9 SHA512 88d8f1d938f0ba7ec39478d03a35c09a30bea51735276205494265b1061621b3ebcda8ee4211e896783b1b99a377c9fa68046118b0d6cb7fcb7bea1e960f95b7 +DIST llvmorg-11.1.0-rc3.tar.gz 122785838 BLAKE2B d0998219471476be1a1249b3a2444750585a352047d4dc14de6fec87eb3407d0f4b848757340200d3423cb4090554ae033fb4ec3797446e46556fbb566bb77a3 SHA512 b67874cb127f3f929a3796558cdfbf509b384c4247f4936ba08cecf88ca880a167cf67c23d78104b5bab4a98efd9435d1b923deb7ae7367875414e6c896957d1 DIST llvmorg-12.0.0-rc1.tar.gz 134164708 BLAKE2B d4261ff7d9586b47f4cfda3d2cda4b76534f9e17fbd5cdb8861895b8eb466021962f4608bfcdeb52f8fce78850a994fd5eda0560f7211e5c8d1ac9330a738a36 SHA512 3d07d013d0705bb99f56898cc55d054d0d95aeb53b3c756cfab80b4c9097cc4935bcea89b9efde2e503a899b9fccf0dacc0073c9991c8ea352755c5ec68a757a DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59 EBUILD llvm-10.0.1.ebuild 11889 BLAKE2B 680cfce8161a51c15033cb6c5db616f74d5d04fb165fb726df5e3f9ba88631add687954ca3ed823041c57099cb48eac5274a37ff9defcf40ab94d681e4383692 SHA512 3d690f86c806f4804bc16c365fc57a5525b160f2722773c79b19b89927fc514b259ea7393729d4df648a4f7e3e0ca90100ba621630cb8d25cd92dd7286259d70 @@ -19,6 +20,7 @@ EBUILD llvm-11.0.0.ebuild 12872 BLAKE2B 684851dd05e8321c6dcc4d30f312fb13832a46b5 EBUILD llvm-11.0.1.ebuild 12681 BLAKE2B 9b3540ca6fd9a7bc1a86b0b025b64a6ed939dc4fd078bfad4e1414515253ff1ff5f4ec604aa40db671a7c5b6b8405051797c61418fc936510d649e50abc9ca54 SHA512 08bbb825ab193978acf6c8dd95e1d8a0fceffe4bdc3cc4a79ccbdcbb9b41283e15edf95aeaab6dcf224fcf83956783d7c2512fd3834444506eabdca03d9afecf EBUILD llvm-11.1.0_rc1.ebuild 12602 BLAKE2B ca33bff4d03ef31aa55a5c10e985537d05247c187f11eeabad0939af58654442e5e577b7f6389a09a271fdaf8f2d8e92b50384933683256064f6cd7d912f3b9d SHA512 bff87c857f07bceb774be3e6b78ec75dc73fc6380c974908180d4fdd9d63b4025cc7128bf99db3fc4f448ddb3767b258c6d9ecb1729453c1171d672a0b0414de EBUILD llvm-11.1.0_rc2.ebuild 12602 BLAKE2B ca33bff4d03ef31aa55a5c10e985537d05247c187f11eeabad0939af58654442e5e577b7f6389a09a271fdaf8f2d8e92b50384933683256064f6cd7d912f3b9d SHA512 bff87c857f07bceb774be3e6b78ec75dc73fc6380c974908180d4fdd9d63b4025cc7128bf99db3fc4f448ddb3767b258c6d9ecb1729453c1171d672a0b0414de +EBUILD llvm-11.1.0_rc3.ebuild 12602 BLAKE2B ca33bff4d03ef31aa55a5c10e985537d05247c187f11eeabad0939af58654442e5e577b7f6389a09a271fdaf8f2d8e92b50384933683256064f6cd7d912f3b9d SHA512 bff87c857f07bceb774be3e6b78ec75dc73fc6380c974908180d4fdd9d63b4025cc7128bf99db3fc4f448ddb3767b258c6d9ecb1729453c1171d672a0b0414de EBUILD llvm-12.0.0.9999.ebuild 12707 BLAKE2B 4b1a0bdd938a7b1929ac0733ab5858deb39d4baec80819dca21fc3420f2e0d23da43053037e944dbcbdab484b8a44075e66fa6c83c548242b094985fa41be0f7 SHA512 daa950c95437fb5ccb188db3595de7e3a61ec5df5ae4f4141bb553d7672e9423882a31f227ba7ed767982796fd515637b51a6032aca7ce01e736ee8c6c0c6c82 EBUILD llvm-12.0.0_rc1.ebuild 12707 BLAKE2B 4b1a0bdd938a7b1929ac0733ab5858deb39d4baec80819dca21fc3420f2e0d23da43053037e944dbcbdab484b8a44075e66fa6c83c548242b094985fa41be0f7 SHA512 daa950c95437fb5ccb188db3595de7e3a61ec5df5ae4f4141bb553d7672e9423882a31f227ba7ed767982796fd515637b51a6032aca7ce01e736ee8c6c0c6c82 EBUILD llvm-13.0.0.9999.ebuild 12707 BLAKE2B 4b1a0bdd938a7b1929ac0733ab5858deb39d4baec80819dca21fc3420f2e0d23da43053037e944dbcbdab484b8a44075e66fa6c83c548242b094985fa41be0f7 SHA512 daa950c95437fb5ccb188db3595de7e3a61ec5df5ae4f4141bb553d7672e9423882a31f227ba7ed767982796fd515637b51a6032aca7ce01e736ee8c6c0c6c82 diff --git a/sys-devel/llvm/llvm-11.1.0_rc3.ebuild b/sys-devel/llvm/llvm-11.1.0_rc3.ebuild new file mode 100644 index 000000000000..6b479a5280ef --- /dev/null +++ b/sys-devel/llvm/llvm-11.1.0_rc3.ebuild @@ -0,0 +1,516 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{7..9} ) +inherit cmake llvm.org multilib-minimal pax-utils python-any-r1 \ + toolchain-funcs + +DESCRIPTION="Low Level Virtual Machine" +HOMEPAGE="https://llvm.org/" + +# Those are in lib/Targets, without explicit CMakeLists.txt mention +ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC VE ) +# Keep in sync with CMakeLists.txt +ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430 + NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore + "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}" ) +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) + +# 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="$(ver_cut 1)" +KEYWORDS="" +IUSE="debug doc exegesis gold libedit +libffi ncurses test xar xml z3 + kernel_Darwin ${ALL_LLVM_TARGETS[*]}" +REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )" +RESTRICT="!test? ( test )" + +RDEPEND=" + sys-libs/zlib:0=[${MULTILIB_USEDEP}] + exegesis? ( dev-libs/libpfm:= ) + gold? ( >=sys-devel/binutils-2.31.1-r4:*[plugins] ) + 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} + gold? ( sys-libs/binutils-libs )" +BDEPEND=" + dev-lang/perl + >=dev-util/cmake-3.16 + sys-devel/gnuconfig + kernel_Darwin? ( + <sys-libs/libcxx-$(ver_cut 1-3).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 ) + ${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 + gold? ( >=sys-devel/llvmgold-${SLOT} )" + +LLVM_COMPONENTS=( llvm ) +LLVM_MANPAGES=build +llvm.org_set_globals + +python_check_deps() { + use doc || return 0 + + has_version -b "dev-python/recommonmark[${PYTHON_USEDEP}]" && + has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]" +} + +check_live_ebuild() { + 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 + # reorder + all_targets=( "${prod_targets[@]}" "${exp_targets[@]}" ) + + 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 [[ ${all_targets[*]} != ${ALL_LLVM_TARGETS[*]#llvm_targets_} ]]; then + eqawarn "ALL_LLVM_TARGETS is outdated!" + eqawarn " Have: ${ALL_LLVM_TARGETS[*]#llvm_targets_}" + eqawarn "Expected: ${all_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() { + # Fix llvm-config for shared linking and sane flags + # https://bugs.gentoo.org/show_bug.cgi?id=565358 + eapply "${FILESDIR}"/9999/0007-llvm-config-Clean-up-exported-values-update-for-shar.patch + + # 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 live ebuild is up-to-date + check_live_ebuild + + llvm.org_src_prepare +} + +# Is LLVM being linked against libc++? +is_libcxx_linked() { + local code='#include <ciso646> +#if defined(_LIBCPP_VERSION) + HAVE_LIBCXX +#endif +' + local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1 + + [[ ${out} == *HAVE_LIBCXX* ]] +} + +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 + + # tools + bugpoint + dsymutil + llc + lli + lli-child-target + llvm-addr2line + llvm-ar + llvm-as + llvm-bcanalyzer + llvm-c-test + llvm-cat + llvm-cfi-verify + llvm-config + llvm-cov + llvm-cvtres + llvm-cxxdump + llvm-cxxfilt + llvm-cxxmap + llvm-diff + llvm-dis + llvm-dlltool + llvm-dwarfdump + llvm-dwp + llvm-elfabi + llvm-exegesis + llvm-extract + llvm-gsymutil + llvm-ifs + llvm-install-name-tool + llvm-jitlink + llvm-lib + 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-pdbutil + llvm-profdata + llvm-ranlib + llvm-rc + llvm-readelf + llvm-readobj + llvm-reduce + llvm-rtdyld + llvm-size + llvm-split + llvm-stress + llvm-strings + llvm-strip + llvm-symbolizer + llvm-undname + llvm-xray + obj2yaml + opt + sancov + sanstats + 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 gold && 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/${SLOT}" + -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_HOST_TRIPLE="${CHOST}" + + -DFFI_INCLUDE_DIR="${ffi_cflags#-I}" + -DFFI_LIBRARY_DIR="${ffi_ldflags#-L}" + # used only for llvm-objdump tool + -DHAVE_LIBXAR=$(multilib_native_usex xar 1 0) + + -DPython3_EXECUTABLE="${PYTHON}" + + # disable OCaml bindings (now in dev-ml/llvm-ocaml) + -DOCAMLFIND=NO + ) + + if is_libcxx_linked; 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/${SLOT}/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 gold && mycmakeargs+=( + -DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include + ) + fi + + if tc-is-cross-compiler; then + local tblgen="${EPREFIX}/usr/lib/llvm/${SLOT}/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 + + multilib_is_native_abi && check_distribution_components +} + +multilib_src_compile() { + 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/${SLOT}/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/${SLOT}/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/${SLOT}/include "${ED}"/usr/include || die + + LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${SLOT}/$(get_libdir)" ) +} + +multilib_src_install_all() { + local revord=$(( 9999 - ${SLOT} )) + newenvd - "60llvm-${revord}" <<-_EOF_ + PATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin" + # we need to duplicate it in ROOTPATH for Portage to respect... + ROOTPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin" + MANPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man" + LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )" + _EOF_ + + docompress "/usr/lib/llvm/${SLOT}/share/man" + llvm_install_manpages +} + +pkg_postinst() { + elog "You can find additional opt-viewer utility scripts in:" + elog " ${EROOT}/usr/lib/llvm/${SLOT}/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/rust-std/Manifest b/sys-devel/rust-std/Manifest index ae6034dbed59..0e7534818869 100644 --- a/sys-devel/rust-std/Manifest +++ b/sys-devel/rust-std/Manifest @@ -1,7 +1,11 @@ DIST rustc-1.46.0-src.tar.xz 101868452 BLAKE2B da9798596b124a10d79c236a871228f05e5f571d22c2259328e7026c91e088c85f5de9c0536a16531e0cb10477bfcd16d3ac11467979f5561cb6199442b877ef SHA512 099857f1d295043587a4e2a65ef3e6a90e12c8b6958e98535a1656c113c553f9a9b621aba8a19cf21bd8d2c79d27cbfa4b8e6fabbcb3cbfee23b545be7b450b4 DIST rustc-1.47.0-src.tar.xz 104143736 BLAKE2B 0454094dde35275488046826da87655e51bf0795481d6d08fd70d644bfc12481bca8641166106ef32f20494906025244715b16ff21a1c023f4bd2818aab42521 SHA512 6ba83c0158f8130ddeae7e070417a2121d8a548c8fe97e28bce116d84048636c75aaee78e0c92cd43a50f5679a1223fc226cc8c5ba9bbd1465e84c5c6034d5c9 DIST rustc-1.48.0-src.tar.xz 105951736 BLAKE2B 42468fc5ac5e80c4793cfe0913cbb8e43a8def28cc8cf5ed25ab989561e2bf33e155c83e180183362535cbc9008f341eb1273087a2364672b1a4032ac2d6ca45 SHA512 4e12baa6893238a8d336ec9ebe891477d18676f271b32763474fa7a6a8b58fb3187dd4e2aa95bce482989b692cc2e1360221669d6811eec71b326f22a1756c23 +DIST rustc-1.49.0-src.tar.xz 108330280 BLAKE2B 65e36253482ded2df225cbbf15253b6c9a8ae935053b071d9fb9e7b1d47d5d3ac47a138876e4a5cfeda455c655ac06ceff2658c8668cef7d2206116906740653 SHA512 fd8bc67ec0a73d3b6bf9c1fabb7ea981ef817644b4e6ced982fa90b12eae9b55de074634a670bdfb38bfee6588603e818ddcbcc2f2a05f83057c061b4194b4b7 +DIST rustc-1.50.0-src.tar.xz 108666272 BLAKE2B abb1b6f57093334bae5892dd99c964ffaf5e2b906cc92f0b92d5786cf80484cff923643169f24f4f92a5724c21b8bd671c72531c2cd1f6fbe0ea7107b5bd923b SHA512 df3c83c0fdc9ebce6fdccddda781dea0cdbd88d2b2a8220cac40cc3a8fa957923ae834d1fa45283d4ad227b334bd9e220e37a4a1ad7a1c7aeb806ed9ed387245 EBUILD rust-std-1.46.0.ebuild 3218 BLAKE2B 1f025951b208ecb756c9733a3642e2a8d02a34fc3654275231897037441c4b1c3d14dfc778d88928b7c3932d8a861b0e2271d61964aca5b0aa1e77fb517ff5fc SHA512 f0af35cb35909803da66d295775f16da824323861395e0f11c5be866ec17c1fe96448b1375ac9fc793cf77a57b8ab610fa88e0cefdf3fdb8f5becec8b4f3a899 EBUILD rust-std-1.47.0.ebuild 3371 BLAKE2B 2f6b2212fa4c966bc3c87d4edbbb33fd1805acb63e723f9287909ebb89be9f6f78ac207ffe4d1cebb9ca56046c28319cc38ff96e4ff94764b59d9601b7f1bb9f SHA512 5c8056dca52c3f5a3c34981a7a618324dfe9cc45795a0082cdda1e9db684012cd5b0f52584f9ae42615ab684fb075f35cd76f530b23e140414b90d4423e5d114 EBUILD rust-std-1.48.0.ebuild 3371 BLAKE2B 2f6b2212fa4c966bc3c87d4edbbb33fd1805acb63e723f9287909ebb89be9f6f78ac207ffe4d1cebb9ca56046c28319cc38ff96e4ff94764b59d9601b7f1bb9f SHA512 5c8056dca52c3f5a3c34981a7a618324dfe9cc45795a0082cdda1e9db684012cd5b0f52584f9ae42615ab684fb075f35cd76f530b23e140414b90d4423e5d114 +EBUILD rust-std-1.49.0.ebuild 3376 BLAKE2B 04e3aab94fa92feca1a5486a1e608c08ffbadca0c73b1bf904a817cf5f07b2b916c37ca629125ad45f9f4f9cc0bb106508294ac39d13e66660547f03480bcd24 SHA512 286c95f28e1ec4f284b1d8412b97cfa427d7573b8dac73b7b2b7e9e8ccee07ccf07f4f2c35f3bc4d32bd848907bdce7b38dcf2040ad9e9e31b0a43445d76fed3 +EBUILD rust-std-1.50.0.ebuild 3376 BLAKE2B 04e3aab94fa92feca1a5486a1e608c08ffbadca0c73b1bf904a817cf5f07b2b916c37ca629125ad45f9f4f9cc0bb106508294ac39d13e66660547f03480bcd24 SHA512 286c95f28e1ec4f284b1d8412b97cfa427d7573b8dac73b7b2b7e9e8ccee07ccf07f4f2c35f3bc4d32bd848907bdce7b38dcf2040ad9e9e31b0a43445d76fed3 MISC metadata.xml 818 BLAKE2B 32766ac24fada44b46f8d4ef77164a4e4843b876347056223184ec6fe48af9a6e2fa7d3e1fd48dec299f328f37fbdf4c84225a7450b788ce3e6c92e87bf8f313 SHA512 c1c4a46790dedc83b6890bbb536927148b293eed7f4d3bbd1f602b7664a9b303ca9689d4d1d35ed8047c2c909d64145fc4098efbec279f630b86207b0216ca80 diff --git a/sys-devel/rust-std/rust-std-1.49.0.ebuild b/sys-devel/rust-std/rust-std-1.49.0.ebuild new file mode 100644 index 000000000000..7ca481644a6a --- /dev/null +++ b/sys-devel/rust-std/rust-std-1.49.0.ebuild @@ -0,0 +1,154 @@ +# Copyright 2020-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{7,8,9} ) + +inherit flag-o-matic multiprocessing python-any-r1 rust-toolchain toolchain-funcs + +DESCRIPTION="Rust standard library, standalone (for crossdev)" +HOMEPAGE="https://www.rust-lang.org" +SRC_URI="https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz" + +LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA" +SLOT="stable/$(ver_cut 1-2)" +# please do not keyword +#KEYWORDS="" #nowarn +IUSE="debug" + +BDEPEND=" + ${PYTHON_DEPS} + ~dev-lang/rust-${PV}:= +" + +DEPEND="|| + ( + >="${CATEGORY}"/gcc-4.7:* + >="${CATEGORY}"/clang-3.5:* + ) +" + +RDEPEND="${DEPEND}" + +# need full compiler to run tests +RESTRICT="test" + +QA_FLAGS_IGNORED="usr/lib/rust/${PV}/rustlib/.*/lib/lib.*.so" + +S="${WORKDIR}/${P/-std/c}-src" + +# +# The cross magic +# +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi + +is_cross() { + [[ ${CHOST} != ${CTARGET} ]] +} + +toml_usex() { + usex "$1" true false +} + +pkg_pretend() { + is_cross || die "${PN} should only be used for cross" +} + +pkg_setup() { + python-any-r1_pkg_setup +} + +src_prepare() { + default +} + +src_configure() { + # do the great cleanup + strip-flags + filter-flags '-mcpu=*' '-march=*' '-mtune=*' '-m32' '-m64' + strip-unsupported-flags + + local rust_root x + rust_root="$(rustc --print sysroot)" + rtarget="$(rust_abi ${CTARGET})" + rtarget="${ERUST_STD_RTARGET:-${rtarget}}" # some targets need to be custom. + rbuild="$(rust_abi ${CBUILD})" + rhost="$(rust_abi ${CHOST})" + + echo + for x in CATEGORY rust_root rbuild rhost rtarget RUSTFLAGS CFLAGS CXXFLAGS LDFLAGS; do + einfo "$(printf '%10s' ${x^^}:) ${!x}" + done + + cat <<- EOF > "${S}"/config.toml + [build] + build = "${rbuild}" + host = ["${rhost}"] + target = ["${rtarget}"] + cargo = "${rust_root}/bin/cargo" + rustc = "${rust_root}/bin/rustc" + submodules = false + python = "${EPYTHON}" + locked-deps = true + vendor = true + extended = true + verbose = 2 + cargo-native-static = false + [install] + prefix = "${EPREFIX}/usr/lib/${PN}/${PV}" + sysconfdir = "etc" + docdir = "share/doc/rust" + bindir = "bin" + libdir = "lib" + mandir = "share/man" + [rust] + # https://github.com/rust-lang/rust/issues/54872 + codegen-units-std = 1 + optimize = true + debug = $(toml_usex debug) + debug-assertions = $(toml_usex debug) + debuginfo-level-rustc = 0 + backtrace = true + incremental = false + default-linker = "$(tc-getCC)" + rpath = false + dist-src = false + remap-debuginfo = true + jemalloc = false + [dist] + src-tarball = false + [target.${rtarget}] + cc = "$(tc-getCC ${CTARGET})" + cxx = "$(tc-getCXX ${CTARGET})" + linker = "$(tc-getCC ${CTARGET})" + ar = "$(tc-getAR ${CTARGET})" + $(usex elibc_musl 'crt-static = false' '') + EOF + + einfo "${PN^} configured with the following settings:" + cat "${S}"/config.toml || die +} + +src_compile() { + env RUST_BACKTRACE=1 \ + "${EPYTHON}" ./x.py build -vv --config="${S}"/config.toml -j$(makeopts_jobs) \ + library/std --stage 0 || die +} + +src_test() { + ewarn "${PN} can't run tests" +} + +src_install() { + local rustlib="lib/rust/${PV}/lib/rustlib" + dodir "/usr/${rustlib}" + pushd "build/${rhost}/stage0-sysroot/lib/rustlib" > /dev/null || die + cp -pPRv "${rtarget}" "${ED}/usr/${rustlib}" || die + popd > /dev/null || die +} diff --git a/sys-devel/rust-std/rust-std-1.50.0.ebuild b/sys-devel/rust-std/rust-std-1.50.0.ebuild new file mode 100644 index 000000000000..7ca481644a6a --- /dev/null +++ b/sys-devel/rust-std/rust-std-1.50.0.ebuild @@ -0,0 +1,154 @@ +# Copyright 2020-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{7,8,9} ) + +inherit flag-o-matic multiprocessing python-any-r1 rust-toolchain toolchain-funcs + +DESCRIPTION="Rust standard library, standalone (for crossdev)" +HOMEPAGE="https://www.rust-lang.org" +SRC_URI="https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz" + +LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA" +SLOT="stable/$(ver_cut 1-2)" +# please do not keyword +#KEYWORDS="" #nowarn +IUSE="debug" + +BDEPEND=" + ${PYTHON_DEPS} + ~dev-lang/rust-${PV}:= +" + +DEPEND="|| + ( + >="${CATEGORY}"/gcc-4.7:* + >="${CATEGORY}"/clang-3.5:* + ) +" + +RDEPEND="${DEPEND}" + +# need full compiler to run tests +RESTRICT="test" + +QA_FLAGS_IGNORED="usr/lib/rust/${PV}/rustlib/.*/lib/lib.*.so" + +S="${WORKDIR}/${P/-std/c}-src" + +# +# The cross magic +# +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi + +is_cross() { + [[ ${CHOST} != ${CTARGET} ]] +} + +toml_usex() { + usex "$1" true false +} + +pkg_pretend() { + is_cross || die "${PN} should only be used for cross" +} + +pkg_setup() { + python-any-r1_pkg_setup +} + +src_prepare() { + default +} + +src_configure() { + # do the great cleanup + strip-flags + filter-flags '-mcpu=*' '-march=*' '-mtune=*' '-m32' '-m64' + strip-unsupported-flags + + local rust_root x + rust_root="$(rustc --print sysroot)" + rtarget="$(rust_abi ${CTARGET})" + rtarget="${ERUST_STD_RTARGET:-${rtarget}}" # some targets need to be custom. + rbuild="$(rust_abi ${CBUILD})" + rhost="$(rust_abi ${CHOST})" + + echo + for x in CATEGORY rust_root rbuild rhost rtarget RUSTFLAGS CFLAGS CXXFLAGS LDFLAGS; do + einfo "$(printf '%10s' ${x^^}:) ${!x}" + done + + cat <<- EOF > "${S}"/config.toml + [build] + build = "${rbuild}" + host = ["${rhost}"] + target = ["${rtarget}"] + cargo = "${rust_root}/bin/cargo" + rustc = "${rust_root}/bin/rustc" + submodules = false + python = "${EPYTHON}" + locked-deps = true + vendor = true + extended = true + verbose = 2 + cargo-native-static = false + [install] + prefix = "${EPREFIX}/usr/lib/${PN}/${PV}" + sysconfdir = "etc" + docdir = "share/doc/rust" + bindir = "bin" + libdir = "lib" + mandir = "share/man" + [rust] + # https://github.com/rust-lang/rust/issues/54872 + codegen-units-std = 1 + optimize = true + debug = $(toml_usex debug) + debug-assertions = $(toml_usex debug) + debuginfo-level-rustc = 0 + backtrace = true + incremental = false + default-linker = "$(tc-getCC)" + rpath = false + dist-src = false + remap-debuginfo = true + jemalloc = false + [dist] + src-tarball = false + [target.${rtarget}] + cc = "$(tc-getCC ${CTARGET})" + cxx = "$(tc-getCXX ${CTARGET})" + linker = "$(tc-getCC ${CTARGET})" + ar = "$(tc-getAR ${CTARGET})" + $(usex elibc_musl 'crt-static = false' '') + EOF + + einfo "${PN^} configured with the following settings:" + cat "${S}"/config.toml || die +} + +src_compile() { + env RUST_BACKTRACE=1 \ + "${EPYTHON}" ./x.py build -vv --config="${S}"/config.toml -j$(makeopts_jobs) \ + library/std --stage 0 || die +} + +src_test() { + ewarn "${PN} can't run tests" +} + +src_install() { + local rustlib="lib/rust/${PV}/lib/rustlib" + dodir "/usr/${rustlib}" + pushd "build/${rhost}/stage0-sysroot/lib/rustlib" > /dev/null || die + cp -pPRv "${rtarget}" "${ED}/usr/${rustlib}" || die + popd > /dev/null || die +} |