summaryrefslogtreecommitdiffstats
path: root/g13
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2020-02-10 16:37:34 +0100
committerWerner Koch <wk@gnupg.org>2020-02-10 16:50:47 +0100
commit6aff8a132815a84bab69401c1e7de96ec549fbf2 (patch)
tree00e313097a522fc1956bed6f45a5361422b561ae /g13
parentgpg: Make really sure that --verify-files always returns an error. (diff)
downloadgnupg2-6aff8a132815a84bab69401c1e7de96ec549fbf2.tar.xz
gnupg2-6aff8a132815a84bab69401c1e7de96ec549fbf2.zip
build: Always use EXTERN_UNLESS_MAIN_MODULE pattern.
* common/util.h (EXTERN_UNLESS_MAIN_MODULE): Add the definion only here but now without the Norcroft-C. Change all other places where it gets defined. * common/iobuf.h (iobuf_debug_mode): Declare unconditionally as extern. * common/iobuf.c (iobuf_debug_mode): Define it here. * agent/gpg-agent.c (INCLUDED_BY_MAIN_MODULE): Define here and also in all main modules of all other programs. * g10/main.h: Put util.h before the local header files. -- This change is required for use with gcc/ld's LTO feature which does not allow common blocks. Further gcc 10 will make -fno-common the default and thus this chnage is always needed. What a pitty. Co-authored-by: Tomáš Mráz GnuPG-bug-id: 4831 Signed-off-by: Werner Koch <wk@gnupg.org> (cherry picked from commit 21d9bd8b87a9f793a106095e3838eb71825189d7) - Applied respective chnages also to gpg-card and keyboxd. Signed-off-by: Werner Koch <wk@gnupg.org>
Diffstat (limited to 'g13')
-rw-r--r--g13/g13-common.h2
-rw-r--r--g13/g13-syshelp.c1
-rw-r--r--g13/g13.c1
3 files changed, 3 insertions, 1 deletions
diff --git a/g13/g13-common.h b/g13/g13-common.h
index acf25b843..42b8deebd 100644
--- a/g13/g13-common.h
+++ b/g13/g13-common.h
@@ -32,7 +32,6 @@
#include "../common/session-env.h"
#include "../common/strlist.h"
-
/* Debug values and macros. */
#define DBG_MOUNT_VALUE 1 /* Debug mount or device stuff. */
#define DBG_CRYPTO_VALUE 4 /* Debug low level crypto. */
@@ -48,6 +47,7 @@
/* A large struct named "opt" to keep global flags. Note that this
struct is used by g13 and g13-syshelp and thus some fields may only
make sense for one of them. */
+EXTERN_UNLESS_MAIN_MODULE
struct
{
unsigned int debug; /* Debug flags (DBG_foo_VALUE). */
diff --git a/g13/g13-syshelp.c b/g13/g13-syshelp.c
index bf71ac20f..4ce74ee4c 100644
--- a/g13/g13-syshelp.c
+++ b/g13/g13-syshelp.c
@@ -31,6 +31,7 @@
#endif
#include <unistd.h>
+#define INCLUDED_BY_MAIN_MODULE 1
#include "g13-syshelp.h"
#include <gcrypt.h>
diff --git a/g13/g13.c b/g13/g13.c
index 4b925ed59..6265b9f24 100644
--- a/g13/g13.c
+++ b/g13/g13.c
@@ -27,6 +27,7 @@
#include <fcntl.h>
#include <npth.h>
+#define INCLUDED_BY_MAIN_MODULE 1
#include "g13.h"
#include <gcrypt.h>