eclass/toolchain: Sync with Gentoo

It's from Gentoo commit b9c5c7723b11f68319ff9d00a3eeba26c4a22733.
This commit is contained in:
Flatcar Buildbot 2025-01-27 07:08:56 +00:00 committed by Krzesimir Nowak
parent 5085d0dc6f
commit f3b9fa709b

View File

@ -2749,7 +2749,9 @@ gcc_movelibs() {
# code to run on the target. # code to run on the target.
if is_crosscompile ; then if is_crosscompile ; then
dodir "${HOSTLIBPATH#${EPREFIX}}" dodir "${HOSTLIBPATH#${EPREFIX}}"
mv "${ED}"/usr/$(get_libdir)/libcc1* "${D}${HOSTLIBPATH}" || die # XXX: Ideally, we'd use $(get_libdir) here, but it's
# not right for cross. See bug #942573 and bug #794181.
mv "${ED}"/usr/lib*/libcc1* "${D}${HOSTLIBPATH}" || die
fi fi
# libgccjit gets installed to /usr/lib, not /usr/$(get_libdir). Probably # libgccjit gets installed to /usr/lib, not /usr/$(get_libdir). Probably
@ -3153,21 +3155,24 @@ XGCC() { get_make_var GCC_FOR_TARGET ; }
has toolchain_death_notice ${EBUILD_DEATH_HOOKS} || EBUILD_DEATH_HOOKS+=" toolchain_death_notice" has toolchain_death_notice ${EBUILD_DEATH_HOOKS} || EBUILD_DEATH_HOOKS+=" toolchain_death_notice"
toolchain_death_notice() { toolchain_death_notice() {
# TODO: For bootstrap comparison failures, include the stage2 & stage3
# differing objects to avoid having to ask reporters to manually collect...
local dir local dir
for dir in "${WORKDIR}"/build-jit "${WORKDIR}"/build ; do for dir in "${WORKDIR}"/build-jit "${WORKDIR}"/build ; do
if [[ -e "${dir}" ]] ; then if [[ -e "${dir}" ]] ; then
pushd "${WORKDIR}" >/dev/null pushd "${WORKDIR}" >/dev/null
(echo '' | $(tc-getCC ${CTARGET}) ${CFLAGS} -v -E - 2>&1) > "${dir}"/gccinfo.log (echo '' | $(tc-getCC ${CTARGET}) ${CFLAGS} -v -E - 2>&1) > "${dir}"/gccinfo.log
[[ -e "${T}"/build.log ]] && cp "${T}"/build.log "${dir}" [[ -e "${T}"/build.log ]] && cp "${T}"/build.log "${dir}"
tar -arf "${WORKDIR}"/gcc-build-logs.tar.xz \ tar -rf "${WORKDIR}"/gcc-build-logs.tar \
"${dir#${WORKDIR}/}"/gccinfo.log "${dir#${WORKDIR}/}"/build.log $(find -name "${dir}"/config.log) "${dir#${WORKDIR}/}"/gccinfo.log "${dir#${WORKDIR}/}"/build.log $(find "${dir#${WORKDIR}/}" -type f -name "config.log")
rm "${dir}"/gccinfo.log "${dir}"/build.log rm "${dir#${WORKDIR}/}"/gccinfo.log "${dir#${WORKDIR}/}"/build.log
eerror eerror
eerror "Please include ${WORKDIR}/gcc-build-logs.tar.xz in your bug report." eerror "Please include ${WORKDIR}/gcc-build-logs.tar.xz in your bug report."
eerror eerror
popd >/dev/null popd >/dev/null
fi fi
done done
xz -9e "${WORKDIR}"/gcc-build-logs.tar
} }
fi fi