Miscellaneous FreBSD compilation bugfixes

Add missing machine/md_var.h to spl/sys/simd_aarch64.h and
spl/sys/simd_arm.h

In spl/sys/simd_x86.h, PCB_FPUNOSAVE exists only on amd64, use PCB_NPXNOSAVE
on i386

In FreeBSD sys/elf_common.h redefines AT_UID and AT_GID on FreeBSD, we need
a hack in vnode.h similar to Linux. sys/simd.h needs to be included early.

In zfs_freebsd_copy_file_range() we pass a (size_t *)lenp to
zfs_clone_range() that expects a (uint64_t *)

Allow compiling armv6 world by limiting ARM macros in sha256_impl.c and
sha512_impl.c to __ARM_ARCH > 6

Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Reviewed-by: Tino Reichardt <milky-zfs@mcmilk.de>
Reviewed-by: Richard Yao <richard.yao@alumni.stonybrook.edu>
Reviewed-by: Pawel Jakub Dawidek <pawel@dawidek.net>
Reviewed-by: Signed-off-by: WHR <msl0000023508@gmail.com>
Signed-off-by: Martin Matuska <mm@FreeBSD.org>
Closes #14674
This commit is contained in:
Martin Matuška
2023-04-06 19:35:02 +02:00
committed by GitHub
parent ece7ab7e7d
commit a3f82aec93
13 changed files with 29 additions and 14 deletions
@@ -45,6 +45,7 @@
#include <sys/types.h>
#include <machine/elf.h>
#include <machine/md_var.h>
#define kfpu_allowed() 1
#define kfpu_initialize(tsk) do {} while (0)
+1
View File
@@ -44,6 +44,7 @@
#include <sys/types.h>
#include <machine/elf.h>
#include <machine/md_var.h>
#define kfpu_allowed() 1
#define kfpu_initialize(tsk) do {} while (0)
+4
View File
@@ -45,6 +45,10 @@
fpu_kern_enter(curthread, NULL, FPU_KERN_NOCTX);\
}
#ifndef PCB_FPUNOSAVE
#define PCB_FPUNOSAVE PCB_NPXNOSAVE
#endif
#define kfpu_end() { \
if (__predict_false(curpcb->pcb_flags & PCB_FPUNOSAVE)) \
fpu_kern_leave(curthread, NULL); \
+4
View File
@@ -143,6 +143,10 @@ vn_flush_cached_data(vnode_t *vp, boolean_t sync)
/*
* Attributes of interest to the caller of setattr or getattr.
*/
#undef AT_UID
#undef AT_GID
#define AT_MODE 0x00002
#define AT_UID 0x00004
#define AT_GID 0x00008