diff options
Diffstat (limited to 'sys-devel')
23 files changed, 1529 insertions, 112 deletions
diff --git a/sys-devel/Manifest.gz b/sys-devel/Manifest.gz Binary files differindex d24860f6346d..fe06a19e8bc7 100644 --- a/sys-devel/Manifest.gz +++ b/sys-devel/Manifest.gz diff --git a/sys-devel/automake/Manifest b/sys-devel/automake/Manifest index c881fd1c30b6..0890b010ce31 100644 --- a/sys-devel/automake/Manifest +++ b/sys-devel/automake/Manifest @@ -6,7 +6,6 @@ AUX automake-1.16.2-fix-py-compile-basedir.sh-test.patch 985 BLAKE2B 9a07629d107 AUX automake-1.16.2-py3-compile.patch 2412 BLAKE2B 20a3ce66047ad5106f0cafccce19fc8acd47ee0ba01882d1ff18c1a15592ef68b9c3debb61df78a31f238938a93ca4dc281b358b588727864673b09b11167131 SHA512 3bb9769d37b02e89373612752f127c582f948347a6f54e8b24dba262e14ca860e8fa507d96c0d51f0d64587371b9da17eb270dd5b7695091181731e35e5b9c2d DIST automake-1.11.6.tar.xz 1092908 BLAKE2B 17254d81d6920c32aa877b6c892025de8e4060b8bcbe50fff841ada513dd462ddde8fc6838b4976098a812f8fda047e7186cb62cea8175df615dde75a9959144 SHA512 6e4cdf69f07734954f770fd4a7211a8c9dc69fe25a7746bd3c1e01d3139c94cab2900399e87371548833e99687e0d2b59c5e746ab2fdfbc7d47f2c1d439137ba DIST automake-1.16.5.tar.xz 1601740 BLAKE2B 87408abc57e1d4317a2b518fb3606d0f6d156522e7333016dd84747cd8922f27ef7fcc93220b11f794ce52bf8fd9a788d0166a4d1964d7c283905f269977ac7c SHA512 3084ae543aa3fb5a05104ffb2e66cfa9a53080f2343c44809707fd648516869511500dba50dae67ff10f92a1bf3b5a92b2a0fa01cda30adb69b9da03994d9d88 -EBUILD automake-1.11.6-r3.ebuild 2642 BLAKE2B 34435da703ff118a97ea881c954f977d1c727ad4c71678710fb240ee3458edf4e067f428f3f797740fe71c9105a27887723c6b8647a69365fa8eb962ab697cad SHA512 32b5ff2529c6eb0fa504e38ef88a2024640fbcfad82bee266eb99360a106816df653b8db541d44759771c91af9703dd8cb608d6cd9bfdebac524740c5618aad9 EBUILD automake-1.11.6-r4.ebuild 2194 BLAKE2B eb4087988daa9cb5820fca226b1921c4531db3f178345759cf30bc1b6e2f09d92c89b241c96a06b2601a1abe8e3047672170d5fc7897d7a59046ddbd205efdda SHA512 734c03975ea3ef88c43e97016a42032595445b9b2c0f7b221650a55f60f21d05309709cbbe9040625e922695f8cd3cea478c9d44544f8f44ef7710b3511ef5b2 EBUILD automake-1.16.5-r1.ebuild 3086 BLAKE2B df42f21de304c5a786265e6b8a7833faa0b600fcacabf23886a1aca6c9b6ae8af620c1bb865b0ea633364bad7e28494e8c82d21d23f325892450fe2fbe71c39b SHA512 0285faa8b41dd0cf97bb8a6a67ebbe4e5052e3268cafbfd62ebf8e5e520c271d2ef1f0dad3d4f3237001bcea41b6ae4844243ee22aa50bc46221535003bf3cd3 EBUILD automake-1.16.5.ebuild 3531 BLAKE2B 4c1f6fe7f34b12f26169754c0be0e871d6463611b34c12a1b3d2c795289922e631979d4a963a78680a09a06ae253fda98564e5dc779adab19b07e73466c62eaf SHA512 f95c987772420e240dd48dadcddd2e008f4d626bc37c8e29a81a57cba47516e6d2dea149a360b803c8236dee287503e39c40f0d6b6ae472a64d16fb05b786211 diff --git a/sys-devel/automake/automake-1.11.6-r3.ebuild b/sys-devel/automake/automake-1.11.6-r3.ebuild deleted file mode 100644 index 40500353a26f..000000000000 --- a/sys-devel/automake/automake-1.11.6-r3.ebuild +++ /dev/null @@ -1,105 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="Used to generate Makefile.in from Makefile.am" -HOMEPAGE="https://www.gnu.org/software/automake/" -SRC_URI="mirror://gnu/${PN}/${P}.tar.xz" - -LICENSE="GPL-2" -# Use Gentoo versioning for slotting. -SLOT="${PV:0:4}" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos" -IUSE="test" -RESTRICT="test !test? ( test )" - -RDEPEND=" - >=dev-lang/perl-5.6 - >=sys-devel/automake-wrapper-10 - >=sys-devel/autoconf-2.69:* - sys-devel/gnuconfig -" -DEPEND=" - ${RDEPEND} - sys-apps/help2man -" -BDEPEND=" - app-arch/gzip - test? ( dev-util/dejagnu ) -" - -PATCHES=( - "${FILESDIR}"/${PN}-1.10-perl-5.16.patch #424453 - "${FILESDIR}"/${PN}-1.11-install-sh-avoid-low-risk-race-in-tmp.patch - "${FILESDIR}"/${PN}-1.13-perl-escape-curly-bracket-r1.patch -) - -src_prepare() { - default - export WANT_AUTOCONF=2.5 - export HELP2MAN=true - sed -i -e "/APIVERSION=/s:=.*:=${SLOT}:" configure || die - export TZ="UTC" #589138 -} - -src_compile() { - default - - local x - for x in aclocal automake; do - help2man "perl -Ilib ${x}" > doc/${x}-${SLOT}.1 - done -} - -# slot the info pages. do this w/out munging the source so we don't have -# to depend on texinfo to regen things. #464146 (among others) -slot_info_pages() { - pushd "${ED}"/usr/share/info >/dev/null || die - rm -f dir || die - - # Rewrite all the references to other pages. - # before: * aclocal-invocation: (automake)aclocal Invocation. Generating aclocal.m4. - # after: * aclocal-invocation v1.13: (automake-1.13)aclocal Invocation. Generating aclocal.m4. - local p pages=( *.info ) args=() - for p in "${pages[@]/%.info}" ; do - args+=( - -e "/START-INFO-DIR-ENTRY/,/END-INFO-DIR-ENTRY/s|: (${p})| v${SLOT}&|" - -e "s:(${p}):(${p}-${SLOT}):g" - ) - done - sed -i "${args[@]}" * || die - - # Rewrite all the file references, and rename them in the process. - local f d - for f in * ; do - d=${f/.info/-${SLOT}.info} - mv "${f}" "${d}" || die - sed -i -e "s:${f}:${d}:g" * || die - done - - popd >/dev/null || die -} - -src_install() { - default - slot_info_pages - - rm \ - "${ED}"/usr/bin/{aclocal,automake} \ - "${ED}"/usr/share/man/man1/{aclocal,automake}.1 || die - - # remove all config.guess and config.sub files replacing them - # w/a symlink to a specific gnuconfig version - local x - for x in guess sub ; do - dosym ../gnuconfig/config.${x} \ - /usr/share/${PN}-${SLOT}/config.${x} - done - - # Avoid QA message about pre-compressed file in docs - local tarfile="${ED}/usr/share/doc/${PF}/amhello-1.0.tar.gz" - if [[ -f "${tarfile}" ]] ; then - gunzip "${tarfile}" || die - fi -} diff --git a/sys-devel/clang-common/Manifest b/sys-devel/clang-common/Manifest index 231134e48e24..8b421d7d86db 100644 --- a/sys-devel/clang-common/Manifest +++ b/sys-devel/clang-common/Manifest @@ -9,15 +9,17 @@ DIST llvm-project-17.0.1.src.tar.xz.sig 438 BLAKE2B 3182e3c3a48635fdec39b945ee3b DIST llvm-project-17.0.2.src.tar.xz 127833708 BLAKE2B fa9e2e48ce1117063f5cef0aeef85ce84b99bd8fae23022572a6f016eff2ffbf8aab6250b0bdb6e0bbea1c4daf10cecceb18e80496260b5aa81086075d503e12 SHA512 4586224c3f547e8065fa4f0ca3629a1dfed868dfc372ab192d8b9384f0f74dc8cb27dcb6269dc4230202e6a524aae852d98b40fa02ed0393086a162387ea7659 DIST llvm-project-17.0.2.src.tar.xz.sig 438 BLAKE2B 3ba5d7a09e9de3f38a6f7b5b771b08b1c4e96ea7eda948cfa679598d240fa5211fd37220fbe09e37682212b17fb71b8b5539475edb8ff46d9767054983f670cb SHA512 234276813e3f4b5ee9b1dc640a613fd2e60f1d659f4e089733278d08dd0e208ad37d4d64c9e1edd420b6b87e112458ecec5f76ed9a243c3023b0adbab19ab909 DIST llvm-project-39fec5457c0925bd39f67f63fe17391584e08258.tar.gz 198361956 BLAKE2B 001b9d9b7997762dcce4f0b1deb94d41c3d840c178ba1e92208782e7e21fdc0041cde359051b2b1b1fc75526ff6504d3b9375ff873831350de359530c944a961 SHA512 b560e71c9855aff9fb5385f9fb30f63fbef074fd695e7cb31847192837a161bfe4808ceb09c514a676ae817616f15fb5a57d325aa9744eaac46b8f4b20b77a13 +DIST llvm-project-5d35273a32d239b7407338e13ed71b59174d6536.tar.gz 198787569 BLAKE2B 7f4f1eb490028e18826a6ebade649a682e433252ceab1f3dcd9e50c34f24e7ef108c3325ec209a4d4fa1ded8e09ebda4980cb9d8ddce8a0d517923d6c38b8f4a SHA512 4d263561fb12cc07a5e8f7ed2f8f22a3645aa959cf963a6a735a9bb93cfc2a51bf7e4d36b54e8425725029cfcfd868dfcc53af95d26d84be72be124d8c564271 DIST llvm-project-f5cb9cb59d7c9c6ac3d5c41c677f68c9b75d34a3.tar.gz 198113948 BLAKE2B 1688920eb790421f4143e92bd7bd26794a2497e7b445dde6d55b59c9df4b1aebb848833c7cb1b7c273c5e002763f2531a341313500ce207242f992dfe343b988 SHA512 9817e8b7adf7c69d673124e8334c3e511dfd1cc386832c52b2fb0f2517475d29cd98513ad87188a962f9697dfac39ea03f5b2db6c549c307cf3d27b1370ffdf3 EBUILD clang-common-14.0.6.ebuild 541 BLAKE2B 87b158e874cf600e23591a8095e0edb4d30d4482600ef8fe38984e9ba9559e6e2226107cd482f355d950392a6a452e1a8ae79d297d5afc3951a7f1c8f6227b5f SHA512 1bd0481468c278f131ec9f87243927b60a59752f4229450559bf8016e9599155a52593810fcdc1cf0aecd4aa1529e8df300d95123a53de18eb326152caafbbef EBUILD clang-common-15.0.7-r5.ebuild 5090 BLAKE2B 39974630209630607d10903585223df68cd809fb390fc9eb2a80c4235ce70ae21120083f8eaf749c769a93f738c4e971e31e978dd637a0b87d07260281db4b83 SHA512 6cb37a7eb373d300d165e851e3643fd35e11d78a6a88617b4a8c0063b83558d10d307c32861e9ba2d0ac902c1cd2069ece6bd1446e309a6753f13adf8cd8fa2c EBUILD clang-common-15.0.7-r7.ebuild 5462 BLAKE2B 098697c65115e672a1e878167997d820c93cad6a71c5a1dc17c731a031d37f20e50ef41e2f1d3238bc91065ba23bab5db4ab48e8274be9db3cb086ec6cdf7868 SHA512 7500bf0c4fde82b90aac68d09b95a49c241fae8b0d2340f7780e9baed1c85d855e45c4296a7daaa0b831a07f442e0be4faf6510a335fa5c979b3061e28fdb99d EBUILD clang-common-16.0.6-r2.ebuild 5523 BLAKE2B d1679b6e4b3f8430b9840c0e43e16d7deaf26990822c4754e906ece5451f142a201d70d8f9207ec461c9be4c28960811bb4c4f3f253c23d2c9abe5e3e66278e3 SHA512 8b9f63bbd13006f1c2e207ba889c3e4a03e8edd63b7c51d4bfa78bb10ccbb6f64636a0ccf2fde91abc43fed16b5c5993375a8bc6226315c80fb9fd3f2d0ebf14 EBUILD clang-common-17.0.1.ebuild 7403 BLAKE2B 35f5e2902195de83791905633e996ae12bbe2b4611ddd300b4674e369cdeb823fbcf9258d765685fc9820999ba720b5c045b05c8f60c478873c5e4bada8ead29 SHA512 ae7f947ac7f8042ce120443c7ffbda45dabee3d089ba534243d3dd333e4f2c22fb720a8f12ff1cee5815fbcf4734ab68b50b82fa38e3edc5c0f8f080d9d4c87b -EBUILD clang-common-17.0.2.9999.ebuild 7312 BLAKE2B f4b71b9e945ab3077cc6a878db875b42fe5af5eea1a60e440d32084ec50de0d86bcb68f4abda1316cf662a077e2f21330a88a7bc82e629c68062c7ebf6fa3ef6 SHA512 3072535b554289d422363d67c91416b54d007c0ff6f67b7311c558d14ab9201f02b71ad629c872db6fe44b648b44736c412bb6c63f495d4d4ab682f71ca919ea EBUILD clang-common-17.0.2.ebuild 7403 BLAKE2B 35f5e2902195de83791905633e996ae12bbe2b4611ddd300b4674e369cdeb823fbcf9258d765685fc9820999ba720b5c045b05c8f60c478873c5e4bada8ead29 SHA512 ae7f947ac7f8042ce120443c7ffbda45dabee3d089ba534243d3dd333e4f2c22fb720a8f12ff1cee5815fbcf4734ab68b50b82fa38e3edc5c0f8f080d9d4c87b +EBUILD clang-common-17.0.3.9999.ebuild 7312 BLAKE2B f4b71b9e945ab3077cc6a878db875b42fe5af5eea1a60e440d32084ec50de0d86bcb68f4abda1316cf662a077e2f21330a88a7bc82e629c68062c7ebf6fa3ef6 SHA512 3072535b554289d422363d67c91416b54d007c0ff6f67b7311c558d14ab9201f02b71ad629c872db6fe44b648b44736c412bb6c63f495d4d4ab682f71ca919ea EBUILD clang-common-18.0.0.9999.ebuild 7315 BLAKE2B 00a7319ea073ee22b56e5299c97c083444fffaa8739fa420c79368fd5c6217c3333b616a7c347276797baef3a586069c879f08061cd01c2b73e222b779d74928 SHA512 6948e83aab799aec9835d11cbef96809cc0d4e9205a8b49770dab92ca0f9430989130e553ef56263dd5362e9419e7f2c1945987f538ebe212112b504fe04ff35 EBUILD clang-common-18.0.0_pre20230925.ebuild 7315 BLAKE2B 00a7319ea073ee22b56e5299c97c083444fffaa8739fa420c79368fd5c6217c3333b616a7c347276797baef3a586069c879f08061cd01c2b73e222b779d74928 SHA512 6948e83aab799aec9835d11cbef96809cc0d4e9205a8b49770dab92ca0f9430989130e553ef56263dd5362e9419e7f2c1945987f538ebe212112b504fe04ff35 EBUILD clang-common-18.0.0_pre20231002.ebuild 7315 BLAKE2B 00a7319ea073ee22b56e5299c97c083444fffaa8739fa420c79368fd5c6217c3333b616a7c347276797baef3a586069c879f08061cd01c2b73e222b779d74928 SHA512 6948e83aab799aec9835d11cbef96809cc0d4e9205a8b49770dab92ca0f9430989130e553ef56263dd5362e9419e7f2c1945987f538ebe212112b504fe04ff35 +EBUILD clang-common-18.0.0_pre20231013.ebuild 7315 BLAKE2B 00a7319ea073ee22b56e5299c97c083444fffaa8739fa420c79368fd5c6217c3333b616a7c347276797baef3a586069c879f08061cd01c2b73e222b779d74928 SHA512 6948e83aab799aec9835d11cbef96809cc0d4e9205a8b49770dab92ca0f9430989130e553ef56263dd5362e9419e7f2c1945987f538ebe212112b504fe04ff35 MISC metadata.xml 735 BLAKE2B 12ea133df3d7eb9367a65e572ef91893e654d5b77caa27c66e4b5b41ba90ebc5e619eb78dfff2a67183d2c1cbfcf35fa903b2bb75604ce153d5cedfce5346e3c SHA512 8ed6b12d4f2aa1985897a8d81ce898dbc0d14ac222f3d0f259cbe80fbb8b2349dff7677627daeaf39a422f290200da4fac6348abc81c9e35da0ca73a11cfdd83 diff --git a/sys-devel/clang-common/clang-common-17.0.2.9999.ebuild b/sys-devel/clang-common/clang-common-17.0.3.9999.ebuild index e3a7af989d05..e3a7af989d05 100644 --- a/sys-devel/clang-common/clang-common-17.0.2.9999.ebuild +++ b/sys-devel/clang-common/clang-common-17.0.3.9999.ebuild diff --git a/sys-devel/clang-common/clang-common-18.0.0_pre20231013.ebuild b/sys-devel/clang-common/clang-common-18.0.0_pre20231013.ebuild new file mode 100644 index 000000000000..baa1dffade6a --- /dev/null +++ b/sys-devel/clang-common/clang-common-18.0.0_pre20231013.ebuild @@ -0,0 +1,250 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit bash-completion-r1 llvm.org multilib + +DESCRIPTION="Common files shared between multiple slots of clang" +HOMEPAGE="https://llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" +SLOT="0" +KEYWORDS="" +IUSE=" + default-compiler-rt default-libcxx default-lld llvm-libunwind + hardened stricter +" + +PDEPEND=" + sys-devel/clang:* + default-compiler-rt? ( + sys-devel/clang-runtime[compiler-rt] + llvm-libunwind? ( sys-libs/llvm-libunwind[static-libs] ) + !llvm-libunwind? ( sys-libs/libunwind[static-libs] ) + ) + !default-compiler-rt? ( sys-devel/gcc ) + default-libcxx? ( >=sys-libs/libcxx-${PV}[static-libs] ) + !default-libcxx? ( sys-devel/gcc ) + default-lld? ( sys-devel/lld ) + !default-lld? ( sys-devel/binutils ) +" +IDEPEND=" + !default-compiler-rt? ( sys-devel/gcc-config ) + !default-libcxx? ( sys-devel/gcc-config ) +" + +LLVM_COMPONENTS=( clang/utils ) +llvm.org_set_globals + +pkg_pretend() { + [[ ${CLANG_IGNORE_DEFAULT_RUNTIMES} ]] && return + + local flag missing_flags=() + for flag in default-{compiler-rt,libcxx,lld}; do + if ! use "${flag}" && has_version "sys-devel/clang[${flag}]"; then + missing_flags+=( "${flag}" ) + fi + done + + if [[ ${missing_flags[@]} ]]; then + eerror "It seems that you have the following flags set on sys-devel/clang:" + eerror + eerror " ${missing_flags[*]}" + eerror + eerror "The default runtimes are now set via flags on sys-devel/clang-common." + eerror "The build is being aborted to prevent breakage. Please either set" + eerror "the respective flags on this ebuild, e.g.:" + eerror + eerror " sys-devel/clang-common ${missing_flags[*]}" + eerror + eerror "or build with CLANG_IGNORE_DEFAULT_RUNTIMES=1." + die "Mismatched defaults detected between sys-devel/clang and sys-devel/clang-common" + fi +} + +doclang_cfg() { + local triple="${1}" + + local tool + for tool in ${triple}-clang{,++}; do + newins - "${tool}.cfg" <<-EOF + # This configuration file is used by ${tool} driver. + @gentoo-common.cfg + @gentoo-common-ld.cfg + EOF + done + + newins - "${triple}-clang-cpp.cfg" <<-EOF + # This configuration file is used by the ${triple}-clang-cpp driver. + @gentoo-common.cfg + EOF + + # Install symlinks for triples with other vendor strings since some + # programs insist on mangling the triple. + local vendor + for vendor in gentoo pc unknown; do + local vendor_triple="${triple%%-*}-${vendor}-${triple#*-*-}" + for tool in clang{,++,-cpp}; do + if [[ ! -f "${ED}/etc/clang/${vendor_triple}-${tool}.cfg" ]]; then + dosym "${triple}-${tool}.cfg" "/etc/clang/${vendor_triple}-${tool}.cfg" + fi + done + done +} + +src_install() { + newbashcomp bash-autocomplete.sh clang + + insinto /etc/clang + newins - gentoo-runtimes.cfg <<-EOF + # This file is initially generated by sys-devel/clang-runtime. + # It is used to control the default runtimes using by clang. + + --rtlib=$(usex default-compiler-rt compiler-rt libgcc) + --unwindlib=$(usex default-compiler-rt libunwind libgcc) + --stdlib=$(usex default-libcxx libc++ libstdc++) + -fuse-ld=$(usex default-lld lld bfd) + EOF + + newins - gentoo-gcc-install.cfg <<-EOF + # This file is maintained by gcc-config. + # It is used to specify the selected GCC installation. + EOF + + newins - gentoo-common.cfg <<-EOF + # This file contains flags common to clang, clang++ and clang-cpp. + @gentoo-runtimes.cfg + @gentoo-gcc-install.cfg + @gentoo-hardened.cfg + # bug #870001 + -include "${EPREFIX}/usr/include/gentoo/maybe-stddefs.h" + EOF + + # clang-cpp does not like link args being passed to it when directly + # invoked, so use a separate configuration file. + newins - gentoo-common-ld.cfg <<-EOF + # This file contains flags common to clang and clang++ + @gentoo-hardened-ld.cfg + EOF + + # Baseline hardening (bug #851111) + newins - gentoo-hardened.cfg <<-EOF + # Some of these options are added unconditionally, regardless of + # USE=hardened, for parity with sys-devel/gcc. + -fstack-clash-protection + -fstack-protector-strong + -fPIE + -include "${EPREFIX}/usr/include/gentoo/fortify.h" + EOF + + newins - gentoo-hardened-ld.cfg <<-EOF + # Some of these options are added unconditionally, regardless of + # USE=hardened, for parity with sys-devel/gcc. + -Wl,-z,relro + EOF + + dodir /usr/include/gentoo + + cat >> "${ED}/usr/include/gentoo/maybe-stddefs.h" <<-EOF || die + /* __has_include is an extension, but it's fine, because this is only + for Clang anyway. */ + #if defined __has_include && __has_include (<stdc-predef.h>) && !defined(__GLIBC__) + # include <stdc-predef.h> + #endif + EOF + + local fortify_level=$(usex hardened 3 2) + # We have to do this because glibc's headers warn if F_S is set + # without optimization and that would at the very least be very noisy + # during builds and at worst trigger many -Werror builds. + cat >> "${ED}/usr/include/gentoo/fortify.h" <<- EOF || die + #ifdef __clang__ + # pragma clang system_header + #endif + #ifndef _FORTIFY_SOURCE + # if defined(__has_feature) + # define __GENTOO_HAS_FEATURE(x) __has_feature(x) + # else + # define __GENTOO_HAS_FEATURE(x) 0 + # endif + # + # if defined(__STDC_HOSTED__) && __STDC_HOSTED__ == 1 + # define __GENTOO_NOT_FREESTANDING 1 + # else + # define __GENTOO_NOT_FREESTANDING 0 + # endif + # + # if defined(__OPTIMIZE__) && __OPTIMIZE__ > 0 && __GENTOO_NOT_FREESTANDING > 0 + # if !defined(__SANITIZE_ADDRESS__) && !__GENTOO_HAS_FEATURE(address_sanitizer) && !__GENTOO_HAS_FEATURE(memory_sanitizer) + # define _FORTIFY_SOURCE ${fortify_level} + # endif + # endif + # undef __GENTOO_HAS_FEATURE + # undef __GENTOO_NOT_FREESTANDING + #endif + EOF + + if use hardened ; then + cat >> "${ED}/etc/clang/gentoo-hardened.cfg" <<-EOF || die + # Options below are conditional on USE=hardened. + -D_GLIBCXX_ASSERTIONS + + # Analogue to GLIBCXX_ASSERTIONS + # https://libcxx.llvm.org/UsingLibcxx.html#assertions-mode + # https://libcxx.llvm.org/Hardening.html#using-hardened-mode + -D_LIBCPP_ENABLE_HARDENED_MODE=1 + EOF + + cat >> "${ED}/etc/clang/gentoo-hardened-ld.cfg" <<-EOF || die + # Options below are conditional on USE=hardened. + -Wl,-z,now + EOF + fi + + if use stricter; then + newins - gentoo-stricter.cfg <<-EOF + # This file increases the strictness of older clang versions + # to match the newest upstream version. + + # clang-16 defaults + -Werror=implicit-function-declaration + -Werror=implicit-int + -Werror=incompatible-function-pointer-types + + # constructs banned by C2x + -Werror=deprecated-non-prototype + + # deprecated but large blast radius + #-Werror=strict-prototypes + EOF + + cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die + @gentoo-stricter.cfg + EOF + fi + + # We only install config files for supported ABIs because unprefixed tools + # might be used for crosscompilation where e.g. PIE may not be supported. + # See bug #912237 and bug #901247. + doclang_cfg "${CHOST}" + + # Just ${CHOST} won't do due to bug #912685. + local abi + for abi in $(get_all_abis); do + local abi_chost=$(get_abi_CHOST "${abi}") + doclang_cfg "${abi_chost}" + done +} + +pkg_preinst() { + if has_version -b sys-devel/gcc-config && has_version sys-devel/gcc + then + local gcc_path=$(gcc-config --get-lib-path 2>/dev/null) + if [[ -n ${gcc_path} ]]; then + cat >> "${ED}/etc/clang/gentoo-gcc-install.cfg" <<-EOF + --gcc-install-dir="${gcc_path%%:*}" + EOF + fi + fi +} diff --git a/sys-devel/clang-runtime/Manifest b/sys-devel/clang-runtime/Manifest index 76535052a4c0..94f985300c19 100644 --- a/sys-devel/clang-runtime/Manifest +++ b/sys-devel/clang-runtime/Manifest @@ -2,9 +2,10 @@ EBUILD clang-runtime-14.0.6.ebuild 760 BLAKE2B 0f6cfb8536569ffe2a09305e710563096 EBUILD clang-runtime-15.0.7.ebuild 759 BLAKE2B d7b481faffc4da0a6dc1b4e708322cd17cd497dc75363bdb89e7fbb1ecb2aecd9cbf91bdf816505476c7aca2ec7b6fb9ef178705e6b77361d21a7a270404a70a SHA512 8128acfc92b1601e93ffca1fd4233456f8a28fbc4cc65a1782da25df48abd3af82d0128b31f12b966ca02ab1eafcd28016c4443d9c7f1d28bc3f951cfff5e07f EBUILD clang-runtime-16.0.6.ebuild 1435 BLAKE2B dfbb6047c0541de72f3447fa61f00d96c2b7c4b96454fa82796f59bd2884ecdbb01539bf08741d3b5ed866b18f4003bca6878cac549b6ef46aa5c6a15bc56c85 SHA512 d63983cb60299866a743ff6b71279b433a10f011fc51e53f3d3d6d6b99dffc080ef0110e21b4dd6b8a54bceb47035d28bf670e6e81fd0939630b593912d77eb5 EBUILD clang-runtime-17.0.1.ebuild 1442 BLAKE2B ccd97064b84899371758ceab7640d2b9a3104e08dccbefc5523062437cec1358ab68773b96bbc8193d8cd52a2bac65e6687cb150127d953aa49ab7f8cb3dbcea SHA512 9b8639788a2bfab9fea6e717e684c4784ae6719ce8d6bb389d16d836df0b43d108be6c649b9aa17dfa60df7b3f490450d4d51e83dd80707467a844871b97535e -EBUILD clang-runtime-17.0.2.9999.ebuild 1351 BLAKE2B 2d30237a865c2abd5b7d2ae2c64167c82103d7abd4ff09b47f26348cac5aed3fe78da821b9d6f12cebdef2abb8c85f5a48834cba65e60091d787886bebaa29fb SHA512 5197003db8e6ed5292d5e07f171922600c9eed2a6c36c5b498b08a850e74376d88730a4c460c9b5456e9379460779ecc345ec824e513651b0985eb6fd6b6e8d1 EBUILD clang-runtime-17.0.2.ebuild 1442 BLAKE2B ccd97064b84899371758ceab7640d2b9a3104e08dccbefc5523062437cec1358ab68773b96bbc8193d8cd52a2bac65e6687cb150127d953aa49ab7f8cb3dbcea SHA512 9b8639788a2bfab9fea6e717e684c4784ae6719ce8d6bb389d16d836df0b43d108be6c649b9aa17dfa60df7b3f490450d4d51e83dd80707467a844871b97535e +EBUILD clang-runtime-17.0.3.9999.ebuild 1351 BLAKE2B 2d30237a865c2abd5b7d2ae2c64167c82103d7abd4ff09b47f26348cac5aed3fe78da821b9d6f12cebdef2abb8c85f5a48834cba65e60091d787886bebaa29fb SHA512 5197003db8e6ed5292d5e07f171922600c9eed2a6c36c5b498b08a850e74376d88730a4c460c9b5456e9379460779ecc345ec824e513651b0985eb6fd6b6e8d1 EBUILD clang-runtime-18.0.0.9999.ebuild 1351 BLAKE2B 2d30237a865c2abd5b7d2ae2c64167c82103d7abd4ff09b47f26348cac5aed3fe78da821b9d6f12cebdef2abb8c85f5a48834cba65e60091d787886bebaa29fb SHA512 5197003db8e6ed5292d5e07f171922600c9eed2a6c36c5b498b08a850e74376d88730a4c460c9b5456e9379460779ecc345ec824e513651b0985eb6fd6b6e8d1 EBUILD clang-runtime-18.0.0_pre20230925.ebuild 1351 BLAKE2B 2d30237a865c2abd5b7d2ae2c64167c82103d7abd4ff09b47f26348cac5aed3fe78da821b9d6f12cebdef2abb8c85f5a48834cba65e60091d787886bebaa29fb SHA512 5197003db8e6ed5292d5e07f171922600c9eed2a6c36c5b498b08a850e74376d88730a4c460c9b5456e9379460779ecc345ec824e513651b0985eb6fd6b6e8d1 EBUILD clang-runtime-18.0.0_pre20231002.ebuild 1351 BLAKE2B 2d30237a865c2abd5b7d2ae2c64167c82103d7abd4ff09b47f26348cac5aed3fe78da821b9d6f12cebdef2abb8c85f5a48834cba65e60091d787886bebaa29fb SHA512 5197003db8e6ed5292d5e07f171922600c9eed2a6c36c5b498b08a850e74376d88730a4c460c9b5456e9379460779ecc345ec824e513651b0985eb6fd6b6e8d1 +EBUILD clang-runtime-18.0.0_pre20231013.ebuild 1351 BLAKE2B 2d30237a865c2abd5b7d2ae2c64167c82103d7abd4ff09b47f26348cac5aed3fe78da821b9d6f12cebdef2abb8c85f5a48834cba65e60091d787886bebaa29fb SHA512 5197003db8e6ed5292d5e07f171922600c9eed2a6c36c5b498b08a850e74376d88730a4c460c9b5456e9379460779ecc345ec824e513651b0985eb6fd6b6e8d1 MISC metadata.xml 661 BLAKE2B 24688c511713ea102b83c71d226d519981b3aee0e05ef7a56d6a80be829efd843194e45cb4fd801f0bb976b6f1976386d6a2b05d2bc907fe2aa42b22b85b7d1f SHA512 2b5ab8783c90795f2e7d1673d876048ed9745f4911fb7a860df56deac13a6dfeba4581a84562eae54eff757c45042ca3fab75c7800313ae61df9ce69780a9294 diff --git a/sys-devel/clang-runtime/clang-runtime-17.0.2.9999.ebuild b/sys-devel/clang-runtime/clang-runtime-17.0.3.9999.ebuild index c69faa0fbdd7..c69faa0fbdd7 100644 --- a/sys-devel/clang-runtime/clang-runtime-17.0.2.9999.ebuild +++ b/sys-devel/clang-runtime/clang-runtime-17.0.3.9999.ebuild diff --git a/sys-devel/clang-runtime/clang-runtime-18.0.0_pre20231013.ebuild b/sys-devel/clang-runtime/clang-runtime-18.0.0_pre20231013.ebuild new file mode 100644 index 000000000000..c69faa0fbdd7 --- /dev/null +++ b/sys-devel/clang-runtime/clang-runtime-18.0.0_pre20231013.ebuild @@ -0,0 +1,40 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit multilib-build toolchain-funcs + +DESCRIPTION="Meta-ebuild for clang runtime libraries" +HOMEPAGE="https://clang.llvm.org/" + +LICENSE="metapackage" +SLOT="${PV%%.*}" +KEYWORDS="" +IUSE="+compiler-rt libcxx openmp +sanitize" +REQUIRED_USE="sanitize? ( compiler-rt )" + +RDEPEND=" + compiler-rt? ( + ~sys-libs/compiler-rt-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?] + sanitize? ( + ~sys-libs/compiler-rt-sanitizers-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?] + ) + ) + libcxx? ( >=sys-libs/libcxx-${PV}[${MULTILIB_USEDEP}] ) + openmp? ( >=sys-libs/libomp-${PV}[${MULTILIB_USEDEP}] ) +" + +pkg_pretend() { + if tc-is-clang; then + ewarn "You seem to be using clang as a system compiler. As of clang-16," + ewarn "upstream has turned a few warnings that commonly occur during" + ewarn "configure script runs into errors by default. This causes some" + ewarn "configure tests to start failing, sometimes resulting in silent" + ewarn "breakage, missing functionality or runtime misbehavior. It is" + ewarn "not yet clear whether the change will remain or be reverted." + ewarn + ewarn "For more information, please see:" + ewarn "https://discourse.llvm.org/t/configure-script-breakage-with-the-new-werror-implicit-function-declaration/65213" + fi +} diff --git a/sys-devel/clang/Manifest b/sys-devel/clang/Manifest index d93a76ac0496..a7b5d7e37cd0 100644 --- a/sys-devel/clang/Manifest +++ b/sys-devel/clang/Manifest @@ -18,6 +18,7 @@ DIST llvm-project-17.0.1.src.tar.xz.sig 438 BLAKE2B 3182e3c3a48635fdec39b945ee3b DIST llvm-project-17.0.2.src.tar.xz 127833708 BLAKE2B fa9e2e48ce1117063f5cef0aeef85ce84b99bd8fae23022572a6f016eff2ffbf8aab6250b0bdb6e0bbea1c4daf10cecceb18e80496260b5aa81086075d503e12 SHA512 4586224c3f547e8065fa4f0ca3629a1dfed868dfc372ab192d8b9384f0f74dc8cb27dcb6269dc4230202e6a524aae852d98b40fa02ed0393086a162387ea7659 DIST llvm-project-17.0.2.src.tar.xz.sig 438 BLAKE2B 3ba5d7a09e9de3f38a6f7b5b771b08b1c4e96ea7eda948cfa679598d240fa5211fd37220fbe09e37682212b17fb71b8b5539475edb8ff46d9767054983f670cb SHA512 234276813e3f4b5ee9b1dc640a613fd2e60f1d659f4e089733278d08dd0e208ad37d4d64c9e1edd420b6b87e112458ecec5f76ed9a243c3023b0adbab19ab909 DIST llvm-project-39fec5457c0925bd39f67f63fe17391584e08258.tar.gz 198361956 BLAKE2B 001b9d9b7997762dcce4f0b1deb94d41c3d840c178ba1e92208782e7e21fdc0041cde359051b2b1b1fc75526ff6504d3b9375ff873831350de359530c944a961 SHA512 b560e71c9855aff9fb5385f9fb30f63fbef074fd695e7cb31847192837a161bfe4808ceb09c514a676ae817616f15fb5a57d325aa9744eaac46b8f4b20b77a13 +DIST llvm-project-5d35273a32d239b7407338e13ed71b59174d6536.tar.gz 198787569 BLAKE2B 7f4f1eb490028e18826a6ebade649a682e433252ceab1f3dcd9e50c34f24e7ef108c3325ec209a4d4fa1ded8e09ebda4980cb9d8ddce8a0d517923d6c38b8f4a SHA512 4d263561fb12cc07a5e8f7ed2f8f22a3645aa959cf963a6a735a9bb93cfc2a51bf7e4d36b54e8425725029cfcfd868dfcc53af95d26d84be72be124d8c564271 DIST llvm-project-f5cb9cb59d7c9c6ac3d5c41c677f68c9b75d34a3.tar.gz 198113948 BLAKE2B 1688920eb790421f4143e92bd7bd26794a2497e7b445dde6d55b59c9df4b1aebb848833c7cb1b7c273c5e002763f2531a341313500ce207242f992dfe343b988 SHA512 9817e8b7adf7c69d673124e8334c3e511dfd1cc386832c52b2fb0f2517475d29cd98513ad87188a962f9697dfac39ea03f5b2db6c549c307cf3d27b1370ffdf3 EBUILD clang-14.0.6-r1.ebuild 12014 BLAKE2B 0f9eed7779a5b9aa8f92002f6f4d8e22e7baf3d3f6d1930e4716abf3aa00d866f68a682dc2a404655f53800e26c8b388da552184da6943287b2d91c5c1c2672b SHA512 c5e46f1044604f4e41cdb6c42d2079096c0bcdd396d99f8e95a6b5b66918e3519e4226741202f716fa5f53295188ec2bfcec66ae32480a8e10b4ab18bdb880ab EBUILD clang-14.0.6-r4.ebuild 11941 BLAKE2B 7465741c3d32f432aabc000ef1d1e78c4538bdcb11983bc5e665b95b349345cf96ceab8d797763532ccb10e8d9311f3699043e5d5aeca08974caca1bd378a275 SHA512 16011488cb74e0fd477cd6950a4742abb44444537de5c07ccb0dea1d19ae8d482b3f75b5e38777f382284994e8f615c8d71bbb6d768585390bdb4bbd365984cd @@ -25,9 +26,10 @@ EBUILD clang-15.0.7-r1.ebuild 12617 BLAKE2B 780db8dc3c92efab35280d32f6b7d4ffcea9 EBUILD clang-15.0.7-r3.ebuild 12548 BLAKE2B ee294ceb058c489007ebb5b9f6bfdbd8fe0f5f77d32c1f71f97aa29ae2bb8234df687a931bb88865f8c5684121623f288620e538e2778dfb8f4fb3f900d14c46 SHA512 0e31baf473cc77b213e0fd7b8e1817439d9f8c94130f388fbb49900306378491b4715a3eab533ffa94e88c91b7e8a9a9303371a73e564df8a5fb2b4319765c94 EBUILD clang-16.0.6.ebuild 12462 BLAKE2B 532fbc03f98a4135371238de3f3d933ac321d4ecccb1e1ce2511563a6529a7bd55444dcdfa4b46140b4b592e1174d534be82e9b29fb1161522253e25c86f75fe SHA512 6e2dc62b7281caf5aa2378eb19f8c24023b62814be4f82e678ee8b98f92cc032de64d5feef0f29c7512aadb34a16b8f50e05a8eadc3bf6663f71504045ad3822 EBUILD clang-17.0.1.ebuild 12145 BLAKE2B 6470f6623bba6514bc91dd71435414f8e337ac83242c3542fee07848a8e4f95c8c5b16922d2a617855068d970687f84c043da7e7c92164da17833717bf08f3fe SHA512 5853c832b8588ab2a0013dfb4060896eaad5a6d21d7516124d18f6b47ce635a998d3306f0b3ff5f6dcec2aaf27699a142dff6ecb6dfe04790ea10a054b84ac36 -EBUILD clang-17.0.2.9999.ebuild 12066 BLAKE2B f8a467f1daa8688c5ff80977800fe0368b39d0c6061d3c790597d4ffb791e96f40013030ce634ab0a38972cca8f79562121ab16f8ecc31ac8a8ad6a283efe114 SHA512 df09fadd53294456b3ecd05c226647195731d3fc787362193c9f5c929aaaa40bc8c1dc02cb8d63eef356f54df271c3fa0a73c4910c9c43afd06f2bd7ff86d9c8 EBUILD clang-17.0.2.ebuild 12145 BLAKE2B 6470f6623bba6514bc91dd71435414f8e337ac83242c3542fee07848a8e4f95c8c5b16922d2a617855068d970687f84c043da7e7c92164da17833717bf08f3fe SHA512 5853c832b8588ab2a0013dfb4060896eaad5a6d21d7516124d18f6b47ce635a998d3306f0b3ff5f6dcec2aaf27699a142dff6ecb6dfe04790ea10a054b84ac36 +EBUILD clang-17.0.3.9999.ebuild 12066 BLAKE2B f8a467f1daa8688c5ff80977800fe0368b39d0c6061d3c790597d4ffb791e96f40013030ce634ab0a38972cca8f79562121ab16f8ecc31ac8a8ad6a283efe114 SHA512 df09fadd53294456b3ecd05c226647195731d3fc787362193c9f5c929aaaa40bc8c1dc02cb8d63eef356f54df271c3fa0a73c4910c9c43afd06f2bd7ff86d9c8 EBUILD clang-18.0.0.9999.ebuild 12065 BLAKE2B 055b0b1a98d944b8faceaa0d7a248e80e82c94f33f41e48f05036272618eee2955d069ce830dbdfba66752ee353229c6591b29b49988789e477a5f399224c9ee SHA512 67a2a39da3ba0d3dbaa1b7496344e91aaccb73675dc142708102dc5c1658a3d48ad58f4d14d38202b5f7cd72ad5fcd2b76675b169b58bd1d38453b859ca5e3ae EBUILD clang-18.0.0_pre20230925.ebuild 12066 BLAKE2B f8a467f1daa8688c5ff80977800fe0368b39d0c6061d3c790597d4ffb791e96f40013030ce634ab0a38972cca8f79562121ab16f8ecc31ac8a8ad6a283efe114 SHA512 df09fadd53294456b3ecd05c226647195731d3fc787362193c9f5c929aaaa40bc8c1dc02cb8d63eef356f54df271c3fa0a73c4910c9c43afd06f2bd7ff86d9c8 EBUILD clang-18.0.0_pre20231002.ebuild 12065 BLAKE2B 055b0b1a98d944b8faceaa0d7a248e80e82c94f33f41e48f05036272618eee2955d069ce830dbdfba66752ee353229c6591b29b49988789e477a5f399224c9ee SHA512 67a2a39da3ba0d3dbaa1b7496344e91aaccb73675dc142708102dc5c1658a3d48ad58f4d14d38202b5f7cd72ad5fcd2b76675b169b58bd1d38453b859ca5e3ae +EBUILD clang-18.0.0_pre20231013.ebuild 12065 BLAKE2B 055b0b1a98d944b8faceaa0d7a248e80e82c94f33f41e48f05036272618eee2955d069ce830dbdfba66752ee353229c6591b29b49988789e477a5f399224c9ee SHA512 67a2a39da3ba0d3dbaa1b7496344e91aaccb73675dc142708102dc5c1658a3d48ad58f4d14d38202b5f7cd72ad5fcd2b76675b169b58bd1d38453b859ca5e3ae MISC metadata.xml 1600 BLAKE2B 8e49e099132445cf695e904acad8a699f3d8c4c1e4cd6ba9d0b97180dfa5b67e9c30b00d1e4cb6cd2f61b27f022accc8d6ee889c6569fc58fbc058186ad216fc SHA512 96b7cf4988ff1fd923ec87311caed458b64888b5acaaf20cc1ad893f2a963158f7f59398f9fd4f9e65cab3df265c0d002048ff874f7a76b94f36377bf9e8f5f6 diff --git a/sys-devel/clang/clang-17.0.2.9999.ebuild b/sys-devel/clang/clang-17.0.3.9999.ebuild index aae7c602232c..aae7c602232c 100644 --- a/sys-devel/clang/clang-17.0.2.9999.ebuild +++ b/sys-devel/clang/clang-17.0.3.9999.ebuild diff --git a/sys-devel/clang/clang-18.0.0_pre20231013.ebuild b/sys-devel/clang/clang-18.0.0_pre20231013.ebuild new file mode 100644 index 000000000000..7f28af23d564 --- /dev/null +++ b/sys-devel/clang/clang-18.0.0_pre20231013.ebuild @@ -0,0 +1,474 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) + +inherit cmake llvm llvm.org multilib multilib-minimal +inherit prefix python-single-r1 toolchain-funcs + +DESCRIPTION="C language family frontend for LLVM" +HOMEPAGE="https://llvm.org/" + +# MSVCSetupApi.h: MIT +# sorttable.js: MIT + +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT" +SLOT="${LLVM_MAJOR}/${LLVM_SOABI}" +KEYWORDS="" +IUSE="+debug doc +extra ieee-long-double +pie +static-analyzer test xml" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +RESTRICT="!test? ( test )" + +DEPEND=" + ~sys-devel/llvm-${PV}:${LLVM_MAJOR}=[debug=,${MULTILIB_USEDEP}] + static-analyzer? ( dev-lang/perl:* ) + xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] ) +" + +RDEPEND=" + ${PYTHON_DEPS} + ${DEPEND} + >=sys-devel/clang-common-${PV} +" +BDEPEND=" + ${PYTHON_DEPS} + >=dev-util/cmake-3.16 + doc? ( $(python_gen_cond_dep ' + dev-python/myst-parser[${PYTHON_USEDEP}] + dev-python/sphinx[${PYTHON_USEDEP}] + ') ) + xml? ( virtual/pkgconfig ) +" +PDEPEND=" + ~sys-devel/clang-runtime-${PV} + sys-devel/clang-toolchain-symlinks:${LLVM_MAJOR} +" + +LLVM_COMPONENTS=( + clang clang-tools-extra cmake + llvm/lib/Transforms/Hello +) +LLVM_MANPAGES=1 +LLVM_TEST_COMPONENTS=( + llvm/utils +) +LLVM_USE_TARGETS=llvm +llvm.org_set_globals + +# Multilib notes: +# 1. ABI_* flags control ABIs libclang* is built for only. +# 2. clang is always capable of compiling code for all ABIs for enabled +# target. However, you will need appropriate crt* files (installed +# e.g. by sys-devel/gcc and sys-libs/glibc). +# 3. ${CHOST}-clang wrappers are always installed for all ABIs included +# in the current profile (i.e. alike supported by sys-devel/gcc). +# +# Therefore: use sys-devel/clang[${MULTILIB_USEDEP}] only if you need +# multilib clang* libraries (not runtime, not wrappers). + +pkg_setup() { + LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup + python-single-r1_pkg_setup +} + +src_prepare() { + # create extra parent dir for relative CLANG_RESOURCE_DIR access + mkdir -p x/y || die + BUILD_DIR=${WORKDIR}/x/y/clang + + llvm.org_src_prepare + + # add Gentoo Portage Prefix for Darwin (see prefix-dirs.patch) + eprefixify \ + lib/Lex/InitHeaderSearch.cpp \ + lib/Driver/ToolChains/Darwin.cpp || die + + if ! use prefix-guest && [[ -n ${EPREFIX} ]]; then + sed -i "/LibDir.*Loader/s@return \"\/\"@return \"${EPREFIX}/\"@" lib/Driver/ToolChains/Linux.cpp || die + fi +} + +check_distribution_components() { + if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then + local all_targets=() my_targets=() l + cd "${BUILD_DIR}" || die + + while read -r l; do + if [[ ${l} == install-*-stripped:* ]]; then + l=${l#install-} + l=${l%%-stripped*} + + case ${l} in + # meta-targets + clang-libraries|distribution) + continue + ;; + # tools + clang|clangd|clang-*) + ;; + # static libraries + clang*|findAllSymbols) + continue + ;; + # conditional to USE=doc + docs-clang-html|docs-clang-tools-html) + use doc || continue + ;; + esac + + all_targets+=( "${l}" ) + fi + done < <(${NINJA} -t targets all) + + while read -r l; do + my_targets+=( "${l}" ) + done < <(get_distribution_components $"\n") + + local add=() remove=() + for l in "${all_targets[@]}"; do + if ! has "${l}" "${my_targets[@]}"; then + add+=( "${l}" ) + fi + done + for l in "${my_targets[@]}"; do + if ! has "${l}" "${all_targets[@]}"; then + remove+=( "${l}" ) + fi + done + + if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then + eqawarn "get_distribution_components() is outdated!" + eqawarn " Add: ${add[*]}" + eqawarn "Remove: ${remove[*]}" + fi + cd - >/dev/null || die + fi +} + +get_distribution_components() { + local sep=${1-;} + + local out=( + # common stuff + clang-cmake-exports + clang-headers + clang-resource-headers + libclang-headers + + aarch64-resource-headers + arm-common-resource-headers + arm-resource-headers + core-resource-headers + cuda-resource-headers + hexagon-resource-headers + hip-resource-headers + hlsl-resource-headers + mips-resource-headers + opencl-resource-headers + openmp-resource-headers + ppc-htm-resource-headers + ppc-resource-headers + riscv-resource-headers + systemz-resource-headers + utility-resource-headers + ve-resource-headers + webassembly-resource-headers + windows-resource-headers + x86-resource-headers + + # libs + clang-cpp + libclang + ) + + if multilib_is_native_abi; then + out+=( + # common stuff + bash-autocomplete + libclang-python-bindings + + # tools + amdgpu-arch + c-index-test + clang + clang-format + clang-linker-wrapper + clang-offload-bundler + clang-offload-packager + clang-refactor + clang-repl + clang-rename + clang-scan-deps + diagtool + hmaptool + nvptx-arch + + # needed for cross-compiling Clang + clang-tblgen + ) + + if use extra; then + out+=( + # extra tools + clang-apply-replacements + clang-change-namespace + clang-doc + clang-include-cleaner + clang-include-fixer + clang-move + clang-pseudo + clang-query + clang-reorder-fields + clang-tidy + clang-tidy-headers + clangd + find-all-symbols + modularize + pp-trace + ) + fi + + if llvm_are_manpages_built; then + out+=( docs-clang-man ) + use extra && out+=( docs-clang-tools-man ) + fi + + if use doc; then + out+=( docs-clang-html ) + use extra && out+=( docs-clang-tools-html ) + fi + + use static-analyzer && out+=( + clang-check + clang-extdef-mapping + scan-build + scan-build-py + scan-view + ) + fi + + printf "%s${sep}" "${out[@]}" +} + +multilib_src_configure() { + local mycmakeargs=( + -DDEFAULT_SYSROOT=$(usex prefix-guest "" "${EPREFIX}") + -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}" + -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man" + -DCLANG_CONFIG_FILE_SYSTEM_DIR="${EPREFIX}/etc/clang" + # relative to bindir + -DCLANG_RESOURCE_DIR="../../../../lib/clang/${LLVM_MAJOR}" + + -DBUILD_SHARED_LIBS=OFF + -DCLANG_LINK_CLANG_DYLIB=ON + -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components) + -DCLANG_INCLUDE_TESTS=$(usex test) + + -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}" + + # these are not propagated reliably, so redefine them + -DLLVM_ENABLE_EH=ON + -DLLVM_ENABLE_RTTI=ON + + # libgomp support fails to find headers without explicit -I + # furthermore, it provides only syntax checking + -DCLANG_DEFAULT_OPENMP_RUNTIME=libomp + + # disable using CUDA to autodetect GPU, just build for all + -DCMAKE_DISABLE_FIND_PACKAGE_CUDAToolkit=ON + # disable linking to HSA to avoid automagic dep, + # load it dynamically instead + -DCMAKE_DISABLE_FIND_PACKAGE_hsa-runtime64=ON + + -DCLANG_DEFAULT_PIE_ON_LINUX=$(usex pie) + + -DCLANG_ENABLE_LIBXML2=$(usex xml) + -DCLANG_ENABLE_ARCMT=$(usex static-analyzer) + -DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer) + # TODO: CLANG_ENABLE_HLSL? + + -DPython3_EXECUTABLE="${PYTHON}" + ) + + if ! use elibc_musl; then + mycmakeargs+=( + -DPPC_LINUX_DEFAULT_IEEELONGDOUBLE=$(usex ieee-long-double) + ) + fi + + use test && mycmakeargs+=( + -DLLVM_BUILD_TESTS=ON + -DLLVM_LIT_ARGS="$(get_lit_flags)" + ) + + if multilib_is_native_abi; then + local build_docs=OFF + if llvm_are_manpages_built; then + build_docs=ON + mycmakeargs+=( + -DLLVM_BUILD_DOCS=ON + -DLLVM_ENABLE_SPHINX=ON + -DCLANG_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html" + -DSPHINX_WARNINGS_AS_ERRORS=OFF + ) + if use extra; then + mycmakeargs+=( + -DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra" + ) + fi + fi + mycmakeargs+=( + -DCLANG_INCLUDE_DOCS=${build_docs} + ) + fi + if multilib_native_use extra; then + mycmakeargs+=( + -DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR="${WORKDIR}"/clang-tools-extra + -DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=${build_docs} + ) + else + mycmakeargs+=( + -DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD=OFF + ) + fi + + if [[ -n ${EPREFIX} ]]; then + mycmakeargs+=( + -DGCC_INSTALL_PREFIX="${EPREFIX}/usr" + ) + fi + + if tc-is-cross-compiler; then + has_version -b sys-devel/clang:${LLVM_MAJOR} || + die "sys-devel/clang:${LLVM_MAJOR} is required on the build host." + local tools_bin=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin + mycmakeargs+=( + -DLLVM_TOOLS_BINARY_DIR="${tools_bin}" + -DCLANG_TABLEGEN="${tools_bin}"/clang-tblgen + ) + fi + + # LLVM can have very high memory consumption while linking, + # exhausting the limit on 32-bit linker executable + use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory" + + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + cmake_src_configure + + multilib_is_native_abi && check_distribution_components +} + +multilib_src_compile() { + cmake_build distribution +} + +multilib_src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + local test_targets=( check-clang ) + if multilib_native_use extra; then + test_targets+=( + check-clang-tools + check-clangd + ) + fi + cmake_build "${test_targets[@]}" +} + +src_install() { + MULTILIB_WRAPPED_HEADERS=( + /usr/include/clang/Config/config.h + ) + + multilib-minimal_src_install + + # Move runtime headers to /usr/lib/clang, where they belong + mv "${ED}"/usr/include/clangrt "${ED}"/usr/lib/clang || die + # move (remaining) wrapped headers back + if use extra; then + mv "${T}"/clang-tidy "${ED}"/usr/include/ || die + fi + mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include || die + + # Apply CHOST and version suffix to clang tools + local clang_tools=( clang clang++ clang-cl clang-cpp ) + local abi i + + # cmake gives us: + # - clang-X + # - clang -> clang-X + # - clang++, clang-cl, clang-cpp -> clang + # we want to have: + # - clang-X + # - clang++-X, clang-cl-X, clang-cpp-X -> clang-X + # - clang, clang++, clang-cl, clang-cpp -> clang*-X + # also in CHOST variant + for i in "${clang_tools[@]:1}"; do + rm "${ED}/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}" || die + dosym "clang-${LLVM_MAJOR}" "/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}-${LLVM_MAJOR}" + dosym "${i}-${LLVM_MAJOR}" "/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}" + done + + # now create target symlinks for all supported ABIs + for abi in $(get_all_abis); do + local abi_chost=$(get_abi_CHOST "${abi}") + for i in "${clang_tools[@]}"; do + dosym "${i}-${LLVM_MAJOR}" \ + "/usr/lib/llvm/${LLVM_MAJOR}/bin/${abi_chost}-${i}-${LLVM_MAJOR}" + dosym "${abi_chost}-${i}-${LLVM_MAJOR}" \ + "/usr/lib/llvm/${LLVM_MAJOR}/bin/${abi_chost}-${i}" + done + done +} + +multilib_src_install() { + DESTDIR=${D} cmake_build install-distribution + + # move headers to /usr/include for wrapping & ABI mismatch checks + # (also drop the version suffix from runtime headers) + rm -rf "${ED}"/usr/include || die + mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include "${ED}"/usr/include || die + mv "${ED}"/usr/lib/clang "${ED}"/usr/include/clangrt || die + if multilib_native_use extra; then + # don't wrap clang-tidy headers, the list is too long + # (they're fine for non-native ABI but enabling the targets is problematic) + mv "${ED}"/usr/include/clang-tidy "${T}/" || die + fi +} + +multilib_src_install_all() { + python_fix_shebang "${ED}" + if use static-analyzer; then + python_optimize "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/share/scan-view + fi + + docompress "/usr/lib/llvm/${LLVM_MAJOR}/share/man" + llvm_install_manpages + # match 'html' non-compression + use doc && docompress -x "/usr/share/doc/${PF}/tools-extra" + # +x for some reason; TODO: investigate + use static-analyzer && fperms a-x "/usr/lib/llvm/${LLVM_MAJOR}/share/man/man1/scan-build.1" +} + +pkg_postinst() { + if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then + eselect compiler-shadow update all + fi + + elog "You can find additional utility scripts in:" + elog " ${EROOT}/usr/lib/llvm/${LLVM_MAJOR}/share/clang" + if use extra; then + elog "Some of them are vim integration scripts (with instructions inside)." + elog "The run-clang-tidy.py script requires the following additional package:" + elog " dev-python/pyyaml" + fi +} + +pkg_postrm() { + if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then + eselect compiler-shadow clean all + fi +} diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest index d4a72258c58e..e345ddf6caea 100644 --- a/sys-devel/gcc/Manifest +++ b/sys-devel/gcc/Manifest @@ -12,6 +12,7 @@ DIST gcc-11-20230824.tar.xz 76202120 BLAKE2B 243ce16e28c66d681bb27df32866947309f DIST gcc-11-20230921.tar.xz 76227940 BLAKE2B b086b35bc7192be078d08f6c9363a9b343f8d97a1bc781870796cf564b829febeccb5f94739fb14a88357f7f66530ff3c23f298eed9341ffb6927a5ac4a40546 SHA512 20fd7e680303a8328e9c017ab21dc3cab46fe5684a08bfc48a342ec4e95cc94675db2e450483499f126b2d5943e3ef8115287a5b4da8718b966c0ffe9f79b925 DIST gcc-11-20230928.tar.xz 76217292 BLAKE2B d0c58f0e8e15a4efaa3faba9b83efdac9b96749836f776f2ef438cd0bcf74601e5d24b2c45e7edfb2cc44e5aee32c5a2b23c8efcb370e4cf902c98d930664157 SHA512 ddbc362d8b3177432886861da89e68b187deeaae7d40aa03881f8135931475ba688688fd3217d95dfb9d01d62a634808a04ab0a4c37f12332155bdabce459115 DIST gcc-11-20231005.tar.xz 76222664 BLAKE2B f5671cdb01df00bd917f59ad33ac91a4904514ed25b9879e6c10cad15a86666709dd7ff9425ba99de45b811e3a1afde977a5683b6e9c8de91da8080f37dc9cce SHA512 4f0f0543655f398ea32c08f2b18be2430652ef3537b1d46ecbb9e522a7701bea2ffe04ed6fe6a179596a5f8da02fbd5fdc4758c6b9e8e2e9d9f0805383c4fc1e +DIST gcc-11-20231012.tar.xz 76228876 BLAKE2B f48d440cefdad9eb021116b72ba41a7cb8b3af904abafb26bd49113f3bdaacbeab86f3d7a783130ea1a1f8c6556d1dc83b8176ae96973c524dc8606443e0be0a SHA512 7cae1a36a113e0184b1c10c7892a808a6ec38ecd4b1c482d589717c68474873093eebd68465694344ee1208d0e118f5d91b3a19f981da22dfa95ee86663572bb DIST gcc-11.4.0-musl-patches-2.tar.xz 4308 BLAKE2B a2335e155fc57816fed822a648e0eaefafcba9d04e1ad0fd7baeea5a694ab6f5e3c1678cb406f2a1bd17bab25cb01699d032713a1ccf337948dfda2093844607 SHA512 17b84f907cb1bd763873655e6f35fd3ed55a40b602b70a626f04f83b4cc89c6261db1661de78d4d969187a8c56e9f6305b742515a3836b962248a21df0df5d0c DIST gcc-11.4.0-patches-10.tar.xz 13852 BLAKE2B 54937d13e30e2a5303c7e197fae09eeed35ca0b9783625e02578fcee829b5503fb22d664366322b304df7d01ae807d00af7c93db3e3ceebe4851e15647724f87 SHA512 31b4d7a2e7cc589e92e12c3583d13d41c523cafbd309bc0532df9b68ea2473c89daef4c0edd3ce2917b5823d81a7792f145b9449f16277d0d64c22ceff50bbb9 DIST gcc-11.4.0-patches-9.tar.xz 14704 BLAKE2B 9aa2ecbac493d3040694e9930738e57d59a764b90ab92b91709c319b883f28ad108767e5d11e8b62af40bf1e583d5ff83a03e8c895f904bc6f41315ce9ab4f0a SHA512 ac8b7c6c382ffacc4e9d08299440fc237fa366ec36fb8eb7a8d426b64a4186384a262e6380dc83ed7f7240125ce26a8435c8a4e0e13976ef2652067a7129bd17 @@ -48,6 +49,7 @@ EBUILD gcc-11.4.1_p20230824.ebuild 1614 BLAKE2B 76541d8ec0819f2ced3ac9ecc63b7f7f EBUILD gcc-11.4.1_p20230921.ebuild 1615 BLAKE2B af739962d08d8a4866104d8583cac167b027737353abf34be5c9c64f463ecf28c1d6eb67f210a39964779a7b2d0adc8e2e052aa15aace5499428f7082c99cdf2 SHA512 a175a89736344022b27199d4f36bb95914c2fdce49787a98bdcd798e6ab1a2d1e8d55769301950472999ba51fbf9bae9b86d3f9914964f361e9a9b526de74170 EBUILD gcc-11.4.1_p20230928.ebuild 1615 BLAKE2B af739962d08d8a4866104d8583cac167b027737353abf34be5c9c64f463ecf28c1d6eb67f210a39964779a7b2d0adc8e2e052aa15aace5499428f7082c99cdf2 SHA512 a175a89736344022b27199d4f36bb95914c2fdce49787a98bdcd798e6ab1a2d1e8d55769301950472999ba51fbf9bae9b86d3f9914964f361e9a9b526de74170 EBUILD gcc-11.4.1_p20231005.ebuild 1615 BLAKE2B af739962d08d8a4866104d8583cac167b027737353abf34be5c9c64f463ecf28c1d6eb67f210a39964779a7b2d0adc8e2e052aa15aace5499428f7082c99cdf2 SHA512 a175a89736344022b27199d4f36bb95914c2fdce49787a98bdcd798e6ab1a2d1e8d55769301950472999ba51fbf9bae9b86d3f9914964f361e9a9b526de74170 +EBUILD gcc-11.4.1_p20231012.ebuild 1615 BLAKE2B af739962d08d8a4866104d8583cac167b027737353abf34be5c9c64f463ecf28c1d6eb67f210a39964779a7b2d0adc8e2e052aa15aace5499428f7082c99cdf2 SHA512 a175a89736344022b27199d4f36bb95914c2fdce49787a98bdcd798e6ab1a2d1e8d55769301950472999ba51fbf9bae9b86d3f9914964f361e9a9b526de74170 EBUILD gcc-11.5.9999.ebuild 1582 BLAKE2B a5b94704a65afc32a3079ad0732b544c03413a9f4965ccf1c2718fd763dc29b7a64e54b8cbb492d52e93527e3f0d4966d17eb6b6cb81fd609c6629d19f6b124d SHA512 bd165193f6ef2b12930bac05c8c3f75f6bafd143a13ed5c2960f7a1d8039608ca23ccbffe9a6b235d42c789d117e29cb3d47998c71a4a3eba30a63b8b9e0f116 EBUILD gcc-12.3.1_p20230526.ebuild 1609 BLAKE2B a242d9a7eedbf244d1a43ec5d9f8e89e82e15fdfc2a0188dafcd5ee3050dd68e20cb765e06eeae92f1b4b965b9f678bd23786291d207984afe0365728f71a327 SHA512 a844ec1b656ade09280433231828e28bdfac9750e277fb5f7b2c905199f62d1f3d59c5c283706f8e80d8f8e5059a7529cd0b5a3c224a55b6e97faa335b8ebe74 EBUILD gcc-12.3.1_p20230825.ebuild 1620 BLAKE2B 3866983ddc8c6811e00c12af0051e80bfc7f0651a5ef6ca4af9ee651e2efea89a095a616908cccdbac88d8c1baa5ba2eaba7ce7e94f9aae6ff3a56ff52bcd0c2 SHA512 81a426e6392a42d3a28eb6aa5a2de535771fdb87224eafb60ea369c902f27a42c8265565b354d4bbac8daa968849a20370c529c62c9367f0cf58756124d08e0b diff --git a/sys-devel/gcc/gcc-11.4.1_p20231012.ebuild b/sys-devel/gcc/gcc-11.4.1_p20231012.ebuild new file mode 100644 index 000000000000..02c58f02f0a6 --- /dev/null +++ b/sys-devel/gcc/gcc-11.4.1_p20231012.ebuild @@ -0,0 +1,64 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +TOOLCHAIN_PATCH_DEV="sam" +PATCH_GCC_VER="11.4.0" +PATCH_VER="10" +MUSL_VER="2" +MUSL_GCC_VER="11.4.0" + +if [[ ${PV} == *.9999 ]] ; then + MY_PV_2=$(ver_cut 2) + MY_PV_3=1 + if [[ ${MY_PV_2} == 0 ]] ; then + MY_PV_2=0 + MY_PV_3=0 + else + MY_PV_2=$((${MY_PV_2} - 1)) + fi + + # e.g. 12.2.9999 -> 12.1.1 + TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} +elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=releases/gcc-$(ver_cut 1) +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" + BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + + eapply_user +} diff --git a/sys-devel/lld/Manifest b/sys-devel/lld/Manifest index abb94d6bf59c..773fbb956cbb 100644 --- a/sys-devel/lld/Manifest +++ b/sys-devel/lld/Manifest @@ -10,14 +10,16 @@ DIST llvm-project-17.0.1.src.tar.xz.sig 438 BLAKE2B 3182e3c3a48635fdec39b945ee3b DIST llvm-project-17.0.2.src.tar.xz 127833708 BLAKE2B fa9e2e48ce1117063f5cef0aeef85ce84b99bd8fae23022572a6f016eff2ffbf8aab6250b0bdb6e0bbea1c4daf10cecceb18e80496260b5aa81086075d503e12 SHA512 4586224c3f547e8065fa4f0ca3629a1dfed868dfc372ab192d8b9384f0f74dc8cb27dcb6269dc4230202e6a524aae852d98b40fa02ed0393086a162387ea7659 DIST llvm-project-17.0.2.src.tar.xz.sig 438 BLAKE2B 3ba5d7a09e9de3f38a6f7b5b771b08b1c4e96ea7eda948cfa679598d240fa5211fd37220fbe09e37682212b17fb71b8b5539475edb8ff46d9767054983f670cb SHA512 234276813e3f4b5ee9b1dc640a613fd2e60f1d659f4e089733278d08dd0e208ad37d4d64c9e1edd420b6b87e112458ecec5f76ed9a243c3023b0adbab19ab909 DIST llvm-project-39fec5457c0925bd39f67f63fe17391584e08258.tar.gz 198361956 BLAKE2B 001b9d9b7997762dcce4f0b1deb94d41c3d840c178ba1e92208782e7e21fdc0041cde359051b2b1b1fc75526ff6504d3b9375ff873831350de359530c944a961 SHA512 b560e71c9855aff9fb5385f9fb30f63fbef074fd695e7cb31847192837a161bfe4808ceb09c514a676ae817616f15fb5a57d325aa9744eaac46b8f4b20b77a13 +DIST llvm-project-5d35273a32d239b7407338e13ed71b59174d6536.tar.gz 198787569 BLAKE2B 7f4f1eb490028e18826a6ebade649a682e433252ceab1f3dcd9e50c34f24e7ef108c3325ec209a4d4fa1ded8e09ebda4980cb9d8ddce8a0d517923d6c38b8f4a SHA512 4d263561fb12cc07a5e8f7ed2f8f22a3645aa959cf963a6a735a9bb93cfc2a51bf7e4d36b54e8425725029cfcfd868dfcc53af95d26d84be72be124d8c564271 DIST llvm-project-f5cb9cb59d7c9c6ac3d5c41c677f68c9b75d34a3.tar.gz 198113948 BLAKE2B 1688920eb790421f4143e92bd7bd26794a2497e7b445dde6d55b59c9df4b1aebb848833c7cb1b7c273c5e002763f2531a341313500ce207242f992dfe343b988 SHA512 9817e8b7adf7c69d673124e8334c3e511dfd1cc386832c52b2fb0f2517475d29cd98513ad87188a962f9697dfac39ea03f5b2db6c549c307cf3d27b1370ffdf3 EBUILD lld-14.0.6-r1.ebuild 2009 BLAKE2B 4db1dfc9b1997d31cc68240ae0b05afeae5a6b1cb24a0eb2012bc28b2ac8c0da4b532d270d070db5fd401717320a74b006628c19a12c787e2f9ba2dc24eb25b1 SHA512 73b2f0e7b27497ce9037cd10503b328378ff9a2e32cd36e6e264f5423cd05732da4ea2ef97b637fc344a4f3d5d3597c60dda29dba7eb509391c176d32d53a427 EBUILD lld-15.0.7.ebuild 2262 BLAKE2B 8882ba45692d54840d8a5933910ade614427733f3da2e344cf4df2806c125a783ff3c6ad4a2f76fd577cb4787fe07495c93e981c03f116fa7f383575d59936f7 SHA512 9b08495f068a01e991d200363549d29e9146e8687b297fa06beda90da1da9a793b1ebf512c3dad9bb985518a8fd9d1d13049a90dd8f06d4bc3de97779ff8e6ed EBUILD lld-16.0.6.ebuild 2257 BLAKE2B 2e373b90d8ae4ed4131b05eaea51c909705e1132acdab1e21ad2152e66fb18b3caaaa83e9bb64b47f34fdd1ddacc7df622c6e5397c38765d9a2535db59071eba SHA512 a3d75597522d6790257b04fedf41512ab5193f78303efce2d74f03d91910ecb56d60142baa42f27e42759f7e5756c2bfaf394b79c563eb2757b6b23705b9d791 EBUILD lld-17.0.1.ebuild 2206 BLAKE2B 6eb2452e36c55a5b5224981b85a4788a05a14821279399c466673b530ebd34b52dab499dd631be8813d9f6f67538a248335709b6ac3ca1a49acc970db253b39c SHA512 340f6b4fee7d077fb47618fe0047a47453cb521752a35d1ea801fc0f3bb88bdc79c0b6fe02393874ba3ae3b69a9c8a468ad2b2713f3f4648d47f598403b67349 -EBUILD lld-17.0.2.9999.ebuild 2158 BLAKE2B 8688bb182c4483ef12b6301f9b77aecfa481cac7fa9b0fbf4e1851d0362fc01c661897e46955c956366c9e4f689444f20fb9fbeea275fc455d0c27023ff22fd0 SHA512 9d3383bb3df2f87dbc8a269c0618dfe5248c42ce0394b7499cf0fa8422fda471014a101b1d8dc910922374b68662b3c7ca1b0e9da64454523bf50bd88d299f98 EBUILD lld-17.0.2.ebuild 2206 BLAKE2B 6eb2452e36c55a5b5224981b85a4788a05a14821279399c466673b530ebd34b52dab499dd631be8813d9f6f67538a248335709b6ac3ca1a49acc970db253b39c SHA512 340f6b4fee7d077fb47618fe0047a47453cb521752a35d1ea801fc0f3bb88bdc79c0b6fe02393874ba3ae3b69a9c8a468ad2b2713f3f4648d47f598403b67349 +EBUILD lld-17.0.3.9999.ebuild 2158 BLAKE2B 8688bb182c4483ef12b6301f9b77aecfa481cac7fa9b0fbf4e1851d0362fc01c661897e46955c956366c9e4f689444f20fb9fbeea275fc455d0c27023ff22fd0 SHA512 9d3383bb3df2f87dbc8a269c0618dfe5248c42ce0394b7499cf0fa8422fda471014a101b1d8dc910922374b68662b3c7ca1b0e9da64454523bf50bd88d299f98 EBUILD lld-18.0.0.9999.ebuild 2158 BLAKE2B 8688bb182c4483ef12b6301f9b77aecfa481cac7fa9b0fbf4e1851d0362fc01c661897e46955c956366c9e4f689444f20fb9fbeea275fc455d0c27023ff22fd0 SHA512 9d3383bb3df2f87dbc8a269c0618dfe5248c42ce0394b7499cf0fa8422fda471014a101b1d8dc910922374b68662b3c7ca1b0e9da64454523bf50bd88d299f98 EBUILD lld-18.0.0_pre20230925.ebuild 2158 BLAKE2B 8688bb182c4483ef12b6301f9b77aecfa481cac7fa9b0fbf4e1851d0362fc01c661897e46955c956366c9e4f689444f20fb9fbeea275fc455d0c27023ff22fd0 SHA512 9d3383bb3df2f87dbc8a269c0618dfe5248c42ce0394b7499cf0fa8422fda471014a101b1d8dc910922374b68662b3c7ca1b0e9da64454523bf50bd88d299f98 EBUILD lld-18.0.0_pre20231002.ebuild 2158 BLAKE2B 8688bb182c4483ef12b6301f9b77aecfa481cac7fa9b0fbf4e1851d0362fc01c661897e46955c956366c9e4f689444f20fb9fbeea275fc455d0c27023ff22fd0 SHA512 9d3383bb3df2f87dbc8a269c0618dfe5248c42ce0394b7499cf0fa8422fda471014a101b1d8dc910922374b68662b3c7ca1b0e9da64454523bf50bd88d299f98 +EBUILD lld-18.0.0_pre20231013.ebuild 2158 BLAKE2B 8688bb182c4483ef12b6301f9b77aecfa481cac7fa9b0fbf4e1851d0362fc01c661897e46955c956366c9e4f689444f20fb9fbeea275fc455d0c27023ff22fd0 SHA512 9d3383bb3df2f87dbc8a269c0618dfe5248c42ce0394b7499cf0fa8422fda471014a101b1d8dc910922374b68662b3c7ca1b0e9da64454523bf50bd88d299f98 MISC metadata.xml 299 BLAKE2B 2feead2cd1b35b3a43335ddd7711f8181b52bc63ee7166608914260c67528add5251349063afbef4f8cf0ec09b2cd4c3ffdd90f2c14ed60bb69ebc03888f6333 SHA512 cd745c54ab18d25bdaff18582105072574103a36cfe7c175ef740f266d00e9fc6f44c332904d23b911c939cf5bdf52973b388923099d8dd5dfef3c283b5cb685 diff --git a/sys-devel/lld/lld-17.0.2.9999.ebuild b/sys-devel/lld/lld-17.0.3.9999.ebuild index 085543e50762..085543e50762 100644 --- a/sys-devel/lld/lld-17.0.2.9999.ebuild +++ b/sys-devel/lld/lld-17.0.3.9999.ebuild diff --git a/sys-devel/lld/lld-18.0.0_pre20231013.ebuild b/sys-devel/lld/lld-18.0.0_pre20231013.ebuild new file mode 100644 index 000000000000..085543e50762 --- /dev/null +++ b/sys-devel/lld/lld-18.0.0_pre20231013.ebuild @@ -0,0 +1,89 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) +inherit cmake flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs + +DESCRIPTION="The LLVM linker (link editor)" +HOMEPAGE="https://llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" +SLOT="${LLVM_MAJOR}/${LLVM_SOABI}" +KEYWORDS="" +IUSE="+debug test zstd" +RESTRICT="!test? ( test )" + +DEPEND=" + ~sys-devel/llvm-${PV}[debug=,zstd=] + sys-libs/zlib:= + zstd? ( app-arch/zstd:= ) +" +RDEPEND=" + ${DEPEND} + !sys-devel/lld:0 +" +BDEPEND=" + sys-devel/llvm:${LLVM_MAJOR} + test? ( + >=dev-util/cmake-3.16 + $(python_gen_any_dep ">=dev-python/lit-${PV}[\${PYTHON_USEDEP}]") + ) +" +PDEPEND=" + >=sys-devel/lld-toolchain-symlinks-16-r2:${LLVM_MAJOR} +" + +LLVM_COMPONENTS=( lld cmake libunwind/include/mach-o ) +llvm.org_set_globals + +python_check_deps() { + python_has_version ">=dev-python/lit-${PV}[${PYTHON_USEDEP}]" +} + +pkg_setup() { + LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup + use test && python-any-r1_pkg_setup +} + +src_unpack() { + llvm.org_src_unpack + + # Directory ${WORKDIR}/llvm does not exist with USE="-test", + # but LLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" is set below, + # and ${LLVM_MAIN_SRC_DIR}/../libunwind/include is used by build system + # (lld/MachO/CMakeLists.txt) and is expected to be resolvable + # to existent directory ${WORKDIR}/libunwind/include. + mkdir -p "${WORKDIR}/llvm" || die +} + +src_configure() { + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + + use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152 + + local mycmakeargs=( + -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}" + -DBUILD_SHARED_LIBS=ON + -DLLVM_INCLUDE_TESTS=$(usex test) + ) + + use test && mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags)" + -DPython3_EXECUTABLE="${PYTHON}" + ) + + tc-is-cross-compiler && mycmakeargs+=( + -DLLVM_TABLEGEN_EXE="${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-tblgen" + ) + + cmake_src_configure +} + +src_test() { + local -x LIT_PRESERVES_TMP=1 + cmake_build check-lld +} diff --git a/sys-devel/llvm-common/Manifest b/sys-devel/llvm-common/Manifest index b6b797690c46..856843856c67 100644 --- a/sys-devel/llvm-common/Manifest +++ b/sys-devel/llvm-common/Manifest @@ -9,14 +9,16 @@ DIST llvm-project-17.0.1.src.tar.xz.sig 438 BLAKE2B 3182e3c3a48635fdec39b945ee3b DIST llvm-project-17.0.2.src.tar.xz 127833708 BLAKE2B fa9e2e48ce1117063f5cef0aeef85ce84b99bd8fae23022572a6f016eff2ffbf8aab6250b0bdb6e0bbea1c4daf10cecceb18e80496260b5aa81086075d503e12 SHA512 4586224c3f547e8065fa4f0ca3629a1dfed868dfc372ab192d8b9384f0f74dc8cb27dcb6269dc4230202e6a524aae852d98b40fa02ed0393086a162387ea7659 DIST llvm-project-17.0.2.src.tar.xz.sig 438 BLAKE2B 3ba5d7a09e9de3f38a6f7b5b771b08b1c4e96ea7eda948cfa679598d240fa5211fd37220fbe09e37682212b17fb71b8b5539475edb8ff46d9767054983f670cb SHA512 234276813e3f4b5ee9b1dc640a613fd2e60f1d659f4e089733278d08dd0e208ad37d4d64c9e1edd420b6b87e112458ecec5f76ed9a243c3023b0adbab19ab909 DIST llvm-project-39fec5457c0925bd39f67f63fe17391584e08258.tar.gz 198361956 BLAKE2B 001b9d9b7997762dcce4f0b1deb94d41c3d840c178ba1e92208782e7e21fdc0041cde359051b2b1b1fc75526ff6504d3b9375ff873831350de359530c944a961 SHA512 b560e71c9855aff9fb5385f9fb30f63fbef074fd695e7cb31847192837a161bfe4808ceb09c514a676ae817616f15fb5a57d325aa9744eaac46b8f4b20b77a13 +DIST llvm-project-5d35273a32d239b7407338e13ed71b59174d6536.tar.gz 198787569 BLAKE2B 7f4f1eb490028e18826a6ebade649a682e433252ceab1f3dcd9e50c34f24e7ef108c3325ec209a4d4fa1ded8e09ebda4980cb9d8ddce8a0d517923d6c38b8f4a SHA512 4d263561fb12cc07a5e8f7ed2f8f22a3645aa959cf963a6a735a9bb93cfc2a51bf7e4d36b54e8425725029cfcfd868dfcc53af95d26d84be72be124d8c564271 DIST llvm-project-f5cb9cb59d7c9c6ac3d5c41c677f68c9b75d34a3.tar.gz 198113948 BLAKE2B 1688920eb790421f4143e92bd7bd26794a2497e7b445dde6d55b59c9df4b1aebb848833c7cb1b7c273c5e002763f2531a341313500ce207242f992dfe343b988 SHA512 9817e8b7adf7c69d673124e8334c3e511dfd1cc386832c52b2fb0f2517475d29cd98513ad87188a962f9697dfac39ea03f5b2db6c549c307cf3d27b1370ffdf3 EBUILD llvm-common-14.0.6.ebuild 1015 BLAKE2B b7d52fa0ab83b5c9bf23d397074f4db30926ad3d13bdf0d2082a23f384c3889a7c356ba220b78970d117a8b46793e3d175d0a794859bb6148c4d6e1bc1c9e82e SHA512 b89e5a11a04a66cf2929354ce65d80c201d85ee1aaa55c197b3671904e126ec941ad7110277734563b376ebc7fecec463c270f8cad8609664f025916d3f39bac EBUILD llvm-common-15.0.7.ebuild 1014 BLAKE2B da3b7ec6cd3c1e57758312fb9ea25e693305e1ef72b350eea85fbde5a1e636269d84bd491b6f528aee8a9cb8229f6304b371f99e6ac416c661c6519706b83b61 SHA512 68b9d672372fe71e39f2b8f9d80eb1dcb5138b8b9b961f56a4eeb81b3fc4054448a51a46b3a62547ebb6262425512f39bc146e5f2c3703de10ab520f1594e7a4 EBUILD llvm-common-16.0.6.ebuild 1021 BLAKE2B 635a5e329ec238346e1bfe715ed088484a33f517a294dd86f822dbc7d225a296f61d72b73be28767c6629516c6237cf1b377320a38c2092796e6d292ece12977 SHA512 64df7235d2bbf73792c6169931b3f5cb90feac9012590bb391b3d2aed67fbe518d08f46fffaf706f478e528b5837178f2e440557b906d6cce832ecaea021dbba EBUILD llvm-common-17.0.1.ebuild 1028 BLAKE2B 17b090a472e770e1f63129c30b736d37f1020e7ce498345919724a412b1221fb6512cd6b88261d6760fde413f391264ac903df6a1e45a5a48cf0bdd5371b370c SHA512 472d118c870970130a42a7c632a968406c44fc1161be1a7a0ef76f5344d98c08e56dac7b20fa2972dc162b5e094b22df9e58a74aac355d3e7d034c2aaef64a4b -EBUILD llvm-common-17.0.2.9999.ebuild 937 BLAKE2B 71205c911e7ae61914de7b5e0e2aff7fff1aed78099c2fdffbb9f4270f28a53c098d89cf6a7269a5d2c62c476c745eb1926f37ef3709e61cd08fa97271075a53 SHA512 9d2a8ad2455759c4e5102414e439375507a22fc3dd89af8ce54d0e3ba21440805fcafd4a94412eea7867626cec177f2b0d4540f06fc19cdec89c16b4b27de29f EBUILD llvm-common-17.0.2.ebuild 1028 BLAKE2B 17b090a472e770e1f63129c30b736d37f1020e7ce498345919724a412b1221fb6512cd6b88261d6760fde413f391264ac903df6a1e45a5a48cf0bdd5371b370c SHA512 472d118c870970130a42a7c632a968406c44fc1161be1a7a0ef76f5344d98c08e56dac7b20fa2972dc162b5e094b22df9e58a74aac355d3e7d034c2aaef64a4b +EBUILD llvm-common-17.0.3.9999.ebuild 937 BLAKE2B 71205c911e7ae61914de7b5e0e2aff7fff1aed78099c2fdffbb9f4270f28a53c098d89cf6a7269a5d2c62c476c745eb1926f37ef3709e61cd08fa97271075a53 SHA512 9d2a8ad2455759c4e5102414e439375507a22fc3dd89af8ce54d0e3ba21440805fcafd4a94412eea7867626cec177f2b0d4540f06fc19cdec89c16b4b27de29f EBUILD llvm-common-18.0.0.9999.ebuild 937 BLAKE2B 71205c911e7ae61914de7b5e0e2aff7fff1aed78099c2fdffbb9f4270f28a53c098d89cf6a7269a5d2c62c476c745eb1926f37ef3709e61cd08fa97271075a53 SHA512 9d2a8ad2455759c4e5102414e439375507a22fc3dd89af8ce54d0e3ba21440805fcafd4a94412eea7867626cec177f2b0d4540f06fc19cdec89c16b4b27de29f EBUILD llvm-common-18.0.0_pre20230925.ebuild 937 BLAKE2B 71205c911e7ae61914de7b5e0e2aff7fff1aed78099c2fdffbb9f4270f28a53c098d89cf6a7269a5d2c62c476c745eb1926f37ef3709e61cd08fa97271075a53 SHA512 9d2a8ad2455759c4e5102414e439375507a22fc3dd89af8ce54d0e3ba21440805fcafd4a94412eea7867626cec177f2b0d4540f06fc19cdec89c16b4b27de29f EBUILD llvm-common-18.0.0_pre20231002.ebuild 937 BLAKE2B 71205c911e7ae61914de7b5e0e2aff7fff1aed78099c2fdffbb9f4270f28a53c098d89cf6a7269a5d2c62c476c745eb1926f37ef3709e61cd08fa97271075a53 SHA512 9d2a8ad2455759c4e5102414e439375507a22fc3dd89af8ce54d0e3ba21440805fcafd4a94412eea7867626cec177f2b0d4540f06fc19cdec89c16b4b27de29f +EBUILD llvm-common-18.0.0_pre20231013.ebuild 937 BLAKE2B 71205c911e7ae61914de7b5e0e2aff7fff1aed78099c2fdffbb9f4270f28a53c098d89cf6a7269a5d2c62c476c745eb1926f37ef3709e61cd08fa97271075a53 SHA512 9d2a8ad2455759c4e5102414e439375507a22fc3dd89af8ce54d0e3ba21440805fcafd4a94412eea7867626cec177f2b0d4540f06fc19cdec89c16b4b27de29f MISC metadata.xml 299 BLAKE2B 2feead2cd1b35b3a43335ddd7711f8181b52bc63ee7166608914260c67528add5251349063afbef4f8cf0ec09b2cd4c3ffdd90f2c14ed60bb69ebc03888f6333 SHA512 cd745c54ab18d25bdaff18582105072574103a36cfe7c175ef740f266d00e9fc6f44c332904d23b911c939cf5bdf52973b388923099d8dd5dfef3c283b5cb685 diff --git a/sys-devel/llvm-common/llvm-common-17.0.2.9999.ebuild b/sys-devel/llvm-common/llvm-common-17.0.3.9999.ebuild index d2cde923ede3..d2cde923ede3 100644 --- a/sys-devel/llvm-common/llvm-common-17.0.2.9999.ebuild +++ b/sys-devel/llvm-common/llvm-common-17.0.3.9999.ebuild diff --git a/sys-devel/llvm-common/llvm-common-18.0.0_pre20231013.ebuild b/sys-devel/llvm-common/llvm-common-18.0.0_pre20231013.ebuild new file mode 100644 index 000000000000..d2cde923ede3 --- /dev/null +++ b/sys-devel/llvm-common/llvm-common-18.0.0_pre20231013.ebuild @@ -0,0 +1,54 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit elisp-common 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="emacs" + +RDEPEND=" + !sys-devel/llvm:0 +" +BDEPEND=" + emacs? ( >=app-editors/emacs-23.1:* ) +" + +LLVM_COMPONENTS=( llvm/utils ) +llvm.org_set_globals + +SITEFILE="50llvm-gentoo.el" +BYTECOMPFLAGS="-L emacs" + +src_compile() { + default + + use emacs && elisp-compile emacs/*.el +} + +src_install() { + insinto /usr/share/vim/vimfiles + doins -r vim/*/ + # some users may find it useful + newdoc vim/README README.vim + dodoc vim/vimrc + + if use emacs ; then + elisp-install llvm emacs/*.{el,elc} + elisp-make-site-file "${SITEFILE}" llvm + fi +} + +pkg_postinst() { + use emacs && elisp-site-regen +} + +pkg_postrm() { + use emacs && elisp-site-regen +} diff --git a/sys-devel/llvm/Manifest b/sys-devel/llvm/Manifest index ef73b165e4cf..a45cba917b16 100644 --- a/sys-devel/llvm/Manifest +++ b/sys-devel/llvm/Manifest @@ -17,14 +17,16 @@ DIST llvm-project-17.0.1.src.tar.xz.sig 438 BLAKE2B 3182e3c3a48635fdec39b945ee3b DIST llvm-project-17.0.2.src.tar.xz 127833708 BLAKE2B fa9e2e48ce1117063f5cef0aeef85ce84b99bd8fae23022572a6f016eff2ffbf8aab6250b0bdb6e0bbea1c4daf10cecceb18e80496260b5aa81086075d503e12 SHA512 4586224c3f547e8065fa4f0ca3629a1dfed868dfc372ab192d8b9384f0f74dc8cb27dcb6269dc4230202e6a524aae852d98b40fa02ed0393086a162387ea7659 DIST llvm-project-17.0.2.src.tar.xz.sig 438 BLAKE2B 3ba5d7a09e9de3f38a6f7b5b771b08b1c4e96ea7eda948cfa679598d240fa5211fd37220fbe09e37682212b17fb71b8b5539475edb8ff46d9767054983f670cb SHA512 234276813e3f4b5ee9b1dc640a613fd2e60f1d659f4e089733278d08dd0e208ad37d4d64c9e1edd420b6b87e112458ecec5f76ed9a243c3023b0adbab19ab909 DIST llvm-project-39fec5457c0925bd39f67f63fe17391584e08258.tar.gz 198361956 BLAKE2B 001b9d9b7997762dcce4f0b1deb94d41c3d840c178ba1e92208782e7e21fdc0041cde359051b2b1b1fc75526ff6504d3b9375ff873831350de359530c944a961 SHA512 b560e71c9855aff9fb5385f9fb30f63fbef074fd695e7cb31847192837a161bfe4808ceb09c514a676ae817616f15fb5a57d325aa9744eaac46b8f4b20b77a13 +DIST llvm-project-5d35273a32d239b7407338e13ed71b59174d6536.tar.gz 198787569 BLAKE2B 7f4f1eb490028e18826a6ebade649a682e433252ceab1f3dcd9e50c34f24e7ef108c3325ec209a4d4fa1ded8e09ebda4980cb9d8ddce8a0d517923d6c38b8f4a SHA512 4d263561fb12cc07a5e8f7ed2f8f22a3645aa959cf963a6a735a9bb93cfc2a51bf7e4d36b54e8425725029cfcfd868dfcc53af95d26d84be72be124d8c564271 DIST llvm-project-f5cb9cb59d7c9c6ac3d5c41c677f68c9b75d34a3.tar.gz 198113948 BLAKE2B 1688920eb790421f4143e92bd7bd26794a2497e7b445dde6d55b59c9df4b1aebb848833c7cb1b7c273c5e002763f2531a341313500ce207242f992dfe343b988 SHA512 9817e8b7adf7c69d673124e8334c3e511dfd1cc386832c52b2fb0f2517475d29cd98513ad87188a962f9697dfac39ea03f5b2db6c549c307cf3d27b1370ffdf3 EBUILD llvm-14.0.6-r4.ebuild 12313 BLAKE2B fc192cd5a0ce4392b3aae13e068522dcac0925cd67afae7c230b150e8ddab3a302dd3dbf5b9eb9ea0092ca8d5464e43f4a37d6e615998fc8259a2fbd669deb44 SHA512 839388316772e70d13ac1b6f72d93171dc698659a79766057a7dc16b191f5f417c919398c9ff09430fb128654452a01fa1dcfce27c60ac29aa11edb5eed3be0b EBUILD llvm-15.0.7-r3.ebuild 12486 BLAKE2B 1c62b4a9f7493b3cf9bd2ca388d9c09da2077a5be4b19dba2628352e0524e37df1e3481cc3e0658d3ce8eeb81fe7b4e379be7d5ba9e20a60376616e5a38f6264 SHA512 d6eea0d3330e29a4a27bb758cb5abec08b35f5b0d6a9bacfeddcaf031b0c125ba9454d4eb77a65fe6dd5b379654dd895d603e0a01008b57476502be82ffb392c EBUILD llvm-16.0.6.ebuild 12812 BLAKE2B 1063af92819795e6867db4ef9c7f31826df93560b99a56fdc33f315319cc916dde824f2282c74b54430da11a5a9e5428de6552ee57ef0f4bdd4b3c69d3ee230f SHA512 d23327496b4a9d58aa8bae415d85fda284bfc499c3552a272b160bb6f6f85d1300f0e5d536d24c97e58def556e1743ebeae9dc7d718bf6a0a994a63e07054969 EBUILD llvm-17.0.1.ebuild 13080 BLAKE2B 40b706c98bbe0a3be6b3c68f8a863f93b263f2a11228bd180cc7f25120fe3f9fdbd45a621200f471c17b0384fe2eb9a0847b6462903af4106c032a42cae51199 SHA512 dbd372ab87de2a4c27d471261d13f64cdbc34aa0a901457788e239dfa22b9168914cba80ec17f4f6d3aab95f130f7e81a3f2f789fdb0427ae2eeac229e8ae565 EBUILD llvm-17.0.2-r1.ebuild 13100 BLAKE2B 054b13ea90105c70a9b40cef1cdee3157515bca2350b5fcf69ea8d81a45fb259c523f70e2306f101b6078e367143c1798acc3d7c5e5391a9c6e15c5053f11768 SHA512 6a1973ec5a0045c65e45e53c8f18230098831c5ba4893c908cdf22f4747f03702e19627cabe1d1c7407ab988d52c74ee83a287f96dccaf1e6af8caaa45585d68 -EBUILD llvm-17.0.2.9999.ebuild 12990 BLAKE2B 295cb963dd707d91c40c63c9eb51d02cda2e2d3d86716be0575da2ebbd1958014c316f044d6e636dd68b38e59e572b7c8afb31677e5d9af16cd90f90d816ab88 SHA512 23a1f157812b88c5b8cde8d23c33e5c84f417afd2a06def1c9620709d9fad35f57c290f96534721a5645cd2f1e2d2a097ff09de72fea1bad0c3716d7c77a4646 +EBUILD llvm-17.0.3.9999.ebuild 12990 BLAKE2B 295cb963dd707d91c40c63c9eb51d02cda2e2d3d86716be0575da2ebbd1958014c316f044d6e636dd68b38e59e572b7c8afb31677e5d9af16cd90f90d816ab88 SHA512 23a1f157812b88c5b8cde8d23c33e5c84f417afd2a06def1c9620709d9fad35f57c290f96534721a5645cd2f1e2d2a097ff09de72fea1bad0c3716d7c77a4646 EBUILD llvm-18.0.0.9999.ebuild 12962 BLAKE2B 0cd4168bad25b539482bdded2988a43738af06e51500cb6cf059d962d40f33e596ac4ac8b14d66cafda75a01db98d93bba5430053605fa7c2f8474788cf996e3 SHA512 fc87fdf0b1ded8256dc5f250f957c8deafd8950474edc90c4a183ab09c2f534e997df85feb7b302aef3ebb233ff151f28c68dd902a49eda73a41d2cbeaa13a7e EBUILD llvm-18.0.0_pre20230925.ebuild 12662 BLAKE2B 197f93ba73d9a6083c9bd9014199183dace77ef12727484de5c685df5530e4c24ad894fe3e79f4061684a5b0adbcdb49019b367161666c2567064ac1d8a09481 SHA512 d7a356937690a0cfd1c8a8a59f1c513b591febf7afd77a798211ae7f83d3afbaa31f6939e152529ce3f0848fbd141e08ea741b77016ae5d405f7ce7b00520937 EBUILD llvm-18.0.0_pre20231002.ebuild 12962 BLAKE2B 0cd4168bad25b539482bdded2988a43738af06e51500cb6cf059d962d40f33e596ac4ac8b14d66cafda75a01db98d93bba5430053605fa7c2f8474788cf996e3 SHA512 fc87fdf0b1ded8256dc5f250f957c8deafd8950474edc90c4a183ab09c2f534e997df85feb7b302aef3ebb233ff151f28c68dd902a49eda73a41d2cbeaa13a7e +EBUILD llvm-18.0.0_pre20231013.ebuild 12962 BLAKE2B 0cd4168bad25b539482bdded2988a43738af06e51500cb6cf059d962d40f33e596ac4ac8b14d66cafda75a01db98d93bba5430053605fa7c2f8474788cf996e3 SHA512 fc87fdf0b1ded8256dc5f250f957c8deafd8950474edc90c4a183ab09c2f534e997df85feb7b302aef3ebb233ff151f28c68dd902a49eda73a41d2cbeaa13a7e MISC metadata.xml 2782 BLAKE2B 4bd546287f630462c3f5d98cbd15a59a4cdef4023f86a5f4fe64fc5f10256cae7014d18823bd0909f4af4e42f299b6e7983c9c3c569cfab1ad38b0160f1eae40 SHA512 6bf1dc4f71f50e1eecc55cbb8366d8ed82a3dd328871acf1d808fc5e3ee4d203d623f81d9968bda45a87c72a2f20ed69b735b0a289b0052b048175cf6502e124 diff --git a/sys-devel/llvm/llvm-17.0.2.9999.ebuild b/sys-devel/llvm/llvm-17.0.3.9999.ebuild index 6bda0f273990..6bda0f273990 100644 --- a/sys-devel/llvm/llvm-17.0.2.9999.ebuild +++ b/sys-devel/llvm/llvm-17.0.3.9999.ebuild diff --git a/sys-devel/llvm/llvm-18.0.0_pre20231013.ebuild b/sys-devel/llvm/llvm-18.0.0_pre20231013.ebuild new file mode 100644 index 000000000000..14a1681c7f69 --- /dev/null +++ b/sys-devel/llvm/llvm-18.0.0_pre20231013.ebuild @@ -0,0 +1,539 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) + +inherit cmake llvm.org multilib-minimal pax-utils python-any-r1 +inherit toolchain-funcs + +DESCRIPTION="Low Level Virtual Machine" +HOMEPAGE="https://llvm.org/" + +# Additional licenses: +# 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD. +# 2. xxhash: BSD. +# 3. MD5 code: public-domain. +# 4. ConvertUTF.h: TODO. + +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc" +SLOT="${LLVM_MAJOR}/${LLVM_SOABI}" +KEYWORDS="" +IUSE=" + +binutils-plugin +debug debuginfod doc exegesis libedit +libffi + ncurses test xar xml z3 zstd +" +RESTRICT="!test? ( test )" + +RDEPEND=" + sys-libs/zlib:0=[${MULTILIB_USEDEP}] + debuginfod? ( + net-misc/curl:= + dev-cpp/cpp-httplib:= + ) + exegesis? ( dev-libs/libpfm:= ) + libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] ) + libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] ) + ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] ) + xar? ( app-arch/xar ) + xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] ) + z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] ) + zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] ) +" +DEPEND=" + ${RDEPEND} + binutils-plugin? ( sys-libs/binutils-libs ) +" +BDEPEND=" + ${PYTHON_DEPS} + dev-lang/perl + >=dev-util/cmake-3.16 + sys-devel/gnuconfig + kernel_Darwin? ( + <sys-libs/libcxx-${LLVM_VERSION}.9999 + >=sys-devel/binutils-apple-5.1 + ) + doc? ( $(python_gen_any_dep ' + dev-python/myst-parser[${PYTHON_USEDEP}] + dev-python/sphinx[${PYTHON_USEDEP}] + ') ) + libffi? ( virtual/pkgconfig ) +" +# There are no file collisions between these versions but having :0 +# installed means llvm-config there will take precedence. +RDEPEND=" + ${RDEPEND} + !sys-devel/llvm:0 +" +PDEPEND=" + sys-devel/llvm-common + sys-devel/llvm-toolchain-symlinks:${LLVM_MAJOR} + binutils-plugin? ( >=sys-devel/llvmgold-${LLVM_MAJOR} ) +" + +LLVM_COMPONENTS=( llvm cmake third-party ) +LLVM_MANPAGES=1 +LLVM_USE_TARGETS=provide +llvm.org_set_globals + +python_check_deps() { + use doc || return 0 + + python_has_version -b "dev-python/myst-parser[${PYTHON_USEDEP}]" && + python_has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]" +} + +check_uptodate() { + local prod_targets=( + $(sed -n -e '/set(LLVM_ALL_TARGETS/,/)/p' CMakeLists.txt \ + | tail -n +2 | head -n -1) + ) + local all_targets=( + lib/Target/*/ + ) + all_targets=( "${all_targets[@]#lib/Target/}" ) + all_targets=( "${all_targets[@]%/}" ) + + local exp_targets=() i + for i in "${all_targets[@]}"; do + has "${i}" "${prod_targets[@]}" || exp_targets+=( "${i}" ) + done + + if [[ ${exp_targets[*]} != ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]} ]]; then + eqawarn "ALL_LLVM_EXPERIMENTAL_TARGETS is outdated!" + eqawarn " Have: ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]}" + eqawarn "Expected: ${exp_targets[*]}" + eqawarn + fi + + if [[ ${prod_targets[*]} != ${ALL_LLVM_PRODUCTION_TARGETS[*]} ]]; then + eqawarn "ALL_LLVM_PRODUCTION_TARGETS is outdated!" + eqawarn " Have: ${ALL_LLVM_PRODUCTION_TARGETS[*]}" + eqawarn "Expected: ${prod_targets[*]}" + fi +} + +check_distribution_components() { + if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then + local all_targets=() my_targets=() l + cd "${BUILD_DIR}" || die + + while read -r l; do + if [[ ${l} == install-*-stripped:* ]]; then + l=${l#install-} + l=${l%%-stripped*} + + case ${l} in + # shared libs + LLVM|LLVMgold) + ;; + # TableGen lib + deps + LLVMDemangle|LLVMSupport|LLVMTableGen) + ;; + # testing libraries + LLVMTestingAnnotations|LLVMTestingSupport) + ;; + # static libs + LLVM*) + continue + ;; + # meta-targets + distribution|llvm-libraries) + continue + ;; + # used only w/ USE=doc + docs-llvm-html) + use doc || continue + ;; + esac + + all_targets+=( "${l}" ) + fi + done < <(${NINJA} -t targets all) + + while read -r l; do + my_targets+=( "${l}" ) + done < <(get_distribution_components $"\n") + + local add=() remove=() + for l in "${all_targets[@]}"; do + if ! has "${l}" "${my_targets[@]}"; then + add+=( "${l}" ) + fi + done + for l in "${my_targets[@]}"; do + if ! has "${l}" "${all_targets[@]}"; then + remove+=( "${l}" ) + fi + done + + if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then + eqawarn "get_distribution_components() is outdated!" + eqawarn " Add: ${add[*]}" + eqawarn "Remove: ${remove[*]}" + fi + cd - >/dev/null || die + fi +} + +src_prepare() { + # disable use of SDK on OSX, bug #568758 + sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die + + # Update config.guess to support more systems + cp "${BROOT}/usr/share/gnuconfig/config.guess" cmake/ || die + + # Verify that the ebuild is up-to-date + check_uptodate + + llvm.org_src_prepare +} + +get_distribution_components() { + local sep=${1-;} + + local out=( + # shared libs + LLVM + LTO + Remarks + + # tools + llvm-config + + # common stuff + cmake-exports + llvm-headers + + # libraries needed for clang-tblgen + LLVMDemangle + LLVMSupport + LLVMTableGen + + # testing libraries + llvm_gtest + llvm_gtest_main + LLVMTestingAnnotations + LLVMTestingSupport + ) + + if multilib_is_native_abi; then + out+=( + # utilities + llvm-tblgen + FileCheck + llvm-PerfectShuffle + count + not + yaml-bench + UnicodeNameMappingGenerator + + # tools + bugpoint + dsymutil + llc + lli + lli-child-target + llvm-addr2line + llvm-ar + llvm-as + llvm-bcanalyzer + llvm-bitcode-strip + llvm-c-test + llvm-cat + llvm-cfi-verify + llvm-config + llvm-cov + llvm-cvtres + llvm-cxxdump + llvm-cxxfilt + llvm-cxxmap + llvm-debuginfo-analyzer + llvm-debuginfod-find + llvm-diff + llvm-dis + llvm-dlltool + llvm-dwarfdump + llvm-dwarfutil + llvm-dwp + llvm-exegesis + llvm-extract + llvm-gsymutil + llvm-ifs + llvm-install-name-tool + llvm-jitlink + llvm-jitlink-executor + llvm-lib + llvm-libtool-darwin + llvm-link + llvm-lipo + llvm-lto + llvm-lto2 + llvm-mc + llvm-mca + llvm-ml + llvm-modextract + llvm-mt + llvm-nm + llvm-objcopy + llvm-objdump + llvm-opt-report + llvm-otool + llvm-pdbutil + llvm-profdata + llvm-profgen + llvm-ranlib + llvm-rc + llvm-readelf + llvm-readobj + llvm-readtapi + llvm-reduce + llvm-remarkutil + llvm-rtdyld + llvm-sim + llvm-size + llvm-split + llvm-stress + llvm-strings + llvm-strip + llvm-symbolizer + llvm-tli-checker + llvm-undname + llvm-windres + llvm-xray + obj2yaml + opt + sancov + sanstats + split-file + verify-uselistorder + yaml2obj + + # python modules + opt-viewer + ) + + if llvm_are_manpages_built; then + out+=( + # manpages + docs-dsymutil-man + docs-llvm-dwarfdump-man + docs-llvm-man + ) + fi + use doc && out+=( + docs-llvm-html + ) + + use binutils-plugin && out+=( + LLVMgold + ) + use debuginfod && out+=( + llvm-debuginfod + ) + fi + + printf "%s${sep}" "${out[@]}" +} + +multilib_src_configure() { + local ffi_cflags ffi_ldflags + if use libffi; then + ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi) + ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi) + fi + + local libdir=$(get_libdir) + local mycmakeargs=( + # disable appending VCS revision to the version to improve + # direct cache hit ratio + -DLLVM_APPEND_VC_REV=OFF + -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}" + -DLLVM_LIBDIR_SUFFIX=${libdir#lib} + + -DBUILD_SHARED_LIBS=OFF + -DLLVM_BUILD_LLVM_DYLIB=ON + -DLLVM_LINK_LLVM_DYLIB=ON + -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components) + + # cheap hack: LLVM combines both anyway, and the only difference + # is that the former list is explicitly verified at cmake time + -DLLVM_TARGETS_TO_BUILD="" + -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}" + -DLLVM_INCLUDE_BENCHMARKS=OFF + -DLLVM_INCLUDE_TESTS=ON + -DLLVM_BUILD_TESTS=$(usex test) + -DLLVM_INSTALL_GTEST=ON + + -DLLVM_ENABLE_FFI=$(usex libffi) + -DLLVM_ENABLE_LIBEDIT=$(usex libedit) + -DLLVM_ENABLE_TERMINFO=$(usex ncurses) + -DLLVM_ENABLE_LIBXML2=$(usex xml) + -DLLVM_ENABLE_ASSERTIONS=$(usex debug) + -DLLVM_ENABLE_LIBPFM=$(usex exegesis) + -DLLVM_ENABLE_EH=ON + -DLLVM_ENABLE_RTTI=ON + -DLLVM_ENABLE_Z3_SOLVER=$(usex z3) + -DLLVM_ENABLE_ZSTD=$(usex zstd) + -DLLVM_ENABLE_CURL=$(usex debuginfod) + -DLLVM_ENABLE_HTTPLIB=$(usex debuginfod) + + -DLLVM_HOST_TRIPLE="${CHOST}" + + -DFFI_INCLUDE_DIR="${ffi_cflags#-I}" + -DFFI_LIBRARY_DIR="${ffi_ldflags#-L}" + # used only for llvm-objdump tool + -DLLVM_HAVE_LIBXAR=$(multilib_native_usex xar 1 0) + + -DPython3_EXECUTABLE="${PYTHON}" + + # disable OCaml bindings (now in dev-ml/llvm-ocaml) + -DOCAMLFIND=NO + ) + + local suffix= + if [[ -n ${EGIT_VERSION} && ${EGIT_BRANCH} != release/* ]]; then + # the ABI of the main branch is not stable, so let's include + # the commit id in the SOVERSION to contain the breakage + suffix+="git${EGIT_VERSION::8}" + fi + if [[ $(tc-get-cxx-stdlib) == libc++ ]]; then + # Smart hack: alter version suffix -> SOVERSION when linking + # against libc++. This way we won't end up mixing LLVM libc++ + # libraries with libstdc++ clang, and the other way around. + suffix+="+libcxx" + mycmakeargs+=( + -DLLVM_ENABLE_LIBCXX=ON + ) + fi + mycmakeargs+=( + -DLLVM_VERSION_SUFFIX="${suffix}" + ) + + use test && mycmakeargs+=( + -DLLVM_LIT_ARGS="$(get_lit_flags)" + ) + + if multilib_is_native_abi; then + local build_docs=OFF + if llvm_are_manpages_built; then + build_docs=ON + mycmakeargs+=( + -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man" + -DLLVM_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html" + -DSPHINX_WARNINGS_AS_ERRORS=OFF + ) + fi + + mycmakeargs+=( + -DLLVM_BUILD_DOCS=${build_docs} + -DLLVM_ENABLE_OCAMLDOC=OFF + -DLLVM_ENABLE_SPHINX=${build_docs} + -DLLVM_ENABLE_DOXYGEN=OFF + -DLLVM_INSTALL_UTILS=ON + ) + use binutils-plugin && mycmakeargs+=( + -DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include + ) + fi + + # On Macos prefix, Gentoo doesn't split sys-libs/ncurses to libtinfo and + # libncurses, but llvm tries to use libtinfo before libncurses, and ends up + # using libtinfo (actually, libncurses.dylib) from system instead of prefix + use kernel_Darwin && mycmakeargs+=( + -DTerminfo_LIBRARIES=-lncurses + ) + + # workaround BMI bug in gcc-7 (fixed in 7.4) + # https://bugs.gentoo.org/649880 + # apply only to x86, https://bugs.gentoo.org/650506 + if tc-is-gcc && [[ ${MULTILIB_ABI_FLAG} == abi_x86* ]] && + [[ $(gcc-major-version) -eq 7 && $(gcc-minor-version) -lt 4 ]] + then + local CFLAGS="${CFLAGS} -mno-bmi" + local CXXFLAGS="${CXXFLAGS} -mno-bmi" + fi + + # LLVM can have very high memory consumption while linking, + # exhausting the limit on 32-bit linker executable + use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory" + + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + cmake_src_configure + + grep -q -E "^CMAKE_PROJECT_VERSION_MAJOR(:.*)?=${LLVM_MAJOR}$" \ + CMakeCache.txt || + die "Incorrect version, did you update _LLVM_MAIN_MAJOR?" + multilib_is_native_abi && check_distribution_components +} + +multilib_src_compile() { + tc-env_build cmake_build distribution + + pax-mark m "${BUILD_DIR}"/bin/llvm-rtdyld + pax-mark m "${BUILD_DIR}"/bin/lli + pax-mark m "${BUILD_DIR}"/bin/lli-child-target + + if use test; then + pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/Orc/OrcJITTests + pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/MCJIT/MCJITTests + pax-mark m "${BUILD_DIR}"/unittests/Support/SupportTests + fi +} + +multilib_src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + cmake_build check +} + +src_install() { + local MULTILIB_CHOST_TOOLS=( + /usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-config + ) + + local MULTILIB_WRAPPED_HEADERS=( + /usr/include/llvm/Config/llvm-config.h + ) + + local LLVM_LDPATHS=() + multilib-minimal_src_install + + # move wrapped headers back + mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include || die +} + +multilib_src_install() { + DESTDIR=${D} cmake_build install-distribution + + # move headers to /usr/include for wrapping + rm -rf "${ED}"/usr/include || die + mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include "${ED}"/usr/include || die + + LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)" ) +} + +multilib_src_install_all() { + local revord=$(( 9999 - ${LLVM_MAJOR} )) + newenvd - "60llvm-${revord}" <<-_EOF_ + PATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin" + # we need to duplicate it in ROOTPATH for Portage to respect... + ROOTPATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin" + MANPATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man" + LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )" + _EOF_ + + docompress "/usr/lib/llvm/${LLVM_MAJOR}/share/man" + llvm_install_manpages +} + +pkg_postinst() { + elog "You can find additional opt-viewer utility scripts in:" + elog " ${EROOT}/usr/lib/llvm/${LLVM_MAJOR}/share/opt-viewer" + elog "To use these scripts, you will need Python along with the following" + elog "packages:" + elog " dev-python/pygments (for opt-viewer)" + elog " dev-python/pyyaml (for all of them)" +} |