Re: [macppc] Unbreak audio/flac 1.3.3
Christian Weisgerber wrote: > Jeremie Courreges-Anglas: > > > > The below diff allows to build flac on macppc, where tests are passing > > > [1]. I've not bumped revision, the change impacts powerpc where it has > > > never been built. > > > > Good enough for ports, ok jca@ > > ok naddy@ > > > If we want this fixed upstream, someone (tm) should write better tests. > > FreeBSD has the functionality, but the API is different: > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=239870 In my opinion the entire "aux" approach is garbage. Linux started it and put a mixture of weak junk in their (including their tiny useless random seed, which was a fantastic idea to defer doing something proper for random numbers for a decade or two). I prefer richer interfaces. On other cpus we have sysctl's which expose the hardware's feature set. This wasn't nicely generalized, because it is already cpu-specific. I still believe that is the right way to go, on systems which don't have an equivelant for userland-permitted "cpuinfo" instructions. And if there's one thing I really hate, it is SIGILL for discovery.
Re: [macppc] Unbreak audio/flac 1.3.3
Jeremie Courreges-Anglas: > > The below diff allows to build flac on macppc, where tests are passing > > [1]. I've not bumped revision, the change impacts powerpc where it has > > never been built. > > Good enough for ports, ok jca@ ok naddy@ > If we want this fixed upstream, someone (tm) should write better tests. FreeBSD has the functionality, but the API is different: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=239870 > naddy, cwen, are you interested, or shall I give it a try? I'm interested but I don't have powerpc, so this would be rather cumbersome for me... -- Christian "naddy" Weisgerber na...@mips.inka.de
Re: [macppc] Unbreak audio/flac 1.3.3
On Thu, Aug 15 2019, Charlene Wendling wrote: > Hi, > > That newer version of flac makes use of getauxval(3) on powerpc, that > apparently we don't implement, so the builds fails while not finding > sys/auxv.h. Bleh, this implements just the right amount of autoconf tests so that it *looks* portable. To be truly portable tests for sys/auxv.h and getauxval should be added and used properly. > The below diff allows to build flac on macppc, where tests are passing > [1]. I've not bumped revision, the change impacts powerpc where it has > never been built. Good enough for ports, ok jca@ If we want this fixed upstream, someone (tm) should write better tests. naddy, cwen, are you interested, or shall I give it a try? > Comments/feedback are welcome, > > Charlène. > > > [0] http://man7.org/linux/man-pages/man3/getauxval.3.html > [1] https://bin.charlenew.xyz/flac.log > > > Index: patches/patch-src_libFLAC_cpu_c > === > RCS file: patches/patch-src_libFLAC_cpu_c > diff -N patches/patch-src_libFLAC_cpu_c > --- /dev/null 1 Jan 1970 00:00:00 - > +++ patches/patch-src_libFLAC_cpu_c 15 Aug 2019 09:43:18 - > @@ -0,0 +1,43 @@ > +$OpenBSD$ > + > +Remove getauxval(3) code for ppc because we don't implement this > + > +Index: src/libFLAC/cpu.c > +--- src/libFLAC/cpu.c.orig > src/libFLAC/cpu.c > +@@ -53,10 +53,6 @@ > + #define dfprintf(file, format, ...) > + #endif > + > +-#if defined FLAC__CPU_PPC > +-#include > +-#endif > +- > + #if (defined FLAC__CPU_IA32 || defined FLAC__CPU_X86_64) && (defined > FLAC__HAS_NASM || FLAC__HAS_X86INTRIN) && !defined FLAC__NO_ASM > + > + /* these are flags in EDX of CPUID AX=0001 */ > +@@ -236,24 +232,8 @@ x86_cpu_info (FLAC__CPUInfo *info) > + static void > + ppc_cpu_info (FLAC__CPUInfo *info) > + { > +-#if defined FLAC__CPU_PPC > +-#ifndef PPC_FEATURE2_ARCH_3_00 > +-#define PPC_FEATURE2_ARCH_3_00 0x0080 > +-#endif > +- > +-#ifndef PPC_FEATURE2_ARCH_2_07 > +-#define PPC_FEATURE2_ARCH_2_07 0x8000 > +-#endif > +- > +-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; > +-} > +-#else > + info->ppc.arch_2_07 = false; > + info->ppc.arch_3_00 = false; > +-#endif > + } > + > + void FLAC__cpu_info (FLAC__CPUInfo *info) > -- jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE
[macppc] Unbreak audio/flac 1.3.3
Hi, That newer version of flac makes use of getauxval(3) on powerpc, that apparently we don't implement, so the builds fails while not finding sys/auxv.h. The below diff allows to build flac on macppc, where tests are passing [1]. I've not bumped revision, the change impacts powerpc where it has never been built. Comments/feedback are welcome, Charlène. [0] http://man7.org/linux/man-pages/man3/getauxval.3.html [1] https://bin.charlenew.xyz/flac.log Index: patches/patch-src_libFLAC_cpu_c === RCS file: patches/patch-src_libFLAC_cpu_c diff -N patches/patch-src_libFLAC_cpu_c --- /dev/null 1 Jan 1970 00:00:00 - +++ patches/patch-src_libFLAC_cpu_c 15 Aug 2019 09:43:18 - @@ -0,0 +1,43 @@ +$OpenBSD$ + +Remove getauxval(3) code for ppc because we don't implement this + +Index: src/libFLAC/cpu.c +--- src/libFLAC/cpu.c.orig src/libFLAC/cpu.c +@@ -53,10 +53,6 @@ + #define dfprintf(file, format, ...) + #endif + +-#if defined FLAC__CPU_PPC +-#include +-#endif +- + #if (defined FLAC__CPU_IA32 || defined FLAC__CPU_X86_64) && (defined FLAC__HAS_NASM || FLAC__HAS_X86INTRIN) && !defined FLAC__NO_ASM + + /* these are flags in EDX of CPUID AX=0001 */ +@@ -236,24 +232,8 @@ x86_cpu_info (FLAC__CPUInfo *info) + static void + ppc_cpu_info (FLAC__CPUInfo *info) + { +-#if defined FLAC__CPU_PPC +-#ifndef PPC_FEATURE2_ARCH_3_00 +-#define PPC_FEATURE2_ARCH_3_000x0080 +-#endif +- +-#ifndef PPC_FEATURE2_ARCH_2_07 +-#define PPC_FEATURE2_ARCH_2_070x8000 +-#endif +- +- 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; +- } +-#else + info->ppc.arch_2_07 = false; + info->ppc.arch_3_00 = false; +-#endif + } + + void FLAC__cpu_info (FLAC__CPUInfo *info)