From 036ff38ebd5a52f26fc2f20238a492a9d0c5f2e6 Mon Sep 17 00:00:00 2001 From: Lexi Winter Date: Mon, 27 Apr 2026 22:31:47 +0100 Subject: [PATCH] libzpool: Set -Wno-error=typedef-redefinition for clang In some versions of LLVM (at least 21), the <*intrin.h> headers contain unguarded duplicate typedefs; this isn't permitted prior to C11, and libzpool is built as C99. FreeBSD's LLVM backported LLVM PR #153820 to fix this, but other versions of LLVM (e.g., upstream, or on Linux) don't have the patch, so this breaks the build. Add -Wno-error=typedef-redefinition to downgrade this from an error to a warning. MFC after: 2 weeks Reviewed by: dim, emaste Sponsored by: https://www.patreon.com/bsdivy Differential Revision: https://reviews.freebsd.org/D56653 --- cddl/lib/libzpool/Makefile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cddl/lib/libzpool/Makefile b/cddl/lib/libzpool/Makefile index 0c680367956..db09d33e19b 100644 --- a/cddl/lib/libzpool/Makefile +++ b/cddl/lib/libzpool/Makefile @@ -293,6 +293,11 @@ CFLAGS+= -g -DDEBUG=1 CFLAGS.gcc+= -Wno-pointer-to-int-cast +# Some versions of LLVM contain duplicate typedefs in the <*intrin.h> headers, +# which are not allowed prior to C11; since libzpool is built with C99, make +# this not be an error. +CFLAGS.clang+= -Wno-error=typedef-redefinition + # Pointer values are used as debugging "tags" to mark reference count # ownerships and in some cases the tag reference is dropped after an # object is freed.