pdf-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [pdf-devel] Assigning a 64-bit value to pdf_i64_t


From: Aleksander Morgado
Subject: Re: [pdf-devel] Assigning a 64-bit value to pdf_i64_t
Date: Sat, 22 Nov 2008 18:42:24 +0100
User-agent: Thunderbird 2.0.0.17 (X11/20080925)

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

Yep, I'll send you updated patch.


Here it is.

Cheers,
-Aleksander
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: address@hidden
# target_branch: file:///home/aleksander/Development/gnu/libgnupdf\
#   /trunk/
# testament_sha1: bfbaf0f2bd2d125e1e5ec46ff88fc282ce8cfae9
# timestamp: 2008-11-22 18:40:32 +0100
# base_revision_id: address@hidden
#   tj9wc0hbpd3fwi7h
# 
# Begin patch
=== modified file 'ChangeLog'
--- ChangeLog   2008-11-14 21:01:01 +0000
+++ ChangeLog   2008-11-22 17:39:07 +0000
@@ -1,3 +1,18 @@
+2008-11-22  Aleksander Morgado  <address@hidden>
+
+       * src/base/pdf-types.h (PDF_USE_BUILTIN_64BIT_SUPPORT): Use mixed
+       approach when looking for 64-bit types: check for both int64_t
+       defined (if stdint.h coming from gnulib), or for HAVE_INT64_T (if
+       stdint.h coming from system and detected at configure time).
+
+2008-11-16  Aleksander Morgado  <address@hidden>
+
+       * configure.ac: Check for `int64_t' and define HAVE_INT64_T if it
+       is available.
+
+       * src/base/pdf-types.h (PDF_USE_BUILTIN_64BIT_SUPPORT): Use new
+       HAVE_INT64_T instead of `if defined(int64_t)'.
+
 2008-11-14  Jose E. Marchesi  <address@hidden>
 
        * src/base/pdf-types.h: Take care about the PDF_FORCE_BIGNUMS

=== modified file 'configure.ac'
--- configure.ac        2008-11-14 21:01:01 +0000
+++ configure.ac        2008-11-16 11:27:36 +0000
@@ -42,6 +42,7 @@
 dnl Search for data types
 AC_CHECK_TYPE(size_t, unsigned)
 AC_CHECK_TYPE(off_t, long)
+AC_CHECK_TYPE(int64_t, AC_DEFINE(HAVE_INT64_T,1,[int64_t is defined]),,)
 
 dnl Search for functions
 AC_FUNC_FSEEKO

=== modified file 'src/base/pdf-types.h'
--- src/base/pdf-types.h        2008-11-14 21:01:01 +0000
+++ src/base/pdf-types.h        2008-11-22 17:39:07 +0000
@@ -109,7 +109,7 @@
 
 /********************** 64-bit type built-in support 
**************************/
 
-#if defined(int64_t) && !defined(PDF_FORCE_BIGNUMS)
+#if (HAVE_INT64_T || defined(int64_t)) && !defined(PDF_FORCE_BIGNUMS)
 #define PDF_USE_BUILTIN_64BIT_SUPPORT
 #endif
 

# Begin bundle
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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]