summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRepository mirror & CI <repomirrorci@gentoo.org>2025-12-14 03:45:51 +0000
committerRepository mirror & CI <repomirrorci@gentoo.org>2025-12-14 03:45:51 +0000
commitfef7dce1501b2ca6a9675cb7a7b84ed290a401e7 (patch)
tree979fe362fb1bc89160f0b949a096758061923e6a
parentf464ee1a4925a5f1ae4759193f68a8e16da24363 (diff)
parent2c7ee01f519e78f6c03b3f0453885eedc25ad231 (diff)
downloadgentoo-fef7dce1501b2ca6a9675cb7a7b84ed290a401e7.tar.gz
gentoo-fef7dce1501b2ca6a9675cb7a7b84ed290a401e7.tar.bz2
gentoo-fef7dce1501b2ca6a9675cb7a7b84ed290a401e7.zip
Merge updates from master
-rw-r--r--dev-python/hcloud/hcloud-2.10.0.ebuild2
-rw-r--r--dev-python/lz4/lz4-4.4.5.ebuild2
-rw-r--r--dev-python/psutil/psutil-7.1.3.ebuild2
-rw-r--r--dev-python/pyproject-fmt/pyproject-fmt-2.11.1.ebuild2
-rw-r--r--dev-python/types-psutil/types-psutil-7.0.0.20251111.ebuild2
-rw-r--r--eclass/toolchain.eclass114
-rw-r--r--sys-devel/crossdev/Manifest1
-rw-r--r--sys-devel/crossdev/crossdev-20251214.ebuild46
8 files changed, 112 insertions, 59 deletions
diff --git a/dev-python/hcloud/hcloud-2.10.0.ebuild b/dev-python/hcloud/hcloud-2.10.0.ebuild
index 9c2cd55dbc9d..d48f88ccc192 100644
--- a/dev-python/hcloud/hcloud-2.10.0.ebuild
+++ b/dev-python/hcloud/hcloud-2.10.0.ebuild
@@ -24,7 +24,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="amd64"
IUSE="examples"
RDEPEND="
diff --git a/dev-python/lz4/lz4-4.4.5.ebuild b/dev-python/lz4/lz4-4.4.5.ebuild
index a6e040169b3d..a06a36ffb678 100644
--- a/dev-python/lz4/lz4-4.4.5.ebuild
+++ b/dev-python/lz4/lz4-4.4.5.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm arm64 ~loong ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha ~amd64 arm arm64 ~loong ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
DEPEND="
app-arch/lz4:=
diff --git a/dev-python/psutil/psutil-7.1.3.ebuild b/dev-python/psutil/psutil-7.1.3.ebuild
index ff251dd700e9..76a05241234b 100644
--- a/dev-python/psutil/psutil-7.1.3.ebuild
+++ b/dev-python/psutil/psutil-7.1.3.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
EPYTEST_PLUGINS=( pytest-subtests )
distutils_enable_tests pytest
diff --git a/dev-python/pyproject-fmt/pyproject-fmt-2.11.1.ebuild b/dev-python/pyproject-fmt/pyproject-fmt-2.11.1.ebuild
index 43d943d3638b..a59e7771cfe4 100644
--- a/dev-python/pyproject-fmt/pyproject-fmt-2.11.1.ebuild
+++ b/dev-python/pyproject-fmt/pyproject-fmt-2.11.1.ebuild
@@ -119,7 +119,7 @@ LICENSE+="
|| ( Apache-2.0 Boost-1.0 )
"
SLOT="0"
-KEYWORDS="~amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="~amd64 ~arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
~dev-python/toml-fmt-common-1.1.0[${PYTHON_USEDEP}]
diff --git a/dev-python/types-psutil/types-psutil-7.0.0.20251111.ebuild b/dev-python/types-psutil/types-psutil-7.0.0.20251111.ebuild
index e68ce744552c..f10f0e82ab01 100644
--- a/dev-python/types-psutil/types-psutil-7.0.0.20251111.ebuild
+++ b/dev-python/types-psutil/types-psutil-7.0.0.20251111.ebuild
@@ -13,4 +13,4 @@ HOMEPAGE="https://pypi.org/project/types-psutil/"
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm arm64 ~hppa ~loong ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index 88d5c23061e3..92e48b66979f 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -206,6 +206,12 @@ GCCMICRO=$(ver_cut 3 ${GCC_PV})
# @DESCRIPTION:
# Controls whether fixincludes should be used.
: "${GCC_RUN_FIXINCLUDES:=0}"
+# @ECLASS_VARIABLE: GCC_BUILD_PLUGINS
+# @INTERNAL
+# @DESCRIPTION:
+# Controls whether plugins and libcody's c++-module-mapper are built.
+# Only used for avoiding collisions in some special cross cases.
+: "${GCC_BUILD_PLUGINS:=1}"
tc_use_major_version_only() {
local use_major_version_only=0
@@ -272,17 +278,17 @@ tc_version_is_at_least 8 || die "${ECLASS}: ${GCC_RELEASE_VER} is too old."
PREFIX=${TOOLCHAIN_PREFIX:-${EPREFIX}/usr}
-LIBPATH=${TOOLCHAIN_LIBPATH:-${PREFIX}/lib/gcc/${CTARGET}/${GCC_CONFIG_VER}}
+LIBPATH=${TOOLCHAIN_LIBPATH:-${PREFIX}/lib/gcc/${CTARGET#accel-}/${GCC_CONFIG_VER}}
INCLUDEPATH=${TOOLCHAIN_INCLUDEPATH:-${LIBPATH}/include}
if is_crosscompile ; then
- BINPATH=${TOOLCHAIN_BINPATH:-${PREFIX}/${CHOST}/${CTARGET}/gcc-bin/${GCC_CONFIG_VER}}
+ BINPATH=${TOOLCHAIN_BINPATH:-${PREFIX}/${CHOST}/${CTARGET#accel-}/gcc-bin/${GCC_CONFIG_VER}}
HOSTLIBPATH=${PREFIX}/${CHOST}/${CTARGET}/lib/${GCC_CONFIG_VER}
else
- BINPATH=${TOOLCHAIN_BINPATH:-${PREFIX}/${CTARGET}/gcc-bin/${GCC_CONFIG_VER}}
+ BINPATH=${TOOLCHAIN_BINPATH:-${PREFIX}/${CTARGET#accel-}/gcc-bin/${GCC_CONFIG_VER}}
fi
-DATAPATH=${TOOLCHAIN_DATAPATH:-${PREFIX}/share/gcc-data/${CTARGET}/${GCC_CONFIG_VER}}
+DATAPATH=${TOOLCHAIN_DATAPATH:-${PREFIX}/share/gcc-data/${CTARGET#accel-}/${GCC_CONFIG_VER}}
# Don't install in /usr/include/g++-v3/, but instead to gcc's internal directory.
# We will handle /usr/include/g++-v3/ with gcc-config ...
@@ -658,7 +664,7 @@ toolchain_fetch_git_patches() {
mkdir "${WORKDIR}"/patch || die
mv "${WORKDIR}"/patch.tmp/${PATCH_GCC_VER}/gentoo/* "${WORKDIR}"/patch || die
- if [[ -z ${MUSL_VER} || -d "${WORKDIR}"/musl ]] && [[ ${CTARGET} == *musl* ]] ; then
+ if [[ -z ${MUSL_VER} || -d "${WORKDIR}"/musl ]] && [[ ${CTARGET#accel-} == *musl* ]] ; then
mkdir "${WORKDIR}"/musl || die
mv "${WORKDIR}"/patch.tmp/${PATCH_GCC_VER}/musl/* "${WORKDIR}"/musl || die
fi
@@ -759,7 +765,7 @@ do_gcc_gentoo_patches() {
BRANDING_GCC_PKGVERSION="${BRANDING_GCC_PKGVERSION} p${PATCH_VER}"
fi
- if [[ -n ${MUSL_VER} || -d "${WORKDIR}"/musl ]] && [[ ${CTARGET} == *musl* ]] ; then
+ if [[ -n ${MUSL_VER} || -d "${WORKDIR}"/musl ]] && [[ ${CTARGET#accel-} == *musl* ]] ; then
if [[ ${CATEGORY} == cross-* ]] ; then
# We don't want to apply some patches when cross-compiling.
if [[ -d "${WORKDIR}"/musl/nocross ]] ; then
@@ -780,7 +786,7 @@ do_gcc_gentoo_patches() {
# THIS IS A TEMPORARY SOLUTION AND SHOULD BE REPLACED BY A PROPER FIX.
# Adding it so we can already build stages for further testing. -dilfridge
#
- if [[ ${CTARGET} == m68*-aligned-* ]]; then
+ if [[ ${CTARGET#accel-} == m68*-aligned-* ]]; then
einfo "Hard-wiring m68k -malign-int switch into gcc"
echo '#define DRIVER_SELF_SPECS "-malign-int"' >> "${S}/gcc/config/m68k/m68k.h" || die
fi
@@ -815,7 +821,7 @@ tc_enable_hardened_gcc() {
hardened_gcc_flags+=" -DDEF_GENTOO_ZNOW"
fi
- if _tc_use_if_iuse cet && [[ -z ${CLANG_DISABLE_CET_HACK} && ${CTARGET} == *x86_64*-linux-gnu* ]] ; then
+ if _tc_use_if_iuse cet && [[ -z ${CLANG_DISABLE_CET_HACK} && ${CTARGET#accel-} == *x86_64*-linux-gnu* ]] ; then
einfo "Updating gcc to use x86-64 control flow protection by default ..."
hardened_gcc_flags+=" -DEXTRA_OPTIONS_CF"
fi
@@ -871,7 +877,7 @@ setup_multilib_osdirnames() {
local libdirs="../lib64 ../lib32"
# This only makes sense for some Linux targets
- case ${CTARGET} in
+ case ${CTARGET#accel-} in
x86_64*-linux*) config="i386" ;;
powerpc64*-linux*) config="rs6000" ;;
sparc64*-linux*) config="sparc" ;;
@@ -1156,7 +1162,7 @@ toolchain_setup_ada() {
export CC="$(tc-getCC) -specs=${T}/ada.spec"
- if ver_test ${PV} -lt 13 && [[ ${CTARGET} == hppa* ]] ; then
+ if ver_test ${PV} -lt 13 && [[ ${CTARGET#accel-} == hppa* ]] ; then
# For HPPA, the ada-bootstrap binaries seem to default
# to -fstack-protector still (maybe because of cross-building)
# so we need to override it for <13 (which ignores -fstack-protector)
@@ -1246,7 +1252,7 @@ toolchain_src_configure() {
# "GCC has code to correctly determine the correct value for target
# for nearly all native systems. Therefore, we highly recommend you
# not provide a configure target when configuring a native compiler."
- confgcc+=( --target=${CTARGET} )
+ confgcc+=( --target=${CTARGET#accel-} )
fi
[[ -n ${CBUILD} ]] && confgcc+=( --build=${CBUILD} )
@@ -1401,7 +1407,7 @@ toolchain_src_configure() {
fi
fi
- if tc_version_is_at_least 12 && _tc_use_if_iuse cet && [[ -z ${CLANG_DISABLE_CET_HACK} && ${CTARGET} == x86_64-*-gnu* ]] ; then
+ if tc_version_is_at_least 12 && _tc_use_if_iuse cet && [[ -z ${CLANG_DISABLE_CET_HACK} && ${CTARGET#accel-} == x86_64-*-gnu* ]] ; then
BUILD_CONFIG_TARGETS+=( bootstrap-cet )
fi
@@ -1464,32 +1470,30 @@ toolchain_src_configure() {
avr)
confgcc+=( --enable-shared --disable-threads )
;;
- nvptx*)
+ accel-nvptx*)
needed_libc=newlib
+ # --enable-as-accelerator-for= disables installing
+ # nvtpx-none-cc etc, so we have to split into two
+ # targets: nvptx-none and accel-nvptx-none.
confgcc+=(
# "LTO is not supported for this target"
--disable-lto
+ --enable-as-accelerator-for=${CHOST}
+ --disable-sjlj-exceptions
)
+ ;;
+ nvptx*)
+ needed_libc=newlib
+ confgcc+=(
+ # "LTO is not supported for this target"
+ --disable-lto
- # --enable-as-accelerator-for= seems to disable
- # installing nvtpx-none-cc etc, so we have to
- # avoid passing that for the stage1-build that
- # crossdev does. If we pass it unconditionally,
- # we can't build newlib after building stage1 gcc.
- if has_version ${CATEGORY}/${PN} ; then
- confgcc+=(
- # It's unlikely that anyone will want
- # to build nvptx-none as a pure standalone
- # toolchain (which will be single-threaded, etc).
- #
- # If someone really wants it, we can see about
- # adding a USE=offload or similar based on CTARGET
- # for cross targets. But for now, we always assume
- # we're being built as an offloading compiler (accelerator).
- --enable-as-accelerator-for=${CHOST}
- --disable-sjlj-exceptions
- )
- fi
+ # Avoid colliding with accel-nvptx with libcc1* plugins
+ --disable-plugin
+ # ... and g++-mapper-server
+ --disable-c++-tools
+ )
+ GCC_BUILD_PLUGINS=0
;;
esac
@@ -1500,7 +1504,7 @@ toolchain_src_configure() {
# requires libc
confgcc_no_libc+=( --disable-libatomic )
- if ! has_version ${CATEGORY}/${needed_libc} ; then
+ if ! has_version ${CATEGORY#accel-}/${needed_libc} ; then
confgcc+=(
"${confgcc_no_libc[@]}"
--disable-threads
@@ -1515,13 +1519,13 @@ toolchain_src_configure() {
# The option appeared in gcc-4.2.
confgcc+=( --with-long-double-128 )
fi
- elif has_version "${CATEGORY}/${needed_libc}[headers-only(-)]" ; then
+ elif has_version "${CATEGORY#accel-}/${needed_libc}[headers-only(-)]" ; then
confgcc+=(
"${confgcc_no_libc[@]}"
- --with-sysroot="${PREFIX}"/${CTARGET}
+ --with-sysroot="${PREFIX}"/${CTARGET#accel-}
)
else
- confgcc+=( --with-sysroot="${PREFIX}"/${CTARGET} )
+ confgcc+=( --with-sysroot="${PREFIX}"/${CTARGET#accel-} )
fi
fi
@@ -1565,7 +1569,7 @@ toolchain_src_configure() {
# __cxa_atexit is "essential for fully standards-compliant handling of
# destructors", but apparently requires glibc.
- case ${CTARGET} in
+ case ${CTARGET#accel-} in
nvptx*|*-elf|*-eabi)
confgcc+=( --with-newlib )
;;
@@ -1725,7 +1729,7 @@ toolchain_src_configure() {
# Linux specifically here for bug #946397.
# TODO: amdgcn-amdhsa?
- [[ ${CTARGET} == x86_64*-*-linux-* ]] && confgcc+=(
+ [[ ${CTARGET#accel-} == x86_64*-*-linux-* ]] && confgcc+=(
--enable-offload-defaulted
--enable-offload-targets=nvptx-none
)
@@ -1738,7 +1742,7 @@ toolchain_src_configure() {
# build without a C library, and you can't build that w/o
# already having a compiler...
if ! is_crosscompile || \
- $(unset CC; unset CPP; tc-getCPP ${CTARGET}) -E - <<<"#include <pthread.h>" >& /dev/null
+ $(unset CC; unset CPP; tc-getCPP ${CTARGET#accel-}) -E - <<<"#include <pthread.h>" >& /dev/null
then
confgcc+=( $(use_enable openmp libgomp) )
else
@@ -1757,7 +1761,7 @@ toolchain_src_configure() {
# On some targets USE="ssp -libssp" is an invalid
# configuration as the target libc does not provide
# stack_chk_* functions. Do not disable libssp there.
- case ${CTARGET} in
+ case ${CTARGET#accel-} in
mingw*|*-mingw*)
ewarn "Not disabling libssp"
;;
@@ -1777,8 +1781,8 @@ toolchain_src_configure() {
if in_iuse cet ; then
# Usage: triple_arch triple_env cet_name
enable_cet_for() {
- if [[ ${CTARGET} == ${1}-* ]] ; then
- if use cet && [[ ${CTARGET} == *-${2}* ]]; then
+ if [[ ${CTARGET#accel-} == ${1}-* ]] ; then
+ if use cet && [[ ${CTARGET#accel-} == *-${2}* ]]; then
confgcc+=( --enable-${3} )
else
confgcc+=( --disable-${3} )
@@ -1788,7 +1792,7 @@ toolchain_src_configure() {
enable_cet_for 'x86_64' 'gnu' 'cet'
enable_cet_for 'aarch64' 'gnu' 'standard-branch-protection'
- [[ -n ${CLANG_DISABLE_CET_HACK} || ${CTARGET} == i[34567]86-* ]] && confgcc+=( --disable-cet )
+ [[ -n ${CLANG_DISABLE_CET_HACK} || ${CTARGET#accel-} == i[34567]86-* ]] && confgcc+=( --disable-cet )
fi
if in_iuse systemtap ; then
@@ -1801,7 +1805,7 @@ toolchain_src_configure() {
# We patch this in w/ PR66487-object-lifetime-instrumentation-for-Valgrind.patch,
# so it may not always be available.
if grep -q -- '--enable-valgrind-interop' "${S}"/libgcc/configure.ac ; then
- if ! is_crosscompile || $(unset CC; unset CPP; tc-getCPP ${CTARGET}) -E - <<<"#include <valgrind/memcheck.h>" >& /dev/null ; then
+ if ! is_crosscompile || $(unset CC; unset CPP; tc-getCPP ${CTARGET#accel-}) -E - <<<"#include <valgrind/memcheck.h>" >& /dev/null ; then
confgcc+=( $(use_enable valgrind valgrind-interop) )
else
confgcc+=( --disable-valgrind-interop )
@@ -1867,7 +1871,7 @@ toolchain_src_configure() {
GCC_RUN_FIXINCLUDES=1
fi
- case ${CBUILD}-${CHOST}-${CTARGET} in
+ case ${CBUILD}-${CHOST}-${CTARGET#accel-} in
*-w*-mingw*)
# config/i386/t-cygming requires fixincludes (bug #925204)
GCC_RUN_FIXINCLUDES=1
@@ -1890,7 +1894,7 @@ toolchain_src_configure() {
fi
fi
- if [[ ${CTARGET} != *-darwin* ]] && tc_version_is_at_least 14.1 ; then
+ if [[ ${CTARGET#accel-} != *-darwin* ]] && tc_version_is_at_least 14.1 ; then
# This allows passing -stdlib=libc++ at runtime.
confgcc+=( --with-gxx-libcxx-include-dir="${ESYSROOT}"/usr/include/c++/v1 )
fi
@@ -2210,7 +2214,7 @@ gcc-multilib-configure() {
done
if [[ -n ${list} ]] ; then
- case ${CTARGET} in
+ case ${CTARGET#accel-} in
x86_64*)
confgcc+=( --with-multilib-list=${list:1} )
;;
@@ -2221,7 +2225,7 @@ gcc-multilib-configure() {
gcc-abi-map() {
# Convert the ABI name we use in Gentoo to what gcc uses
local map=()
- case ${CTARGET} in
+ case ${CTARGET#accel-} in
mips*)
map=("o32 32" "n32 n32" "n64 64")
;;
@@ -2377,7 +2381,7 @@ gcc_do_make() {
emake "${emakeargs[@]}" ${GCC_MAKE_TARGET}
if ! is_crosscompile && _tc_use_if_iuse cxx && tc_has_feature doc && _tc_use_if_iuse doc ; then
- cd "${CTARGET}"/libstdc++-v3/doc || die
+ cd "${CTARGET#accel-}"/libstdc++-v3/doc || die
emake doc-man-doxygen
# Clean bogus manpages. bug #113902
@@ -2670,7 +2674,7 @@ toolchain_src_install() {
rm -rf "${ED}"/usr/share/{man,info}
rm -rf "${D}"${DATAPATH}/{man,info}
else
- local cxx_mandir=$(find "${WORKDIR}/build/${CTARGET}/libstdc++-v3" -name man || die)
+ local cxx_mandir=$(find "${WORKDIR}/build/${CTARGET#accel-}/libstdc++-v3" -name man || die)
if [[ -d ${cxx_mandir} ]] ; then
cp -r "${cxx_mandir}"/man? "${D}${DATAPATH}"/man/ || die
fi
@@ -2775,7 +2779,9 @@ gcc_movelibs() {
dodir "${HOSTLIBPATH#${EPREFIX}}"
# 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
+ if [[ ${GCC_BUILD_PLUGINS} == 1 ]] ; then
+ mv "${ED}"/usr/lib*/libcc1* "${D}${HOSTLIBPATH}" || die
+ fi
fi
# libgccjit gets installed to /usr/lib, not /usr/$(get_libdir). Probably
@@ -2808,7 +2814,7 @@ gcc_movelibs() {
"${LIBPATH}"/${OS_MULTIDIR} \
"${LIBPATH}"/../${MULTIDIR} \
"${PREFIX}"/lib/${OS_MULTIDIR} \
- "${PREFIX}"/${CTARGET}/lib/${OS_MULTIDIR}
+ "${PREFIX}"/${CTARGET#accel-}/lib/${OS_MULTIDIR}
do
removedirs="${removedirs} ${FROMDIR}"
FROMDIR=${D}${FROMDIR}
@@ -2825,7 +2831,7 @@ gcc_movelibs() {
# Without this, we end up either unable to find the libgomp spec/archive, or
# we underlink and can't find gomp_nvptx_main (presumably because we can't find the plugin)
# https://src.fedoraproject.org/rpms/gcc/blob/02c34dfa3627ef05d676d30e152a66e77b58529b/f/gcc.spec#_1445
- if [[ ${CTARGET} == nvptx* ]] && has_version ${CATEGORY}/${PN} ; then
+ if [[ ${CATEGORY} == cross-accel-nvptx* ]] && is_fortran ; then
rm -rf "${ED}"/usr/libexec/gcc/nvptx-none/${GCCMAJOR}/install-tools
rm -rf "${ED}"/usr/libexec/gcc/${CHOST}/${GCCMAJOR}/accel/nvptx-none/{install-tools,plugin,cc1,cc1plus,f951}
rm -rf "${ED}"/usr/lib/gcc/nvptx-none/${GCCMAJOR}/{install-tools,plugin}
@@ -3200,7 +3206,7 @@ toolchain_death_notice() {
for dir in "${WORKDIR}"/build ; do
if [[ -e "${dir}" ]] ; then
pushd "${WORKDIR}" >/dev/null
- (echo '' | $(tc-getCC ${CTARGET}) ${CFLAGS} -v -E - 2>&1) > "${dir}"/gccinfo.log
+ (echo '' | $(tc-getCC ${CTARGET#accel-}) ${CFLAGS} -v -E - 2>&1) > "${dir}"/gccinfo.log
[[ -e "${T}"/build.log ]] && cp "${T}"/build.log "${dir}"
tar -rf "${WORKDIR}"/gcc-build-logs.tar \
"${dir#${WORKDIR}/}"/gccinfo.log "${dir#${WORKDIR}/}"/build.log $(find "${dir#${WORKDIR}/}" -type f -name "config.log")
diff --git a/sys-devel/crossdev/Manifest b/sys-devel/crossdev/Manifest
index 1d6909d039aa..80cad371dc9b 100644
--- a/sys-devel/crossdev/Manifest
+++ b/sys-devel/crossdev/Manifest
@@ -1,3 +1,4 @@
DIST crossdev-20250410.tar.xz 33292 BLAKE2B b4c41757ff705866fb3c7420e10d1325977937c50801600002639984dd39b90ebf4fadbde5a09bae02eba2ca17261db32f5275b1599858b2b7c961e3eb85d82f SHA512 aa6c1657d23c96b6109e49ac517dd9550d731f0af508359be55fa8c641675bd4205223eb492e7c94fd69dd86999124d7d0f4766cf1bc17a3dd953f457bf85c9b
DIST crossdev-20250622.tar.xz 33316 BLAKE2B 6e91e757174ce6b5c5f6ec5276725e0432f061ea7c21b0c215998d453deed285c422c1f25c313c80de2d2fe86a00751fbb516f40b63f1bcc25602d3eb0353351 SHA512 bdba3da3724d56b43e0d307b4f9fc00f9680ec541a9397d91f92d237980f7e4b300618e8e8484ee8410ecfd3b0c8854d54057ddb646e2182e407e21c503b9fa9
DIST crossdev-20251008.tar.xz 33852 BLAKE2B 4b689da747d73eb592cd6a1b0913084e28ab9882762a24c3fe90b845247ad13fad2c5e61a9d05312607716dfa464b7f1647eb731def555010bdc9bcdaaffe2a4 SHA512 414f45ede604dd6a770bec9032619f153d585d03a4f967e34b46253fcfaa7cace495f3ddbb00921b5efa4f2e3a6b68db9e15117559e557048203b273a0d29a3e
+DIST crossdev-20251214.tar.xz 33892 BLAKE2B 02a97ef33ad3515a0bca9dd09636fe1b1bc9f5ac47663655cf4343d6b46738bf2281ae14ee28fb02f5c9bfdd06aaca41ef04559c3fcb9595c853a79d56099fae SHA512 a78e1cce83514d46de42a3e55a261e25fca9dbf8c4264a752fe896a8a9ed431db37214d69ec65062b3e981482d6fa7ff4e82e02c881612fd7e0ea1c1c6a6b0a0
diff --git a/sys-devel/crossdev/crossdev-20251214.ebuild b/sys-devel/crossdev/crossdev-20251214.ebuild
new file mode 100644
index 000000000000..5494e3601b77
--- /dev/null
+++ b/sys-devel/crossdev/crossdev-20251214.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+inherit toolchain-funcs
+
+if [[ ${PV} == "99999999" ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="
+ https://anongit.gentoo.org/git/proj/crossdev.git
+ https://github.com/gentoo/crossdev
+ "
+else
+ SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+
+DESCRIPTION="Gentoo Cross-toolchain generator"
+HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Crossdev"
+
+LICENSE="GPL-2"
+SLOT="0"
+
+RDEPEND="
+ >=sys-apps/portage-2.1
+ app-shells/bash
+ sys-apps/gentoo-functions
+ sys-apps/config-site
+"
+BDEPEND="app-arch/xz-utils"
+
+src_install() {
+ tc-export PKG_CONFIG # Bug 955822
+
+ default
+
+ if [[ ${PV} == "99999999" ]] ; then
+ sed -i "s:@CDEVPV@:${EGIT_VERSION}:" "${ED}"/usr/bin/crossdev || die
+ else
+ sed -i "s:@CDEVPV@:${PV}:" "${ED}"/usr/bin/crossdev || die
+ fi
+
+ dodir /usr/share/config.site.d
+ mv "${ED}"/usr/share/config.site{,.d/80crossdev.conf} || die
+}