Index: contrib/zstd/lib/common/bitstream.h =================================================================== --- contrib/zstd/lib/common/bitstream.h +++ contrib/zstd/lib/common/bitstream.h @@ -175,7 +175,7 @@ unsigned long r=0; _BitScanReverse ( &r, val ); return (unsigned) r; -# elif defined(__GNUC__) && (__GNUC__ >= 3) /* Use GCC Intrinsic */ +# elif defined(__GNUC__) && (__GNUC__ >= 3) && __has_builtin(__builtin_clz) /* Use GCC Intrinsic */ return 31 - __builtin_clz (val); # else /* Software version */ static const unsigned DeBruijnClz[32] = { 0, 9, 1, 10, 13, 21, 2, 29, Index: contrib/zstd/lib/common/error_private.h =================================================================== --- contrib/zstd/lib/common/error_private.h +++ contrib/zstd/lib/common/error_private.h @@ -21,7 +21,11 @@ /* **************************************** * Dependencies ******************************************/ +#ifdef _KERNEL +#include /* size_t */ +#else #include /* size_t */ +#endif #include "zstd_errors.h" /* enum list */ Index: contrib/zstd/lib/common/fse.h =================================================================== --- contrib/zstd/lib/common/fse.h +++ contrib/zstd/lib/common/fse.h @@ -43,7 +43,12 @@ /*-***************************************** * Dependencies ******************************************/ +#ifdef _KERNEL +#include /* size_t */ +#include /* ptrdiff_t */ +#else #include /* size_t, ptrdiff_t */ +#endif /*-***************************************** Index: contrib/zstd/lib/common/fse_decompress.c =================================================================== --- contrib/zstd/lib/common/fse_decompress.c +++ contrib/zstd/lib/common/fse_decompress.c @@ -36,8 +36,18 @@ /* ************************************************************** * Includes ****************************************************************/ +#ifdef _KERNEL +#include /* u_int (systm.h) */ +#include /* memcpy, memset */ +#include "zstd_kmalloc.h" /* malloc, free */ +#else +#ifdef _BOOTSTRAP +#include +#else #include /* malloc, free, qsort */ #include /* memcpy, memset */ +#endif +#endif #include "bitstream.h" #include "compiler.h" #define FSE_STATIC_LINKING_ONLY @@ -82,12 +92,20 @@ FSE_DTable* FSE_createDTable (unsigned tableLog) { if (tableLog > FSE_TABLELOG_ABSOLUTE_MAX) tableLog = FSE_TABLELOG_ABSOLUTE_MAX; +#ifdef _KERNEL + return (FSE_DTable*)malloc( FSE_DTABLE_SIZE_U32(tableLog) * sizeof (U32), M_ZSTD, M_WAITOK); +#else return (FSE_DTable*)malloc( FSE_DTABLE_SIZE_U32(tableLog) * sizeof (U32) ); +#endif } void FSE_freeDTable (FSE_DTable* dt) { +#ifdef _KERNEL + free(dt, M_ZSTD); +#else free(dt); +#endif } size_t FSE_buildDTable(FSE_DTable* dt, const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog) Index: contrib/zstd/lib/common/huf.h =================================================================== --- contrib/zstd/lib/common/huf.h +++ contrib/zstd/lib/common/huf.h @@ -40,7 +40,11 @@ #define HUF_H_298734234 /* *** Dependencies *** */ +#ifdef _KERNEL +#include /* size_t */ +#else #include /* size_t */ +#endif /* *** library symbols visibility *** */ Index: contrib/zstd/lib/common/mem.h =================================================================== --- contrib/zstd/lib/common/mem.h +++ contrib/zstd/lib/common/mem.h @@ -18,8 +18,14 @@ /*-**************************************** * Dependencies ******************************************/ +#ifdef _KERNEL +#include /* size_t */ +#include /* ptrdiff_t */ +#include /* memcpy */ +#else #include /* size_t, ptrdiff_t */ #include /* memcpy */ +#endif /*-**************************************** @@ -48,7 +54,9 @@ * Basic Types *****************************************************************/ #if !defined (__VMS) && (defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) ) +#ifndef _KERNEL # include +#endif typedef uint8_t BYTE; typedef uint16_t U16; typedef int16_t S16; Index: contrib/zstd/lib/common/pool.h =================================================================== --- contrib/zstd/lib/common/pool.h +++ contrib/zstd/lib/common/pool.h @@ -16,7 +16,11 @@ #endif +#ifdef _KERNEL +#include /* size_t */ +#else #include /* size_t */ +#endif #include "zstd_internal.h" /* ZSTD_customMem */ typedef struct POOL_ctx_s POOL_ctx; Index: contrib/zstd/lib/common/pool.c =================================================================== --- contrib/zstd/lib/common/pool.c +++ contrib/zstd/lib/common/pool.c @@ -10,8 +10,13 @@ /* ====== Dependencies ======= */ +#ifdef _KERNEL +#include /* size_t */ +#include "zstd_kmalloc.h" /* malloc, calloc, free */ +#else #include /* size_t */ #include /* malloc, calloc, free */ +#endif #include "pool.h" /* ====== Compiler specifics ====== */ @@ -115,7 +120,11 @@ * and full queues. */ ctx->queueSize = queueSize + 1; +#ifdef _KERNEL + ctx->queue = (POOL_job*) malloc(ctx->queueSize * sizeof(POOL_job), M_ZSTD, M_WAITOK); +#else ctx->queue = (POOL_job*) malloc(ctx->queueSize * sizeof(POOL_job)); +#endif ctx->queueHead = 0; ctx->queueTail = 0; ctx->numThreadsBusy = 0; Index: contrib/zstd/lib/common/xxhash.h =================================================================== --- contrib/zstd/lib/common/xxhash.h +++ contrib/zstd/lib/common/xxhash.h @@ -75,7 +75,11 @@ /* **************************** * Definitions ******************************/ +#ifdef _KERNEL +#include /* size_t */ +#else #include /* size_t */ +#endif typedef enum { XXH_OK=0, XXH_ERROR } XXH_errorcode; Index: contrib/zstd/lib/common/xxhash.c =================================================================== --- contrib/zstd/lib/common/xxhash.c +++ contrib/zstd/lib/common/xxhash.c @@ -97,11 +97,24 @@ ***************************************/ /* Modify the local functions below should you wish to use some other memory routines */ /* for malloc(), free() */ +#ifdef _KERNEL +#include +#include "zstd_kmalloc.h" +static void* XXH_malloc(size_t s) { return malloc(s, M_ZSTD, M_WAITOK); } +static void XXH_free (void* p) { free(p, M_ZSTD); } +/* for memcpy() */ +#include +#else +#ifdef _BOOTSTRAP +#include +#else #include -static void* XXH_malloc(size_t s) { return malloc(s); } -static void XXH_free (void* p) { free(p); } /* for memcpy() */ #include +#endif /* _BOOTSTRAP */ +static void* XXH_malloc(size_t s) { return malloc(s); } +static void XXH_free (void* p) { free(p); } +#endif /* _KERNEL */ static void* XXH_memcpy(void* dest, const void* src, size_t size) { return memcpy(dest,src,size); } #ifndef XXH_STATIC_LINKING_ONLY @@ -141,7 +154,9 @@ #ifndef MEM_MODULE # define MEM_MODULE # if !defined (__VMS) && (defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) ) +#ifndef _KERNEL # include +#endif typedef uint8_t BYTE; typedef uint16_t U16; typedef uint32_t U32; Index: contrib/zstd/lib/common/zstd_common.c =================================================================== --- contrib/zstd/lib/common/zstd_common.c +++ contrib/zstd/lib/common/zstd_common.c @@ -13,8 +13,18 @@ /*-************************************* * Dependencies ***************************************/ +#ifdef _KERNEL +#include /* u_int (systm.h) */ +#include /* memset */ +#include "zstd_kmalloc.h" /* malloc, calloc, free */ +#else +#ifdef _BOOTSTRAP +#include +#else #include /* malloc, calloc, free */ #include /* memset */ +#endif +#endif #include "error_private.h" #include "zstd_internal.h" @@ -54,7 +64,11 @@ { if (customMem.customAlloc) return customMem.customAlloc(customMem.opaque, size); +#ifdef _KERNEL + return malloc(size, M_ZSTD, M_WAITOK); +#else return malloc(size); +#endif } void* ZSTD_calloc(size_t size, ZSTD_customMem customMem) @@ -66,7 +80,11 @@ memset(ptr, 0, size); return ptr; } +#ifdef _KERNEL + return malloc(size, M_ZSTD, M_WAITOK | M_ZERO); +#else return calloc(1, size); +#endif } void ZSTD_free(void* ptr, ZSTD_customMem customMem) @@ -75,6 +93,10 @@ if (customMem.customFree) customMem.customFree(customMem.opaque, ptr); else +#ifdef _KERNEL + free(ptr, M_ZSTD); +#else free(ptr); +#endif } } Index: contrib/zstd/lib/common/zstd_errors.h =================================================================== --- contrib/zstd/lib/common/zstd_errors.h +++ contrib/zstd/lib/common/zstd_errors.h @@ -16,7 +16,11 @@ #endif /*===== dependency =====*/ +#ifdef _KERNEL +#include /* size_t */ +#else #include /* size_t */ +#endif /* ===== ZSTDERRORLIB_API : control library symbols visibility ===== */ Index: contrib/zstd/lib/common/zstd_internal.h =================================================================== --- contrib/zstd/lib/common/zstd_internal.h +++ contrib/zstd/lib/common/zstd_internal.h @@ -327,7 +327,7 @@ unsigned long r=0; _BitScanReverse(&r, val); return (unsigned)r; -# elif defined(__GNUC__) && (__GNUC__ >= 3) /* GCC Intrinsic */ +# elif defined(__GNUC__) && (__GNUC__ >= 3) && __has_builtin(__builtin_clz) /* GCC Intrinsic */ return 31 - __builtin_clz(val); # else /* Software version */ static const int DeBruijnClz[32] = { 0, 9, 1, 10, 13, 21, 2, 29, 11, 14, 16, 18, 22, 25, 3, 30, 8, 12, 20, 28, 15, 17, 24, 7, 19, 27, 23, 6, 26, 5, 4, 31 }; Index: contrib/zstd/lib/common/zstd_kmalloc.h =================================================================== --- /dev/null +++ contrib/zstd/lib/common/zstd_kmalloc.h @@ -0,0 +1,45 @@ +/*- + * Copyright (c) 2014-2015 Allan Jude + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef ZSTD_KMALLOC_H +#define ZSTD_KMALLOC_H + +#if defined (__cplusplus) +extern "C" { +#endif + +#ifdef _KERNEL +#include +MALLOC_DECLARE(M_ZSTD); +#endif + +#if defined (__cplusplus) +} +#endif + +#endif /* ZSTD_KMALLOC_H */ Index: contrib/zstd/lib/common/zstd_kmalloc.c =================================================================== --- /dev/null +++ contrib/zstd/lib/common/zstd_kmalloc.c @@ -0,0 +1,33 @@ +/*- + * Copyright (c) 2016-2017 Allan Jude + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#include +#include +#include + +MALLOC_DEFINE(M_ZSTD, "zstd", "ZSTD Compressor"); Index: contrib/zstd/lib/compress/fse_compress.c =================================================================== --- contrib/zstd/lib/compress/fse_compress.c +++ contrib/zstd/lib/compress/fse_compress.c @@ -35,9 +35,15 @@ /* ************************************************************** * Includes ****************************************************************/ +#ifdef _KERNEL +#include /* u_int (systm.h) */ +#include /* memcpy, memset */ +#include "zstd_kmalloc.h" /* malloc, free */ +#else #include /* malloc, free, qsort */ #include /* memcpy, memset */ #include /* printf (debug) */ +#endif #include "bitstream.h" #include "compiler.h" #define FSE_STATIC_LINKING_ONLY @@ -450,10 +456,20 @@ size_t size; if (tableLog > FSE_TABLELOG_ABSOLUTE_MAX) tableLog = FSE_TABLELOG_ABSOLUTE_MAX; size = FSE_CTABLE_SIZE_U32 (tableLog, maxSymbolValue) * sizeof(U32); +#ifdef _KERNEL + return (FSE_CTable*)malloc(size, M_ZSTD, M_WAITOK); +#else return (FSE_CTable*)malloc(size); +#endif } -void FSE_freeCTable (FSE_CTable* ct) { free(ct); } +void FSE_freeCTable (FSE_CTable* ct) { +#ifdef _KERNEL + free(ct, M_ZSTD); +#else + free(ct); +#endif +} /* provides the minimum logSize to safely represent a distribution */ static unsigned FSE_minTableLog(size_t srcSize, unsigned maxSymbolValue) Index: contrib/zstd/lib/compress/huf_compress.c =================================================================== --- contrib/zstd/lib/compress/huf_compress.c +++ contrib/zstd/lib/compress/huf_compress.c @@ -43,8 +43,13 @@ /* ************************************************************** * Includes ****************************************************************/ +#ifdef _KERNEL +#include /* u_int (systm.h) */ +#include /* memcpy, memset */ +#else #include /* memcpy, memset */ #include /* printf (debug) */ +#endif #include "bitstream.h" #define FSE_STATIC_LINKING_ONLY /* FSE_optimalTableLog_internal */ #include "fse.h" /* header compression */ Index: contrib/zstd/lib/compress/zstd_compress.h =================================================================== --- contrib/zstd/lib/compress/zstd_compress.h +++ contrib/zstd/lib/compress/zstd_compress.h @@ -203,7 +203,7 @@ unsigned long r = 0; _BitScanReverse64( &r, val ); return (unsigned)(r>>3); -# elif defined(__GNUC__) && (__GNUC__ >= 4) +# elif defined(__GNUC__) && (__GNUC__ >= 4) && __has_builtin(__builtin_clzll) return (__builtin_clzll(val) >> 3); # else unsigned r; @@ -218,7 +218,7 @@ unsigned long r = 0; _BitScanReverse( &r, (unsigned long)val ); return (unsigned)(r>>3); -# elif defined(__GNUC__) && (__GNUC__ >= 3) +# elif defined(__GNUC__) && (__GNUC__ >= 3) && __has_builtin(__builtin_clz) return (__builtin_clz((U32)val) >> 3); # else unsigned r; Index: contrib/zstd/lib/compress/zstd_compress.c =================================================================== --- contrib/zstd/lib/compress/zstd_compress.c +++ contrib/zstd/lib/compress/zstd_compress.c @@ -20,7 +20,12 @@ /*-************************************* * Dependencies ***************************************/ +#ifdef _KERNEL +#include /* u_int (systm.h) */ +#include /* memset */ +#else #include /* memset */ +#endif #include "mem.h" #define FSE_STATIC_LINKING_ONLY /* FSE_encodeSymbol */ #include "fse.h" Index: contrib/zstd/lib/compress/zstdmt_compress.h =================================================================== --- contrib/zstd/lib/compress/zstdmt_compress.h +++ contrib/zstd/lib/compress/zstdmt_compress.h @@ -23,7 +23,11 @@ * These methods will stop being exposed in a future version */ /* === Dependencies === */ +#ifdef _KERNEL +#include /* size_t */ +#else #include /* size_t */ +#endif #define ZSTD_STATIC_LINKING_ONLY /* ZSTD_parameters */ #include "zstd.h" /* ZSTD_inBuffer, ZSTD_outBuffer, ZSTDLIB_API */ Index: contrib/zstd/lib/compress/zstdmt_compress.c =================================================================== --- contrib/zstd/lib/compress/zstdmt_compress.c +++ contrib/zstd/lib/compress/zstdmt_compress.c @@ -21,7 +21,12 @@ /* ====== Dependencies ====== */ +#ifdef _KERNEL +#include /* u_int (systm.h) */ +#include /* memcpy, memset */ +#else #include /* memcpy, memset */ +#endif #include "pool.h" /* threadpool */ #include "threading.h" /* mutex */ #include "zstd_internal.h" /* MIN, ERROR, ZSTD_*, ZSTD_highbit32 */ Index: contrib/zstd/lib/decompress/huf_decompress.c =================================================================== --- contrib/zstd/lib/decompress/huf_decompress.c +++ contrib/zstd/lib/decompress/huf_decompress.c @@ -35,7 +35,12 @@ /* ************************************************************** * Dependencies ****************************************************************/ +#ifdef _KERNEL +#include /* u_int (systm.h) */ +#include /* memcpy, memset */ +#else #include /* memcpy, memset */ +#endif #include "bitstream.h" /* BIT_* */ #include "compiler.h" #include "fse.h" /* header compression */ Index: contrib/zstd/lib/decompress/zstd_decompress.c =================================================================== --- contrib/zstd/lib/decompress/zstd_decompress.c +++ contrib/zstd/lib/decompress/zstd_decompress.c @@ -42,7 +42,12 @@ /*-******************************************************* * Dependencies *********************************************************/ +#ifdef _KERNEL +#include /* u_int (systm.h) */ +#include /* memcpy, memmove, memset */ +#else #include /* memcpy, memmove, memset */ +#endif #include "mem.h" /* low level memory routines */ #define FSE_STATIC_LINKING_ONLY #include "fse.h" Index: contrib/zstd/lib/dictBuilder/zdict.c =================================================================== --- contrib/zstd/lib/dictBuilder/zdict.c +++ contrib/zstd/lib/dictBuilder/zdict.c @@ -135,7 +135,7 @@ unsigned long r = 0; _BitScanReverse64( &r, val ); return (unsigned)(r>>3); -# elif defined(__GNUC__) && (__GNUC__ >= 3) +# elif defined(__GNUC__) && (__GNUC__ >= 3) && __has_builtin(__builtin_clzll) return (__builtin_clzll(val) >> 3); # else unsigned r; @@ -150,7 +150,7 @@ unsigned long r = 0; _BitScanReverse( &r, (unsigned long)val ); return (unsigned)(r>>3); -# elif defined(__GNUC__) && (__GNUC__ >= 3) +# elif defined(__GNUC__) && (__GNUC__ >= 3) && __has_builtin(__builtin_clz) return (__builtin_clz((U32)val) >> 3); # else unsigned r; Index: contrib/zstd/lib/zstd.h =================================================================== --- contrib/zstd/lib/zstd.h +++ contrib/zstd/lib/zstd.h @@ -15,7 +15,15 @@ #define ZSTD_H_235446 /* ====== Dependency ======*/ +#ifdef _KERNEL +#include /* size_t */ +#else +#ifdef _BOOTSTRAP +#include +#else #include /* size_t */ +#endif +#endif /* ===== ZSTDLIB_API : control library symbols visibility ===== */ Index: sys/conf/files =================================================================== --- sys/conf/files +++ sys/conf/files @@ -626,6 +626,19 @@ compile-with "${NORMAL_C} -I$S/contrib/ngatm" contrib/ngatm/netnatm/sig/sig_verify.c optional ngatm_uni \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" +# Zstd +../contrib/zstd/lib/common/zstd_common.c standard compile-with ${ZSTD_C} +../contrib/zstd/lib/common/fse_decompress.c standard compile-with ${ZSTD_C} +../contrib/zstd/lib/common/entropy_common.c standard compile-with ${ZSTD_C} +../contrib/zstd/lib/common/error_private.c standard compile-with ${ZSTD_C} +../contrib/zstd/lib/common/pool.c standard compile-with ${ZSTD_C} +../contrib/zstd/lib/common/zstd_kmalloc.c standard compile-with ${ZSTD_C} +../contrib/zstd/lib/common/xxhash.c standard compile-with ${ZSTD_C} +../contrib/zstd/lib/compress/zstd_compress.c standard compile-with ${ZSTD_C} +../contrib/zstd/lib/compress/fse_compress.c standard compile-with ${ZSTD_C} +../contrib/zstd/lib/compress/huf_compress.c standard compile-with ${ZSTD_C} +../contrib/zstd/lib/decompress/zstd_decompress.c standard compile-with ${ZSTD_C} +../contrib/zstd/lib/decompress/huf_decompress.c standard compile-with ${ZSTD_C} crypto/blowfish/bf_ecb.c optional ipsec | ipsec_support crypto/blowfish/bf_skey.c optional crypto | ipsec | ipsec_support crypto/camellia/camellia.c optional crypto | ipsec | ipsec_support Index: sys/conf/kern.pre.mk =================================================================== --- sys/conf/kern.pre.mk +++ sys/conf/kern.pre.mk @@ -136,6 +136,9 @@ NORMAL_FWO= ${LD} -b binary --no-warn-mismatch -d -warn-common -r \ -m ${LD_EMULATION} -o ${.TARGET} ${.ALLSRC:M*.fw} +# for ZSTD in the kernel +ZSTD_C= ${CC} -c ${CFLAGS} -DZSTD_HEAPMODE=1 -I$S/../contrib/zstd/lib -I$S/../contrib/zstd/lib/common ${WERROR} ${PROF} ${.IMPSRC} + # Common for dtrace / zfs CDDL_CFLAGS= -DFREEBSD_NAMECACHE -nostdinc -I$S/cddl/compat/opensolaris -I$S/cddl/contrib/opensolaris/uts/common -I$S -I$S/cddl/contrib/opensolaris/common ${CFLAGS} -Wno-unknown-pragmas -Wno-missing-prototypes -Wno-undef -Wno-strict-prototypes -Wno-cast-qual -Wno-parentheses -Wno-redundant-decls -Wno-missing-braces -Wno-uninitialized -Wno-unused -Wno-inline -Wno-switch -Wno-pointer-arith -Wno-unknown-pragmas CDDL_CFLAGS+= -include $S/cddl/compat/opensolaris/sys/debug_compat.h