Commit 9878b306 authored by Akira TAGOH's avatar Akira TAGOH

Fix the build issue with gperf 3.1

To support the one of changes in gperf 3.1:
* The 'len' parameter of the hash function and of the lookup function is now
  of type 'size_t' instead of 'unsigned int'. This makes it safe to call these
  functions with strings of length > 4 GB, on 64-bit machines.
parent 1ab5258f
......@@ -193,6 +193,26 @@ fi
AC_CHECK_MEMBERS([struct dirent.d_type],,,
[#include <dirent.h>])
# Check the argument type of the gperf hash/lookup function
AC_MSG_CHECKING([The type of len parameter of gperf hash/lookup function])
fc_gperf_test="$(echo 'foo' | gperf -L ANSI-C)"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <string.h>
const char *in_word_set(register const char *, register size_t);
$fc_gperf_test
]])], [FC_GPERF_SIZE_T=size_t],
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <string.h>
const char *in_word_set(register const char *, register unsigned int);
$fc_gperf_test
]])], [FC_GPERF_SIZE_T="unsigned int"],
[AC_MSG_ERROR([Unable to determine the type of the len parameter of the gperf hash/lookup function])]
)])
AC_DEFINE_UNQUOTED(FC_GPERF_SIZE_T, $FC_GPERF_SIZE_T, [The type of len parameter of the gperf hash/lookup function])
AC_MSG_RESULT($FC_GPERF_SIZE_T)
#
# Checks for iconv
#
......
......@@ -25,10 +25,10 @@
#include "fcint.h"
static unsigned int
FcObjectTypeHash (register const char *str, register unsigned int len);
FcObjectTypeHash (register const char *str, register FC_GPERF_SIZE_T len);
static const struct FcObjectTypeInfo *
FcObjectTypeLookup (register const char *str, register unsigned int len);
FcObjectTypeLookup (register const char *str, register FC_GPERF_SIZE_T len);
#include "fcobjshash.h"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment