From 55f35733fd2cef66761513953c80be5312563c5f Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Fri, 19 May 2023 04:14:27 +0100 Subject: gentoo auto-resync : 19:05:2023 - 04:14:27 --- eclass/Manifest.gz | Bin 37652 -> 37651 bytes eclass/llvm.org.eclass | 12 +++++++++++- eclass/toolchain.eclass | 17 +++++++++++++++-- 3 files changed, 26 insertions(+), 3 deletions(-) (limited to 'eclass') diff --git a/eclass/Manifest.gz b/eclass/Manifest.gz index 6d6f5b83168b..bfaa84c48b05 100644 Binary files a/eclass/Manifest.gz and b/eclass/Manifest.gz differ diff --git a/eclass/llvm.org.eclass b/eclass/llvm.org.eclass index c67651be6ffd..07abfe224af9 100644 --- a/eclass/llvm.org.eclass +++ b/eclass/llvm.org.eclass @@ -265,16 +265,17 @@ llvm.org_set_globals() { fi if [[ ${LLVM_MANPAGES} ]]; then - IUSE+=" doc" # use pregenerated tarball if available local manpage_dist=$(llvm_manpage_get_dist) if [[ -n ${manpage_dist} ]]; then + IUSE+=" doc" SRC_URI+=" !doc? ( https://dev.gentoo.org/~mgorny/dist/llvm/${manpage_dist} ) " else + IUSE+=" +doc" # NB: this is not always the correct dep but it does no harm BDEPEND+=" dev-python/sphinx" fi @@ -449,6 +450,15 @@ llvm_manpage_get_dist() { fi } +# @FUNCTION: llvm_manpage_dist_available +# @DESCRIPTION: +# Return true (0) if this LLVM version features prebuilt manpage +# tarball, false (1) otherwise. +llvm_manpage_dist_available() { + local manpage_dist=$(llvm_manpage_get_dist) + [[ -n ${manpage_dist} ]] +} + # @FUNCTION: llvm_are_manpages_built # @DESCRIPTION: # Return true (0) if manpages are going to be built from source, diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass index ea6ba797036f..87da1fba73c0 100644 --- a/eclass/toolchain.eclass +++ b/eclass/toolchain.eclass @@ -288,6 +288,9 @@ if [[ ${PN} != kgcc64 && ${PN} != gcc-* ]] ; then tc_version_is_at_least 12.2.1_p20221203 ${PV} && IUSE+=" default-znow" tc_version_is_at_least 12.2.1_p20221203 ${PV} && IUSE+=" default-stack-clash-protection" tc_version_is_at_least 13.0.0_pre20221218 ${PV} && IUSE+=" modula2" + # See https://gcc.gnu.org/pipermail/gcc-patches/2023-April/615944.html + # and https://rust-gcc.github.io/2023/04/24/gccrs-and-gcc13-release.html for why + # it was disabled in 13. tc_version_is_at_least 14.0.0_pre20230423 ${PV} && IUSE+=" rust" fi @@ -2113,7 +2116,7 @@ toolchain_src_install() { # # Do the 'make install' from the build directory pushd "${WORKDIR}"/build-jit > /dev/null || die - S="${WORKDIR}"/build-jit emake DESTDIR="${D}" install + S="${WORKDIR}"/build-jit emake DESTDIR="${D}" -j1 install # Punt some tools which are really only useful while building gcc find "${ED}" -name install-tools -prune -type d -exec rm -rf "{}" \; @@ -2127,7 +2130,17 @@ toolchain_src_install() { fi # Do the 'make install' from the build directory - S="${WORKDIR}"/build emake DESTDIR="${D}" install + # + # Unfortunately, we have to use -j1 for make install. Upstream + # don't really test it and there's not much appetite for fixing bugs + # with it. Several reported bugs exist where the resulting image + # was wrong, rather than a simple compile/install failure: + # - bug #906155 + # - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=42980 + # - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51814 + # - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103656 + # - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109898 + S="${WORKDIR}"/build emake DESTDIR="${D}" -j1 install # Punt some tools which are really only useful while building gcc find "${ED}" -name install-tools -prune -type d -exec rm -rf "{}" \; -- cgit v1.2.3