aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2022-05-20 17:08:04 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2022-05-20 17:08:04 +0000
commite28fe2856c588c82752fef2becbb2a43709aab42 (patch)
tree3d6dee5c668539e9688620f0a881c6a3bc804ebd
parent175d1fce16762f4c40d346b0b5a6e53b7291a09a (diff)
downloadports-e28fe2856c588c82752fef2becbb2a43709aab42.tar.gz
ports-e28fe2856c588c82752fef2becbb2a43709aab42.zip
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
-rw-r--r--devel/freebsd-gcc9/Makefile27
-rw-r--r--devel/freebsd-gcc9/files/xtoolchain.mk.in2
-rw-r--r--devel/freebsd-gcc9/pkg-plist.arm_gnueabi14
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