stand: Fix inclusion of sys/blake3.h

sys/blake3.h is not safe to include in a standalone environment. It
assumes, unwisely, that there's only kernel or userland. The userland
choice is bad due to imperfections in how we handle stdlib.h in this
environment (we wind up including the host's stdlib.h, it expects a
standard FreeBSD setup which the gymnastics we've done to create a
OpenSolaris/Illumos-like environment interfere with). Thankfully, in
this case we can just pretend to be the kernel for a little bit by
defining _KERNEL and the undefing it after we exit.

Sponsored by:		Netflix
Reviewed by:		kevans
Differential Revision:	https://reviews.freebsd.org/D35750
This commit is contained in:
Warner Losh 2022-07-08 17:34:53 -06:00
parent faf25f48d6
commit b0a337d501

View File

@ -0,0 +1,17 @@
/*
* Copyright 2022, Netflix, Inc
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
/*
* Gross and ugly hack to cope with upstream's sys/blake3.h not being standalone
* safe.
*/
#define _KERNEL
#include_next <sys/blake3.h>
#undef _KERNEL