summaryrefslogtreecommitdiff
path: root/prepare-release
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2022-04-22 17:05:36 +0200
committerDavid Kalnischkies <david@kalnischkies.de>2022-05-07 10:45:44 +0200
commit320245536a7ad21606286d9dcf54acf3bdf096c6 (patch)
tree839e81d85af6e50e8e8217717e160f41f0946ba1 /prepare-release
parente5aa5c04ecbd3cdab611794cebf9eb3aa8cbddd4 (diff)
Include our config.h in all C++ files to avoid ODR violations
Some of our headers use APT_COMPILING_APT trickery to avoid exposing too broadly details we don't want external clients to know and make use of. The flip-side is that this can lead to different compilation units seeing different definitions if they aren't all using the same config.
Diffstat (limited to 'prepare-release')
-rwxr-xr-xprepare-release5
1 files changed, 5 insertions, 0 deletions
diff --git a/prepare-release b/prepare-release
index 39e2250bc..988ccabad 100755
--- a/prepare-release
+++ b/prepare-release
@@ -142,6 +142,11 @@ elif [ "$1" = 'post-build' ]; then
FAILED=true
fi
+ if [ "$(find -name '*.cc' ! -name 'tagfile-keys.cc' -exec grep --files-without-match '^#include <config\.h>$' '{}' \+ | wc -l)" != '0' ]; then
+ echo >&2 'WARNING: C++ files not including our config.h can cause ODR violations!'
+ find -name '*.cc' ! -name 'tagfile-keys.cc' -exec grep --files-without-match '^#include <config\.h>$' '{}' \+ >&2
+ FAILED=true
+ fi
if $REPORT_FAILURE && $FAILED; then
exit 1
fi