git: 75ee0ced6e5e - main - devel/gcc-arm-embedded: update toolchain to 14.2.rel1 from 2024/12/10

From: Lev A. Serebryakov <lev_at_FreeBSD.org>
Date: Tue, 01 Apr 2025 22:19:29 UTC
The branch main has been updated by lev:

URL: https://cgit.FreeBSD.org/ports/commit/?id=75ee0ced6e5ef64e2893f3d49523ffd997b58e52

commit 75ee0ced6e5ef64e2893f3d49523ffd997b58e52
Author:     Lev A. Serebryakov <lev@FreeBSD.org>
AuthorDate: 2025-04-01 22:10:31 +0000
Commit:     Lev A. Serebryakov <lev@FreeBSD.org>
CommitDate: 2025-04-01 22:18:58 +0000

    devel/gcc-arm-embedded: update toolchain to 14.2.rel1 from 2024/12/10
    
     Build system has been completely revamped.
    
     Now port uses official build scripts with minimal pathing to adopt some
    Linux-isms to FreeBSD.
    
     Two flavors are made: "default" one form AArch32 (ARMv7) ISA and "aarch64"
    for AArch64 (ARMv8) ISA.
    
     AArch32 (default) build supports A-, R- and M-profiles by default, but
    A-profiles can be turned off in options.
    
     AARch64 doesn't have choice of profiles.
    
     gdb is built with python support by default, but can be built without
    one with custom option.
    
     All builds are using included snapshots of all libraries, like
    libgmp, libmpfr, etc. There is no option to use system-wide versions
    of these libraries anymore.
    
     NLS is turned off by vendor and cannot be turned on.
    
     No Linux cross-tools targets are provided for now, this port is
    made to provde bare metal toolchains only.
    
     Binaries are not stripped, as official ones are.
---
 devel/gcc-arm-embedded/Makefile                    |   209 +-
 devel/gcc-arm-embedded/distinfo                    |     8 +-
 devel/gcc-arm-embedded/files/Makefile              |   600 -
 .../files/patch-binutils-gdb--gdb_gdb_Makefile.in  |    16 +
 .../files/patch-binutils-gdb--gdb_gdb_configure    |    10 +
 ...u-devtools-for-arm_build-baremetal-toolchain.sh |    29 +
 ...devtools-for-arm_build-cross-linux-toolchain.sh |    29 +
 ...tch-gnu-devtools-for-arm_build-gnu-toolchain.sh |    11 +
 .../files/patch-gnu-devtools-for-arm_utilities.sh  |    66 +
 .../files/patch-src_gcc_gcc_config_arm_arm.h       |    11 -
 .../files/patch-src_gcc_gcc_system.h               |    42 -
 .../files/patch-src_gcc_gcc_tree-vect-loop.c       |    11 -
 .../files/patch-src_gdb_gdb_dtrace-probe.c         |    11 -
 .../files/patch-src_gdb_gdb_dwarf2_macro.c         |    20 -
 .../files/patch-src_gdb_gdb_probe.c                |    11 -
 .../patch-src_gdb_gdb_python_python-config.py      |    11 -
 .../files/patch-src_gdb_gdb_target-float.c         |    12 -
 devel/gcc-arm-embedded/pkg-descr                   |    28 +-
 devel/gcc-arm-embedded/pkg-plist                   | 11375 ++++++++++---------
 devel/gcc-arm-embedded/pkg-plist.aarch64           |  4557 ++++++++
 20 files changed, 10799 insertions(+), 6268 deletions(-)

diff --git a/devel/gcc-arm-embedded/Makefile b/devel/gcc-arm-embedded/Makefile
index 19b2cdd83825..3a6e370c7fc9 100644
--- a/devel/gcc-arm-embedded/Makefile
+++ b/devel/gcc-arm-embedded/Makefile
@@ -1,9 +1,9 @@
 PORTNAME=	gcc-arm-embedded
-PORTVERSION=	10.3.20210921
-PORTREVISION=	0
+PORTVERSION=	${FULL_VERSION:S/.rel/r/}
+#PORTREVISION=	0
 CATEGORIES=	devel
-MASTER_SITES=	https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/${FULL_VERSION}/
-DISTNAME=	${ORIGINAL_PACKAGE_NAME}-src
+MASTER_SITES=	https://developer.arm.com/-/media/Files/downloads/gnu/${FULL_VERSION}/srcrel/:src
+DISTFILES=	arm-gnu-toolchain-src-snapshot-${FULL_VERSION}.tar.xz:src
 
 MAINTAINER=	lev@FreeBSD.org
 COMMENT=	Complete GCC-based toolcahin for embedded ARM development
@@ -12,141 +12,112 @@ WWW=		https://developer.arm.com/Tools%20and%20Software/GNU%20Toolchain
 LICENSE=	GPLv2 LGPL20 LGPL21 GPLv3 LGPL3
 LICENSE_COMB=	multi
 
-NOT_FOR_ARCHS=		arm armv6 armv7 \
-			mips mips64 mips64el mipsel mipsn32
+NOT_FOR_ARCHS=		arm armv6 armv7 mips mips64 mips64el mipsel mipsn32
 NOT_FOR_ARCHS_REASON=	Very slow to build on emulator
 
-BUILD_DEPENDS=		objdump:devel/binutils
+BUILD_DEPENDS=	bash:shells/bash	\
+		gfind:misc/findutils	\
+		getopt>=0:misc/getopt
 
-OPTIONS_DEFINE=	APROFILE PURE PYGDB EXAMPLES HTML PDF DOCS SYMLINK
-OPTIONS_DEFAULT=PURE PYGDB SYMLINK
-APROFILE_DESC=	Add support for Cortex-A profiles
-PURE_DESC=	Use all libraries from bundle, do not depend on anything
-HTML_DESC=	Install HTML documentation
-PDF_DESC=	Install PDF documentation (requires TeX, it is huge)
-PYGDB_DESC=	Build and install python-enabled gdb in addition to standard one
-SYMLINK_DESC=	Make version-independent symlink ${LOCALBASE}/${PORTNAME}
-
-PURE_LIB_DEPENDS_OFF=	libexpat.so:textproc/expat2 \
-			libgmp.so:math/gmp \
-			libmpfr.so:math/mpfr \
-			libmpc.so:math/mpc \
-			libisl.so:devel/isl
-
-PDF_USES=		tex
-PDF_USE=		TEX=base:build,tex:build,dvipsk:build
-PDF_BUILD_DEPENDS=	texi2dvi:print/texinfo
-PYGDB_USES=		python
+FLAVORS=		default aarch64
+FLAVOR?=		${FLAVORS:[1]}
 
-OPTIONS_SUB=		yes
+aarch64_PKGNAMESUFFIX=	-aarch64
+aarch64_PLIST=		${PKGDIR}/pkg-plist.aarch64
 
-USES=			bison compiler:c++11-lang cpe gmake gettext-runtime \
-			makeinfo tar:bzip2 iconv
+USES=		compiler:c++14-lang cpe gmake libtool:keepla makeinfo \
+		shebangfix tar:xz
 
-GNU_CONFIGURE=	yes
+USE_GITLAB=	nodefault
+GL_SITE=	https://gitlab.arm.com:tools
+GL_ACCOUNT=	tooling:tools
+GL_PROJECT=	gnu-devtools-for-arm:tools
+GL_TAGNAME=	v1.3.0:tools
 
-PATCH_WRKSRC=	${WRKDIR}/${ORIGINAL_PACKAGE_NAME}
-BUILD_WRKSRC=	${WRKDIR}
-
-GCC_VERSION=		10.3.1
-FULL_VERSION=		10.3-2021.10
-TARGET=			arm-none-eabi
-ORIGINAL_PACKAGE_NAME=	gcc-${TARGET}-${FULL_VERSION}
+SHEBANG_FILES=		gnu-devtools-for-arm/*.sh
+USE_PYTHON=		noflavors
 
 CPE_PRODUCT=	gcc
 CPE_VENDOR=	gnu
 CPE_VERSION=	${GCC_VERSION}
 
-INFO_PATH=	${PORTNAME}-${FULL_VERSION}/share/doc/gcc-${TARGET}/info
-INFO=		annotate as bfd binutils cpp cppinternals gcc \
-		gccinstall gccint gdb gprof ld stabs
-
-MANDIRS=	${PREFIX}/${PORTNAME}-${FULL_VERSION}/${DOCS_SUFFIX}/man
-DOCSDIR=	${PREFIX}/${PORTNAME}-${FULL_VERSION}/${DOCS_SUFFIX}
-EXAMPLESDIR=	${PREFIX}/${PORTNAME}-${FULL_VERSION}/share/gcc-${TARGET}/samples
-
-PLIST_SUB+=	TARGET=${TARGET} FULL_VERSION=${FULL_VERSION} \
-		GCC_VERSION=${GCC_VERSION}
-
-DOCS_SUFFIX=	share/doc/gcc-${TARGET}
-SRC_DIR=	${WRKDIR}/${ORIGINAL_PACKAGE_NAME}/src
-BUILD_DIR=	${WRKDIR}/build
-INTERIM_WORLD=	${WRKDIR}/install
-INTERIM_PREFIX=	${INTERIM_WORLD}/${PORTNAME}-${FULL_VERSION}
-
-BUNDLED_LIBS=			EXPAT:bz2 ZLIB:gz LIBELF:gz \
-				GMP:bz2 MPFR:bz2 MPC:gz ISL:xz
-BUNDLED_VERSION_EXPAT=		2.1.1
-BUNDLED_VERSION_ZLIB=		1.2.8
-BUNDLED_VERSION_LIBELF=		0.8.13
-BUNDLED_VERSION_GMP=		6.1.0
-BUNDLED_VERSION_MPFR=		3.1.4
-BUNDLED_VERSION_MPC=		1.0.3
-BUNDLED_VERSION_ISL=		0.18
-
-VAR_TO_SUBMAKE=	BUILD_DIR CC CFLAGS CHOSEN_COMPILER_TYPE CONFIG_SITE \
-		CONFIGURE_MAX_CMD_LEN CONFIGURE_SHELL CP CPP CPPFLAGS CXX \
-		CXXFLAGS DOCS_SUFFIX ECHO_MSG EXAMPLESDIR FILE FIND GMAKE \
-		GCC_VERSION GREP MAKE_CMD MAKE_SHELL PATCH \
-		INSTALL_MACROS INTERIM_PREFIX INTERIM_WORLD LD LDFLAGS LIBDIR \
-		LN LOCALBASE MAKE_JOBS_NUMBER MKDIR ORIGINAL_PACKAGE_NAME \
-		PORT_OPTIONS PREFIX PYTHON_CMD RM SED SH SRC_DIR STRIP_CMD TAR \
-		TARGET WRKDIR CONFIGURE_TARGET
-
-VAR_TO_SUBMAKE_NOEXPAND=	CONFIGURE_ENV MAKE_ENV
+OPTIONS_DEFINE=	APROFILE PYGDB SYMLINK
+OPTIONS_DEFAULT=APROFILE PYGDB SYMLINK
+APROFILE_DESC=	Add support for Cortex-A profiles (valid only for default armv7 target)
+PYGDB_DESC=	Build and install python-enabled gdb in addition to standard one
+SYMLINK_DESC=	Make version-independent symlink ${LOCALBASE}/${PORTNAME}${PKGNAMESUFFX}
+
+PYGDB_USES=	python
+OPTIONS_SUB=	yes
 
-.include <bsd.port.pre.mk>
+WRKSRC=		${WRKDIR}/src
+NO_WRKSUBDIR=	yes
 
-#.if ${PORT_OPTIONS:MPURE}
-#IGNORE=	PURE option is not valid anymore, no libraries are bundled
-#.endif
+GCC_VERSION=	14.2.1
+FULL_VERSION=	14.2.rel1
+DIR_NAME=	${PORTNAME}${PKGNAMESUFFIX}-${FULL_VERSION}
 
-.if ${OPSYS} == FreeBSD
-USE_GCC=	13
+.if ${FLAVOR:U} != aarch64
+TARGET=			arm-none-eabi
+NEWLIB_NANO_BUILD_OP=	--enable-newlib-nano
+MULTILIB_BUILD_OP=	--config-flags-gcc=--with-multilib-list=${MULTILIBS}
+.else
+TARGET=			aarch64-none-elf
+NEWLIB_NANO_BUILD_OP=
+MULTILIB_BUILD_OP=
 .endif
 
-post-extract:
-.if ${PORT_OPTIONS:MPURE}
-.for L in ${BUNDLED_LIBS}
-	@${ECHO_MSG} "====>  Extracting bundled ${L:C/[:].+//:tl}"
-	@${TAR} -xf ${SRC_DIR}/${L:C/[:].+//:tl}-${BUNDLED_VERSION_${L:C/[:].+//}}.tar.${L:C/.+[:]//} -C ${SRC_DIR}
-.endfor
+PLIST_SUB+=	GCC_VERSION=${GCC_VERSION} FULL_VERSION=${FULL_VERSION} TARGET=${TARGET}
+
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MPYGDB}
+PYGDB_BUILD_OPT=	--enable-gdb-with-python=${PYTHON_CMD}
+.else
+PYGDB_BUILD_OPT=
 .endif
-	@${ECHO_MSG} "====>  Extracting bundled binutils"
-	@${TAR} -xf ${SRC_DIR}/binutils.tar.bz2 -C ${SRC_DIR}
-	@${ECHO_MSG} "====>  Extracting bundled GCC"
-	@${TAR} -xf ${SRC_DIR}/gcc.tar.bz2 -C ${SRC_DIR}
-	@${ECHO_MSG} "====>  Extracting bundled GDB"
-	@${TAR} -xf ${SRC_DIR}/gdb.tar.bz2 -C ${SRC_DIR}
-	@${ECHO_MSG} "====>  Extracting bundled newlib"
-	@${TAR} -xf ${SRC_DIR}/newlib.tar.bz2 -C ${SRC_DIR}
-
-do-configure:
-	@${RM} -r ${BUILD_DIR}
-	@${MKDIR} ${BUILD_DIR}
-	@${RM} -r ${INTERIM_PREFIX}
-	@${MKDIR} ${INTERIM_PREFIX}
-	@${CP} ${FILESDIR}/Makefile ${WRKDIR}
-	@${RM} ${WRKDIR}/Makefile.inc
-.for VAR in ${VAR_TO_SUBMAKE}
-	@${ECHO} '${VAR}=${${VAR}}' >> ${WRKDIR}/Makefile.inc
-.endfor
-.for L in ${BUNDLED_LIBS}
-	@${ECHO} -n 'BUNDLED_VERSION_${L:C/[:].+//}='   >> ${WRKDIR}/Makefile.inc
-	@${ECHO}    '${BUNDLED_VERSION_${L:C/[:].+//}}' >> ${WRKDIR}/Makefile.inc
-.endfor
-.for VAR in ${VAR_TO_SUBMAKE_NOEXPAND}
-	@${ECHO} -n '${VAR}='                          >> ${WRKDIR}/Makefile.inc
-	@${MAKE} .MAKE.EXPAND_VARIABLES=0 -X -V ${VAR} >> ${WRKDIR}/Makefile.inc
-.endfor
 
-do-build:
-	@${MAKE} -C ${WRKDIR}
+.if ${PORT_OPTIONS:MAPROFILE}
+MULTILIBS=	aprofile,rmprofile
+.else
+MULTILIBS=	rmprofile
+.endif
+
+INFO_PATH=	${DIR_NAME}/share/info
+INFO=		annotate as bfd binutils cpp cppinternals ctf-spec gcc gccinstall \
+		gccint gdb gfortran gprof ld ldint porting sframe-spec stabs
+
+MANDIRS=	${PREFIX}/${DIR_NAME}/share/man
+
+.include <bsd.port.pre.mk>
 
+post-extract:
+	@${MV} ${WRKSRC}/gnu-devtools-for-arm-${GL_TAGNAME_tools} ${WRKSRC}/gnu-devtools-for-arm
+
+do-build:
+	PATH=${WRKSRC}/gnu-devtools-for-arm:${PATH}			\
+	installdir=${WRKDIR}/${DIR_NAME}				\
+	LOCALBASE="${LOCALBASE}"					\
+	 ${WRKSRC}/gnu-devtools-for-arm/build-baremetal-toolchain.sh 	\
+		 -j ${MAKE_JOBS_NUMBER}					\
+		 --builddir=${WRKDIR}/build				\
+		 --target=${TARGET}					\
+		 --check-gdb						\
+		 --with-language=fortran				\
+		 ${MULTILIB_BUILD_OP}					\
+		 --srcdir=${WRKSRC}					\
+		 --release						\
+		 --no-package						\
+		 ${NEWLIB_NANO_BUILD_OP}				\
+		 ${PYGDB_BUILD_OPT}					\
+		 start
+
+# It is possible to istall by script directly ${STAGEDIR}${PREFIX}/${PKGNAME}
+# and avoid this step, but then `restage` will not work.
 do-install:
-	@${TAR} -cf - -C ${WRKDIR}/install ${PORTNAME}-${FULL_VERSION} | ${TAR} -xf - -C ${STAGEDIR}${PREFIX}
-.if ${PORT_OPTIONS:MSYMLINK}
-	@${LN} -s ${PORTNAME}-${FULL_VERSION} ${STAGEDIR}${PREFIX}/${PORTNAME}
-.endif
+	@cd ${WRKDIR} && ${PAX} -l -r -w ${DIR_NAME} ${STAGEDIR}${PREFIX}
+
+post-install-SYMLINK-on:
+	@${LN} -s ${PKGNAME} ${STAGEDIR}${PREFIX}/${PORTNAME}${PKGNAMESUFFIX}
 
 .include <bsd.port.post.mk>
diff --git a/devel/gcc-arm-embedded/distinfo b/devel/gcc-arm-embedded/distinfo
index 5702dede4fba..a3a76ee1a303 100644
--- a/devel/gcc-arm-embedded/distinfo
+++ b/devel/gcc-arm-embedded/distinfo
@@ -1,3 +1,5 @@
-TIMESTAMP = 1649877811
-SHA256 (gcc-arm-none-eabi-10.3-2021.10-src.tar.bz2) = 94e582e4dd3a6014dea0485be0377c6478bd3c9e1301190f05810aa2ad989cbf
-SIZE (gcc-arm-none-eabi-10.3-2021.10-src.tar.bz2) = 201152632
+TIMESTAMP = 1743428897
+SHA256 (arm-gnu-toolchain-src-snapshot-14.2.rel1.tar.xz) = e6405f20f8a817a50d92dbf7974d0ee77708dfdf9e79900a59c5d343b464ef9c
+SIZE (arm-gnu-toolchain-src-snapshot-14.2.rel1.tar.xz) = 311500280
+SHA256 (gnu-devtools-for-arm-v1.3.0.tar.bz2) = 89fdac5e73bff3673d930fdc8c1807d7548bd978900ff8d2fd45125984626dc2
+SIZE (gnu-devtools-for-arm-v1.3.0.tar.bz2) = 744557
diff --git a/devel/gcc-arm-embedded/files/Makefile b/devel/gcc-arm-embedded/files/Makefile
deleted file mode 100644
index fa2e68724683..000000000000
--- a/devel/gcc-arm-embedded/files/Makefile
+++ /dev/null
@@ -1,600 +0,0 @@
-.include "Makefile.inc"
-
-.if ${PORT_OPTIONS:MAPROFILE}
-MULTILIB_LIST=	rmprofile,aprofile
-.else
-MULTILIB_LIST=	rmprofile
-.endif
-
-PKGVERSION=	GNU Arm Embedded Toolchain ${FULL_VERSION}
-
-BUILD_PREFIX=	${WRKDIR}/build
-DOC_PREFIX=	${INTERIM_PREFIX}/${DOCS_SUFFIX}
-
-.if ${PORT_OPTIONS:MPURE}
-WORLD_LIB=${INTERIM_WORLD}
-.else
-WORLD_LIB=${LOCALBASE}
-.endif
-
-LDFLAGS+=	-L${WORLD_LIB}/lib
-
-.if ${OPSYS} == FreeBSD
-MAKE_ARGS+=     CFLAGS="-Wno-error -Wno-deprecated-register" CXXFLAGS="-Wno-error -Wno-deprecated-register"
-.else
-.if ${CHOSEN_COMPILER_TYPE} == clang
-MAKE_ARGS+=     CFLAGS="-Wno-error -fbracket-depth=512 -Wno-deprecated-register" CXXFLAGS="-Wno-error -fbracket-depth=512 -Wno-deprecated-register"
-.endif
-.endif
-
-MISC_DOCS=	license.txt readme.txt release.txt
-
-.if ${PORT_OPTIONS:MPURE}
-PREREQUISITES=	expat \
-		zlib \
-		libelf \
-		gmp \
-		mpfr \
-		mpc \
-		isl
-.else
-PREREQUISITES=
-.endif
-
-.if ${PORT_OPTIONS:MPYGDB}
-_pygdb=		build-pygdb
-.else
-_pygdb=
-.endif
-
-COMMON_GDB_CONFIGURE_ARGS= \
-	 --target=${TARGET} \
-	 --prefix=${INTERIM_PREFIX} \
-	 --infodir=${DOC_PREFIX}/info \
-	 --mandir=${DOC_PREFIX}/man \
-	 --htmldir=${DOC_PREFIX}/html \
-	 --pdfdir=${DOC_PREFIX}/pdf \
-	 --disable-nls \
-	 --disable-sim \
-	 --disable-gas \
-	 --disable-binutils \
-	 --disable-ld \
-	 --disable-gprof \
-	 --with-libexpat \
-	 --with-libexpat-prefix=${WORLD_LIB} \
-	 --with-lzma=no \
-	 --with-system-gdbinit=${INTERIM_PREFIX}/${CONFIGURE_TARGET}/${TARGET}/lib/gdbinit \
-	 --with-gdb-datadir='$${prefix}/${TARGET}/share/gdb' \
-	 --with-pkgversion="${PKGVERSION}"
-
-ALL_BUILD=	build-binutils \
-		build-gcc-first \
-		build-newlib \
-		build-newlib-nano \
-		build-gcc-final \
-		build-libstdcxx \
-		build-gdb  \
-		${_pygdb} \
-		install-samples \
-		install-misc \
-		strip-binaries \
-		strip-target-libraries
-
-.PHONY: ${PREREQUISITES} ${ALL_BUILD}
-
-all: ${PREREQUISITES} ${ALL_BUILD}
-
-expat:
-	@${ECHO_MSG} "====>  Build expat"
-	@${RM} -rf ${BUILD_PREFIX}/expat
-	@${MKDIR} ${BUILD_PREFIX}/expat
-	@${ECHO_MSG} "=====>  Configure"
-	@cd ${BUILD_PREFIX}/expat && \
-	 ${MAKE_ENV} ${CONFIGURE_ENV} ${SRC_DIR}/expat-${BUNDLED_VERSION_EXPAT}/configure \
-	 --build=${CONFIGURE_TARGET} \
-	 --host=${CONFIGURE_TARGET} \
-	 --target=${TARGET} \
-	 --prefix=${INTERIM_WORLD} \
-	 --disable-shared \
-	 --disable-nls
-	@${ECHO_MSG} "=====>  Build"
-	@${MAKE_ENV} ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/expat all ${MAKE_ARGS}
-	@${ECHO_MSG} "=====>  Install into intermediate directory"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/expat install ${MAKE_ARGS}
-
-zlib:
-	@${ECHO_MSG} "====>  Build zlib"
-	@${RM} -rf ${BUILD_PREFIX}/zlib
-	@${MKDIR} ${BUILD_PREFIX}/zlib
-	@${ECHO_MSG} "=====>  Copy to build dir"
-	@${TAR} -cf - -C ${SRC_DIR}/zlib-${BUNDLED_VERSION_ZLIB} . | ${TAR} -xf - -C ${BUILD_PREFIX}/zlib
-	@${ECHO_MSG} "=====>  Configure"
-	@cd ${BUILD_PREFIX}/zlib && \
-	 ${MAKE_ENV} ${CONFIGURE_ENV} ./configure \
-	 --static \
-	 --prefix=${INTERIM_WORLD}
-	@${ECHO_MSG} "=====>  Build"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/zlib ${MAKE_ARGS}
-	@${ECHO_MSG} "=====>  Install into intermediate directory"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/zlib install ${MAKE_ARGS}
-
-libelf:
-	@${ECHO_MSG} "====>  Build libelf"
-	@${RM} -rf ${BUILD_PREFIX}/libelf
-	@${MKDIR} ${BUILD_PREFIX}/libelf
-	@${ECHO_MSG} "=====>  Configure"
-	@cd ${BUILD_PREFIX}/libelf && \
-	 ${MAKE_ENV} ${CONFIGURE_ENV} ${SRC_DIR}/libelf-${BUNDLED_VERSION_LIBELF}/configure \
-	 --prefix=${INTERIM_WORLD} \
-	 --build=${CONFIGURE_TARGET} \
-	 --host=${CONFIGURE_TARGET} \
-	 --disable-shared \
-	 --disable-nls
-	@${ECHO_MSG} "=====>  Build"
-	@${MAKE_ENV} ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/libelf all ${MAKE_ARGS}
-	@${ECHO_MSG} "=====>  Install into intermediate directory"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/libelf install ${MAKE_ARGS}
-
-gmp:
-	@${ECHO_MSG} "====>  Build gmp"
-	@${RM} -rf ${BUILD_PREFIX}/gmp
-	@${MKDIR} ${BUILD_PREFIX}/gmp
-	@${ECHO_MSG} "=====>  Configure"
-	@cd ${BUILD_PREFIX}/gmp && \
-	 ${MAKE_ENV} ${CONFIGURE_ENV} ${SRC_DIR}/gmp-${BUNDLED_VERSION_GMP}/configure \
-	 --build=${CONFIGURE_TARGET} \
-	 --host=${CONFIGURE_TARGET} \
-	 --prefix=${INTERIM_WORLD} \
-	 --enable-cxx \
-	 --disable-shared \
-	 --disable-nls
-	@${ECHO_MSG} "=====>  Build"
-	@${MAKE_ENV} ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/gmp all ${MAKE_ARGS}
-	@${ECHO_MSG} "=====>  Install into intermediate directory"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/gmp install ${MAKE_ARGS}
-
-mpfr:
-	@${ECHO_MSG} "====>  Build mpfr"
-	@${RM} -rf ${BUILD_PREFIX}/mpfr
-	@${MKDIR} ${BUILD_PREFIX}/mpfr
-	@${ECHO_MSG} "=====>  Configure"
-	@cd ${BUILD_PREFIX}/mpfr && \
-	 ${MAKE_ENV} ${CONFIGURE_ENV} ${SRC_DIR}/mpfr-${BUNDLED_VERSION_MPFR}/configure \
-	 --build=${CONFIGURE_TARGET} \
-	 --host=${CONFIGURE_TARGET} \
-	 --target=${TARGET} \
-	 --prefix=${INTERIM_WORLD} \
-	 --with-gmp=${INTERIM_WORLD} \
-	 --disable-shared \
-	 --disable-nls
-	@${ECHO_MSG} "=====>  Build"
-	@${MAKE_ENV} ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/mpfr all ${MAKE_ARGS}
-	@${ECHO_MSG} "=====>  Install into intermediate directory"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/mpfr install ${MAKE_ARGS}
-
-mpc:
-	@${ECHO_MSG} "====>  Build mpc"
-	@${RM} -rf ${BUILD_PREFIX}/mpc
-	@${MKDIR} ${BUILD_PREFIX}/mpc
-	@${ECHO_MSG} "=====>  Configure"
-	@cd ${BUILD_PREFIX}/mpc && \
-	 ${MAKE_ENV} ${CONFIGURE_ENV} ${SRC_DIR}/mpc-${BUNDLED_VERSION_MPC}/configure \
-	 --build=${CONFIGURE_TARGET} \
-	 --host=${CONFIGURE_TARGET} \
-	 --target=${TARGET} \
-	 --prefix=${INTERIM_WORLD} \
-	 --with-gmp=${INTERIM_WORLD} \
-	 --with-mpfr=${INTERIM_WORLD} \
-	 --disable-shared \
-	 --disable-nls
-	@${ECHO_MSG} "=====>  Build"
-	@${MAKE_ENV} ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/mpc all ${MAKE_ARGS}
-	@${ECHO_MSG} "=====>  Install into intermediate directory"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/mpc install ${MAKE_ARGS}
-
-isl:
-	@${ECHO_MSG} "====>  Build isl"
-	@${RM} -rf ${BUILD_PREFIX}/isl
-	@${MKDIR} ${BUILD_PREFIX}/isl
-	@${ECHO_MSG} "=====>  Configure"
-	@cd ${BUILD_PREFIX}/isl && \
-	 ${MAKE_ENV} ${CONFIGURE_ENV} ${SRC_DIR}/isl-${BUNDLED_VERSION_ISL}/configure \
-	 --build=${CONFIGURE_TARGET} \
-	 --host=${CONFIGURE_TARGET} \
-	 --target=${TARGET} \
-	 --prefix=${INTERIM_WORLD} \
-	 --with-gmp-prefix=${INTERIM_WORLD} \
-	 --disable-shared \
-	 --disable-nls
-	@${ECHO_MSG} "=====>  Build"
-	@${MAKE_ENV} ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/isl all ${MAKE_ARGS}
-	@${ECHO_MSG} "=====>  Install into intermediate directory"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/isl install ${MAKE_ARGS}
-
-build-binutils:
-	@${ECHO_MSG} "====>  Build binutils"
-	@${RM} -rf ${BUILD_PREFIX}/binutils
-	@${MKDIR} ${BUILD_PREFIX}/binutils
-	@${ECHO_MSG} "=====>  Configure"
-	@cd ${BUILD_PREFIX}/binutils && \
-	 ${MAKE_ENV} ${CONFIGURE_ENV} ${SRC_DIR}/binutils/configure \
-	 --target=${TARGET} \
-	 --prefix=${INTERIM_PREFIX} \
-	 --infodir=${DOC_PREFIX}/info \
-	 --mandir=${DOC_PREFIX}/man \
-	 --htmldir=${DOC_PREFIX}/html \
-	 --pdfdir=${DOC_PREFIX}/pdf \
-	 --disable-nls \
-	 --disable-werror \
-	 --disable-sim \
-	 --disable-gdb \
-	 --enable-interwork \
-	 --enable-plugins \
-	 --with-sysroot=${INTERIM_PREFIX}/${TARGET} \
-	 --with-pkgversion="${PKGVERSION}"
-	@${ECHO_MSG} "=====>  Build"
-	@${MAKE_ENV} ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/binutils all ${MAKE_ARGS}
-	@${ECHO_MSG} "=====>  Install into stage directory"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/binutils install ${MAKE_ARGS}
-	@${ECHO_MSG} "=====>  Prepare working area for library builds"
-	@${MKDIR} ${BUILD_PREFIX}/target-libs
-	@${TAR} -cf - -C ${INTERIM_PREFIX} . | ${TAR} -xf - -C ${BUILD_PREFIX}/target-libs
-.if ${PORT_OPTIONS:MHTML} && ${PORT_OPTIONS:MDOCS}
-	@${ECHO_MSG} "=====>  Build HTML documentation"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/binutils html ${MAKE_ARGS}
-	@${ECHO_MSG} "=====>  Install HTML documentation into stage directory"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/binutils install-html ${MAKE_ARGS}
-.endif
-.if ${PORT_OPTIONS:MPDF} && ${PORT_OPTIONS:MDOCS}
-	@${ECHO_MSG} "=====>  Build PDF documentation"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/binutils pdf ${MAKE_ARGS}
-	@${ECHO_MSG} "=====>  Install PDF documentation into stage directory"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/binutils install-pdf ${MAKE_ARGS}
-.endif
-	@${ECHO_MSG} "=====>  Cleanup installation"
-	@${RM} -rf ${INTERIM_PREFIX}/lib
-
-build-gcc-first:
-	@${ECHO_MSG} "====>  Build preliminary gcc"
-	@${RM} -rf ${BUILD_PREFIX}/gcc-first
-	@${MKDIR} ${BUILD_PREFIX}/gcc-first
-	@${ECHO_MSG} "=====>  Configure"
-	@cd ${BUILD_PREFIX}/gcc-first && \
-	 ${MAKE_ENV} ${CONFIGURE_ENV} ${SRC_DIR}/gcc/configure \
-	 --target=${TARGET} \
-	 --prefix=${INTERIM_PREFIX} \
-	 --infodir=${DOC_PREFIX}/info \
-	 --mandir=${DOC_PREFIX}/man \
-	 --htmldir=${DOC_PREFIX}/html \
-	 --pdfdir=${DOC_PREFIX}/pdf \
-	 --libexecdir=${INTERIM_PREFIX}/lib \
-	 --with-gmp=${WORLD_LIB} \
-	 --with-mpfr=${WORLD_LIB} \
-	 --with-mpc=${WORLD_LIB} \
-	 --with-isl=${WORLD_LIB} \
-	 --with-libelf=${WORLD_LIB} \
-	 --enable-languages=c \
-	 --disable-decimal-float \
-	 --disable-libffi \
-	 --disable-libgomp \
-	 --disable-libmudflap \
-	 --disable-libquadmath \
-	 --disable-libssp \
-	 --disable-libstdcxx-pch \
-	 --disable-nls \
-	 --disable-shared \
-	 --disable-threads \
-	 --disable-tls \
-	 --with-newlib \
-	 --without-headers \
-	 --with-gnu-as \
-	 --with-gnu-ld \
-	 --with-python-dir=share/gcc-${TARGET} \
-	 --with-sysroot=${INTERIM_PREFIX}/${TARGET} \
-	 --with-multilib-list=${MULTILIB_LIST} \
-	 --with-host-libstdcxx="-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm" \
-	 --with-pkgversion="${PKGVERSION}"
-	@${ECHO_MSG} "=====>  Build"
-	@${MAKE_ENV} ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/gcc-first all-gcc ${MAKE_ARGS}
-	@${ECHO_MSG} "=====>  Install into stage directory"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/gcc-first install-gcc ${MAKE_ARGS}
-	@${RM} -f ${INTERIM_PREFIX}/bin/${TARGET}-gccbug
-	@${RM} -f ${INTERIM_PREFIX}/lib/libiberty.a
-	@${RM} -rf ${INTERIM_PREFIX}/include
-
-build-newlib:
-	@${ECHO_MSG} "====>  Build newlib"
-	@${RM} -rf ${BUILD_PREFIX}/newlib
-	@${MKDIR} ${BUILD_PREFIX}/newlib
-	@${ECHO_MSG} "=====>  Configure"
-	@cd ${BUILD_PREFIX}/newlib && \
-	 ${MAKE_ENV} ${CONFIGURE_ENV} PATH="${INTERIM_PREFIX}/bin:${PATH}" CFLAGS_FOR_TARGET="-g -O2 -ffunction-sections -fdata-sections" \
-	  ${SRC_DIR}/newlib/configure \
-	 --target=${TARGET} \
-	 --prefix=${INTERIM_PREFIX} \
-	 --infodir=${DOC_PREFIX}/info \
-	 --mandir=${DOC_PREFIX}/man \
-	 --htmldir=${DOC_PREFIX}/html \
-	 --pdfdir=${DOC_PREFIX}/pdf \
-	 --enable-newlib-io-long-long \
-	 --enable-newlib-io-c99-formats \
-	 --enable-newlib-register-fini \
-	 --enable-newlib-retargetable-locking \
-	 --disable-newlib-supplied-syscalls \
-	 --disable-nls
-	@${ECHO_MSG} "=====>  Build"
-	@${MAKE_ENV} PATH="${INTERIM_PREFIX}/bin:${PATH}" ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/newlib all
-	@${ECHO_MSG} "=====>  Install into stage directory"
-	@${MAKE_ENV} PATH="${INTERIM_PREFIX}/bin:${PATH}" ${MAKE_CMD} -C ${BUILD_PREFIX}/newlib install
-.if ${PORT_OPTIONS:MHTML} && ${PORT_OPTIONS:MDOCS}
-	@${ECHO_MSG} "=====>  Build HTML documentation"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/newlib html ${MAKE_ARGS}
-	@${ECHO_MSG} "=====>  Install HTML documentation into stage directory"
-	@${MKDIR} ${DOC_PREFIX}/html/libc
-	@${TAR} -cf - -C ${BUILD_PREFIX}/newlib/${TARGET}/newlib/libc/libc.html . | ${TAR} -xf - -C ${DOC_PREFIX}/html/libc
-	@${MKDIR} ${DOC_PREFIX}/html/libm
-	@${TAR} -cf - -C ${BUILD_PREFIX}/newlib/${TARGET}/newlib/libm/libm.html . | ${TAR} -xf - -C ${DOC_PREFIX}/html/libm
-.endif
-.if ${PORT_OPTIONS:MPDF} && ${PORT_OPTIONS:MDOCS}
-	@${ECHO_MSG} "=====>  Build PDF documentation (ignore errors)"
-	@-${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/newlib/${TARGET}/newlib/libc pdf ${MAKE_ARGS}
-	@-${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/newlib/${TARGET}/newlib/libm pdf ${MAKE_ARGS}
-	@${ECHO_MSG} "=====>  Install PDF documentation into stage directory"
-	@${CP} -f ${BUILD_PREFIX}/newlib/${TARGET}/newlib/libc/libc.pdf ${DOC_PREFIX}/pdf/libc.pdf
-	@${CP} -f ${BUILD_PREFIX}/newlib/${TARGET}/newlib/libm/libm.pdf ${DOC_PREFIX}/pdf/libm.pdf
-.endif
-
-build-newlib-nano:
-	@${ECHO_MSG} "====>  Build newlib-nano"
-	@${RM} -rf ${BUILD_PREFIX}/newlib-nano
-	@${MKDIR} ${BUILD_PREFIX}/newlib-nano
-	@${ECHO_MSG} "=====>  Configure"
-	@cd ${BUILD_PREFIX}/newlib-nano && \
-	 ${MAKE_ENV} ${CONFIGURE_ENV} PATH="${INTERIM_PREFIX}/bin:${PATH}" CFLAGS_FOR_TARGET="-g -Os -ffunction-sections -fdata-sections" \
-	  ${SRC_DIR}/newlib/configure \
-	 --target=${TARGET} \
-	 --prefix=${BUILD_PREFIX}/target-libs \
-	 --infodir=${DOC_PREFIX}/info \
-	 --mandir=${DOC_PREFIX}/man \
-	 --htmldir=${DOC_PREFIX}/html \
-	 --pdfdir=${DOC_PREFIX}/pdf \
-	 --disable-newlib-supplied-syscalls    \
-	 --enable-newlib-reent-check-verify    \
-	 --enable-newlib-reent-small           \
-	 --enable-newlib-retargetable-locking  \
-	 --disable-newlib-fvwrite-in-streamio  \
-	 --disable-newlib-fseek-optimization   \
-	 --disable-newlib-wide-orient          \
-	 --enable-newlib-nano-malloc           \
-	 --disable-newlib-unbuf-stream-opt     \
-	 --enable-lite-exit                    \
-	 --enable-newlib-global-atexit         \
-	 --enable-newlib-nano-formatted-io     \
-	 --disable-nls
-	@${ECHO_MSG} "=====>  Build"
-	@${MAKE_ENV} PATH="${INTERIM_PREFIX}/bin:${PATH}" ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/newlib-nano all
-	@${ECHO_MSG} "=====>  Install into intermediate directory"
-	@${MAKE_ENV} PATH="${INTERIM_PREFIX}/bin:${PATH}" ${MAKE_CMD} -C ${BUILD_PREFIX}/newlib-nano install
-
-build-gcc-final:
-	@${ECHO_MSG} "====>  Build final gcc and g++"
-	@${RM} -f ${INTERIM_PREFIX}/${TARGET}/usr
-	@${LN} -s . ${INTERIM_PREFIX}/${TARGET}/usr
-	@${RM} -rf ${BUILD_PREFIX}/gcc-final
-	@${MKDIR} ${BUILD_PREFIX}/gcc-final
-	@${ECHO_MSG} "=====>  Configure"
-	@cd ${BUILD_PREFIX}/gcc-final && \
-	 ${MAKE_ENV} ${CONFIGURE_ENV} ${SRC_DIR}/gcc/configure \
-	 --target=${TARGET} \
-	 --prefix=${INTERIM_PREFIX} \
-	 --infodir=${DOC_PREFIX}/info \
-	 --mandir=${DOC_PREFIX}/man \
-	 --htmldir=${DOC_PREFIX}/html \
-	 --pdfdir=${DOC_PREFIX}/pdf \
-	 --libexecdir=${INTERIM_PREFIX}/lib \
-	 --with-gmp=${WORLD_LIB} \
-	 --with-mpfr=${WORLD_LIB} \
-	 --with-mpc=${WORLD_LIB} \
-	 --with-isl=${WORLD_LIB} \
-	 --with-libelf=${WORLD_LIB} \
-	 --enable-languages=c,c++ \
-	 --enable-plugins \
-	 --disable-decimal-float \
-	 --disable-libffi \
-	 --disable-libgomp \
-	 --disable-libmudflap \
-	 --disable-libquadmath \
-	 --disable-libssp \
-	 --disable-libstdcxx-pch \
-	 --disable-nls \
-	 --disable-shared \
-	 --disable-threads \
-	 --disable-tls \
-	 --with-gnu-as \
-	 --with-gnu-ld \
-	 --with-newlib \
-	 --with-headers=yes \
-	 --with-python-dir=share/gcc-${TARGET} \
-	 --with-sysroot=${INTERIM_PREFIX}/${TARGET} \
-	 --with-multilib-list=${MULTILIB_LIST} \
-	 --with-host-libstdcxx="-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm" \
-	 --with-pkgversion="${PKGVERSION}"
-	@${ECHO_MSG} "=====>  Build"
-	@${MAKE_ENV} ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/gcc-final INHIBIT_LIBC_CFLAGS="-DUSE_TM_CLONE_REGISTRY=0" all ${MAKE_ARGS}
-	@${ECHO_MSG} "=====>  Install into stage directory"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/gcc-final install ${MAKE_ARGS}
-.if ${PORT_OPTIONS:MHTML} && ${PORT_OPTIONS:MDOCS}
-	@${ECHO_MSG} "=====>  Build HTML documentation"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/gcc-final html ${MAKE_ARGS}
-	@${ECHO_MSG} "=====>  Install HTML documentation into stage directory"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/gcc-final install-html ${MAKE_ARGS}
-.endif
-.if ${PORT_OPTIONS:MPDF} && ${PORT_OPTIONS:MDOCS}
-	@${ECHO_MSG} "=====>  Build PDF documentation"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/gcc-final pdf ${MAKE_ARGS}
-	@${ECHO_MSG} "=====>  Install PDF documentation into stage directory"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/gcc-final install-pdf ${MAKE_ARGS}
-.endif
-	@${ECHO_MSG} "=====>  Cleanup installation"
-	@${RM} -f ${INTERIM_PREFIX}/bin/${TARGET}-gccbug
-	@${FIND} ${INTERIM_PREFIX}/${TARGET}/lib -name libiberty.a -delete
-	@${RM} -f ${INTERIM_PREFIX}/lib/libiberty.a
-	@${RM} -rf ${INTERIM_PREFIX}/include
-	@${RM} -f ${INTERIM_PREFIX}/${TARGET}/usr
-
-build-libstdcxx:
-	@${ECHO_MSG} "====>  Build size-optimized C++ runtime"
-	@${RM} -f ${BUILD_PREFIX}/target-libs/${TARGET}/usr
-	@${LN} -s . ${BUILD_PREFIX}/target-libs/${TARGET}/usr
-	@${RM} -rf ${BUILD_PREFIX}/gcc-size-libstdcxx
-	@${MKDIR} ${BUILD_PREFIX}/gcc-size-libstdcxx
-	@${ECHO_MSG} "=====>  Configure"
-	@cd ${BUILD_PREFIX}/gcc-size-libstdcxx && \
-	 ${MAKE_ENV} ${CONFIGURE_ENV} ${SRC_DIR}/gcc/configure \
-	 --target=${TARGET} \
-	 --prefix=${BUILD_PREFIX}/target-libs \
-	 --infodir=${DOC_PREFIX}/info \
-	 --mandir=${DOC_PREFIX}/man \
-	 --htmldir=${DOC_PREFIX}/html \
-	 --pdfdir=${DOC_PREFIX}/pdf \
-	 --with-gmp=${WORLD_LIB} \
-	 --with-mpfr=${WORLD_LIB} \
-	 --with-mpc=${WORLD_LIB} \
-	 --with-isl=${WORLD_LIB} \
-	 --with-libelf=${WORLD_LIB} \
-	 --enable-languages=c++ \
-	 --disable-decimal-float \
-	 --disable-libffi \
-	 --disable-libgomp \
-	 --disable-libmudflap \
-	 --disable-libquadmath \
-	 --disable-libssp \
-	 --disable-libstdcxx-pch \
-	 --disable-libstdcxx-verbose \
-	 --disable-nls \
-	 --disable-shared \
-	 --disable-threads \
-	 --disable-tls \
-	 --with-gnu-as \
-	 --with-gnu-ld \
-	 --with-newlib \
-	 --with-headers=yes \
-	 --with-python-dir=share/gcc-${TARGET} \
-	 --with-sysroot=${BUILD_PREFIX}/target-libs/${TARGET} \
-	 --with-multilib-list=${MULTILIB_LIST} \
-	 --with-host-libstdcxx="-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm" \
-	 --with-pkgversion="${PKGVERSION}"
-	@${ECHO_MSG} "=====>  Build"
-	@${MAKE_ENV} ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/gcc-size-libstdcxx \
-	 CXXFLAGS_FOR_TARGET="-g -Os -ffunction-sections -fdata-sections -fno-exceptions" all-target-libstdc++-v3 ${MAKE_ARGS}
-	@${ECHO_MSG} "=====>  Install into intermediate directory"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/gcc-size-libstdcxx install-target-libstdc++-v3 ${MAKE_ARGS}
-	@${ECHO_MSG} "=====>  Copy all target libraries into stage directory"
-	@for multilib in $$(${INTERIM_PREFIX}/bin/${TARGET}-gcc -print-multi-lib) ; do \
-	  multilib_dir=$${multilib%%;*} ; \
-	  for srclib in libstdc++.a libsupc++.a libc.a libg.a librdimon.a nano.specs rdimon.specs nosys.specs ; do \
-	    dstlib=$$(echo "$${srclib}" | ${SED} 's/\.a$$/_nano.a/') ; \
-	    ${CP} -f ${BUILD_PREFIX}/target-libs/${TARGET}/lib/$${multilib_dir}/$${srclib} ${INTERIM_PREFIX}/${TARGET}/lib/$${multilib_dir}/$${dstlib} ; \
-	  done ; \
-	  ${CP} -f ${BUILD_PREFIX}/target-libs/${TARGET}/lib/$${multilib_dir}/*crt0.o  ${INTERIM_PREFIX}/${TARGET}/lib/$${multilib_dir}/ ; \
-	 done
-	@${MKDIR} ${INTERIM_PREFIX}/${TARGET}/include/newlib-nano
-	@${CP} ${BUILD_PREFIX}/target-libs/${TARGET}/include/newlib.h ${INTERIM_PREFIX}/${TARGET}/include/newlib-nano/newlib.h
-
-build-gdb:
-	@${ECHO_MSG} "====>  Build gdb"
-	@${RM} -rf ${BUILD_PREFIX}/gdb
-	@${MKDIR} ${BUILD_PREFIX}/gdb
-	@${ECHO_MSG} "=====>  Configure"
-	@cd ${BUILD_PREFIX}/gdb && \
-	 ${MAKE_ENV} ${CONFIGURE_ENV} ${SRC_DIR}/gdb/configure \
-	 ${COMMON_GDB_CONFIGURE_ARGS} \
-	 --with-python=no
-	@${ECHO_MSG} "=====>  Build"
-	@${MAKE_ENV} ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/gdb all ${MAKE_ARGS}
-	@${ECHO_MSG} "=====>  Install into stage directory"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/gdb install ${MAKE_ARGS}
-	@${RM} -rf ${INTERIM_PREFIX}/include
-.if ${PORT_OPTIONS:MHTML} && ${PORT_OPTIONS:MDOCS}
-	@${ECHO_MSG} "=====>  Build HTML documentation"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/gdb html ${MAKE_ARGS}
-	@${ECHO_MSG} "=====>  Install HTML documentation into stage directory"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/gdb install-html ${MAKE_ARGS}
-.endif
-.if ${PORT_OPTIONS:MPDF} && ${PORT_OPTIONS:MDOCS}
-	@${ECHO_MSG} "=====>  Build PDF documentation"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/gdb pdf ${MAKE_ARGS}
-	@${ECHO_MSG} "=====>  Install PDF documentation into stage directory"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/gdb install-pdf ${MAKE_ARGS}
-.endif
-
-build-pygdb:
-	@${ECHO_MSG} "====>  Build py-gdb"
-	@${RM} -rf ${BUILD_PREFIX}/py-gdb
-	@${MKDIR} ${BUILD_PREFIX}/py-gdb
-	@${ECHO_MSG} "=====>  Configure"
-	@cd ${BUILD_PREFIX}/py-gdb && \
-	 ${MAKE_ENV} ${CONFIGURE_ENV} ${SRC_DIR}/gdb/configure \
-	 ${COMMON_GDB_CONFIGURE_ARGS} \
-	 --with-python=${PYTHON_CMD} \
-	 --program-prefix=${TARGET}- --program-suffix=-py
-	@${ECHO_MSG} "=====>  Build"
-	@${MAKE_ENV} ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/py-gdb all ${MAKE_ARGS}
-	@${ECHO_MSG} "=====>  Install into stage directory"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/py-gdb install ${MAKE_ARGS}
-	@${RM} -rf ${INTERIM_PREFIX}/include
-.if ${PORT_OPTIONS:MHTML} && ${PORT_OPTIONS:MDOCS}
-	@${ECHO_MSG} "=====>  Build HTML documentation"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/gdb html ${MAKE_ARGS}
-	@${ECHO_MSG} "=====>  Install HTML documentation into stage directory"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/gdb install-html ${MAKE_ARGS}
-.endif
-.if ${PORT_OPTIONS:MPDF} && ${PORT_OPTIONS:MDOCS}
-	@${ECHO_MSG} "=====>  Build PDF documentation"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/gdb pdf ${MAKE_ARGS}
-	@${ECHO_MSG} "=====>  Install PDF documentation into stage directory"
-	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/gdb install-pdf ${MAKE_ARGS}
-.endif
-
-install-samples:
-.if ${PORT_OPTIONS:MEXAMPLES}
-	@${ECHO_MSG} "====>  Install samples into stage directory"
-	@${TAR} -xf ${SRC_DIR}/samples.tar.bz2 -C ${INTERIM_PREFIX}/share/gcc-${TARGET}
-.else
-	@${DO_NADA}
-.endif
-
-install-misc:
-.if ${PORT_OPTIONS:MDOCS}
-	@${ECHO_MSG} "====>  Install misc. files into stage directory"
-	@for doc in ${MISC_DOCS} ; do \
-	 ${CP} -f ${WRKDIR}/${ORIGINAL_PACKAGE_NAME}/$${doc} ${DOC_PREFIX}/ ; \
-	 done
-.else
-	@${DO_NADA}
-.endif
-
-strip-binaries:
-	@${ECHO_MSG} "====>  Strip host binaries"
-	@for bin in $$(${FIND} ${INTERIM_PREFIX}/bin -type f -name ${TARGET}-\*) ; do \
-	   if ! ${FILE} $$bin | ${GREP} -qs ': ELF' ; then continue ; fi ; \
-	   ${STRIP_CMD} $${bin} ; \
-	 done
-	@for bin in $$(${FIND} ${INTERIM_PREFIX}/${TARGET}/bin -type f -maxdepth 1 -mindepth 1) ; do \
-	   if ! ${FILE} $$bin | ${GREP} -qs ': ELF' ; then continue ; fi ; \
-	   ${STRIP_CMD} $${bin} ; \
-	 done
-	@${STRIP_CMD} ${INTERIM_PREFIX}/lib/libcc1.so.0
-	@for bin in $$(${FIND} ${INTERIM_PREFIX}/lib/gcc/${TARGET}/${GCC_VERSION} -perm +111 -and ! -type d) ; do \
-	   if ! ${FILE} $$bin | ${GREP} -qs ': ELF' ; then continue ; fi ; \
-	   ${STRIP_CMD} $${bin} ; \
-	 done
-
-strip-target-libraries:
-	@${ECHO_MSG} "====>  Strip target libraries"
-	@for target in $$(${FIND} ${INTERIM_PREFIX}/${TARGET}/lib ${INTERIM_PREFIX}/lib/gcc/${TARGET}/${GCC_VERSION} -type f -name \*.a -o -name \*.o) ; do \
-	   ${INTERIM_PREFIX}/bin/${TARGET}-objcopy -R .comment -R .note -R .debug_info -R .debug_aranges -R .debug_pubnames -R .debug_pubtypes -R .debug_abbrev -R .debug_line -R .debug_str -R .debug_ranges -R .debug_loc $${target} ; \
-	done
-	@${ECHO_MSG} "====>  Remove *.la files and other leftovers"
-	@${FIND} ${INTERIM_PREFIX} -name \*.la -delete
-	@${RM} -f ${INTERIM_PREFIX}/lib/charset.alias ${INTERIM_PREFIX}/lib/libiberty.a
diff --git a/devel/gcc-arm-embedded/files/patch-binutils-gdb--gdb_gdb_Makefile.in b/devel/gcc-arm-embedded/files/patch-binutils-gdb--gdb_gdb_Makefile.in
new file mode 100644
index 000000000000..a74ebcd39c20
--- /dev/null
+++ b/devel/gcc-arm-embedded/files/patch-binutils-gdb--gdb_gdb_Makefile.in
@@ -0,0 +1,16 @@
+--- binutils-gdb--gdb/gdb/Makefile.in.orig	2024-11-30 00:01:16 UTC
++++ binutils-gdb--gdb/gdb/Makefile.in
+@@ -676,11 +676,11 @@ INTERNAL_LDFLAGS = \
+ CLIBS = $(SIM) $(READLINE) $(OPCODES) $(LIBCTF) $(BFD) $(ZLIB) $(ZSTD_LIBS) \
+         $(LIBSUPPORT) $(INTL) $(LIBIBERTY) $(LIBDECNUMBER) \
+ 	$(XM_CLIBS) $(GDBTKLIBS)  $(LIBBACKTRACE_LIB) \
+-	@LIBS@ @GUILE_LIBS@ @PYTHON_LIBS@ $(AMD_DBGAPI_LIBS) \
++	@LIBS@ @GUILE_LIBS@ $(AMD_DBGAPI_LIBS) \
+ 	$(LIBEXPAT) $(LIBLZMA) $(LIBBABELTRACE) $(LIBIPT) \
+ 	$(WIN32LIBS) $(LIBGNU) $(LIBGNU_EXTRA_LIBS) $(LIBICONV) \
+ 	$(GMPLIBS) $(SRCHIGH_LIBS) $(LIBXXHASH) $(PTHREAD_LIBS) \
+-	$(DEBUGINFOD_LIBS) $(LIBBABELTRACE_LIB)
++	$(DEBUGINFOD_LIBS) $(LIBBABELTRACE_LIB) @PYTHON_LIBS@
+ CDEPS = $(NAT_CDEPS) $(SIM) $(BFD) $(READLINE_DEPS) $(CTF_DEPS) \
+ 	$(OPCODES) $(INTL_DEPS) $(LIBIBERTY) $(CONFIG_DEPS) $(LIBGNU) \
+ 	$(LIBSUPPORT)
diff --git a/devel/gcc-arm-embedded/files/patch-binutils-gdb--gdb_gdb_configure b/devel/gcc-arm-embedded/files/patch-binutils-gdb--gdb_gdb_configure
new file mode 100644
index 000000000000..7469f54e731f
--- /dev/null
+++ b/devel/gcc-arm-embedded/files/patch-binutils-gdb--gdb_gdb_configure
@@ -0,0 +1,10 @@
+--- binutils-gdb--gdb/gdb/configure.orig	2025-03-31 18:36:01 UTC
++++ binutils-gdb--gdb/gdb/configure
+@@ -28123,6 +28123,7 @@
+ 
+ 
+   new_CPPFLAGS=${python_includes}
++  python_libs="-L$python_prefix/lib $python_libs"
+   new_LIBS=${python_libs}
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for python" >&5
+ $as_echo_n "checking for python... " >&6; }
diff --git a/devel/gcc-arm-embedded/files/patch-gnu-devtools-for-arm_build-baremetal-toolchain.sh b/devel/gcc-arm-embedded/files/patch-gnu-devtools-for-arm_build-baremetal-toolchain.sh
new file mode 100644
index 000000000000..9e4b2dede0a1
--- /dev/null
+++ b/devel/gcc-arm-embedded/files/patch-gnu-devtools-for-arm_build-baremetal-toolchain.sh
@@ -0,0 +1,29 @@
+--- gnu-devtools-for-arm/build-baremetal-toolchain.sh.orig	2025-03-31 10:59:01 UTC
++++ gnu-devtools-for-arm/build-baremetal-toolchain.sh
+@@ -263,7 +263,7 @@ flag_morello=0
+ check_targets="check-binutils check-ld check-gas check-gcc check-g++ check-target-libatomic check-target-libstdc++-v3 check-gdb"
+ check_nano_targets="check-gcc-nano check-g++-nano check-target-libstdc++-v3-nano"
+ # Parse command-line options
+-args=$(getopt -ohj:l:x -l bugurl:,builddir:,config-flags-binutils:,config-flags-gcc:,config-flags-host-tools:,config-flags-qemu:,debug,debug-target,dejagnu-site:,dejagnu-src:,enable-gdb,enable-gdb-with-python:,disable-gdb,enable-gcc,disable-gcc,enable-binutils,disable-binutils,enable-newlib,disable-newlib,enable-maintainer-mode,disable-maintainer-mode,enable-newlib-nano,disable-newlib-nano,enable-newlib-nano-check,disable-newlib-nano-check,enable-qemu,disable-qemu,help,host-toolchain-path:,ldflags-for-target:,ldflags-for-nano-target:,newlib-installdir:,package,no-package,qemu-test-path:,release,no-release,resultdir:,srcdir:,tag:,tardir:,target:,target-board:,timestamp:,with-language:,check-gdb,no-check-gdb,morello,host: -n $(basename "$0") -- "$@")
++args=$(${LOCALBASE}/bin/getopt -ohj:l:x -l bugurl:,builddir:,config-flags-binutils:,config-flags-gcc:,config-flags-host-tools:,config-flags-qemu:,debug,debug-target,dejagnu-site:,dejagnu-src:,enable-gdb,enable-gdb-with-python:,disable-gdb,enable-gcc,disable-gcc,enable-binutils,disable-binutils,enable-newlib,disable-newlib,enable-maintainer-mode,disable-maintainer-mode,enable-newlib-nano,disable-newlib-nano,enable-newlib-nano-check,disable-newlib-nano-check,enable-qemu,disable-qemu,help,host-toolchain-path:,ldflags-for-target:,ldflags-for-nano-target:,newlib-installdir:,package,no-package,qemu-test-path:,release,no-release,resultdir:,srcdir:,tag:,tardir:,target:,target-board:,timestamp:,with-language:,check-gdb,no-check-gdb,morello,host: -n $(basename "$0") -- "$@")
+ eval set -- "$args"
+ while [ $# -gt 0 ]; do
+   if [ -n "${opt_prev:-}" ]; then
+@@ -1305,7 +1305,7 @@ while true; do
+     ( ulimit -v $memlimit &&
+       RUNTESTFLAGS="$RUNTESTFLAGS" \
+       DEJAGNU_TIMEOUT=$timelimit toolchain_prefix="$installdir$prefix" \
+-      make -C "$objdir/binutils" $parallel -k "$stage" \
*** 16885 LINES SKIPPED ***