toolchain.eclass: misc fixups

- Revert back to previous MAKEOPTS method which seemed to work better
(weird splitting/parsing issue?)
- Throw in extra bash like we did before, not just relying on CONFIG_SHELL
- Add missing die
- Build JIT variant first, then main variant

Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Sam James
2022-05-29 05:06:07 +01:00
parent 0e6ddb7525
commit b7ca385711

View File

@@ -497,7 +497,7 @@ toolchain_pkg_setup() {
# See https://www.gnu.org/software/make/manual/html_node/Parallel-Output.html
# Avoid really confusing logs from subconfigure spam, makes logs far
# more legible.
MAKEOPTS=" --output-sync=line ${MAKEOPTS}"
MAKEOPTS+=" --output-sync=line"
}
#---->> src_unpack <<----
@@ -1079,7 +1079,7 @@ toolchain_src_configure() {
case ${CTARGET//_/-} in
*-hardfloat-*|*eabihf)
confgcc+=( --with-float=hard )
;;
;;
esac
esac
@@ -1346,7 +1346,7 @@ toolchain_src_configure() {
mkdir -p "${WORKDIR}"/build-jit || die
pushd "${WORKDIR}"/build-jit > /dev/null || die
CONFIG_SHELL="${BROOT}"/bin/bash edo "${S}"/configure \
CONFIG_SHELL="${BROOT}"/bin/bash edo "${BROOT}"/bin/bash "${S}"/configure \
"${confgcc[@]}" \
--disable-libada \
--disable-libsanitizer \
@@ -1363,10 +1363,10 @@ toolchain_src_configure() {
# Older gcc versions did not detect bash and re-exec itself, so force the
# use of bash. Newer ones will auto-detect, but this is not harmful.
CONFIG_SHELL="${BROOT}"/bin/bash edo "${S}"/configure "${confgcc[@]}"
CONFIG_SHELL="${BROOT}"/bin/bash edo "${BROOT}"/bin/bash "${S}"/configure "${confgcc[@]}"
# Return to whatever directory we were in before
popd > /dev/null
popd > /dev/null || die
}
# Replace -m flags unsupported by the version being built with the best
@@ -1691,6 +1691,19 @@ gcc_do_make() {
BOOT_CFLAGS=${BOOT_CFLAGS-"$(get_abi_CFLAGS ${TARGET_DEFAULT_ABI}) ${CFLAGS}"}
fi
if is_jit ; then
# TODO: docs for jit?
pushd "${WORKDIR}"/build-jit > /dev/null || die
einfo "Building JIT"
emake \
LDFLAGS="${LDFLAGS}" \
STAGE1_CFLAGS="${STAGE1_CFLAGS}" \
LIBPATH="${LIBPATH}" \
BOOT_CFLAGS="${BOOT_CFLAGS}"
popd > /dev/null || die
fi
einfo "Compiling ${PN} (${GCC_MAKE_TARGET})..."
pushd "${WORKDIR}"/build >/dev/null
@@ -1735,19 +1748,6 @@ gcc_do_make() {
fi
fi
if is_jit ; then
# TODO: docs for jit?
pushd "${WORKDIR}"/build-jit > /dev/null || die
einfo "Building JIT"
emake \
LDFLAGS="${LDFLAGS}" \
STAGE1_CFLAGS="${STAGE1_CFLAGS}" \
LIBPATH="${LIBPATH}" \
BOOT_CFLAGS="${BOOT_CFLAGS}"
popd > /dev/null || die
fi
popd >/dev/null
}