2009-05-05 Marcus Brinkmann <marcus@g10code.de>
authorMarcus Brinkmann <mb@g10code.com>
Tue, 5 May 2009 17:03:33 +0000 (17:03 +0000)
committerMarcus Brinkmann <mb@g10code.com>
Tue, 5 May 2009 17:03:33 +0000 (17:03 +0000)
* configure.ac: Add infrastructure for compile time check of
_FILE_OFFSET_BITS.

src/
2009-05-05  Marcus Brinkmann  <marcus@g10code.de>

* gpgme.h.in: Add compile time check for _FILE_OFFSET_BITS.

ChangeLog
configure.ac
src/ChangeLog
src/gpgme.h.in

index 14797c4..886249b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-05-05  Marcus Brinkmann  <marcus@g10code.de>
+
+       * configure.ac: Add infrastructure for compile time check of
+       _FILE_OFFSET_BITS.
+
 2009-04-19  Moritz  <moritz@gnu.org>
 
        * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): Specify --with-gpg.
index 5d49c08..f02ca8b 100644 (file)
@@ -198,6 +198,18 @@ AC_CHECK_SIZEOF(unsigned int)
 AC_SYS_LARGEFILE
 AC_TYPE_OFF_T
 
+# A simple compile time check in gpgme.h for GNU/Linux systems that
+# prevents a file offset bits mismatch between gpgme and the application.
+NEED__FILE_OFFSET_BITS=0
+case $ac_cv_sys_file_offset_bits in
+  no | unknown) ;;
+  *)
+  NEED__FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits
+  ;;
+esac
+AC_SUBST(NEED__FILE_OFFSET_BITS)
+
+
 # Checks for compiler features.
 if test "$GCC" = yes; then
     CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
index 1dcdb21..e2ac143 100644 (file)
@@ -1,3 +1,7 @@
+2009-05-05  Marcus Brinkmann  <marcus@g10code.de>
+
+       * gpgme.h.in: Add compile time check for _FILE_OFFSET_BITS.
+
 2009-04-15  Marcus Brinkmann  <marcus@g10code.de>
 
        * posix-io.c (_gpgme_io_socket, _gpgme_io_connect): New functions.
index 65823a6..474be73 100644 (file)
@@ -74,6 +74,17 @@ extern "C" {
    library.  */
 #define GPGME_VERSION "@PACKAGE_VERSION@"
 
+/* Check for a matching _FILE_OFFSET_BITS definition.  */
+#if @NEED__FILE_OFFSET_BITS@
+#ifndef _FILE_OFFSET_BITS
+#error GPGME was compiled with _FILE_OFFSET_BITS = @NEED__FILE_OFFSET_BITS@, please see the section "Largefile support (LFS)" in the GPGME manual.
+#else
+#if (_FILE_OFFSET_BITS) != (@NEED__FILE_OFFSET_BITS@)
+#error GPGME was compiled with a different value for _FILE_OFFSET_BITS, namely @NEED__FILE_OFFSET_BITS@, please see the section "Largefile support (LFS)" in the GPGME manual.
+#endif
+#endif
+#endif
+
 
 \f
 /* Some opaque data types used by GPGME.  */