From 7676cb67f176508c2cbb5b082a538b7b5cd7f175 Mon Sep 17 00:00:00 2001 From: fanquake Date: Wed, 1 Nov 2023 10:05:28 +0000 Subject: [PATCH 1/4] Merge bitcoin/bitcoin#28755: build: remove duplicate `-lminiupnpc` linking b74e449ffa9965f18037f0322ea178e2fe1dbc18 build: remove potential for duplciate natpmp linking (fanquake) 4e9509695206bd952da00a2b1c90a92db31a0fe7 build: remove duplicate -lminiupnpc linking (fanquake) Pull request description: Having the link check in the header check loop means we get `-lminiupnpc -lminiupnpc -lminiupnpc` on the link line. This is unnecessary, and results in warnings, i.e: ```bash ld: warning: ignoring duplicate libraries: '-levent', '-lminiupnpc' ld: warning: ignoring duplicate libraries: '-levent', '-lminiupnpc' ld: warning: ignoring duplicate libraries: '-levent', '-lminiupnpc' ``` These warnings have been occurring since the new macOS linker released with Xcode 15, and also came up in https://github.com/hebasto/bitcoin/pull/34. There are other duplicate lib issues, i.e with `-levent` + `-levent_pthreads -levent`, but those are less straight forward to solve, and won't be included here. ACKs for top commit: jonatack: ACK b74e449ffa9965f18037f0322ea178e2fe1dbc18 hebasto: ACK b74e449ffa9965f18037f0322ea178e2fe1dbc18, it fixes one issue mentioned in https://github.com/hebasto/bitcoin/pull/34#issuecomment-1782914787. TheCharlatan: ACK b74e449ffa9965f18037f0322ea178e2fe1dbc18 theuni: ACK b74e449ffa9965f18037f0322ea178e2fe1dbc18 Tree-SHA512: 987a56ef17cbaf273cb672c41016f3f615b16889317325a9e88135d0c41f01af3840ad44a6f811a7df97f5873c9cd957e60aaa1b99bd408b17b4b1ffe2c68f36 --- configure.ac | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/configure.ac b/configure.ac index 0c97af58e657..9bba0fedaeb9 100644 --- a/configure.ac +++ b/configure.ac @@ -1562,15 +1562,13 @@ dnl Check for libminiupnpc (optional) if test "$use_upnp" != "no"; then TEMP_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $MINIUPNPC_CPPFLAGS" - AC_CHECK_HEADERS( - [miniupnpc/miniupnpc.h miniupnpc/upnpcommands.h miniupnpc/upnperrors.h], - [AC_CHECK_LIB([miniupnpc], [upnpDiscover], [MINIUPNPC_LIBS="$MINIUPNPC_LIBS -lminiupnpc"], [have_miniupnpc=no], [$MINIUPNPC_LIBS])], - [have_miniupnpc=no] - ) + AC_CHECK_HEADERS([miniupnpc/miniupnpc.h miniupnpc/upnpcommands.h miniupnpc/upnperrors.h], [], [have_miniupnpc=no]) - dnl The minimum supported miniUPnPc API version is set to 17. This excludes - dnl versions with known vulnerabilities. if test "$have_miniupnpc" != "no"; then + AC_CHECK_LIB([miniupnpc], [upnpDiscover], [MINIUPNPC_LIBS="$MINIUPNPC_LIBS -lminiupnpc"], [have_miniupnpc=no], [$MINIUPNPC_LIBS]) + + dnl The minimum supported miniUPnPc API version is set to 17. This excludes + dnl versions with known vulnerabilities. AC_MSG_CHECKING([whether miniUPnPc API version is supported]) AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[ @%:@include @@ -1595,9 +1593,12 @@ dnl Check for libnatpmp (optional). if test "$use_natpmp" != "no"; then TEMP_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $NATPMP_CPPFLAGS" - AC_CHECK_HEADERS([natpmp.h], - [AC_CHECK_LIB([natpmp], [initnatpmp], [NATPMP_LIBS="$NATPMP_LIBS -lnatpmp"], [have_natpmp=no], [$NATPMP_LIBS])], - [have_natpmp=no]) + AC_CHECK_HEADERS([natpmp.h], [], [have_natpmp=no]) + + if test "$have_natpmp" != "no"; then + AC_CHECK_LIB([natpmp], [initnatpmp], [NATPMP_LIBS="$NATPMP_LIBS -lnatpmp"], [have_natpmp=no], [$NATPMP_LIBS]) + fi + CPPFLAGS="$TEMP_CPPFLAGS" fi From 73add319c5ca1e84854c41e796899494c2cd8777 Mon Sep 17 00:00:00 2001 From: fanquake Date: Wed, 15 Nov 2023 09:56:06 +0000 Subject: [PATCH 2/4] Merge bitcoin/bitcoin#28865: test: migrate to some per-symbol ubsan suppressions fd30e9688e15fe6e0f8b64202a6e9c7d96333394 test: migrate to some per-symbol ubsan suppressions (fanquake) Pull request description: Now that the symbolizer should be hanging around (#28814), migrate some file-wide suppressions to be symbol specific. Should assist in catching new issues that may otherwise go unnoticed due to file-wide suppression. Only tested (so far) on aarch64 using the native ASAN & FUZZ CI. ACKs for top commit: maflcko: lgtm ACK fd30e9688e15fe6e0f8b64202a6e9c7d96333394 dergoegge: utACK fd30e9688e15fe6e0f8b64202a6e9c7d96333394 (if CI is green) Tree-SHA512: fbc44464d22813969dd4d1cdeab00042fa45f0af9bf1aed4fd3b688dc7b3c377a7c0f5f0c0a37ba65b649cfb5c7ff8ab2774500fe182d702c4340ca19f08479f --- test/sanitizer_suppressions/ubsan | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/test/sanitizer_suppressions/ubsan b/test/sanitizer_suppressions/ubsan index 1d1f2ad352b5..c8c92d86f1c9 100644 --- a/test/sanitizer_suppressions/ubsan +++ b/test/sanitizer_suppressions/ubsan @@ -40,12 +40,20 @@ shift-base:test/fuzz/crypto_diff_fuzz_chacha20.cpp # job. unsigned-integer-overflow:addrman.cpp unsigned-integer-overflow:arith_uint256.h -unsigned-integer-overflow:common/bloom.cpp -unsigned-integer-overflow:coins.cpp -unsigned-integer-overflow:compressor.cpp +unsigned-integer-overflow:CBloomFilter::Hash +unsigned-integer-overflow:CRollingBloomFilter::insert +unsigned-integer-overflow:RollingBloomHash +unsigned-integer-overflow:CCoinsViewCache::AddCoin +unsigned-integer-overflow:CCoinsViewCache::BatchWrite +unsigned-integer-overflow:CCoinsViewCache::DynamicMemoryUsage +unsigned-integer-overflow:CCoinsViewCache::SpendCoin +unsigned-integer-overflow:CCoinsViewCache::Uncache +unsigned-integer-overflow:CompressAmount +unsigned-integer-overflow:DecompressAmount unsigned-integer-overflow:crypto/ -unsigned-integer-overflow:hash.cpp -unsigned-integer-overflow:policy/fees.cpp +unsigned-integer-overflow:MurmurHash3 +unsigned-integer-overflow:CBlockPolicyEstimator::processBlockTx +unsigned-integer-overflow:TxConfirmStats::EstimateMedianVal unsigned-integer-overflow:prevector.h unsigned-integer-overflow:pubkey.h unsigned-integer-overflow:EvalScript @@ -54,14 +62,14 @@ unsigned-integer-overflow:util/strencodings.cpp unsigned-integer-overflow:xoroshiro128plusplus.h implicit-integer-sign-change:addrman.h implicit-integer-sign-change:bech32.cpp -implicit-integer-sign-change:compat/stdin.cpp +implicit-integer-sign-change:SetStdinEcho implicit-integer-sign-change:compressor.h implicit-integer-sign-change:crypto/ implicit-integer-sign-change:key.cpp implicit-integer-sign-change:policy/fees.cpp implicit-integer-sign-change:prevector.h -implicit-integer-sign-change:script/bitcoinconsensus.cpp -implicit-integer-sign-change:script/interpreter.cpp +implicit-integer-sign-change:verify_flags +implicit-integer-sign-change:EvalScript implicit-integer-sign-change:serialize.h implicit-integer-sign-change:txmempool.cpp implicit-integer-sign-change:util/strencodings.cpp @@ -75,9 +83,9 @@ shift-base:xoroshiro128plusplus.h shift-base:nanobench.h shift-base:arith_uint256.cpp shift-base:crypto/ -shift-base:hash.cpp +shift-base:ROTL32 shift-base:streams.h -shift-base:util/bip32.cpp +shift-base:FormatHDKeypath vptr:bls/bls.h # -fsanitize=float-cast-overflow suppressions From 55f6674b5b6e2c5a6901a831af09bd3555064cc6 Mon Sep 17 00:00:00 2001 From: merge-script Date: Thu, 14 Nov 2024 10:25:58 +0000 Subject: [PATCH 3/4] Merge bitcoin/bitcoin#31225: doc: Fix grammatical errors in multisig-tutorial.md ac286e0d1bd4c8dbe6d21cbe8c0a131ad8ba1854 doc: Fix grammatical errors in multisig-tutorial.md (secp512k2) Pull request description: This pull request fixes grammatical errors in the `multisig-tutorial.md` document. ACKs for top commit: Abdulkbk: ACK ac286e0d1bd4c8dbe6d21cbe8c0a131ad8ba1854 Tree-SHA512: 684fe16e802431109957b9cde441353edeb16ffffde4282310c1a6f104adffc53347d00a2cf3a5969a78803f3177d6056ca37d3b7e8be52c2ec43ec0b9fcf4d9 --- doc/multisig-tutorial.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/multisig-tutorial.md b/doc/multisig-tutorial.md index 82dca25b99cd..0ccc2961e442 100644 --- a/doc/multisig-tutorial.md +++ b/doc/multisig-tutorial.md @@ -80,7 +80,7 @@ multisig_desc="[$multisig_ext_desc, $multisig_int_desc]" `external_desc` and `internal_desc` specify the output type (`wsh`, in this case) and the xpubs involved. They also use BIP 67 (`sortedmulti`), so the wallet can be recreated without worrying about the order of xpubs. Conceptually, descriptors describe a list of scriptPubKey (along with information for spending from it) [[source](https://github.com/bitcoin/bitcoin/issues/21199#issuecomment-780772418)]. -Note that at least two descriptors are usually used, one for internal derivation paths and external ones. There are discussions about eliminating this redundancy, as can been seen in the issue [#17190](https://github.com/bitcoin/bitcoin/issues/17190). +Note that at least two descriptors are usually used, one for internal derivation paths and one for external ones. There are discussions about eliminating this redundancy, as can be seen in the issue [#17190](https://github.com/bitcoin/bitcoin/issues/17190). After creating the descriptors, it is necessary to add the checksum, which is required by the `importdescriptors` RPC. From cad424582a412b0d76defebe5b9b0d09dea55c25 Mon Sep 17 00:00:00 2001 From: merge-script Date: Fri, 24 Jan 2025 10:39:34 +0000 Subject: [PATCH 4/4] Merge bitcoin/bitcoin#31718: Docs: fix typos in documentation files 81b9800c87e96c83a49cabd1eddcbef210387da5 fix typos (wgyt) Pull request description: ACKs for top commit: maflcko: lgtm ACK 81b9800c87e96c83a49cabd1eddcbef210387da5 Tree-SHA512: 6a4f718c0afb0e3bf80ab7fa7fed32f882614c60b6e4972f54584aecac2f19384d781232e923a47b72d76229af907ebf7717d7b34f9be6c00394ce5d7ed0b8d4 --- ci/README.md | 2 +- contrib/guix/README.md | 2 +- contrib/tracing/README.md | 2 +- contrib/tracing/log_raw_p2p_msgs.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ci/README.md b/ci/README.md index aa89a179f74b..901bb1643d14 100644 --- a/ci/README.md +++ b/ci/README.md @@ -10,7 +10,7 @@ If the repository is not a fresh git clone, you might have to clean files from p The ci needs to perform various sysadmin tasks such as installing packages or writing to the user's home directory. While most of the actions are done inside a docker container, this is not possible for all. Thus, cache directories, such as the depends cache, previous release binaries, or ccache, are mounted as read-write into the docker container. While it should be fine to run -the ci system locally on you development box, the ci scripts can generally be assumed to have received less review and +the ci system locally on your development box, the ci scripts can generally be assumed to have received less review and testing compared to other parts of the codebase. If you want to keep the work tree clean, you might want to run the ci system in a virtual machine with a Linux operating system of your choice. diff --git a/contrib/guix/README.md b/contrib/guix/README.md index cb7eb134a2e6..602ab1f2ea86 100644 --- a/contrib/guix/README.md +++ b/contrib/guix/README.md @@ -247,7 +247,7 @@ details. * _**SDK_PATH**_ Set the path where _extracted_ SDKs can be found. This is passed through to - the depends tree. Note that this is should be set to the _parent_ directory of + the depends tree. Note that this should be set to the _parent_ directory of the actual SDK (e.g. `SDK_PATH=$HOME/Downloads/macOS-SDKs` instead of `$HOME/Downloads/macOS-SDKs/Xcode-26.1.1-17B100-extracted-SDK-with-libcxx-headers`). diff --git a/contrib/tracing/README.md b/contrib/tracing/README.md index 4e8b0c47936c..8c293e25df9a 100644 --- a/contrib/tracing/README.md +++ b/contrib/tracing/README.md @@ -155,7 +155,7 @@ $ python3 contrib/tracing/log_raw_p2p_msgs.py ./src/dashd ``` Logging raw P2P messages. -Messages larger that about 32kb will be cut off! +Messages larger than about 32kb will be cut off! Some messages might be lost! outbound msg 'inv' from peer 4 (outbound-full-relay, XX.XXX.XX.4:8333) with 253 bytes: 0705000000be2245c8f844c9f763748e1a7… … diff --git a/contrib/tracing/log_raw_p2p_msgs.py b/contrib/tracing/log_raw_p2p_msgs.py index 05428968f8fb..beb311cf00bd 100755 --- a/contrib/tracing/log_raw_p2p_msgs.py +++ b/contrib/tracing/log_raw_p2p_msgs.py @@ -166,7 +166,7 @@ def handle_outbound(_, data, size): bpf["outbound_messages"].open_perf_buffer(handle_outbound) print("Logging raw P2P messages.") - print("Messages larger that about 32kb will be cut off!") + print("Messages larger than about 32kb will be cut off!") print("Some messages might be lost!") while True: try: