From 325096545a47aa01cd5966301ba1f7a6e5eff349 Mon Sep 17 00:00:00 2001 From: Kristof Provost Date: Tue, 28 Jun 2022 23:11:38 +0200 Subject: [PATCH] FreeBSD: only define B_FALSE/B_TRUE if NEED_SOLARIS_BOOLEAN is not set If NEED_SOLARIS_BOOLEAN is defined we define an enum boolean_t, which defines B_TRUE/B_FALSE as well. If we have both the define and the enum things don't build (because that translates to 'enum { 0, 1 } boolean_t'). While here also remove an incorrect '#else'. With it in place we only parse a section if the include guard is triggered. So we'd only use that code if this file is included twice. This is clearly unintended, and also means we don't get the 'boolean_t' definition. Fix this. Reviewed-by: Warner Losh Reviewed-by: Ryan Moeller Signed-off-by: Kristof Provost Sponsored-By: Rubicon Communications, LLC ("Netgate") Closes #13596 --- include/os/freebsd/spl/sys/types.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/include/os/freebsd/spl/sys/types.h b/include/os/freebsd/spl/sys/types.h index b2897978c2..b1308df295 100644 --- a/include/os/freebsd/spl/sys/types.h +++ b/include/os/freebsd/spl/sys/types.h @@ -78,9 +78,6 @@ typedef id_t ctid_t; typedef mode_t o_mode_t; typedef uint64_t pgcnt_t; -#define B_FALSE 0 -#define B_TRUE 1 - typedef short index_t; typedef off_t offset_t; #ifndef _PTRDIFF_T_DECLARED @@ -90,13 +87,17 @@ typedef __ptrdiff_t ptrdiff_t; /* pointer difference */ typedef int64_t rlim64_t; typedef int major_t; -#else #ifdef NEED_SOLARIS_BOOLEAN #if defined(__XOPEN_OR_POSIX) typedef enum { _B_FALSE, _B_TRUE } boolean_t; #else typedef enum { B_FALSE, B_TRUE } boolean_t; #endif /* defined(__XOPEN_OR_POSIX) */ +#else + +#define B_FALSE 0 +#define B_TRUE 1 + #endif typedef u_longlong_t u_offset_t;