summary refs log tree commit diff
path: root/state.c
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2019-11-20 01:22:06 -0800
committerJune McEnroe <june@causal.agency>2019-11-21 16:26:37 -0500
commitf4b0d09e3f782511b99626104ca960dd5decd4b8 (patch)
treea7d7b4550e803624c9f33562ba89c0358b2019fe /state.c
parentZero temporary SASL PLAIN buffer (diff)
downloadpounce-f4b0d09e3f782511b99626104ca960dd5decd4b8.tar.gz
pounce-f4b0d09e3f782511b99626104ca960dd5decd4b8.zip
Declare globals as extern in headers, and define in source file
Otherwise, each source file that includes the header gets its own
definition, and according to the C standard (C99 6.9p5):

> If an identifier declared with external linkage is used in an
> expression (other than as part of the operand of a sizeof operator
> whose result is an integer constant), somewhere in the entire
> program there shall be exactly one external definition for the
> identifier

Most compilers use the .bss section for zero data, but if it uses
.data instead, or if -Wl,--warn-common is used, this will cause a
linking error.
Diffstat (limited to 'state.c')
-rw-r--r--state.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/state.c b/state.c
index 154e16d..a661ce7 100644
--- a/state.c
+++ b/state.c
@@ -25,6 +25,9 @@
 
 #include "bounce.h"
 
+bool stateNoNames;
+enum Cap stateCaps;
+
 typedef void Handler(struct Message *msg);
 
 static void require(const struct Message *msg, bool origin, size_t len) {