Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
6c59ec6
Merge bitcoin/bitcoin#27850: test: Add unit & functional test coverag…
achow101 Sep 14, 2023
1da6c15
fix: add missing changes from bitcoin#27850
Aug 3, 2025
64707a3
Merge bitcoin/bitcoin#26794: test: test banlist database recreation
DashCoreAutoGuix Jul 24, 2025
9bf0b03
Merge bitcoin/bitcoin#26924: refactor: Add missing includes to fix gc…
DashCoreAutoGuix Jul 24, 2025
8ed12a0
Merge bitcoin/bitcoin#26507: test: remove unused vars in `feature_block`
DashCoreAutoGuix Jul 24, 2025
40a0306
Merge bitcoin/bitcoin#25158: rpc, wallet: add abandoned field for all…
DashCoreAutoGuix Jul 24, 2025
783d562
Merge bitcoin/bitcoin#24330: doc: release-process: Specify remote nam…
DashCoreAutoGuix Jul 24, 2025
db0e1ae
Merge bitcoin/bitcoin#24282: docs: Move explanation of hardened key s…
DashCoreAutoGuix Jul 24, 2025
26b1263
Merge bitcoin/bitcoin#24359: doc: Fix typos
DashCoreAutoGuix Jul 24, 2025
b070be9
Merge bitcoin/bitcoin#22151: build: Follow Transifex docs to prepare …
DashCoreAutoGuix Jul 24, 2025
d891316
Merge bitcoin/bitcoin#27068: wallet: SecureString to allow null chara…
DashCoreAutoGuix Jul 24, 2025
5159367
Merge bitcoin#26119: doc: Move -permitbaremultisig to the relay help …
PastaPastaPasta Jul 25, 2025
254be0b
Merge bitcoin/bitcoin#27271: RPC: Fix fund transaction crash when at …
DashCoreAutoGuix Jul 25, 2025
a77cdf1
Merge bitcoin/bitcoin#27124: docs: add ramdisk guide for running test…
DashCoreAutoGuix Jul 26, 2025
1d5e5bc
Merge bitcoin/bitcoin#27073: Convert ArgsManager::GetDataDir to a rea…
DashCoreAutoGuix Jul 26, 2025
c452317
Merge bitcoin/bitcoin#26194: rpc, wallet: use the same `next_index` k…
DashCoreAutoGuix Jul 26, 2025
577e3ff
fix: resolve race condition in quorum data recovery thread management
PastaPastaPasta Jul 29, 2025
9f7fe7f
feat: a bit of extra logs when no DB_VVEC in database
knst Jul 27, 2025
a8bf088
fix: intermittent error in functional tests while waiting final quoru…
knst Jul 27, 2025
ccf8397
test: apply default 0.05 delay for wait_for_quorum_commitment
knst Jul 28, 2025
73864ca
test: use '0'x96 instead 00000..0
knst Jul 29, 2025
c011ef0
fix: let upgradetohd work for encrypted Descriptor wallets same as le…
knst Jul 18, 2025
88bb3e2
refactor: drop unused includes from wallet.cpp
knst Jul 19, 2025
c72280d
fix: hide multiple useless warnings for default build
knst Jul 26, 2025
73a296d
fmt: remove extra spaces in configure.ac
knst Jul 26, 2025
5413294
test: remove duplicated code from wallet_mnemonicbits.py by using hel…
knst Jul 17, 2025
59be60b
fix: copyright for wallet_upgradetohd.py
knst Jul 17, 2025
62f7c34
test: make wallet_upgradetohd works for descriptor wallets too
knst Jul 17, 2025
4971e5a
test: ensure determinism of addresses for specific mnemonic
knst Jul 17, 2025
f5d2026
test: enable --descriptors for wallet_upgradetohd.py
knst Jul 17, 2025
caa10ee
test: move helper get_mnemonic to test_framework/util
knst Jul 17, 2025
762d06f
refactor: group all `CheckCbTx*` calls and their timers under one `if…
UdjinM6 Jul 18, 2025
752d8fe
refactor: drop confusing `CheckCbTxMerkleRoots`, move its logic into …
UdjinM6 Jul 22, 2025
85ed7a0
Merge bitcoin/bitcoin#23897: refactor: Move calculation logic out fro…
DashCoreAutoGuix Jul 26, 2025
760ce8c
Merge bitcoin/bitcoin#27221: test: Default timeout factor to 4 under …
DashCoreAutoGuix Jul 26, 2025
3134cb9
Merge bitcoin/bitcoin#25666: refactor: wallet, do not translate init …
fanquake Mar 19, 2023
766865e
Merge bitcoin/bitcoin#27902: fuzz: wallet, add target for `CoinControl`
PastaPastaPasta Jul 26, 2025
b32b2cb
Merge bitcoin/bitcoin#24851: init: ignore BIP-30 verification in Disc…
PastaPastaPasta Jul 26, 2025
efb5b67
Merge bitcoin/bitcoin#26321: Adjust `.tx/config` for new Transifex CLI
DashCoreAutoGuix Jul 26, 2025
5e340da
Merge bitcoin/bitcoin#26259: test: Test year 2106 block timestamps
DashCoreAutoGuix Jul 26, 2025
10e9d25
Merge bitcoin/bitcoin#25491: wallet: use Mutex for g_sqlite_mutex ins…
DashCoreAutoGuix Jul 29, 2025
e804dd2
test: follow-up #6762 - removed related TODO from functional test
knst Jul 30, 2025
a33518f
refactor: shed avoidable casts, follow-up to bitcoin#25611
knst Jul 31, 2025
f585ecb
ci: add SKIP_ON_PUSH and SKIP_ON_PR environment variables to build wo…
PastaPastaPasta Jul 31, 2025
45470a7
ci: simplify skip logic to only affect container jobs
PastaPastaPasta Jul 31, 2025
a0c7303
partial Merge bitcoin/bitcoin#27594: refactor: Remove unused GetTimeM…
DashCoreAutoGuix Jul 28, 2025
731d5c8
Merge bitcoin/bitcoin#27554: test: Treat `bitcoin-wallet` binary in t…
DashCoreAutoGuix Jul 28, 2025
8b678ca
Merge bitcoin/bitcoin#27473: bugfix: Properly handle "unknown" Addres…
DashCoreAutoGuix Jul 28, 2025
c66b972
Merge bitcoin/bitcoin#27459: ci: explicitly install libclang-rt-dev i…
DashCoreAutoGuix Jul 28, 2025
7742c52
Merge bitcoin/bitcoin#27041: Build: Improve handling of suppressed lo…
DashCoreAutoGuix Jul 28, 2025
68cb2d9
Merge bitcoin/bitcoin#27674: ci: Fix "Number of CPUs" output
DashCoreAutoGuix Jul 28, 2025
023703c
Merge bitcoin/bitcoin#27507: lint: stop ignoring LIEF imports
DashCoreAutoGuix Jul 29, 2025
aeae1f6
Merge bitcoin/bitcoin#28507: contrib/bash-completions: use package na…
DashCoreAutoGuix Jul 29, 2025
ff719ef
Merge bitcoin/bitcoin#28176: tests: add coverage to feature_addrman.py
DashCoreAutoGuix Jul 29, 2025
aecf5a2
Merge bitcoin/bitcoin#28188: ci: Use documented `CCACHE_MAXSIZE` inst…
DashCoreAutoGuix Jul 29, 2025
968fd51
Merge bitcoin/bitcoin#27957: net: remove unused `CConnmanTest`
DashCoreAutoGuix Jul 29, 2025
bfddc1b
Update test/functional/test_framework/test_framework.py
PastaPastaPasta Jul 31, 2025
a64bbfe
merge bitcoin#24098: Use query parameters to control resource loading
kwvg Jul 28, 2025
376f7c7
merge bitcoin#26143: wait for the expected basic block filter index i…
kwvg Jul 28, 2025
985f0fb
merge bitcoin#24576: remove redundant base58 implementation
kwvg Jul 28, 2025
16df18f
merge bitcoin#24739: Fix intermittent test failure in wallet_listrece…
kwvg Apr 1, 2022
6195a88
merge bitcoin#25011: Do not always create a descriptor wallet in wall…
kwvg Apr 27, 2022
5f68c56
merge bitcoin#25045: add coverage for invalid requests for `blockfilt…
kwvg Apr 30, 2022
d49034b
merge bitcoin#25106: check `fopen` return code
kwvg Jul 28, 2025
94ec343
merge bitcoin#25213: fix crash at coinselection, add missing fee rate
kwvg May 25, 2022
68f30f2
merge bitcoin#25003: fix `coin_selection:aps_create_tx_internal` call…
kwvg Apr 27, 2022
dde0347
merge bitcoin#24629: Return the height of the actual last pruned block
kwvg Aug 2, 2025
e1b7805
merge bitcoin#24640: Correct description of getblockchaininfo's prune…
kwvg Mar 22, 2022
a52dafe
merge bitcoin#24913: Add a benchmark for wallet loading
kwvg Apr 18, 2022
74cda55
merge bitcoin#24924: Make WalletLoading benchmark run faster
kwvg Apr 19, 2022
f46ac63
merge bitcoin#25023: Remove unused SetTip(nullptr) code
kwvg Apr 29, 2022
41732c6
merge bitcoin#25887: avoid unsetting service bits from `nLocalServices`
kwvg Aug 20, 2022
59d93c2
merge bitcoin#25810: rename MAX_{ANCESTORS,DESCENDANTS} to DEFAULT_{A…
kwvg Jul 28, 2025
199c3ca
merge bitcoin#25792: add tests for `datacarrier` and `datacarriersize…
kwvg Aug 6, 2022
4178f58
fix: use properly formed hex encoding in `evo_assetlock`
kwvg Jul 30, 2025
b520b9a
merge bitcoin#25227: Handle invalid hex encoding in ParseHex
kwvg Feb 27, 2023
d3e1645
merge bitcoin#27218: Work around ParseHex gcc cross compiler bug
kwvg Mar 7, 2023
fe96f73
fix: resolve shell script syntax and style issues from bitcoin#27850
Aug 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build-src.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ jobs:

- name: Build source
run: |
CCACHE_SIZE="400M"
CCACHE_MAXSIZE="400M"
CACHE_DIR="/cache"
mkdir /output
BASE_OUTDIR="/output"
Expand Down
23 changes: 23 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,29 @@ concurrency:
cancel-in-progress: ${{ github.ref_type != 'tag' }}

jobs:
check-skip:
name: Check skip conditions
runs-on: ubuntu-latest
outputs:
skip: ${{ steps.skip-check.outputs.skip }}
steps:
- name: Check skip environment variables
id: skip-check
run: |
if [[ "${{ github.event_name }}" == "push" && "${{ vars.SKIP_ON_PUSH }}" != "" ]]; then
echo "Skipping build on push due to SKIP_ON_PUSH environment variable"
echo "skip=true" >> $GITHUB_OUTPUT
elif [[ "${{ github.event_name }}" == "pull_request_target" && "${{ vars.SKIP_ON_PR }}" != "" ]]; then
echo "Skipping build on pull request due to SKIP_ON_PR environment variable"
echo "skip=true" >> $GITHUB_OUTPUT
else
echo "skip=false" >> $GITHUB_OUTPUT
fi

container:
name: Build container
needs: [check-skip]
if: ${{ needs.check-skip.outputs.skip == 'false' }}
uses: ./.github/workflows/build-container.yml
with:
context: ./contrib/containers/ci
Expand All @@ -28,6 +49,8 @@ jobs:

container-slim:
name: Build slim container
needs: [check-skip]
if: ${{ needs.check-skip.outputs.skip == 'false' }}
uses: ./.github/workflows/build-container.yml
with:
context: ./contrib/containers/ci
Expand Down
2 changes: 1 addition & 1 deletion .tx/config
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[main]
host = https://www.transifex.com

[dash.dash_ents]
[o:dash:p:dash:r:dash_ents]
file_filter = src/qt/locale/dash_<lang>.ts
source_file = src/qt/locale/dash_en.xlf
source_lang = en
2 changes: 1 addition & 1 deletion ci/dash/build_src.sh
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ if [ "$CHECK_DOC" = 1 ]; then
test/lint/all-lint.py
fi

ccache --zero-stats --max-size="$CCACHE_SIZE"
ccache --zero-stats
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick (assertive)

ccache size is no longer set explicitly

Dropping --max-size="$CCACHE_SIZE" relies on the environment variable alone. If the runner’s ccache directory already exceeds 300 M, ccache --zero-stats will not shrink it.
Consider restoring an explicit size cap:

-ccache --zero-stats
+ccache --zero-stats
+# Enforce the configured limit in case the cache directory already exists
+ccache --max-size="${CCACHE_MAXSIZE:-300M}"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
ccache --zero-stats
ccache --zero-stats
# Enforce the configured limit in case the cache directory already exists
ccache --max-size="${CCACHE_MAXSIZE:-300M}"
🤖 Prompt for AI Agents
In ci/dash/build_src.sh at line 30, the ccache command no longer sets the max
size explicitly, which can cause the cache to exceed the desired limit. Restore
the explicit size cap by adding the --max-size="$CCACHE_SIZE" option back to the
ccache command to ensure the cache size is properly limited regardless of the
environment variable.


if [ -n "$CONFIG_SHELL" ]; then
export CONFIG_SHELL="$CONFIG_SHELL"
Expand Down
1 change: 1 addition & 0 deletions ci/lint/04_install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ fi

${CI_RETRY_EXE} pip3 install codespell==2.0.0
${CI_RETRY_EXE} pip3 install flake8==3.8.3
${CI_RETRY_EXE} pip3 install lief==0.13.1
${CI_RETRY_EXE} pip3 install mypy==0.910
${CI_RETRY_EXE} pip3 install pyzmq==22.3.0
${CI_RETRY_EXE} pip3 install vulture==2.3
Expand Down
4 changes: 2 additions & 2 deletions ci/test/00_setup_env.sh
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ export BOOST_TEST_RANDOM=${BOOST_TEST_RANDOM:-1}
export DEBIAN_FRONTEND=noninteractive
export HOST_CACHE_DIR=${HOST_CACHE_DIR:-$BASE_ROOT_DIR/ci-cache-$BUILD_TARGET}
export CACHE_DIR=${CACHE_DIR:-$HOST_CACHE_DIR}
export CCACHE_SIZE=${CCACHE_SIZE:-100M}
export CCACHE_MAXSIZE=${CCACHE_MAXSIZE:-100M}
export CCACHE_TEMPDIR=${CCACHE_TEMPDIR:-/tmp/.ccache-temp}
export CCACHE_COMPRESS=${CCACHE_COMPRESS:-1}
# The cache dir.
Expand All @@ -70,7 +70,7 @@ export BASE_OUTDIR=${BASE_OUTDIR:-$BASE_SCRATCH_DIR/out/$HOST}
export BASE_BUILD_DIR=${BASE_BUILD_DIR:-$BASE_SCRATCH_DIR/build-ci}
export PREVIOUS_RELEASES_DIR=${PREVIOUS_RELEASES_DIR:-$BASE_ROOT_DIR/releases/$HOST}
export SDK_URL=${SDK_URL:-https://bitcoincore.org/depends-sources/sdks}
export DOCKER_PACKAGES=${DOCKER_PACKAGES:-build-essential libtool autotools-dev automake pkg-config bsdmainutils curl ca-certificates ccache python3 rsync git procps}
export DOCKER_PACKAGES=${DOCKER_PACKAGES:-build-essential libtool autotools-dev automake pkg-config bsdmainutils curl ca-certificates ccache python3 rsync git procps bison e2fsprogs}
export GOAL=${GOAL:-install}
export DIR_QA_ASSETS=${DIR_QA_ASSETS:-${BASE_SCRATCH_DIR}/qa-assets}
export PATH=${BASE_ROOT_DIR}/ci/retry:$PATH
Expand Down
17 changes: 17 additions & 0 deletions ci/test/00_setup_env_i686_centos.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/usr/bin/env bash
#
# Copyright (c) 2020-2022 The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.

export LC_ALL=C.UTF-8

export HOST=i686-pc-linux-gnu
export CONTAINER_NAME=ci_i686_centos
export CI_IMAGE_NAME_TAG="quay.io/centos/amd64:stream9"
export CI_BASE_PACKAGES="gcc-c++ glibc-devel.x86_64 libstdc++-devel.x86_64 glibc-devel.i686 libstdc++-devel.i686 ccache libtool make git python3 python3-pip which patch lbzip2 xz procps-ng dash rsync coreutils bison util-linux e2fsprogs"
export PIP_PACKAGES="pyzmq"
export GOAL="install"
export NO_WERROR=1 # Suppress error: #warning _FORTIFY_SOURCE > 2 is treated like 2 on this platform [-Werror=cpp]
export BITCOIN_CONFIG="--enable-zmq --with-gui=qt5 --enable-reduce-exports"
export CONFIG_SHELL="/bin/dash"
2 changes: 1 addition & 1 deletion ci/test/00_setup_env_mac_native_x86_64.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ export BITCOIN_CONFIG="--with-gui --enable-reduce-exports --disable-miner --with
export CI_OS_NAME="macos"
export NO_DEPENDS=1
export OSX_SDK=""
export CCACHE_SIZE=300M
export CCACHE_MAXSIZE=300M

export RUN_SECURITY_TESTS="true"
4 changes: 2 additions & 2 deletions ci/test/00_setup_env_native_fuzz_with_valgrind.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
export LC_ALL=C.UTF-8

export CONTAINER_NAME=ci_native_fuzz_valgrind
export PACKAGES="clang llvm python3 libevent-dev bsdmainutils libboost-dev valgrind"
export PACKAGES="clang llvm libclang-rt-dev python3 libevent-dev bsdmainutils libboost-dev valgrind"
export NO_DEPENDS=1
export RUN_UNIT_TESTS=false
export RUN_FUNCTIONAL_TESTS=false
Expand All @@ -16,4 +16,4 @@ export FUZZ_TESTS_CONFIG="--valgrind"
export GOAL="install"
# Temporarily pin dwarf 4, until valgrind can understand clang's dwarf 5
export BITCOIN_CONFIG="--enable-fuzz --with-sanitizers=fuzzer CC=clang-18 CXX=clang++-18 CFLAGS='-gdwarf-4' CXXFLAGS='-gdwarf-4'"
export CCACHE_SIZE=200M
export CCACHE_MAXSIZE=200M
2 changes: 1 addition & 1 deletion ci/test/00_setup_env_native_valgrind.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

export LC_ALL=C.UTF-8

export PACKAGES="valgrind clang llvm python3-zmq libevent-dev bsdmainutils libboost-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev"
export PACKAGES="valgrind clang llvm libclang-rt-dev python3-zmq libevent-dev bsdmainutils libboost-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev"
export USE_VALGRIND=1
export NO_DEPENDS=1
export TEST_RUNNER_EXTRA="--exclude rpc_bind,feature_bind_extra --timeout-factor=4" # Excluded for now, see https://github.com/bitcoin/bitcoin/issues/17765#issuecomment-602068547
Expand Down
4 changes: 2 additions & 2 deletions ci/test/04_install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ if [ -z "$DANGER_RUN_CI_ON_HOST" ]; then
${CI_RETRY_EXE} docker pull "$DOCKER_NAME_TAG"

# shellcheck disable=SC2086
DOCKER_ID=$(docker run $DOCKER_ADMIN -idt \
DOCKER_ID=$(docker run $DOCKER_ADMIN --cap-add LINUX_IMMUTABLE -idt \
--mount type=bind,src=$BASE_ROOT_DIR,dst=/ro_base,readonly \
--mount type=bind,src=$CCACHE_DIR,dst=$CCACHE_DIR \
--mount type=bind,src=$DEPENDS_DIR,dst=$DEPENDS_DIR \
Expand Down Expand Up @@ -97,7 +97,7 @@ if [ "$CI_OS_NAME" == "macos" ]; then
echo "Number of CPUs: $(sysctl -n hw.logicalcpu)"
else
CI_EXEC free -m -h
CI_EXEC echo "Number of CPUs \(nproc\):" \$\(nproc\)
CI_EXEC echo "Number of CPUs (nproc): $(nproc)"
CI_EXEC echo "$(lscpu | grep Endian)"
fi
CI_EXEC echo "Free disk space:"
Expand Down
46 changes: 23 additions & 23 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -450,15 +450,6 @@ if test "$enable_werror" = "yes"; then
fi
ERROR_CXXFLAGS=$CXXFLAG_WERROR

dnl -Warray-bounds cause problems with GCC. Do not treat these warnings as errors.
dnl Suppress -Warray-bounds entirely because of noisy output, currently unhappy with immer implementation.
AX_CHECK_COMPILE_FLAG([-Warray-bounds], [NOWARN_CXXFLAGS="$NOWARN_CXXFLAGS -Wno-array-bounds"], [], [$CXXFLAG_WERROR], [AC_LANG_SOURCE([
#if defined(__clang__) || defined(__INTEL_COMPILER) || !defined(__GNUC__)
#error Non-GCC compiler detected, not setting flag
#endif
int main(void) { return 0; }
])])

dnl -Wattributes cause problems with some versions of GCC. Do not treat these warnings as errors.
AX_CHECK_COMPILE_FLAG([-Wattributes], [NOWARN_CXXFLAGS="$NOWARN_CXXFLAGS -Wno-error=attributes"], [], [$CXXFLAG_WERROR], [AC_LANG_SOURCE([
#if defined(__clang__) || defined(__INTEL_COMPILER) || !defined(__GNUC__)
Expand All @@ -478,22 +469,31 @@ if test "$enable_werror" = "yes"; then
#endif
int main(void) { return 0; }
])])

dnl -Wstringop-overread and -Wstringop-overflow are broken in GCC. Suppress warnings entirely to avoid noisy output.
AX_CHECK_COMPILE_FLAG([-Wstringop-overread], [NOWARN_CXXFLAGS="$NOWARN_CXXFLAGS -Wno-stringop-overread"], [], [$CXXFLAG_WERROR], [AC_LANG_SOURCE([
#if defined(__clang__) || defined(__INTEL_COMPILER) || !defined(__GNUC__)
#error Non-GCC compiler detected, not setting flag
#endif
int main(void) { return 0; }
])])
AX_CHECK_COMPILE_FLAG([-Wstringop-overflow], [NOWARN_CXXFLAGS="$NOWARN_CXXFLAGS -Wno-stringop-overflow"], [], [$CXXFLAG_WERROR], [AC_LANG_SOURCE([
#if defined(__clang__) || defined(__INTEL_COMPILER) || !defined(__GNUC__)
#error Non-GCC compiler detected, not setting flag
#endif
int main(void) { return 0; }
])])
fi

dnl -Warray-bounds cause problems with GCC. Do not treat these warnings as errors.
dnl Suppress -Warray-bounds entirely because of noisy output, currently unhappy with immer implementation.
AX_CHECK_COMPILE_FLAG([-Warray-bounds], [NOWARN_CXXFLAGS="$NOWARN_CXXFLAGS -Wno-array-bounds"], [], [$CXXFLAG_WERROR], [AC_LANG_SOURCE([
#if defined(__clang__) || defined(__INTEL_COMPILER) || !defined(__GNUC__)
#error Non-GCC compiler detected, not setting flag
#endif
int main(void) { return 0; }
])])
Comment on lines +474 to +481
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick (assertive)

Check $CXXFLAG_WERROR handling when --disable-werror is used

These new unconditional suppressions reuse $CXXFLAG_WERROR in the probe call.
When --disable-werror is passed, that variable is empty, so the probe still runs but without -Werror. That’s normally fine, but if another flag ​inside CXXFLAG_WERROR is ever added in future, this section will silently omit it.

Consider either:

-AX_CHECK_COMPILE_FLAG([-Warray-bounds], [...], [], [$CXXFLAG_WERROR], [...])
+AX_CHECK_COMPILE_FLAG([-Warray-bounds], [...], [], [$CXXFLAG_WERROR], [...])  dnl keep
+# OR explicitly pass an empty string to make intent obvious
+# AX_CHECK_COMPILE_FLAG([-Warray-bounds], [...], [], [], [...])

Not blocking, just flagging for clarity.

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In configure.ac around lines 474 to 481, the use of $CXXFLAG_WERROR in the
AX_CHECK_COMPILE_FLAG probe does not account for the case when --disable-werror
is used and $CXXFLAG_WERROR is empty, which could cause future flags in
$CXXFLAG_WERROR to be silently omitted. To fix this, modify the probe to
conditionally include $CXXFLAG_WERROR only if it is non-empty or refactor the
logic to avoid relying on $CXXFLAG_WERROR directly in the probe, ensuring all
relevant flags are always tested or clearly flagged without silently omitting
any.


dnl -Wstringop-overread and -Wstringop-overflow are broken in GCC. Suppress warnings entirely to avoid noisy output.
AX_CHECK_COMPILE_FLAG([-Wstringop-overread], [NOWARN_CXXFLAGS="$NOWARN_CXXFLAGS -Wno-stringop-overread"], [], [$CXXFLAG_WERROR], [AC_LANG_SOURCE([
#if defined(__clang__) || defined(__INTEL_COMPILER) || !defined(__GNUC__)
#error Non-GCC compiler detected, not setting flag
#endif
int main(void) { return 0; }
])])
AX_CHECK_COMPILE_FLAG([-Wstringop-overflow], [NOWARN_CXXFLAGS="$NOWARN_CXXFLAGS -Wno-stringop-overflow"], [], [$CXXFLAG_WERROR], [AC_LANG_SOURCE([
#if defined(__clang__) || defined(__INTEL_COMPILER) || !defined(__GNUC__)
#error Non-GCC compiler detected, not setting flag
#endif
int main(void) { return 0; }
])])

AX_CHECK_COMPILE_FLAG([-Wall], [WARN_CXXFLAGS="$WARN_CXXFLAGS -Wall"], [], [$CXXFLAG_WERROR])
AX_CHECK_COMPILE_FLAG([-Wextra], [WARN_CXXFLAGS="$WARN_CXXFLAGS -Wextra"], [], [$CXXFLAG_WERROR])
AX_CHECK_COMPILE_FLAG([-Wgnu], [WARN_CXXFLAGS="$WARN_CXXFLAGS -Wgnu"], [], [$CXXFLAG_WERROR])
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion contrib/devtools/security-check.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import sys
from typing import List

import lief #type:ignore
import lief
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick (assertive)

Consider reinstating the # type: ignore for lief import

lief still ships without stub files on PyPI, so static type-checkers (mypy, pyright) will now emit “Skipping analyzing ‘lief’: module is installed, but missing library stubs or py.typed marker”.
Unless the CI explicitly suppresses this, the previous in-line # type: ignore was the canonical workaround.
Re-adding it keeps local editors & optional type-check runs quiet while having zero runtime impact.

-import lief
+import lief  # type: ignore[import-not-found]
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
import lief
-import lief
+import lief # type: ignore[import-not-found]
🤖 Prompt for AI Agents
In contrib/devtools/security-check.py at line 13, the import of the 'lief'
module lacks a '# type: ignore' comment, causing static type-checkers to emit
warnings due to missing type stubs. To fix this, add '# type: ignore' at the end
of the import line for 'lief' to suppress these warnings without affecting
runtime behavior.


def check_ELF_RELRO(binary) -> bool:
'''
Expand Down
2 changes: 1 addition & 1 deletion contrib/devtools/symbol-check.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
import sys
from typing import Dict, List

import lief #type:ignore
import lief

# Debian 11 (Bullseye) EOL: 2026. https://wiki.debian.org/LTS
#
Expand Down
2 changes: 1 addition & 1 deletion contrib/devtools/test-security-check.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
'''
Test script for security-check.py
'''
import lief #type:ignore
import lief
import os
import subprocess
from typing import List
Expand Down
4 changes: 2 additions & 2 deletions contrib/testgen/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ Utilities to generate test vectors for the data-driven Dash tests.

Usage:

PYTHONPATH=../../test/functional/test_framework ./gen_key_io_test_vectors.py valid 50 > ../../src/test/data/key_io_valid.json
PYTHONPATH=../../test/functional/test_framework ./gen_key_io_test_vectors.py invalid 50 > ../../src/test/data/key_io_invalid.json
./gen_key_io_test_vectors.py valid 50 > ../../src/test/data/key_io_valid.json
./gen_key_io_test_vectors.py invalid 50 > ../../src/test/data/key_io_invalid.json
115 changes: 0 additions & 115 deletions contrib/testgen/base58.py

This file was deleted.

Loading
Loading