git: e28fe2856c58 - main - devel/freebsd-gcc9: Add flavors for armv6 and armv7.

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Fri, 20 May 2022 17:14:29 UTC
The branch main has been updated by jhb (doc, src committer):

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

commit e28fe2856c588c82752fef2becbb2a43709aab42
Author:     John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2022-05-20 17:08:04 +0000
Commit:     John Baldwin <jhb@FreeBSD.org>
CommitDate: 2022-05-20 17:08:04 +0000

    devel/freebsd-gcc9: Add flavors for armv6 and armv7.
    
    These build GCC compilers for the armv6 and armv7 architectures
    suitable for use with CROSS_TOOLCHAIN.  These toolchains use
    the existing arm_gnueabi flavor of binutils.
    
    Differential Revision:  https://reviews.freebsd.org/D35110
---
 devel/freebsd-gcc9/Makefile               | 27 ++++++++++++++++++++-------
 devel/freebsd-gcc9/files/xtoolchain.mk.in |  2 +-
 devel/freebsd-gcc9/pkg-plist.arm_gnueabi  | 14 ++++++++++++++
 3 files changed, 35 insertions(+), 8 deletions(-)

diff --git a/devel/freebsd-gcc9/Makefile b/devel/freebsd-gcc9/Makefile
index 0ba517e1c288..32a202748df3 100644
--- a/devel/freebsd-gcc9/Makefile
+++ b/devel/freebsd-gcc9/Makefile
@@ -12,14 +12,14 @@ COMMENT=	Cross GNU Compiler Collection for ${TARGETARCH}
 LICENSE=	GPLv3 GPLv3RLE
 LICENSE_COMB=	multi
 
-BUILD_DEPENDS=	${BU_PREFIX}-as:devel/binutils@${TARGETARCH} \
+BUILD_DEPENDS=	${BU_PREFIX}-as:devel/binutils@${BU_FLAVOR} \
 		objdump:devel/binutils
 LIB_DEPENDS=	libgmp.so:math/gmp \
 		libmpfr.so:math/mpfr \
 		libmpc.so:math/mpc
-RUN_DEPENDS=	${BU_PREFIX}-as:devel/binutils@${TARGETARCH}
+RUN_DEPENDS=	${BU_PREFIX}-as:devel/binutils@${BU_FLAVOR}
 
-FLAVORS=	aarch64 amd64 i386 mips mips64 powerpc powerpc64 riscv64 sparc64
+FLAVORS=	aarch64 amd64 armv6 armv7 i386 mips mips64 powerpc powerpc64 riscv64 sparc64
 TARGETARCH=	${FLAVOR}
 
 USES=		compiler:c++11-lang cpe gmake iconv libtool makeinfo tar:xz
@@ -32,12 +32,11 @@ PLIST_SUB=	OPSYS=${OPSYS:tl} \
 		GCC_VERSION=${PORTVERSION}
 
 SUB_FILES=	xtoolchain.mk
-SUB_LIST=	GCC_TARGET=${GCC_TARGET} \
+SUB_LIST=	BU_PREFIX=${BU_PREFIX} \
+		GCC_TARGET=${GCC_TARGET} \
 		SUFFIX=${SUFFIX}
 
-GCC_TARGET=	${FLAVOR:S/amd64/x86_64/}-unknown-${OPSYS:tl}${OSREL}
 SUFFIX=		${PORTVERSION:C/([0-9]+).*/\1/}
-BU_PREFIX=	${GCC_TARGET}
 
 GNU_CONFIGURE=	yes
 CONFIGURE_OUTSOURCE=	yes
@@ -60,6 +59,17 @@ INSTALL_TARGET=	install-gcc
 
 .include <bsd.port.pre.mk>
 
+.if ${TARGETARCH:Marm*}
+TARGET_ABI=	gnueabi
+BU_FLAVOR=	arm_${TARGET_ABI}
+BU_PREFIX=	arm-${TARGET_ABI}-${OPSYS:tl}${OSREL}
+.else
+TARGET_ABI=	unknown
+BU_FLAVOR=	${TARGETARCH}
+BU_PREFIX=	${GCC_TARGET}
+.endif
+GCC_TARGET=	${TARGETARCH:S/amd64/x86_64/}-${TARGET_ABI}-${OPSYS:tl}${OSREL}
+
 post-patch:
 	@${REINPLACE_CMD} -e '/LIBSTDCXX/ s/stdc\+\+/c\+\+/g ' \
 		${WRKSRC}//gcc/cp/g++spec.c
@@ -72,7 +82,7 @@ CONFIGURE_TARGET=	x86_64-unknown-${OPSYS:tl}${OSREL}
 CONFIGURE_TARGET=	${ARCH}-unknown-${OPSYS:tl}${OSREL}
 .endif
 
-.if ${TARGETARCH} == "armv6" || ${TARGETARCH} == "aarch64"
+.if ${TARGETARCH:Marm*} || ${TARGETARCH} == "aarch64"
 . if ${COMPILER_TYPE} == clang
 MAKE_ARGS+=CXXFLAGS=-fbracket-depth=512
 . endif
@@ -102,6 +112,9 @@ PLIST+=		${.CURDIR}/pkg-plist.aarch64
 .if ${TARGETARCH} == "aarch64" || ${TARGETARCH:Marm*}
 PLIST+=		${.CURDIR}/pkg-plist.arm
 .endif
+.if ${TARGETARCH:Marm*}
+PLIST+=		${.CURDIR}/pkg-plist.arm_gnueabi
+.endif
 .if ${TARGETARCH} == "amd64"
 PLIST+=		${.CURDIR}/pkg-plist.amd64
 .endif
diff --git a/devel/freebsd-gcc9/files/xtoolchain.mk.in b/devel/freebsd-gcc9/files/xtoolchain.mk.in
index afdb4a198c86..7cacd42f1609 100644
--- a/devel/freebsd-gcc9/files/xtoolchain.mk.in
+++ b/devel/freebsd-gcc9/files/xtoolchain.mk.in
@@ -1,5 +1,5 @@
 XCC=%%LOCALBASE%%/bin/%%GCC_TARGET%%-gcc%%SUFFIX%%
 XCXX=%%LOCALBASE%%/bin/%%GCC_TARGET%%-g++%%SUFFIX%%
 XCPP=%%LOCALBASE%%/bin/%%GCC_TARGET%%-cpp%%SUFFIX%%
-CROSS_BINUTILS_PREFIX=%%LOCALBASE%%/%%GCC_TARGET%%/bin/
+CROSS_BINUTILS_PREFIX=%%LOCALBASE%%/%%BU_PREFIX%%/bin/
 X_COMPILER_TYPE=gcc
diff --git a/devel/freebsd-gcc9/pkg-plist.arm_gnueabi b/devel/freebsd-gcc9/pkg-plist.arm_gnueabi
new file mode 100644
index 000000000000..f2fd8dcb095b
--- /dev/null
+++ b/devel/freebsd-gcc9/pkg-plist.arm_gnueabi
@@ -0,0 +1,14 @@
+lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/arm_cmse.h
+lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/mmintrin.h
+lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/include/unwind-arm-common.h
+%%PLUGINS%%lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/arm-cpu.h
+%%PLUGINS%%lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/arm-isa.h
+%%PLUGINS%%lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/arm/aout.h
+%%PLUGINS%%lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/arm/arm-flags.h
+%%PLUGINS%%lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/arm/arm-opts.h
+%%PLUGINS%%lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/arm/arm-protos.h
+%%PLUGINS%%lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/arm/arm.h
+%%PLUGINS%%lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/arm/bpabi.h
+%%PLUGINS%%lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/arm/elf.h
+%%PLUGINS%%lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/arm/%%OPSYS%%.h
+%%PLUGINS%%lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/config/vxworks-dummy.h