mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-10 14:36:58 +02:00
eclass/toolchain: Sync with Gentoo
It's from Gentoo commit 28fca56a1639578fc58de1e8310b7c94a5e12e09.
This commit is contained in:
parent
df12379571
commit
9abb5d4114
@ -117,6 +117,13 @@ tc_version_is_between() {
|
|||||||
# Ignore missing baseline/reference data and create new baseline.
|
# Ignore missing baseline/reference data and create new baseline.
|
||||||
: "${GCC_TESTS_IGNORE_NO_BASELINE:=}"
|
: "${GCC_TESTS_IGNORE_NO_BASELINE:=}"
|
||||||
|
|
||||||
|
# @ECLASS_VARIABLE: GCC_TESTS_REGEN_BASELINE
|
||||||
|
# @DEFAULT_UNSET
|
||||||
|
# @USER_VARIABLE
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Ignore baseline/reference data and create new baseline.
|
||||||
|
: "${GCC_TESTS_REGEN_BASELINE:=}"
|
||||||
|
|
||||||
# @ECLASS_VARIABLE: GCC_TESTS_CHECK_TARGET
|
# @ECLASS_VARIABLE: GCC_TESTS_CHECK_TARGET
|
||||||
# @USER_VARIABLE
|
# @USER_VARIABLE
|
||||||
# @DESCRIPTION:
|
# @DESCRIPTION:
|
||||||
@ -399,6 +406,12 @@ if tc_has_feature d && tc_version_is_at_least 12.0 ; then
|
|||||||
BDEPEND+=" d? ( || ( sys-devel/gcc[d(-)] <sys-devel/gcc-12[d(-)] ) )"
|
BDEPEND+=" d? ( || ( sys-devel/gcc[d(-)] <sys-devel/gcc-12[d(-)] ) )"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if tc_has_feature rust && tc_version_is_at_least 14.0.0_pre20230421 ; then
|
||||||
|
# This was added upstream in r14-9968-g3e1e73fc995844 as a temporary measure.
|
||||||
|
# See https://inbox.sourceware.org/gcc/34fec7ea-8762-4cac-a1c8-ff54e20e31ed@embecosm.com/
|
||||||
|
BDEPEND+=" rust? ( virtual/rust )"
|
||||||
|
fi
|
||||||
|
|
||||||
PDEPEND=">=sys-devel/gcc-config-2.11"
|
PDEPEND=">=sys-devel/gcc-config-2.11"
|
||||||
|
|
||||||
#---->> S + SRC_URI essentials <<----
|
#---->> S + SRC_URI essentials <<----
|
||||||
@ -1449,7 +1462,7 @@ toolchain_src_configure() {
|
|||||||
# respect USE=graphite here in case the user passes some
|
# respect USE=graphite here in case the user passes some
|
||||||
# graphite flags rather than try strip them out.
|
# graphite flags rather than try strip them out.
|
||||||
$(use_with graphite isl)
|
$(use_with graphite isl)
|
||||||
--without-zstd
|
$(use_with zstd)
|
||||||
--with-system-zlib
|
--with-system-zlib
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -1908,17 +1921,34 @@ toolchain_src_test() {
|
|||||||
# the exit code of targets other than 'check' may be unreliable.
|
# the exit code of targets other than 'check' may be unreliable.
|
||||||
nonfatal emake -C "${WORKDIR}"/build -k "${GCC_TESTS_CHECK_TARGET}" RUNTESTFLAGS="${GCC_TESTS_RUNTESTFLAGS}"
|
nonfatal emake -C "${WORKDIR}"/build -k "${GCC_TESTS_CHECK_TARGET}" RUNTESTFLAGS="${GCC_TESTS_RUNTESTFLAGS}"
|
||||||
|
|
||||||
if [[ -z ${GCC_TESTS_IGNORE_NO_BASELINE} && -f "${GCC_TESTS_COMPARISON_DIR}/${GCC_TESTS_COMPARISON_SLOT}/${CHOST}.xfail" ]] ; then
|
# Produce an updated failure manifest.
|
||||||
|
einfo "Generating a new failure manifest ${T}/${CHOST}.xfail"
|
||||||
|
rm -f "${T}"/${CHOST}.xfail
|
||||||
|
edo "${T}"/validate_failures.py \
|
||||||
|
--srcpath="${S}" \
|
||||||
|
--build_dir="${WORKDIR}"/build \
|
||||||
|
--manifest="${T}"/${CHOST}.xfail \
|
||||||
|
--produce_manifest &> /dev/null
|
||||||
|
|
||||||
|
local manifest="${GCC_TESTS_COMPARISON_DIR}/${GCC_TESTS_COMPARISON_SLOT}/${CHOST}.xfail"
|
||||||
|
|
||||||
|
if [[ -f "${manifest}" ]] ; then
|
||||||
# TODO: Distribute some baseline results in e.g. gcc-patches.git?
|
# TODO: Distribute some baseline results in e.g. gcc-patches.git?
|
||||||
# validate_failures.py manifest files support include directives.
|
# validate_failures.py manifest files support include directives.
|
||||||
einfo "Comparing with previous cached results at GCC_TESTS_COMPARISON_DIR=${GCC_TESTS_COMPARISON_DIR}/${GCC_TESTS_COMPARISON_SLOT}/${CHOST}.xfail"
|
einfo "Comparing with previous cached results at ${manifest}"
|
||||||
|
|
||||||
edo "${T}"/validate_failures.py \
|
nonfatal edo "${T}"/validate_failures.py \
|
||||||
--srcpath="${S}" \
|
--srcpath="${S}" \
|
||||||
--build_dir="${WORKDIR}"/build \
|
--build_dir="${WORKDIR}"/build \
|
||||||
--manifest="${GCC_TESTS_COMPARISON_DIR}/${GCC_TESTS_COMPARISON_SLOT}/${CHOST}.xfail"
|
--manifest="${manifest}"
|
||||||
|
ret=$?
|
||||||
|
|
||||||
|
if [[ -n ${GCC_TESTS_REGEN_BASELINE} ]] ; then
|
||||||
|
eerror "GCC_TESTS_REGEN_BASELINE is set, ignoring test result and creating a new baseline..."
|
||||||
|
elif [[ ${ret} != 0 ]]; then
|
||||||
|
die "Tests failed (failures not listed in the baseline data)"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
# nonfatal first because we want to run again with comparison data if available.
|
|
||||||
nonfatal edo "${T}"/validate_failures.py \
|
nonfatal edo "${T}"/validate_failures.py \
|
||||||
--srcpath="${S}" \
|
--srcpath="${S}" \
|
||||||
--build_dir="${WORKDIR}"/build
|
--build_dir="${WORKDIR}"/build
|
||||||
@ -1926,23 +1956,18 @@ toolchain_src_test() {
|
|||||||
|
|
||||||
# We have no reference data saved from a previous run to know if
|
# We have no reference data saved from a previous run to know if
|
||||||
# the failures are tolerable or not, so we bail out.
|
# the failures are tolerable or not, so we bail out.
|
||||||
eerror "No reference test data at GCC_TESTS_COMPARISON_DIR=${GCC_TESTS_COMPARISON_DIR}/${GCC_TESTS_COMPARISON_SLOT}/${CHOST}.xfail!"
|
eerror "No reference test data at ${manifest}!"
|
||||||
eerror "GCC's tests require a baseline to compare with for any reasonable interpretation of results."
|
eerror "GCC's tests require a baseline to compare with for any reasonable interpretation of results."
|
||||||
|
|
||||||
if [[ -n ${GCC_TESTS_IGNORE_NO_BASELINE} ]] ; then
|
if [[ -n ${GCC_TESTS_IGNORE_NO_BASELINE} ]] ; then
|
||||||
eerror "GCC_TESTS_IGNORE_NO_BASELINE is set, creating new baseline manifest..."
|
eerror "GCC_TESTS_IGNORE_NO_BASELINE is set, ignoring test result and creating a new baseline..."
|
||||||
|
elif [[ -n ${GCC_TESTS_REGEN_BASELINE} ]] ; then
|
||||||
|
eerror "GCC_TESTS_REGEN_BASELINE is set, ignoring test result and creating using a new baseline..."
|
||||||
elif [[ ${ret} != 0 ]]; then
|
elif [[ ${ret} != 0 ]]; then
|
||||||
eerror "(Set GCC_TESTS_IGNORE_NO_BASELINE=1 to make this non-fatal for initial run.)"
|
eerror "(Set GCC_TESTS_IGNORE_NO_BASELINE=1 to make this non-fatal and generate a baseline.)"
|
||||||
die "Tests failed (failures occurred with no reference data)"
|
die "Tests failed (failures occurred with no reference data)"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Produce an updated set of expected results
|
|
||||||
edo "${T}"/validate_failures.py \
|
|
||||||
--srcpath="${S}" \
|
|
||||||
--build_dir="${WORKDIR}"/build \
|
|
||||||
--manifest="${T}"/${CHOST}.xfail \
|
|
||||||
--produce_manifest &> /dev/null
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#---->> src_install <<----
|
#---->> src_install <<----
|
||||||
@ -2325,7 +2350,7 @@ create_revdep_rebuild_entry() {
|
|||||||
#---->> pkg_pre* <<----
|
#---->> pkg_pre* <<----
|
||||||
|
|
||||||
toolchain_pkg_preinst() {
|
toolchain_pkg_preinst() {
|
||||||
if use test ; then
|
if [[ ${MERGE_TYPE} != binary ]] && use test ; then
|
||||||
# Install as orphaned to allow comparison across more versions even
|
# Install as orphaned to allow comparison across more versions even
|
||||||
# after unmerged. Also useful for historical records and tracking
|
# after unmerged. Also useful for historical records and tracking
|
||||||
# down regressions a while after they first appeared, but were only
|
# down regressions a while after they first appeared, but were only
|
||||||
|
Loading…
Reference in New Issue
Block a user