Fix double declaration of getauxval() for FreeBSD PPC

The extern declaration is only for Linux, move this line
into the right #ifdef section.

Reviewed-by: Richard Yao <richard.yao@alumni.stonybrook.edu>
Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Co-authored-by: Martin Matuska <mm@FreeBSD.org>
Signed-off-by: Tino Reichardt <milky-zfs@mcmilk.de>
Closes #13934
Closes #13936
This commit is contained in:
Tino Reichardt 2022-09-26 19:32:22 +02:00 committed by GitHub
parent ebe1d03616
commit bf5b42f9c8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 3 deletions

View File

@ -53,7 +53,7 @@
#include <sys/cdefs.h>
#include <machine/pcb.h>
#include <powerpc/cpu.h>
#include <machine/cpu.h>
#define kfpu_allowed() 1
#define kfpu_initialize(tsk) do {} while (0)
@ -88,3 +88,5 @@ zfs_isa207_available(void)
{
return ((cpu_features2 & PPC_FEATURE2_ARCH_2_07) != 0);
}
#endif

View File

@ -453,12 +453,12 @@ zfs_avx512vbmi_available(void)
#elif defined(__powerpc__)
/* including <sys/auxv.h> clashes with AT_UID and others */
extern unsigned long getauxval(unsigned long type);
#if defined(__FreeBSD__)
#define AT_HWCAP 25 /* CPU feature flags. */
#define AT_HWCAP2 26 /* CPU feature flags 2. */
extern int elf_aux_info(int aux, void *buf, int buflen);
static unsigned long getauxval(unsigned long key)
static inline unsigned long
getauxval(unsigned long key)
{
unsigned long val = 0UL;
@ -470,6 +470,7 @@ static unsigned long getauxval(unsigned long key)
#elif defined(__linux__)
#define AT_HWCAP 16 /* CPU feature flags. */
#define AT_HWCAP2 26 /* CPU feature flags 2. */
extern unsigned long getauxval(unsigned long type);
#endif
#define kfpu_allowed() 1