Make gpg-error replacement defines more robust.
authorWerner Koch <wk@gnupg.org>
Wed, 26 Jun 2013 09:09:42 +0000 (11:09 +0200)
committerWerner Koch <wk@gnupg.org>
Wed, 26 Jun 2013 09:11:32 +0000 (11:11 +0200)
* configure.ac (AH_BOTTOM): Move GPG_ERR_ replacement defines to ...
* src/gcrypt-int.h: new file.
* src/visibility.h, src/cipher.h: Replace gcrypt.h by gcrypt-int.h.
* tests/: Ditto for all test files.
--

Defining newer gpg-error codes in config.h was not a good idea,
because config.h is usually included before gpg-error.h and thus
gpg-error.h would be double defines to lead to faulty code there like

  typedef enum
    {
      [...]
      191 = 191,
      [...]
    };

25 files changed:
configure.ac
src/Makefile.am
src/cipher.h
src/gcrypt-int.h [new file with mode: 0644]
src/visibility.h
tests/aeswrap.c
tests/basic.c
tests/benchmark.c
tests/curves.c
tests/fips186-dsa.c
tests/fipsdrv.c
tests/hmac.c
tests/keygen.c
tests/keygrip.c
tests/mpitests.c
tests/pkcs1v2.c
tests/prime.c
tests/pubkey.c
tests/random.c
tests/rsacvt.c
tests/t-kdf.c
tests/t-mpi-bit.c
tests/t-mpi-point.c
tests/tsexp.c
tests/version.c

index d9b1639..13541bb 100644 (file)
@@ -65,6 +65,8 @@ LIBGCRYPT_LT_REVISION=0
 # If the API is changed in an incompatible way: increment the next counter.
 LIBGCRYPT_CONFIG_API_VERSION=1
 
+# If you change the required gpg-error version, please remove
+# unnecessary error code defines in src/gcrypt-int.h.
 NEED_GPG_ERROR_VERSION=1.11
 
 PACKAGE=$PACKAGE_NAME
@@ -105,15 +107,6 @@ AH_BOTTOM([
    properly prefixed.  */
 #define CAMELLIA_EXT_SYM_PREFIX _gcry_
 
-/* These error codes are used but not defined in the required
-   libgpg-error 1.11.  Define them here. */
-#define GPG_ERR_NO_CRYPT_CTX      191
-#define GPG_ERR_WRONG_CRYPT_CTX    192
-#define GPG_ERR_BAD_CRYPT_CTX     193
-#define GPG_ERR_CRYPT_CTX_CONFLICT 194
-#define GPG_ERR_BROKEN_PUBKEY      195
-#define GPG_ERR_BROKEN_SECKEY      196
-
 #endif /*_GCRYPT_CONFIG_H_INCLUDED*/
 ])
 
index 22263d9..8eb46e6 100644 (file)
@@ -54,7 +54,8 @@ else
 endif
 
 libgcrypt_la_CFLAGS = $(GPG_ERROR_CFLAGS)
-libgcrypt_la_SOURCES = g10lib.h visibility.c visibility.h types.h \
+libgcrypt_la_SOURCES = \
+        gcrypt-int.h g10lib.h visibility.c visibility.h types.h \
        cipher.h cipher-proto.h gcrypt-module.h \
        misc.c global.c sexp.c hwfeatures.c hwf-common.h \
        stdmem.c stdmem.h secmem.c secmem.h \
index 80c8839..2620613 100644 (file)
@@ -20,7 +20,7 @@
 #ifndef G10_CIPHER_H
 #define G10_CIPHER_H
 
-#include <gcrypt.h>
+#include "gcrypt-int.h"
 
 #define DBG_CIPHER _gcry_get_debug_flag( 1 )
 
diff --git a/src/gcrypt-int.h b/src/gcrypt-int.h
new file mode 100644 (file)
index 0000000..33969fe
--- /dev/null
@@ -0,0 +1,40 @@
+/* gcrypt-int.h - Internal version of gcrypt.h
+ * Copyright (C) 2013 g10 Code GmbH
+ *
+ * This file is part of Libgcrypt.
+ *
+ * Libgcrypt is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * Libgcrypt is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef GCRY_GCRYPT_INT_H
+#define GCRY_GCRYPT_INT_H
+
+#ifdef _GCRYPT_H
+#error  gcrypt.h already included
+#endif
+
+#include "gcrypt.h"
+
+/* These error codes are used but not defined in the required
+   libgpg-error 1.11.  Define them here. */
+#ifndef GPG_ERR_NO_CRYPT_CTX
+# define GPG_ERR_NO_CRYPT_CTX      191
+# define GPG_ERR_WRONG_CRYPT_CTX    192
+# define GPG_ERR_BAD_CRYPT_CTX     193
+# define GPG_ERR_CRYPT_CTX_CONFLICT 194
+# define GPG_ERR_BROKEN_PUBKEY      195
+# define GPG_ERR_BROKEN_SECKEY      196
+#endif
+
+#endif /*GCRY_GCRYPT_INT_H*/
index 6887f37..4837ed6 100644 (file)
   /* We need to redeclare the deprecated functions without the
      deprecated attribute.  */
 # define GCRYPT_NO_DEPRECATED
-# include "gcrypt.h"
+# include "gcrypt-int.h"
   /* None in this version.  */
 #else
-# include "gcrypt.h"
+# include "gcrypt-int.h"
 #endif
 #include "gcrypt-module.h"
 
index bb52fc9..16b576d 100644 (file)
@@ -26,7 +26,7 @@
 #include <string.h>
 #include <stdarg.h>
 
-#include "../src/gcrypt.h"
+#include "../src/gcrypt-int.h"
 
 static int verbose;
 static int error_count;
index c92750c..d1b4002 100644 (file)
@@ -27,7 +27,7 @@
 #include <stdarg.h>
 #include <assert.h>
 
-#include "../src/gcrypt.h"
+#include "../src/gcrypt-int.h"
 
 #ifndef DIM
 # define DIM(v)                     (sizeof(v)/sizeof((v)[0]))
index 61badd5..c4b5258 100644 (file)
@@ -31,7 +31,7 @@
 #endif
 
 #ifdef _GCRYPT_IN_LIBGCRYPT
-# include "../src/gcrypt.h"
+# include "../src/gcrypt-int.h"
 # include "../compat/libcompat.h"
 #else
 # include <gcrypt.h>
index 6cfcd4f..664e875 100644 (file)
@@ -26,7 +26,7 @@
 #include <string.h>
 #include <stdarg.h>
 
-#include "../src/gcrypt.h"
+#include "../src/gcrypt-int.h"
 
 /* Number of curves defined in ../cipger/ecc.c */
 #define N_CURVES 12
index 401acff..10b18ab 100644 (file)
@@ -26,7 +26,7 @@
 #include <stdarg.h>
 
 #ifdef _GCRYPT_IN_LIBGCRYPT
-# include "../src/gcrypt.h"
+# include "../src/gcrypt-int.h"
 #else
 # include <gcrypt.h>
 #endif
index 2d4c362..eef2ddd 100644 (file)
@@ -35,7 +35,7 @@
 #include <unistd.h>
 
 #ifdef _GCRYPT_IN_LIBGCRYPT
-# include "../src/gcrypt.h"
+# include "../src/gcrypt-int.h"
 #else
 # include <gcrypt.h>
 # define PACKAGE_BUGREPORT "devnull@example.org"
index 292a2fa..5d695ea 100644 (file)
@@ -26,7 +26,7 @@
 #include <string.h>
 #include <stdarg.h>
 
-#include "../src/gcrypt.h"
+#include "../src/gcrypt-int.h"
 
 static int verbose;
 static int error_count;
index 05593c3..1d1b43e 100644 (file)
@@ -25,7 +25,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <stdarg.h>
-#include "../src/gcrypt.h"
+#include "../src/gcrypt-int.h"
 
 
 
index a496ca2..a89bba8 100644 (file)
@@ -28,7 +28,7 @@
 #include <stdarg.h>
 #include <assert.h>
 
-#include "../src/gcrypt.h"
+#include "../src/gcrypt-int.h"
 
 static int verbose;
 static int repetitions;
index 3b75ea7..5643c1b 100644 (file)
@@ -28,7 +28,7 @@
 #include <stdarg.h>
 
 #ifdef _GCRYPT_IN_LIBGCRYPT
-# include "../src/gcrypt.h"
+# include "../src/gcrypt-int.h"
 #else
 # include <gcrypt.h>
 #endif
index bb06292..20f1b64 100644 (file)
@@ -26,7 +26,7 @@
 #include <stdarg.h>
 
 #ifdef _GCRYPT_IN_LIBGCRYPT
-# include "../src/gcrypt.h"
+# include "../src/gcrypt-int.h"
 #else
 # include <gcrypt.h>
 #endif
index 5d928bd..6e825ae 100644 (file)
@@ -24,7 +24,7 @@
 #include <string.h>
 #include <stdlib.h>
 
-#include "../src/gcrypt.h"
+#include "../src/gcrypt-int.h"
 
 static int verbose;
 
index 4534175..ffaecb3 100644 (file)
@@ -26,7 +26,7 @@
 #include <string.h>
 
 
-#include "../src/gcrypt.h"
+#include "../src/gcrypt-int.h"
 
 /* Sample RSA keys, taken from basic.c.  */
 
index a46d754..ccaa3f9 100644 (file)
@@ -30,7 +30,7 @@
 # include <sys/wait.h>
 #endif
 
-#include "../src/gcrypt.h"
+#include "../src/gcrypt-int.h"
 
 #define PGM "random"
 
index 014cd2a..6fb5c76 100644 (file)
@@ -52,7 +52,7 @@ e7a7ca5367c661f8e6[...]71
 #include <unistd.h>
 
 #ifdef _GCRYPT_IN_LIBGCRYPT
-# include "../src/gcrypt.h"
+# include "../src/gcrypt-int.h"
 #else
 # include <gcrypt.h>
 # define PACKAGE_BUGREPORT "devnull@example.org"
index 50deba0..adbe6cc 100644 (file)
@@ -27,7 +27,7 @@
 #include <stdarg.h>
 #include <assert.h>
 
-#include "../src/gcrypt.h"
+#include "../src/gcrypt-int.h"
 
 #ifndef DIM
 # define DIM(v)                     (sizeof(v)/sizeof((v)[0]))
index 85bd32e..b1c999e 100644 (file)
@@ -28,7 +28,7 @@
 #include <assert.h>
 #include <stdarg.h>
 
-#include "../src/gcrypt.h"
+#include "../src/gcrypt-int.h"
 
 #define PGM "t-mpi-bit"
 
index 98236e7..2631a11 100644 (file)
@@ -26,7 +26,7 @@
 #include <assert.h>
 #include <stdarg.h>
 
-#include "../src/gcrypt.h"
+#include "../src/gcrypt-int.h"
 
 #define PGM "t-mpi-point"
 
index 73d3d6e..cef3ed1 100644 (file)
@@ -25,7 +25,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <stdarg.h>
-#include "../src/gcrypt.h"
+#include "../src/gcrypt-int.h"
 
 #define PGMNAME "tsexp"
 
index af3c4c3..1332c7c 100644 (file)
@@ -33,7 +33,7 @@
 #include <string.h>
 #include <stdarg.h>
 
-#include "../src/gcrypt.h"
+#include "../src/gcrypt-int.h"
 
 #define PGM "version"