aboutsummaryrefslogtreecommitdiff
path: root/audio/flac
diff options
context:
space:
mode:
authorPiotr Kubaj <pkubaj@FreeBSD.org>2019-08-28 19:26:56 +0000
committerPiotr Kubaj <pkubaj@FreeBSD.org>2019-08-28 19:26:56 +0000
commit764dacfa5bf1b89f6b38422f736a751319756639 (patch)
tree2b52a42810a4f1d637d5c591ff725b18b4b201bf /audio/flac
parentd5349047c8baf0e6cd6c811c144e538d0118fdc7 (diff)
downloadports-764dacfa5bf1b89f6b38422f736a751319756639.tar.gz
ports-764dacfa5bf1b89f6b38422f736a751319756639.zip
audio/flac: fix build on powerpc64
FreeBSD doesn't support getauxval(), it has elf_aux_info() instead. Use this to fix build on powerpc64. Disable VSX to not use VSX-related functions. PR: 239870 Approved by: linimon (mentor), naddy (maintainer) Differential Revision: https://reviews.freebsd.org/D21284
Notes
Notes: svn path=/head/; revision=510095
Diffstat (limited to 'audio/flac')
-rw-r--r--audio/flac/Makefile3
-rw-r--r--audio/flac/files/patch-src_libFLAC_cpu.c24
2 files changed, 26 insertions, 1 deletions
diff --git a/audio/flac/Makefile b/audio/flac/Makefile
index db524ea83391..11fa1b8561c2 100644
--- a/audio/flac/Makefile
+++ b/audio/flac/Makefile
@@ -25,7 +25,8 @@ CONFIGURE_ARGS= --enable-static \
--with-ogg="${LOCALBASE}" \
--disable-doxygen-docs \
--disable-thorough-tests \
- --disable-xmms-plugin
+ --disable-xmms-plugin \
+ --disable-vsx
INSTALL_TARGET= install-strip
TEST_TARGET= check
diff --git a/audio/flac/files/patch-src_libFLAC_cpu.c b/audio/flac/files/patch-src_libFLAC_cpu.c
new file mode 100644
index 000000000000..91898d9c2dd0
--- /dev/null
+++ b/audio/flac/files/patch-src_libFLAC_cpu.c
@@ -0,0 +1,24 @@
+--- src/libFLAC/cpu.c.orig 2019-08-15 00:05:19 UTC
++++ src/libFLAC/cpu.c
+@@ -245,11 +245,21 @@ ppc_cpu_info (FLAC__CPUInfo *info)
+ #define PPC_FEATURE2_ARCH_2_07 0x80000000
+ #endif
+
++#ifdef __linux__
+ if (getauxval(AT_HWCAP2) & PPC_FEATURE2_ARCH_3_00) {
+ info->ppc.arch_3_00 = true;
+ } else if (getauxval(AT_HWCAP2) & PPC_FEATURE2_ARCH_2_07) {
+ info->ppc.arch_2_07 = true;
+ }
++#elif defined(__FreeBSD__)
++ long hwcaps;
++ elf_aux_info(AT_HWCAP2, &hwcaps, sizeof(hwcaps));
++ if (hwcaps & PPC_FEATURE2_ARCH_3_00) {
++ info->ppc.arch_3_00 = true;
++ } else if (hwcaps & PPC_FEATURE2_ARCH_2_07) {
++ info->ppc.arch_2_07 = true;
++ }
++#endif
+ #else
+ info->ppc.arch_2_07 = false;
+ info->ppc.arch_3_00 = false;