summaryrefslogtreecommitdiff
path: root/Mk
diff options
context:
space:
mode:
authorPiotr Kubaj <pkubaj@FreeBSD.org>2019-11-29 15:02:14 +0000
committerPiotr Kubaj <pkubaj@FreeBSD.org>2019-11-29 15:02:14 +0000
commit95a1d26f49538d1129bffceed25e282742a7dac2 (patch)
tree6daf2e88305883a063dea6c60b51dfa628f68750 /Mk
parentnet/corosync3: update 2.99.2 to 2.99.5 (diff)
Mk/bsd.port.mk: detect powerpc64 abi
We'll have a new abi on ppc64 soon (ELFv2) which is incompatible with the ELFv1 abi. We need to detect the abi on which we build stuff. Submitted by: mikael_urankar@gmail.com Approved by: portmgr (earlier version) Differential Revision: https://reviews.freebsd.org/D22039
Notes
Notes: svn path=/head/; revision=518658
Diffstat (limited to 'Mk')
-rw-r--r--Mk/Uses/cargo.mk2
-rw-r--r--Mk/Uses/php.mk2
-rw-r--r--Mk/Uses/qt-dist.mk2
-rw-r--r--Mk/bsd.gecko.mk1
-rw-r--r--Mk/bsd.port.mk10
5 files changed, 13 insertions, 4 deletions
diff --git a/Mk/Uses/cargo.mk b/Mk/Uses/cargo.mk
index d33ff7701f29..8e762421c2dd 100644
--- a/Mk/Uses/cargo.mk
+++ b/Mk/Uses/cargo.mk
@@ -74,7 +74,7 @@ RUSTFLAGS+= ${CFLAGS:M-march=*:S/-march=/-C target-cpu=/}
RUSTFLAGS+= ${CFLAGS:M-mcpu=*:S/-mcpu=/-C target-cpu=/}
.endif
-.if ${ARCH} == powerpc64
+.if defined(PPC_ABI) && ${PPC_ABI} == ELFv1
USE_GCC?= yes
.endif
diff --git a/Mk/Uses/php.mk b/Mk/Uses/php.mk
index b04f90022d12..132a46cd77d5 100644
--- a/Mk/Uses/php.mk
+++ b/Mk/Uses/php.mk
@@ -159,7 +159,7 @@ FLAVOR= ${FLAVORS:[1]}
. endif
. endif
-.if ${PHP_VER} == 74 && (${ARCH:Mmips*} || ${ARCH:Mpowerpc*} || ${ARCH} == sparc64)
+.if ${PHP_VER} == 74 && (${ARCH:Mmips*} || (${ARCH:Mpowerpc*} && !exists(/usr/bin/clang)) || ${ARCH} == sparc64)
USE_GCC= yes
.endif
diff --git a/Mk/Uses/qt-dist.mk b/Mk/Uses/qt-dist.mk
index 83322cbbfc7b..547fa0868c43 100644
--- a/Mk/Uses/qt-dist.mk
+++ b/Mk/Uses/qt-dist.mk
@@ -171,7 +171,7 @@ _EXTRA_PATCHES_QT5= ${PORTSDIR}/devel/${_QT_RELNAME}/files/extrapatch-mkspecs_fe
${PORTSDIR}/devel/${_QT_RELNAME}/files/extrapatch-mkspecs_features_qt__module.prf \
${PORTSDIR}/devel/${_QT_RELNAME}/files/extrapatch-mkspecs_common_bsd_bsd.conf \
${PORTSDIR}/devel/${_QT_RELNAME}/files/extrapatch-mkspecs_freebsd-clang_qmake.conf
-. if ${ARCH:Mmips*} || ${ARCH:Mpowerpc*} || ${ARCH} == sparc64
+. if ${ARCH:Mmips*} || (${ARCH:Mpowerpc*} && !exists(/usr/bin/clang)) || ${ARCH} == sparc64
_EXTRA_PATCHES_QT5+= ${PORTSDIR}/devel/${_QT_RELNAME}/files/extra-patch-mkspecs_common_g++-base.conf \
${PORTSDIR}/devel/${_QT_RELNAME}/files/extra-patch-mkspecs_common_gcc-base.conf \
${PORTSDIR}/devel/${_QT_RELNAME}/files/extrapatch-mkspecs_freebsd-g++_qmake.conf
diff --git a/Mk/bsd.gecko.mk b/Mk/bsd.gecko.mk
index 69368e652e61..f26f1a2dac23 100644
--- a/Mk/bsd.gecko.mk
+++ b/Mk/bsd.gecko.mk
@@ -321,7 +321,6 @@ LDFLAGS+= -B${LOCALBASE}/bin
.elif ${ARCH:Mpowerpc*}
. if ${ARCH} == "powerpc64"
MOZ_EXPORT+= UNAME_m="${ARCH}"
-CFLAGS+= -mminimal-toc
. endif
.elif ${ARCH} == "sparc64"
# Work around miscompilation/mislinkage of the sCanonicalVTable hacks.
diff --git a/Mk/bsd.port.mk b/Mk/bsd.port.mk
index d5d325d26a1a..d180ebeb8d34 100644
--- a/Mk/bsd.port.mk
+++ b/Mk/bsd.port.mk
@@ -1126,6 +1126,16 @@ ARCH= ${CROSS_TOOLCHAIN:C,-.*$,,}
.endif
_EXPORTED_VARS+= ARCH
+.if ${ARCH} == powerpc64
+. if !defined(PPC_ABI)
+PPC_ABI!= ${CC} -dM -E - < /dev/null | ${AWK} '/_CALL_ELF/{print "ELFv"$$3}'
+. if ${PPC_ABI} != ELFv2
+PPC_ABI= ELFv1
+. endif
+. endif
+_EXPORTED_VARS+= PPC_ABI
+.endif
+
# Get operating system versions for a cross build
.if defined(CROSS_SYSROOT)
.if !exists(${CROSS_SYSROOT}/usr/include/sys/param.h)