check-includes: allow redundant "config.h"

We should actually be including this (as it may define _GNU_SOURCE
etc) before any system headers.  But where we include <assert.h> we
often didn't, because check-includes would complain that the headers
included it too.

Weaken that check, and include config.h in C files before assert.h.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell 2021-02-01 13:28:50 +10:30
parent c8198d9820
commit 06a54606a3
53 changed files with 53 additions and 1 deletions

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <bitcoin/block.h> #include <bitcoin/block.h>
#include <bitcoin/chainparams.h> #include <bitcoin/chainparams.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <bitcoin/locktime.h> #include <bitcoin/locktime.h>
#include <ccan/tal/str/str.h> #include <ccan/tal/str/str.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <bitcoin/chainparams.h> #include <bitcoin/chainparams.h>
#include <bitcoin/psbt.h> #include <bitcoin/psbt.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <bitcoin/privkey.c> #include <bitcoin/privkey.c>
#include <ccan/err/err.h> #include <ccan/err/err.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <bitcoin/psbt.c> #include <bitcoin/psbt.c>
#include <bitcoin/shadouble.c> #include <bitcoin/shadouble.c>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <bitcoin/block.h> #include <bitcoin/block.h>
#include <bitcoin/chainparams.h> #include <bitcoin/chainparams.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <bitcoin/tx_parts.h> #include <bitcoin/tx_parts.h>
#include <common/utils.h> #include <common/utils.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <bitcoin/chainparams.h> #include <bitcoin/chainparams.h>
#include <bitcoin/preimage.h> #include <bitcoin/preimage.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <bitcoin/chainparams.h> #include <bitcoin/chainparams.h>
#include <ccan/endian/endian.h> #include <ccan/endian/endian.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <common/bigsize.h> #include <common/bigsize.h>
#include <wire/wire.h> #include <wire/wire.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <ccan/ccan/cast/cast.h> #include <ccan/ccan/cast/cast.h>
#include <ccan/tal/str/str.h> #include <ccan/tal/str/str.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <ccan/build_assert/build_assert.h> #include <ccan/build_assert/build_assert.h>
#include <ccan/crypto/hkdf_sha256/hkdf_sha256.h> #include <ccan/crypto/hkdf_sha256/hkdf_sha256.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <backtrace-supported.h> #include <backtrace-supported.h>
#include <backtrace.h> #include <backtrace.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <ccan/err/err.h> #include <ccan/err/err.h>
#include <ccan/str/str.h> #include <ccan/str/str.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <ccan/crc32c/crc32c.h> #include <ccan/crc32c/crc32c.h>
#include <common/features.h> #include <common/features.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <ccan/bitops/bitops.h> #include <ccan/bitops/bitops.h>
#include <ccan/crypto/siphash24/siphash24.h> #include <ccan/crypto/siphash24/siphash24.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <bitcoin/chainparams.h> #include <bitcoin/chainparams.h>
#include <bitcoin/psbt.h> #include <bitcoin/psbt.h>

View file

@ -1,4 +1,5 @@
/* JSON core and helpers */ /* JSON core and helpers */
#include "config.h"
#include <assert.h> #include <assert.h>
#include <ccan/build_assert/build_assert.h> #include <ccan/build_assert/build_assert.h>
#include <ccan/json_escape/json_escape.h> #include <ccan/json_escape/json_escape.h>

View file

@ -19,6 +19,7 @@
* 3. provides a routine to access any remaining pointers in the * 3. provides a routine to access any remaining pointers in the
* table: these are the leaks. * table: these are the leaks.
*/ */
#include "config.h"
#include <assert.h> #include <assert.h>
#include <backtrace.h> #include <backtrace.h>
#include <ccan/crypto/siphash24/siphash24.h> #include <ccan/crypto/siphash24/siphash24.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <common/msg_queue.h> #include <common/msg_queue.h>
#include <common/utils.h> #include <common/utils.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <ccan/array_size/array_size.h> #include <ccan/array_size/array_size.h>
#include <ccan/mem/mem.h> #include <ccan/mem/mem.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <common/penalty_base.h> #include <common/penalty_base.h>
#include <wire/wire.h> #include <wire/wire.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <ccan/fdpass/fdpass.h> #include <ccan/fdpass/fdpass.h>
#include <common/gossip_constants.h> #include <common/gossip_constants.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <bitcoin/chainparams.h> #include <bitcoin/chainparams.h>
#include <bitcoin/privkey.h> #include <bitcoin/privkey.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <ccan/fdpass/fdpass.h> #include <ccan/fdpass/fdpass.h>
#include <common/crypto_sync.h> #include <common/crypto_sync.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <ccan/err/err.h> #include <ccan/err/err.h>
#include <ccan/tal/str/str.h> #include <ccan/tal/str/str.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <ccan/ccan/err/err.h> #include <ccan/ccan/err/err.h>
#include <common/memleak.h> #include <common/memleak.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <ccan/array_size/array_size.h> #include <ccan/array_size/array_size.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <ccan/breakpoint/breakpoint.h> #include <ccan/breakpoint/breakpoint.h>
#include <ccan/endian/endian.h> #include <ccan/endian/endian.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <bitcoin/preimage.h> #include <bitcoin/preimage.h>
#include <ccan/crypto/ripemd160/ripemd160.h> #include <ccan/crypto/ripemd160/ripemd160.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <bitcoin/privkey.h> #include <bitcoin/privkey.h>
#include <bitcoin/psbt.h> #include <bitcoin/psbt.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <arpa/inet.h> #include <arpa/inet.h>
#include <assert.h> #include <assert.h>
#include <ccan/build_assert/build_assert.h> #include <ccan/build_assert/build_assert.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <bitcoin/privkey.h> #include <bitcoin/privkey.h>
#include <bitcoin/pubkey.h> #include <bitcoin/pubkey.h>

View file

@ -1,4 +1,5 @@
/* -*- c-basic-offset: 4; indent-tabs-mode: nil; -*- */ /* -*- c-basic-offset: 4; indent-tabs-mode: nil; -*- */
#include "config.h"
#include <arpa/inet.h> #include <arpa/inet.h>
#include <assert.h> #include <assert.h>
#include <common/status.h> #include <common/status.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <stdio.h> #include <stdio.h>
#include <sys/socket.h> #include <sys/socket.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <stdio.h> #include <stdio.h>
#include <sys/socket.h> #include <sys/socket.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <arpa/inet.h> #include <arpa/inet.h>
#include <assert.h> #include <assert.h>
#include <ccan/err/err.h> #include <ccan/err/err.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <ccan/mem/mem.h> #include <ccan/mem/mem.h>
#include <ccan/opt/opt.h> #include <ccan/opt/opt.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <ccan/err/err.h> #include <ccan/err/err.h>
#include <ccan/opt/opt.h> #include <ccan/opt/opt.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <bitcoin/pubkey.h> #include <bitcoin/pubkey.h>
#include <ccan/err/err.h> #include <ccan/err/err.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <bitcoin/chainparams.h> #include <bitcoin/chainparams.h>
#include <bitcoin/psbt.h> #include <bitcoin/psbt.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <bitcoin/psbt.h> #include <bitcoin/psbt.h>
#include <ccan/ccan/array_size/array_size.h> #include <ccan/ccan/array_size/array_size.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <stdint.h> #include <stdint.h>
#include <tests/fuzz/libfuzz.h> #include <tests/fuzz/libfuzz.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <stdint.h> #include <stdint.h>
#include <string.h> #include <string.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <stdint.h> #include <stdint.h>
#include <string.h> #include <string.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <stdint.h> #include <stdint.h>
#include <string.h> #include <string.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <bitcoin/pubkey.h> #include <bitcoin/pubkey.h>
#include <bitcoin/tx.h> #include <bitcoin/tx.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <stdint.h> #include <stdint.h>
#include <string.h> #include <string.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <tests/fuzz/libfuzz.h> #include <tests/fuzz/libfuzz.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <fcntl.h> #include <fcntl.h>
#include <stdint.h> #include <stdint.h>

View file

@ -40,7 +40,7 @@ for HEADER_FILE in $(filter_suffix h); do
if [[ ! -e $C_FILE ]]; then if [[ ! -e $C_FILE ]]; then
continue continue
fi fi
DUPLICATE_INCLUDES_IN_HEADER_AND_C_FILES=$(grep -hE "^#include " <(sort -u < "${HEADER_FILE}") <(sort -u < "${C_FILE}") | grep -E "^#include " | sort | uniq -d) DUPLICATE_INCLUDES_IN_HEADER_AND_C_FILES=$(grep -hE "^#include " <(sort -u < "${HEADER_FILE}") <(sort -u < "${C_FILE}" | grep -v '"config.h"') | grep -E "^#include " | sort | uniq -d)
if [[ ${DUPLICATE_INCLUDES_IN_HEADER_AND_C_FILES} != "" ]]; then if [[ ${DUPLICATE_INCLUDES_IN_HEADER_AND_C_FILES} != "" ]]; then
echo "Include(s) from ${HEADER_FILE} duplicated in ${C_FILE}:" echo "Include(s) from ${HEADER_FILE} duplicated in ${C_FILE}:"
echo "${DUPLICATE_INCLUDES_IN_HEADER_AND_C_FILES}" echo "${DUPLICATE_INCLUDES_IN_HEADER_AND_C_FILES}"

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <common/bigsize.h> #include <common/bigsize.h>
#include <wire/tlvstream.h> #include <wire/tlvstream.h>

View file

@ -1,3 +1,4 @@
#include "config.h"
#include <assert.h> #include <assert.h>
#include <ccan/endian/endian.h> #include <ccan/endian/endian.h>
#include <ccan/read_write_all/read_write_all.h> #include <ccan/read_write_all/read_write_all.h>