--- freebsd/zstd_kfreebsd.h (revision 327712) +++ freebsd/zstd_kfreebsd.h (working copy) @@ -49,6 +49,25 @@ #define calloc(a,b) (malloc)((a)*(b), M_ZSTD, M_WAITOK | M_ZERO) #endif +#undef __builtin_ctz +#undef __builtin_ctzll + +static inline int +__builtin_ctz(int x) +{ + if (x == 0) + return (sizeof(x) * NBBY); + return (ffs(x) - 1); +} + +static inline long long +__builtin_ctzll(long long x) +{ + if (x == 0) + return (sizeof(x) * NBBY); + return (ffsll(x) - 1); +} + #ifdef __cplusplus } #endif