summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2023-09-29 02:02:21 +0100
committerSam James <sam@gentoo.org>2023-09-30 10:38:41 +0100
commit612556c3f23ac08ac76187a81fe3f0cc6acc4a9f (patch)
tree3ab4e6eb5ea7f475433c3909a1a9b2d625df105d /eclass
parenttoolchain.eclass: support bootstrap-O3 (diff)
downloadgentoo-612556c3f23ac08ac76187a81fe3f0cc6acc4a9f.tar.gz
gentoo-612556c3f23ac08ac76187a81fe3f0cc6acc4a9f.tar.bz2
gentoo-612556c3f23ac08ac76187a81fe3f0cc6acc4a9f.zip
toolchain.eclass: tidy up USE=jit build
* Pass --disable-fixincludes for newer GCCs for USE=jit (still need to try disable it in general when we can, but we had to turn it on for a bit because of newer glibc) as it's pointless there. * Disable a bunch of other options for the JIT build, imported from my local script for bisecting GCC. * While at it, use an array for the configure args for the JIT build and just use emake -C. Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'eclass')
-rw-r--r--eclass/toolchain.eclass52
1 files changed, 36 insertions, 16 deletions
diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index 90a6098445f5..90576f2067ea 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -1354,20 +1354,43 @@ toolchain_src_configure() {
if is_jit ; then
einfo "Configuring JIT gcc"
+ local confgcc_jit=(
+ "${confgcc[@]}"
+
+ --disable-analyzer
+ --disable-bootstrap
+ --disable-cet
+ --disable-default-pie
+ --disable-default-ssp
+ --disable-gcov
+ --disable-libada
+ --disable-libatomic
+ --disable-libgomp
+ --disable-libitm
+ --disable-libquadmath
+ --disable-libsanitizer
+ --disable-libssp
+ --disable-libstdcxx-pch
+ --disable-libvtv
+ --disable-lto
+ --disable-nls
+ --disable-objc-gc
+ --disable-systemtap
+ --enable-host-shared
+ --enable-languages=jit
+ --without-isl
+ --without-zstd
+ --with-system-zlib
+ )
+
+ if tc_version_is_at_least 13.1 ; then
+ confgcc_jit+=( --disable-fixincludes )
+ fi
+
mkdir -p "${WORKDIR}"/build-jit || die
pushd "${WORKDIR}"/build-jit > /dev/null || die
- CONFIG_SHELL="${gcc_shell}" edo "${gcc_shell}" "${S}"/configure \
- "${confgcc[@]}" \
- --disable-libada \
- --disable-libsanitizer \
- --disable-libvtv \
- --disable-libgomp \
- --disable-libquadmath \
- --disable-libatomic \
- --disable-lto \
- --disable-bootstrap \
- --enable-host-shared \
- --enable-languages=jit
+
+ CONFIG_SHELL="${gcc_shell}" edo "${gcc_shell}" "${S}"/configure "${confgcc_jit[@]}"
popd > /dev/null || die
fi
@@ -1701,11 +1724,8 @@ gcc_do_make() {
if is_jit ; then
# TODO: docs for jit?
- pushd "${WORKDIR}"/build-jit > /dev/null || die
-
einfo "Building JIT"
- emake "${emakeargs[@]}"
- popd > /dev/null || die
+ emake -C "${WORKDIR}"/build-jit "${emakeargs[@]}"
fi
einfo "Compiling ${PN} (${GCC_MAKE_TARGET})..."