Skip to content

Commit 8a72a73

Browse files
committed
Merge branch 'bitcoin' into particl_dev
Signet 38332, 38334 -> 31932, 31934 m_onion_service_target_port main: 51734, test: 51934, regtest: 51931 sendtoaddress gets new parameter: verbose Argument names are enforced. Changed functional tests to pass by position instead of by name. AcceptToMemoryPool returns fee instead of taking absurdfee parameter OP_CHECKSIGADD SCRIPT_VERIFY_TAPROOT in GetBlockScriptFlags CheckSig renamed to CheckECDSASignature Replaced PrecomputedTransactionData::m_spent_outputs CTxOut with CTxOutSign Add walletinitinterface.h to Makefile CHDWalletDB removed open_mode Replaced boost::bind in smessage.cpp Default wallets no longer created ParticlTestFramework start_nodes, insert -wallet to extra_args functional test extra_args are not being passed anymore hasattr in ParticlTestFramework::start_nodes LockAssertion is gone Clang thread analysis can't track mutex aliases, cs_wallet on CWallet is not seen when used through CHDWallet Used LOCK_ASSERTION from bitcoin/bitcoin#19970 Converted CODEOWNERS file
2 parents 11c1151 + 4f80734 commit 8a72a73

File tree

455 files changed

+30585
-6978
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

455 files changed

+30585
-6978
lines changed

.appveyor.yml

+2-8
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,19 @@ environment:
1111
QT_DOWNLOAD_HASH: '9a8c6eb20967873785057fdcd329a657c7f922b0af08c5fde105cc597dd37e21'
1212
QT_LOCAL_PATH: 'C:\Qt5.9.8_x64_static_vs2019'
1313
VCPKG_INSTALL_PATH: 'C:\tools\vcpkg\installed'
14-
VCPKG_COMMIT_ID: 'f3f329a048eaff759c1992c458f2e12351486bc7'
14+
VCPKG_COMMIT_ID: '40230b8e3f6368dcb398d649331be878ca1e9007'
1515
install:
1616
# Disable zmq test for now since python zmq library on Windows would cause Access violation sometimes.
1717
# - cmd: pip install zmq
1818
# Powershell block below is to install the c++ dependencies via vcpkg. The pseudo code is:
1919
# a. Checkout the vcpkg source (including port files) for the specific checkout and build the vcpkg binary,
20-
# b. Install the missing packages.
20+
# b. Install the missing packages using the vcpkg manifest.
2121
- ps: |
22-
$env:PACKAGES = Get-Content -Path build_msvc\vcpkg-packages.txt
23-
Write-Host "vcpkg installing packages: $env:PACKAGES"
2422
cd c:\tools\vcpkg
2523
$env:GIT_REDIRECT_STDERR = '2>&1' # git is writing non-errors to STDERR when doing git pull. Send to STDOUT instead.
2624
git pull origin master > $null
2725
git -c advice.detachedHead=false checkout $env:VCPKG_COMMIT_ID
2826
.\bootstrap-vcpkg.bat > $null
29-
Add-Content "C:\tools\vcpkg\triplets\$env:PLATFORM-windows-static.cmake" "set(VCPKG_BUILD_TYPE release)"
30-
.\vcpkg install --triplet $env:PLATFORM-windows-static $env:PACKAGES.split() > $null
31-
Write-Host "vcpkg packages installed successfully."
32-
.\vcpkg integrate install
3327
cd "$env:APPVEYOR_BUILD_FOLDER"
3428
before_build:
3529
# Powershell block below is to download and extract the Qt static libraries. The pseudo code is:

.cirrus.yml

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ container:
66
# Each project has 16 CPU in total, assign 2 to each container, so that 8 tasks run in parallel
77
cpu: 2
88
memory: 8G # Set to 8GB to avoid OOM. https://cirrus-ci.org/guide/linux/#linux-containers
9+
kvm: true # Use kvm to avoid spurious CI failures in the default virtualization cluster, see https://github.com/bitcoin/bitcoin/issues/20093
910
env:
1011
PACKAGE_MANAGER_INSTALL : "apt-get update && apt-get install -y"
1112
MAKEJOBS: "-j4"

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -157,3 +157,5 @@ db4/
157157
osx_volname
158158
dist/
159159
*.background.tiff
160+
161+
sanitizer-output

.travis.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ jobs:
7474
- echo "End"
7575

7676
- stage: test
77-
name: 'ARM [GOAL: install] [buster] [unit tests, functional tests]'
77+
name: 'ARM [GOAL: install] [buster] [unit tests, no functional tests]'
7878
arch: arm64 # Can disable QEMU_USER_CMD and run the tests natively without qemu
7979
env: >-
8080
FILE_ENV="./ci/test/00_setup_env_arm.sh"
@@ -144,6 +144,7 @@ jobs:
144144
- berkeley-db4
145145
- miniupnpc
146146
- qrencode
147+
- sqlite
147148
- ccache
148149
- zeromq
149150
env: >-

.tx/config

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[main]
22
host = https://www.transifex.com
33

4-
[bitcoin.qt-translation-020x]
4+
[bitcoin.qt-translation-021x]
55
file_filter = src/qt/locale/bitcoin_<lang>.ts
66
source_file = src/qt/locale/bitcoin_en.ts
77
source_lang = en

CODEOWNERS

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# ==============================================================================
2+
# Particl Core CODEOWNERS
3+
# ==============================================================================
4+
5+
# Configuration of code ownership and review approvals for the particl/particl-core
6+
# repo.
7+
8+
# Order is important; the last matching pattern takes the most precedence.
9+
# More info on how this file works can be found at:
10+
# https://help.github.com/articles/about-codeowners/
11+
12+
# This file is called CODEOWNERS because it is a magic file for GitHub to
13+
# automatically suggest reviewers. In this project's case, the names below
14+
# should be thought of as code reviewers rather than owners. Regular
15+
# contributors are free to add their names to specific directories or files
16+
# provided that they are willing to provide a review when automatically
17+
# assigned.
18+
19+
# Absence from this list should not be interpreted as a discouragement to
20+
# review a pull request. Peer review is always welcome and is a critical
21+
# component of the progress of the codebase. Information on peer review
22+
# guidelines can be found in the CONTRIBUTING.md doc.
23+
24+
25+
# Maintainers
26+
# @tecnovert

build_msvc/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,4 @@ libtest_util/libtest_util.vcxproj
2424
*/Win32
2525
libbitcoin_qt/QtGeneratedFiles/*
2626
test_bitcoin-qt/QtGeneratedFiles/*
27+
vcpkg_installed

build_msvc/README.md

+7-21
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ Building Bitcoin Core with Visual Studio
33

44
Introduction
55
---------------------
6-
Solution and project files to build the Bitcoin Core applications `msbuild` or Visual Studio can be found in the build_msvc directory. The build has been tested with Visual Studio 2017 and 2019.
6+
Solution and project files to build the Bitcoin Core applications `msbuild` or Visual Studio can be found in the `build_msvc` directory. The build has been tested with Visual Studio 2017 and 2019.
77

88
Building with Visual Studio is an alternative to the Linux based [cross-compiler build](https://github.com/bitcoin/bitcoin/blob/master/doc/build-windows.md).
99

@@ -12,10 +12,9 @@ Quick Start
1212
The minimal steps required to build Bitcoin Core with the msbuild toolchain are below. More detailed instructions are contained in the following sections.
1313

1414
```
15-
vcpkg install --triplet x64-windows-static berkeleydb boost-filesystem boost-multi-index boost-signals2 boost-test boost-thread libevent[thread] zeromq double-conversion
16-
vcpkg integrate install
17-
py -3 build_msvc\msvc-autogen.py
18-
msbuild /m build_msvc\bitcoin.sln /p:Platform=x64 /p:Configuration=Release /t:build
15+
cd build_msvc
16+
py -3 msvc-autogen.py
17+
msbuild /m bitcoin.sln /p:Platform=x64 /p:Configuration=Release /t:build
1918
```
2019

2120
Dependencies
@@ -28,14 +27,7 @@ Options for installing the dependencies in a Visual Studio compatible manner are
2827
- Download the source code, build each dependency, add the required include paths, link libraries and binary tools to the Visual Studio project files.
2928
- Use [nuget](https://www.nuget.org/) packages with the understanding that any binary files have been compiled by an untrusted third party.
3029

31-
The [external dependencies](https://github.com/bitcoin/bitcoin/blob/master/doc/dependencies.md) required for building are:
32-
33-
- Berkeley DB
34-
- Boost
35-
- DoubleConversion
36-
- libevent
37-
- Qt5
38-
- ZeroMQ
30+
The [external dependencies](https://github.com/bitcoin/bitcoin/blob/master/doc/dependencies.md) required for building are listed in the `build_msvc/vcpkg.json` file. The `msbuild` project files are configured to automatically install the `vcpkg` dependencies.
3931

4032
Qt
4133
---------------------
@@ -52,20 +44,14 @@ Building
5244
The instructions below use `vcpkg` to install the dependencies.
5345

5446
- Install [`vcpkg`](https://github.com/Microsoft/vcpkg).
55-
- Install the required packages (replace x64 with x86 as required). The list of required packages can be found in the `build_msvc\vcpkg-packages.txt` file. The PowerShell command below will work if run from the repository root directory and `vcpkg` is in the path. Alternatively the contents of the packages text file can be pasted in place of the `Get-Content` cmdlet.
56-
57-
```
58-
PS >.\vcpkg install --triplet x64-windows-static $(Get-Content -Path build_msvc\vcpkg-packages.txt).split()
59-
PS >.\vcpkg integrate install
60-
```
6147

6248
- Use Python to generate `*.vcxproj` from Makefile
6349

6450
```
6551
PS >py -3 msvc-autogen.py
6652
```
6753

68-
- An optional step is to adjust the settings in the build_msvc directory and the common.init.vcxproj file. This project file contains settings that are common to all projects such as the runtime library version and target Windows SDK version. The Qt directories can also be set.
54+
- An optional step is to adjust the settings in the `build_msvc` directory and the `common.init.vcxproj` file. This project file contains settings that are common to all projects such as the runtime library version and target Windows SDK version. The Qt directories can also be set.
6955

7056
- To build from the command line with the Visual Studio 2017 toolchain use:
7157

@@ -79,7 +65,7 @@ msbuild /m bitcoin.sln /p:Platform=x64 /p:Configuration=Release /p:PlatformTools
7965
msbuild /m bitcoin.sln /p:Platform=x64 /p:Configuration=Release /t:build
8066
```
8167

82-
- Alternatively open the `build_msvc\bitcoin.sln` file in Visual Studio.
68+
- Alternatively open the `build_msvc/bitcoin.sln` file in Visual Studio.
8369

8470
AppVeyor
8571
---------------------

build_msvc/common.init.vcxproj

+9
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,15 @@
99
<UseNativeEnvironment>true</UseNativeEnvironment>
1010
</PropertyGroup>
1111

12+
<PropertyGroup Label="Vcpkg">
13+
<VcpkgEnabled>true</VcpkgEnabled>
14+
<VcpkgEnableManifest>true</VcpkgEnableManifest>
15+
<VcpkgManifestInstall>true</VcpkgManifestInstall>
16+
<VcpkgUseStatic>true</VcpkgUseStatic>
17+
<VcpkgAutoLink>true</VcpkgAutoLink>
18+
<VcpkgConfiguration>$(Configuration)</VcpkgConfiguration>
19+
</PropertyGroup>
20+
1221
<PropertyGroup Condition="'$(WindowsTargetPlatformVersion)'=='' and !Exists('$(WindowsSdkDir)\DesignTime\CommonConfiguration\Neutral\Windows.props')">
1322
<WindowsTargetPlatformVersion_10 Condition="'$(WindowsTargetPlatformVersion_10)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v10.0@ProductVersion)</WindowsTargetPlatformVersion_10>
1423
<WindowsTargetPlatformVersion_10 Condition="'$(WindowsTargetPlatformVersion_10)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v10.0@ProductVersion)</WindowsTargetPlatformVersion_10>

build_msvc/libsecp256k1/libsecp256k1.vcxproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
</ItemGroup>
1313
<ItemDefinitionGroup>
1414
<ClCompile>
15-
<PreprocessorDefinitions>ENABLE_MODULE_ECDH;ENABLE_MODULE_RECOVERY;%(PreprocessorDefinitions)</PreprocessorDefinitions>
15+
<PreprocessorDefinitions>ENABLE_MODULE_ECDH;ENABLE_MODULE_RECOVERY;ENABLE_MODULE_EXTRAKEYS;ENABLE_MODULE_SCHNORRSIG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
1616
<AdditionalIncludeDirectories>..\..\src\secp256k1;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
1717
</ClCompile>
1818
</ItemDefinitionGroup>

build_msvc/vcpkg-packages.txt

-1
This file was deleted.

build_msvc/vcpkg.json

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"name": "bitcoin-core",
3+
"version-string": "1",
4+
"dependencies": [
5+
"berkeleydb",
6+
"boost-filesystem",
7+
"boost-multi-index",
8+
"boost-process",
9+
"boost-signals2",
10+
"boost-test",
11+
"boost-thread",
12+
"sqlite3",
13+
"double-conversion",
14+
{
15+
"name": "libevent",
16+
"features": ["thread"]
17+
},
18+
"zeromq"
19+
]
20+
}

ci/lint/06_script.sh

+5-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@
77
export LC_ALL=C
88

99
if [ "$TRAVIS_EVENT_TYPE" = "pull_request" ]; then
10-
test/lint/commit-script-check.sh $TRAVIS_COMMIT_RANGE
10+
# TRAVIS_BRANCH will be present in a Travis environment. For builds triggered
11+
# by a pull request this is the name of the branch targeted by the pull request.
12+
# https://docs.travis-ci.com/user/environment-variables/
13+
COMMIT_RANGE="$TRAVIS_BRANCH..HEAD"
14+
test/lint/commit-script-check.sh $COMMIT_RANGE
1115
fi
1216

1317
#test/lint/git-subtree-check.sh src/crypto/ctaes

ci/test/00_setup_env_native_asan.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export LC_ALL=C.UTF-8
88

99
export CONTAINER_NAME=ci_native_asan
1010
export DEP_OPTS="PROTOBUF=1"
11-
export PACKAGES="clang llvm python3-zmq qtbase5-dev qttools5-dev-tools libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libqrencode-dev libprotobuf-dev protobuf-compiler"
11+
export PACKAGES="clang llvm python3-zmq qtbase5-dev qttools5-dev-tools libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libqrencode-dev libsqlite3-dev libprotobuf-dev protobuf-compiler"
1212
export DOCKER_NAME_TAG=ubuntu:20.04
1313
export NO_DEPENDS=1
1414
export GOAL="install"

ci/test/00_setup_env_native_msan.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export BDB_PREFIX="${BASE_ROOT_DIR}/db4"
1515

1616
export CONTAINER_NAME="ci_native_msan"
1717
export PACKAGES="clang-9 llvm-9 cmake"
18-
export DEP_OPTS="NO_WALLET=1 NO_QT=1 CC='clang' CXX='clang++' CFLAGS='${MSAN_FLAGS}' CXXFLAGS='${MSAN_AND_LIBCXX_FLAGS}' boost_cxxflags='-std=c++11 -fvisibility=hidden -fPIC ${MSAN_AND_LIBCXX_FLAGS}' zeromq_cxxflags='-std=c++11 ${MSAN_AND_LIBCXX_FLAGS}'"
18+
export DEP_OPTS="NO_BDB=1 NO_QT=1 CC='clang' CXX='clang++' CFLAGS='${MSAN_FLAGS}' CXXFLAGS='${MSAN_AND_LIBCXX_FLAGS}' boost_cxxflags='-std=c++11 -fvisibility=hidden -fPIC ${MSAN_AND_LIBCXX_FLAGS}' zeromq_cxxflags='-std=c++11 ${MSAN_AND_LIBCXX_FLAGS}'"
1919
export GOAL="install"
2020
export BITCOIN_CONFIG="--enable-wallet --with-sanitizers=memory --with-asm=no --prefix=${BASE_ROOT_DIR}/depends/x86_64-pc-linux-gnu/ CC=clang CXX=clang++ CFLAGS='${MSAN_FLAGS}' CXXFLAGS='${MSAN_AND_LIBCXX_FLAGS}' BDB_LIBS='-L${BDB_PREFIX}/lib -ldb_cxx-4.8' BDB_CFLAGS='-I${BDB_PREFIX}/include'"
2121
export USE_MEMORY_SANITIZER="true"

ci/test/00_setup_env_native_valgrind.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
export LC_ALL=C.UTF-8
88

99
export CONTAINER_NAME=ci_native_valgrind
10-
export PACKAGES="valgrind clang llvm python3-zmq libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev"
10+
export PACKAGES="valgrind clang llvm python3-zmq libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libsqlite3-dev"
1111
export USE_VALGRIND=1
1212
export NO_DEPENDS=1
1313
export TEST_RUNNER_EXTRA="--exclude rpc_bind" # Excluded for now, see https://github.com/bitcoin/bitcoin/issues/17765#issuecomment-602068547

ci/test/04_install.sh

+2-3
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,10 @@ else
8181
fi
8282

8383
if [ ! -d ${DIR_QA_ASSETS} ]; then
84-
if [ "$RUN_FUZZ_TESTS" = "true" ]; then
85-
DOCKER_EXEC git clone https://github.com/bitcoin-core/qa-assets ${DIR_QA_ASSETS}
86-
fi
84+
DOCKER_EXEC git clone --depth=1 https://github.com/bitcoin-core/qa-assets ${DIR_QA_ASSETS}
8785
fi
8886
export DIR_FUZZ_IN=${DIR_QA_ASSETS}/fuzz_seed_corpus/
87+
export DIR_UNIT_TEST_DATA=${DIR_QA_ASSETS}/unit_test_data/
8988

9089
DOCKER_EXEC mkdir -p "${BASE_SCRATCH_DIR}/sanitizer-output/"
9190

ci/test/06_script_b.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@ fi
2323

2424
if [ "$RUN_UNIT_TESTS" = "true" ]; then
2525
BEGIN_FOLD unit-tests
26-
DOCKER_EXEC LD_LIBRARY_PATH=$DEPENDS_DIR/$HOST/lib make $MAKEJOBS check VERBOSE=1
26+
DOCKER_EXEC DIR_UNIT_TEST_DATA=${DIR_UNIT_TEST_DATA} LD_LIBRARY_PATH=$DEPENDS_DIR/$HOST/lib make $MAKEJOBS check VERBOSE=1
2727
END_FOLD
2828
fi
2929

3030
if [ "$RUN_UNIT_TESTS_SEQUENTIAL" = "true" ]; then
3131
BEGIN_FOLD unit-tests-seq
32-
DOCKER_EXEC LD_LIBRARY_PATH=$DEPENDS_DIR/$HOST/lib "${BASE_BUILD_DIR}/particl-*/src/test/test_particl*" --catch_system_errors=no -l test_suite
32+
DOCKER_EXEC DIR_UNIT_TEST_DATA=${DIR_UNIT_TEST_DATA} LD_LIBRARY_PATH=$DEPENDS_DIR/$HOST/lib "${BASE_BUILD_DIR}/bitcoin-*/src/test/test_particl*" --catch_system_errors=no -l test_suite
3333
END_FOLD
3434
fi
3535

configure.ac

+56-1
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,16 @@ AC_ARG_ENABLE([ccache],
198198
[use_ccache=$enableval],
199199
[use_ccache=auto])
200200

201+
dnl Suppress warnings from external headers (e.g. Boost, Qt).
202+
dnl May be useful if warnings from external headers clutter the build output
203+
dnl too much, so that it becomes difficult to spot Bitcoin Core warnings
204+
dnl or if they cause a build failure with --enable-werror.
205+
AC_ARG_ENABLE([suppress-external-warnings],
206+
[AS_HELP_STRING([--enable-suppress-external-warnings],
207+
[Suppress warnings from external headers (default is no)])],
208+
[suppress_external_warnings=$enableval],
209+
[suppress_external_warnings=no])
210+
201211
AC_ARG_ENABLE([lcov],
202212
[AS_HELP_STRING([--enable-lcov],
203213
[enable lcov testing (default is no)])],
@@ -1157,6 +1167,18 @@ AC_SUBST(LEVELDB_CPPFLAGS)
11571167
AC_SUBST(LIBLEVELDB)
11581168
AC_SUBST(LIBMEMENV)
11591169

1170+
dnl SUPPRESSED_CPPFLAGS=SUPPRESS_WARNINGS([$SOME_CPPFLAGS])
1171+
dnl Replace -I with -isystem in $SOME_CPPFLAGS to suppress warnings from
1172+
dnl headers from its include directories and return the result.
1173+
dnl See -isystem documentation:
1174+
dnl https://gcc.gnu.org/onlinedocs/gcc/Directory-Options.html
1175+
dnl https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-isystem-directory
1176+
dnl Do not change "-I/usr/include" to "-isystem /usr/include" because that
1177+
dnl is not necessary (/usr/include is already a system directory) and because
1178+
dnl it would break GCC's #include_next.
1179+
AC_DEFUN([SUPPRESS_WARNINGS],
1180+
[$(echo $1 |${SED} -E -e 's/(^| )-I/\1-isystem /g' -e 's;-isystem /usr/include([/ ]|$);-I/usr/include\1;g')])
1181+
11601182
dnl enable-fuzz should disable all other targets
11611183
if test "x$enable_fuzz" = "xyes"; then
11621184
AC_MSG_WARN(enable-fuzz will disable all other targets)
@@ -1173,16 +1195,44 @@ if test "x$enable_fuzz" = "xyes"; then
11731195
use_bench=no
11741196
use_upnp=no
11751197
use_zmq=no
1198+
1199+
AC_MSG_CHECKING([whether main function is needed])
1200+
AX_CHECK_LINK_FLAG(
1201+
[[-fsanitize=$use_sanitizers]],
1202+
[AC_MSG_RESULT([no])],
1203+
[AC_MSG_RESULT([yes])
1204+
CPPFLAGS="$CPPFLAGS -DPROVIDE_MAIN_FUNCTION"],
1205+
[],
1206+
[AC_LANG_PROGRAM([[
1207+
#include <cstdint>
1208+
#include <cstddef>
1209+
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { return 0; }
1210+
/* unterminated comment to remove the main function ...
1211+
]],[[]])])
11761212
else
11771213
BITCOIN_QT_INIT
11781214

11791215
dnl sets $bitcoin_enable_qt, $bitcoin_enable_qt_test, $bitcoin_enable_qt_dbus
11801216
BITCOIN_QT_CONFIGURE([5.5.1])
1217+
1218+
dnl Keep a copy of the original $QT_INCLUDES and use it when invoking qt's moc
1219+
QT_INCLUDES_UNSUPPRESSED=$QT_INCLUDES
1220+
if test x$suppress_external_warnings != xno ; then
1221+
QT_INCLUDES=SUPPRESS_WARNINGS($QT_INCLUDES)
1222+
QT_DBUS_INCLUDES=SUPPRESS_WARNINGS($QT_DBUS_INCLUDES)
1223+
QT_TEST_INCLUDES=SUPPRESS_WARNINGS($QT_TEST_INCLUDES)
1224+
fi
11811225
fi
11821226

11831227
if test x$enable_wallet != xno; then
11841228
dnl Check for libdb_cxx only if wallet enabled
11851229
BITCOIN_FIND_BDB48
1230+
if test x$suppress_external_warnings != xno ; then
1231+
BDB_CPPFLAGS=SUPPRESS_WARNINGS($BDB_CPPFLAGS)
1232+
fi
1233+
1234+
dnl Check for sqlite3
1235+
PKG_CHECK_MODULES([SQLITE], [sqlite3 >= 3.7.17], , [AC_MSG_ERROR([sqlite3 not found.])])
11861236
fi
11871237

11881238
dnl Check for libminiupnpc (optional)
@@ -1237,6 +1287,10 @@ AX_BOOST_THREAD
12371287
dnl Opt-in to boost-process
12381288
AS_IF([ test x$with_boost_process != x ], [ AX_BOOST_PROCESS ], [ ax_cv_boost_process=no ] )
12391289

1290+
if test x$suppress_external_warnings != xno; then
1291+
BOOST_CPPFLAGS=SUPPRESS_WARNINGS($BOOST_CPPFLAGS)
1292+
fi
1293+
12401294
dnl Boost 1.56 through 1.62 allow using std::atomic instead of its own atomic
12411295
dnl counter implementations. In 1.63 and later the std::atomic approach is default.
12421296
m4_pattern_allow(DBOOST_AC_USE_STD_ATOMIC) dnl otherwise it's treated like a macro
@@ -1678,6 +1732,7 @@ AC_SUBST(LIBTOOL_APP_LDFLAGS)
16781732
AC_SUBST(USE_UPNP)
16791733
AC_SUBST(USE_QRCODE)
16801734
AC_SUBST(BOOST_LIBS)
1735+
AC_SUBST(SQLITE_LIBS)
16811736
AC_SUBST(TESTDEFS)
16821737
AC_SUBST(MINIUPNPC_CPPFLAGS)
16831738
AC_SUBST(MINIUPNPC_LIBS)
@@ -1734,7 +1789,7 @@ if test x$need_bundled_univalue = xyes; then
17341789
AC_CONFIG_SUBDIRS([src/univalue])
17351790
fi
17361791

1737-
ac_configure_args="${ac_configure_args} --disable-shared --with-pic --enable-benchmark=no --with-bignum=no --enable-module-recovery --enable-module-ecdh --enable-module-commitment --enable-module-rangeproof --enable-module-bulletproof --enable-module-generator --enable-module-mlsag --enable-experimental --enable-endomorphism"
1792+
ac_configure_args="${ac_configure_args} --disable-shared --with-pic --enable-benchmark=no --with-bignum=no --enable-module-recovery --enable-module-schnorrsig --enable-experimental --enable-module-ecdh --enable-module-commitment --enable-module-rangeproof --enable-module-bulletproof --enable-module-generator --enable-module-mlsag --enable-endomorphism"
17381793
AC_CONFIG_SUBDIRS([src/secp256k1])
17391794

17401795
AC_OUTPUT

0 commit comments

Comments
 (0)