Handle systems which have uint64_t but not the UINT64_C macro.
authorThomas Klausner <wiz@NetBSD.org>
Sat, 27 Oct 2012 17:56:11 +0000 (19:56 +0200)
committerWerner Koch <wk@gnupg.org>
Tue, 6 Nov 2012 16:55:31 +0000 (17:55 +0100)
* include/types.h (U64_C) [!UINT64_C]: Add simple replacement.

--
This could happen with UNIX98-type systems, such as the code on
the netbsd-1-5 branch, and would prevent this package from building
on such systems.

include/types.h

index 7d93865..6baccdb 100644 (file)
@@ -101,9 +101,14 @@ typedef unsigned long u32;
 # undef u64        /* maybe there is a macro with this name */
 # if SIZEOF_UINT64_T == 8
 typedef uint64_t u64;
+# ifdef UINT64_C
 #  define U64_C(c) (UINT64_C(c))
-#  define HAVE_U64_TYPEDEF
-# elif SIZEOF_UNSIGNED_INT == 8
+# else
+   /* make a best guess, could happen with UNIX98 <inttypes.h> */
+#  define U64_C(c) (c)
+# endif
+# define HAVE_U64_TYPEDEF
+#elif SIZEOF_UNSIGNED_INT == 8
 typedef unsigned int u64;
 #  define U64_C(c) (c ## U)
 #  define HAVE_U64_TYPEDEF