diff options
author | David Kalnischkies <david@kalnischkies.de> | 2022-04-22 17:05:36 +0200 |
---|---|---|
committer | David Kalnischkies <david@kalnischkies.de> | 2022-05-07 10:45:44 +0200 |
commit | 320245536a7ad21606286d9dcf54acf3bdf096c6 (patch) | |
tree | 839e81d85af6e50e8e8217717e160f41f0946ba1 /prepare-release | |
parent | e5aa5c04ecbd3cdab611794cebf9eb3aa8cbddd4 (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-x | prepare-release | 5 |
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 |