diff options
author | Piotr Kubaj <pkubaj@FreeBSD.org> | 2019-08-29 03:26:56 +0800 |
---|---|---|
committer | Piotr Kubaj <pkubaj@FreeBSD.org> | 2019-08-29 03:26:56 +0800 |
commit | 764dacfa5bf1b89f6b38422f736a751319756639 (patch) | |
tree | 2b52a42810a4f1d637d5c591ff725b18b4b201bf /audio | |
parent | d5349047c8baf0e6cd6c811c144e538d0118fdc7 (diff) | |
download | freebsd-ports-gnome-764dacfa5bf1b89f6b38422f736a751319756639.tar.gz freebsd-ports-gnome-764dacfa5bf1b89f6b38422f736a751319756639.tar.zst freebsd-ports-gnome-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
Diffstat (limited to 'audio')
-rw-r--r-- | audio/flac/Makefile | 3 | ||||
-rw-r--r-- | audio/flac/files/patch-src_libFLAC_cpu.c | 24 |
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; |