Hi Aleks.

   gnulib will only include the stdint.h if not available in the system, or 
   if not correctly implemented in a given system. In my Ubuntu/Debian the 
   module is not needed, as that file is already in the system, so no 
   stdint.h will be created after runnning configure.

   The problem here is that #ifdef won't work if int64_t is a typedef,
   as in my stdint.h.

Yes. The #ifdef solution only works when using stdint.h from gnulib.

   Checking for the specific int64_t with AC_CHECK_TYPE in configure.ac was 
   the only solution I found, at least in GNU systems with a correct 
   stdint.h not coming from gnulib. If the int64_t is not coming from the 
   system, and it comes from gnulib's module, we can then try to use the 
   #ifdef as gnulib will use macros to define the int64_t and friends. So a 
   mixed approach will probably work.

   What do you think?

I agree with that approach. We can use AC_CHECK_TYPE to define
HAVE_INT_64 in config.h, and then something like:

   #if defined(HAVE_INT_64) || defined(int64_t)
     Use the system type.
   #endif



Reply via email to