-#----------------------------------------
-# Checks for library functions.
-AC_FUNC_MALLOC
-AC_FUNC_REALLOC
-AC_FUNC_ALLOCA
-AC_CHECK_FUNCS([ bzero memmove memset ])
-AC_CHECK_FUNCS([ strcasecmp strchr strcspn strdup strncasecmp strpbrk strrchr strspn strtol ])
-AC_CHECK_FUNCS([ gettimeofday mkdir regcomp setlocale uname ])
+# gperf 3.1 generates functions with 'size_t' instead of 'unsigned int'
+AC_MSG_CHECKING([for the type used in gperf declarations])
+GPERF_LEN_TYPE=
+AS_VAR_SET(
+ [GPERF_PROLOG],
+ [`echo foo,bar | ${GPERF} -L ANSI-C`])
+AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+ #include <string.h>
+ ${GPERF_PROLOG}
+ const char * in_word_set(const char *, size_t);
+ ]])
+ ],
+ [GPERF_LEN_TYPE='size_t'],
+ [
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+ #include <string.h>
+ ${GPERF_PROLOG}
+ const char * in_word_set(const char *, unsigned int);
+ ]])
+ ],
+ [GPERF_LEN_TYPE='unsigned int'],
+ [AC_MSG_RESULT([not size_t, not unsigned int. What else?])
+ AC_MSG_FAILURE([unable to detect the type used in gperf declarations])
+ ])])
+AC_MSG_RESULT([${GPERF_LEN_TYPE}])
+AC_SUBST([GPERF_LEN_TYPE])