summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-05-19 04:14:27 +0100
committerV3n3RiX <venerix@koprulu.sector>2023-05-19 04:14:27 +0100
commit55f35733fd2cef66761513953c80be5312563c5f (patch)
tree889102c0f6a9db6ea2e0767fe8790ccb9d2cf40c /eclass
parent6b36d02cbdfea303a1d9bf985b6e8c984c7ac3cf (diff)
gentoo auto-resync : 19:05:2023 - 04:14:27
Diffstat (limited to 'eclass')
-rw-r--r--eclass/Manifest.gzbin37652 -> 37651 bytes
-rw-r--r--eclass/llvm.org.eclass12
-rw-r--r--eclass/toolchain.eclass17
3 files changed, 26 insertions, 3 deletions
diff --git a/eclass/Manifest.gz b/eclass/Manifest.gz
index 6d6f5b83168b..bfaa84c48b05 100644
--- a/eclass/Manifest.gz
+++ b/eclass/Manifest.gz
Binary files 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 "{}" \;