--- freebsd/zstd_kfreebsd.h (revision 327712) +++ freebsd/zstd_kfreebsd.h (working copy) @@ -49,6 +49,27 @@ #define calloc(a,b) (malloc)((a)*(b), M_ZSTD, M_WAITOK | M_ZERO) #endif +#if defined(__mips__) || defined(__riscv) +#undef __ctzsi2 +#undef __ctzdi2 + +static inline unsigned +__ctzsi2(unsigned x) +{ + if (x == 0) + return (sizeof(x) * NBBY); + return (ffsl(x) - 1); +} + +static inline unsigned long long +__ctzdi2(unsigned long long x) +{ + if (x == 0) + return (sizeof(x) * NBBY); + return (ffsll(x) - 1); +} +#endif /* __mips__ || __riscv */ + #ifdef __cplusplus } #endif