In the .h they are __const, in the .c they are const.
This breaks the compiling due to a mis-match.
# egrep '(mutils_memcmp|mutils_strcmp|mutils_strncmp)' mhash-0.9.9.9/include/mutils/* mhash-0.9.9.9/lib/*
mhash-0.9.9.9/include/mutils/mutils.h:int mutils_memcmp(__const void *s1, __const void *s2, __const mutils_word32 n);
mhash-0.9.9.9/include/mutils/mutils.h:int mutils_strcmp(__const mutils_word8 *src1, __const mutils_word8 *src2);
mhash-0.9.9.9/include/mutils/mutils.h:int mutils_strncmp(__const mutils_word8 *src1, __const mutils_word8 *src2, __const mutils_word32 n);
mhash-0.9.9.9/lib/stdfns.c:mutils_memcmp(__const void *s1, const void *s2, const mutils_word32 n)
mhash-0.9.9.9/lib/stdfns.c:mutils_strcmp(__const mutils_word8 *src1, const mutils_word8 *src2)
mhash-0.9.9.9/lib/stdfns.c:mutils_strncmp(__const mutils_word8 *src1, const mutils_word8 *src2, const mutils_word32 n)
I just remove every instance of __const and edit the three functions above and everything then compiles. You might be over-doing it with the const stuff.