diff options
author | Piotr Kubaj <pkubaj@FreeBSD.org> | 2019-11-29 15:02:14 +0000 |
---|---|---|
committer | Piotr Kubaj <pkubaj@FreeBSD.org> | 2019-11-29 15:02:14 +0000 |
commit | 95a1d26f49538d1129bffceed25e282742a7dac2 (patch) | |
tree | 6daf2e88305883a063dea6c60b51dfa628f68750 /Mk | |
parent | 3446b2b61c25f955e34b6a555c4306f2641a2b29 (diff) | |
download | freebsd-ports-95a1d26f49538d1129bffceed25e282742a7dac2.zip |
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
Diffstat (limited to 'Mk')
-rw-r--r-- | Mk/Uses/cargo.mk | 2 | ||||
-rw-r--r-- | Mk/Uses/php.mk | 2 | ||||
-rw-r--r-- | Mk/Uses/qt-dist.mk | 2 | ||||
-rw-r--r-- | Mk/bsd.gecko.mk | 1 | ||||
-rw-r--r-- | Mk/bsd.port.mk | 10 |
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) |