Skip to content

Commit ea7288a

Browse files
bad7159 merge bitcoin#27696: Do not define `ENABLE_ZMQ` when ZMQ is not available (Kittywhiskers Van Gogh) edb3838 merge bitcoin#27387: Document `NO_USDT` option (Kittywhiskers Van Gogh) 6dcbed5 merge bitcoin#27406: add `NO_HARDEN=` option (Kittywhiskers Van Gogh) 92b405b merge bitcoin#27118: harden libevent (Kittywhiskers Van Gogh) 9393bf8 build: don't treat -Wcpp as an error on GCC <11 due to _FORTIFY_SOURCE=3 (Kittywhiskers Van Gogh) cf553e9 merge bitcoin#27027: use _FORTIFY_SOURCE=3 (Kittywhiskers Van Gogh) 1789813 merge bitcoin#27057: set boost cppflags with --enable-fuzz (Kittywhiskers Van Gogh) 0b1863f merge bitcoin#25974: Separate `read_json` function into its own module (Kittywhiskers Van Gogh) abcafca merge bitcoin#26833: allow NO_BOOST=1 & NO_LIBEVENT=1 in depends (Kittywhiskers Van Gogh) 35008a3 merge bitcoin#26099: remove duplicate / unneeded libs from bench_bitcoin (Kittywhiskers Van Gogh) 933a87e merge bitcoin#26086: remove BOOST_CPPFLAGS usage from bitcoin-tx (Kittywhiskers Van Gogh) 3203a81 merge bitcoin#26089: remove unused cppflags (Kittywhiskers Van Gogh) 95b6d00 merge bitcoin#26056: extract $(BOOST_CPPFLAGS) from $(BITCOIN_INCLUDES) (Kittywhiskers Van Gogh) 60fae05 merge bitcoin#25852: reorder CXXFLAGS in intrinsic checks (Kittywhiskers Van Gogh) 601884e merge bitcoin#25813: move raw rule into Makefile.am (Kittywhiskers Van Gogh) ef6aff9 fix: use `_raw` suffix in raw test vectors similar to bench vectors (Kittywhiskers Van Gogh) 06ce58a revert: Separate .h generation from .json/.raw for different modules (Kittywhiskers Van Gogh) 7d6f0ea merge bitcoin#25687: Do not export `PKG_CONFIG_{PATH|LIBDIR}` variables (Kittywhiskers Van Gogh) 9b8ebe1 merge bitcoin#24291: Remove negated --enable-fuzz checks from build system (Kittywhiskers Van Gogh) 2f24453 merge bitcoin#25244: pass bdb cppflags only where needed (Kittywhiskers Van Gogh) d7a8d6d merge bitcoin#24681: Bump libevent minimum version up to 2.1.8 (Kittywhiskers Van Gogh) Pull request description: ## Additional Information * In order to allow backporting [bitcoin#27027](bitcoin#27027), `-Werror=cpp` has been suppressed for GCC 11 as `_FORTIFY_SOURCE=3` was introduced in GCC 12 ([source](https://developers.redhat.com/articles/2022/09/17/gccs-new-fortification-level)) and the `linux64_sqlite` build variant errored ([build](https://github.com/dashpay/dash/actions/runs/15887716336/job/44804408978#step:8:1540)) due to our enablement of `-Werror`. The warning emitted by GCC 11 has been acknowledged in the comments of [bitcoin#27027](bitcoin#27027) as well ([comment](bitcoin#27027 (comment))). ## Breaking Changes None expected. ## Checklist - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)** - [x] I have added or updated relevant unit/integration/functional/e2e tests - [x] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: UdjinM6: utACK bad7159 knst: re-ACK bad7159 Tree-SHA512: d8fecdea123d90a2ca3ea0d32a9a53f627ab3dff16520668280e21d9c094c84c45a5da2505a1de34906e2d3f946ac12839ed7e1ee621796b5879f65f96771dbe
2 parents d84483f + bad7159 commit ea7288a

32 files changed

+163
-157
lines changed

configure.ac

Lines changed: 39 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,16 @@ if test "$PKG_CONFIG" = ""; then
1919
AC_MSG_ERROR([pkg-config not found])
2020
fi
2121

22+
# When compiling with depends, the `PKG_CONFIG_PATH` and `PKG_CONFIG_LIBDIR` variables,
23+
# being set in a `config.site` file, are not exported to let the `--config-cache` option
24+
# work properly.
25+
if test -n "$PKG_CONFIG_PATH"; then
26+
PKG_CONFIG="env PKG_CONFIG_PATH=$PKG_CONFIG_PATH $PKG_CONFIG"
27+
fi
28+
if test -n "$PKG_CONFIG_LIBDIR"; then
29+
PKG_CONFIG="env PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR $PKG_CONFIG"
30+
fi
31+
2232
BITCOIN_DAEMON_NAME=dashd
2333
BITCOIN_GUI_NAME=dash-qt
2434
BITCOIN_CLI_NAME=dash-cli
@@ -476,6 +486,16 @@ if test "$enable_werror" = "yes"; then
476486
int main(void) { return 0; }
477487
])])
478488

489+
dnl -Wcpp is triggered due to _FORTIFY_SOURCE=3 on GCC 11 and below as level 3 was introduced in GCC 12. Do not treat these warnings as errors.
490+
AX_CHECK_COMPILE_FLAG([-Wcpp], [NOWARN_CXXFLAGS="$NOWARN_CXXFLAGS -Wno-error=cpp"], [], [$CXXFLAG_WERROR], [AC_LANG_SOURCE([
491+
#if defined(__clang__) || defined(__INTEL_COMPILER) || !defined(__GNUC__)
492+
#error Non-GCC compiler detected, not setting flag
493+
#elif defined(__GNUC__) && __GNUC__ >= 12
494+
#error GCC >=12 detected, not setting flag
495+
#endif
496+
int main(void) { return 0; }
497+
])])
498+
479499
dnl -Wstringop-overread and -Wstringop-overflow are broken in GCC. Suppress warnings entirely to avoid noisy output.
480500
AX_CHECK_COMPILE_FLAG([-Wstringop-overread], [NOWARN_CXXFLAGS="$NOWARN_CXXFLAGS -Wno-stringop-overread"], [], [$CXXFLAG_WERROR], [AC_LANG_SOURCE([
481501
#if defined(__clang__) || defined(__INTEL_COMPILER) || !defined(__GNUC__)
@@ -567,7 +587,7 @@ if test "$enable_clmul" = "yes"; then
567587
fi
568588

569589
TEMP_CXXFLAGS="$CXXFLAGS"
570-
CXXFLAGS="$CXXFLAGS $SSE42_CXXFLAGS"
590+
CXXFLAGS="$SSE42_CXXFLAGS $CXXFLAGS"
571591
AC_MSG_CHECKING([for SSE4.2 intrinsics])
572592
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
573593
#include <stdint.h>
@@ -589,7 +609,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
589609
CXXFLAGS="$TEMP_CXXFLAGS"
590610

591611
TEMP_CXXFLAGS="$CXXFLAGS"
592-
CXXFLAGS="$CXXFLAGS $SSE41_CXXFLAGS"
612+
CXXFLAGS="$SSE41_CXXFLAGS $CXXFLAGS"
593613
AC_MSG_CHECKING([for SSE4.1 intrinsics])
594614
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
595615
#include <stdint.h>
@@ -604,7 +624,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
604624
CXXFLAGS="$TEMP_CXXFLAGS"
605625

606626
TEMP_CXXFLAGS="$CXXFLAGS"
607-
CXXFLAGS="$CXXFLAGS $AVX2_CXXFLAGS"
627+
CXXFLAGS="$AVX2_CXXFLAGS $CXXFLAGS"
608628
AC_MSG_CHECKING([for AVX2 intrinsics])
609629
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
610630
#include <stdint.h>
@@ -619,7 +639,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
619639
CXXFLAGS="$TEMP_CXXFLAGS"
620640

621641
TEMP_CXXFLAGS="$CXXFLAGS"
622-
CXXFLAGS="$CXXFLAGS $X86_SHANI_CXXFLAGS"
642+
CXXFLAGS="$X86_SHANI_CXXFLAGS $CXXFLAGS"
623643
AC_MSG_CHECKING([for x86 SHA-NI intrinsics])
624644
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
625645
#include <stdint.h>
@@ -640,7 +660,7 @@ AX_CHECK_COMPILE_FLAG([-march=armv8-a+crc+crypto], [ARM_CRC_CXXFLAGS="-march=arm
640660
AX_CHECK_COMPILE_FLAG([-march=armv8-a+crypto], [ARM_SHANI_CXXFLAGS="-march=armv8-a+crypto"], [], [$CXXFLAG_WERROR])
641661

642662
TEMP_CXXFLAGS="$CXXFLAGS"
643-
CXXFLAGS="$CXXFLAGS $ARM_CRC_CXXFLAGS"
663+
CXXFLAGS="$ARM_CRC_CXXFLAGS $CXXFLAGS"
644664
AC_MSG_CHECKING([for ARMv8 CRC32 intrinsics])
645665
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
646666
#include <arm_acle.h>
@@ -659,7 +679,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
659679
CXXFLAGS="$TEMP_CXXFLAGS"
660680

661681
TEMP_CXXFLAGS="$CXXFLAGS"
662-
CXXFLAGS="$CXXFLAGS $ARM_SHANI_CXXFLAGS"
682+
CXXFLAGS="$ARM_SHANI_CXXFLAGS $CXXFLAGS"
663683
AC_MSG_CHECKING([for ARMv8 SHA-NI intrinsics])
664684
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
665685
#include <arm_acle.h>
@@ -1018,11 +1038,11 @@ if test "$use_hardening" != "no"; then
10181038
dnl However, FORTIFY_SOURCE requires that there is some level of optimization, otherwise it does nothing and just creates a compiler warning.
10191039
dnl Since FORTIFY_SOURCE is a no-op without optimizations, do not enable it when enable_debug is yes.
10201040
if test "$enable_debug" != "yes"; then
1021-
AX_CHECK_PREPROC_FLAG([-D_FORTIFY_SOURCE=2],[
1041+
AX_CHECK_PREPROC_FLAG([-D_FORTIFY_SOURCE=3],[
10221042
AX_CHECK_PREPROC_FLAG([-U_FORTIFY_SOURCE],[
10231043
HARDENED_CPPFLAGS="$HARDENED_CPPFLAGS -U_FORTIFY_SOURCE"
10241044
])
1025-
HARDENED_CPPFLAGS="$HARDENED_CPPFLAGS -D_FORTIFY_SOURCE=2"
1045+
HARDENED_CPPFLAGS="$HARDENED_CPPFLAGS -D_FORTIFY_SOURCE=3"
10261046
])
10271047
fi
10281048

@@ -1331,6 +1351,7 @@ if test "$enable_fuzz" = "yes"; then
13311351
bitcoin_enable_qt_test=no
13321352
bitcoin_enable_qt_dbus=no
13331353
use_bench=no
1354+
use_tests=no
13341355
use_upnp=no
13351356
use_natpmp=no
13361357
use_zmq=no
@@ -1464,7 +1485,7 @@ if test "$use_natpmp" != "no"; then
14641485
CPPFLAGS="$TEMP_CPPFLAGS"
14651486
fi
14661487

1467-
if test "$build_bitcoin_wallet$build_bitcoin_cli$build_bitcoin_tx$build_bitcoind$bitcoin_enable_qt$use_tests$use_bench" = "nonononononono"; then
1488+
if test "$build_bitcoin_wallet$build_bitcoin_cli$build_bitcoin_tx$build_bitcoind$bitcoin_enable_qt$use_tests$use_bench$enable_fuzz_binary" = "nononononononono"; then
14681489
use_boost=no
14691490
else
14701491
use_boost=yes
@@ -1525,10 +1546,10 @@ fi
15251546
dnl libevent check
15261547

15271548
use_libevent=no
1528-
if test "$build_bitcoin_cli$build_bitcoind$bitcoin_enable_qt$use_tests$use_bench" != "nonononono"; then
1529-
PKG_CHECK_MODULES([EVENT], [libevent >= 2.0.21], [use_libevent=yes], [AC_MSG_ERROR([libevent version 2.0.21 or greater not found.])])
1549+
if test "$build_bitcoin_cli$build_bitcoind$bitcoin_enable_qt$enable_fuzz_binary$use_tests$use_bench" != "nononononono"; then
1550+
PKG_CHECK_MODULES([EVENT], [libevent >= 2.1.8], [use_libevent=yes], [AC_MSG_ERROR([libevent version 2.1.8 or greater not found.])])
15301551
if test "$TARGET_OS" != "windows"; then
1531-
PKG_CHECK_MODULES([EVENT_PTHREADS], [libevent_pthreads >= 2.0.21],, [AC_MSG_ERROR([libevent_pthreads version 2.0.21 or greater not found.])])
1552+
PKG_CHECK_MODULES([EVENT_PTHREADS], [libevent_pthreads >= 2.1.8], [], [AC_MSG_ERROR([libevent_pthreads version 2.1.8 or greater not found.])])
15321553
fi
15331554

15341555
if test "$suppress_external_warnings" != "no"; then
@@ -1566,12 +1587,9 @@ dnl ZMQ check
15661587

15671588
if test "$use_zmq" = "yes"; then
15681589
PKG_CHECK_MODULES([ZMQ], [libzmq >= 4],
1569-
AC_DEFINE([ENABLE_ZMQ], [1], [Define to 1 to enable ZMQ functions]),
1570-
[AC_DEFINE([ENABLE_ZMQ], [0], [Define to 1 to enable ZMQ functions])
1571-
AC_MSG_WARN([libzmq version 4.x or greater not found, disabling])
1590+
AC_DEFINE([ENABLE_ZMQ], [1], [Define this symbol to enable ZMQ functions]),
1591+
[AC_MSG_WARN([libzmq version 4.x or greater not found, disabling])
15721592
use_zmq=no])
1573-
else
1574-
AC_DEFINE_UNQUOTED([ENABLE_ZMQ], [0], [Define to 1 to enable ZMQ functions])
15751593
fi
15761594

15771595
if test "$use_zmq" = "yes"; then
@@ -1587,6 +1605,8 @@ dnl check if libgmp is present
15871605
AC_CHECK_HEADER([gmp.h],, AC_MSG_ERROR(libgmp headers missing))
15881606
AC_CHECK_LIB([gmp], [__gmpz_init],GMP_LIBS=-lgmp, AC_MSG_ERROR(libgmp missing))
15891607

1608+
AM_CONDITIONAL([ENABLE_ZMQ], [test "$use_zmq" = "yes"])
1609+
15901610
dnl libmultiprocess library check
15911611

15921612
libmultiprocess_found=no
@@ -1764,8 +1784,6 @@ if test "$bitcoin_enable_qt" != "no"; then
17641784
fi
17651785
fi
17661786

1767-
AM_CONDITIONAL([ENABLE_ZMQ], [test "$use_zmq" = "yes"])
1768-
17691787
AC_MSG_CHECKING([whether to build test_dash])
17701788
if test "$use_tests" = "yes"; then
17711789
if test "$enable_fuzz" = "yes"; then
@@ -1798,8 +1816,8 @@ else
17981816
fi
17991817
AC_MSG_RESULT($dsymutil_needs_flat)
18001818

1801-
if test "$build_bitcoin_wallet$build_bitcoin_cli$build_bitcoin_tx$build_bitcoind$bitcoin_enable_qt$use_bench$use_tests" = "nonononononono"; then
1802-
AC_MSG_ERROR([No targets! Please specify at least one of: --with-utils --with-libs --with-daemon --with-gui --enable-bench or --enable-tests])
1819+
if test "$build_bitcoin_wallet$build_bitcoin_cli$build_bitcoin_tx$build_bitcoind$bitcoin_enable_qt$enable_fuzz_binary$use_bench$use_tests" = "nononononononono"; then
1820+
AC_MSG_ERROR([No targets! Please specify at least one of: --with-utils --with-libs --with-daemon --with-gui --enable-fuzz(-binary) --enable-bench or --enable-tests])
18031821
fi
18041822

18051823
AM_CONDITIONAL([TARGET_DARWIN], [test "$TARGET_OS" = "darwin"])

depends/Makefile

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ SOURCES_PATH ?= $(BASEDIR)/sources
3232
WORK_PATH = $(BASEDIR)/work
3333
BASE_CACHE ?= $(BASEDIR)/built
3434
SDK_PATH ?= $(BASEDIR)/SDKs
35+
NO_BOOST ?=
36+
NO_LIBEVENT ?=
3537
NO_QT ?=
3638
NO_QR ?=
3739
NO_BDB ?=
@@ -43,6 +45,7 @@ NO_USDT ?=
4345
NO_NATPMP ?=
4446
MULTIPROCESS ?=
4547
LTO ?=
48+
NO_HARDEN ?=
4649
FALLBACK_DOWNLOAD_PATH ?= http://dash-depends-sources.s3-website-us-west-2.amazonaws.com
4750

4851
C_STANDARD ?= c11
@@ -144,8 +147,12 @@ include packages/packages.mk
144147
# 2. Before including packages/*.mk (excluding packages/packages.mk), since
145148
# they rely on the build_id variables
146149
#
147-
build_id:=$(shell env CC='$(build_CC)' C_STANDARD='$(C_STANDARD)' CXX='$(build_CXX)' CXX_STANDARD='$(CXX_STANDARD)' AR='$(build_AR)' RANLIB='$(build_RANLIB)' STRIP='$(build_STRIP)' SHA256SUM='$(build_SHA256SUM)' DEBUG='$(DEBUG)' LTO='$(LTO)' ./gen_id '$(BUILD_ID_SALT)' 'GUIX_ENVIRONMENT=$(realpath $(GUIX_ENVIRONMENT))')
148-
$(host_arch)_$(host_os)_id:=$(shell env CC='$(host_CC)' C_STANDARD='$(C_STANDARD)' CXX='$(host_CXX)' CXX_STANDARD='$(CXX_STANDARD)' AR='$(host_AR)' RANLIB='$(host_RANLIB)' STRIP='$(host_STRIP)' SHA256SUM='$(build_SHA256SUM)' DEBUG='$(DEBUG)' LTO='$(LTO)' ./gen_id '$(HOST_ID_SALT)' 'GUIX_ENVIRONMENT=$(realpath $(GUIX_ENVIRONMENT))')
150+
build_id:=$(shell env CC='$(build_CC)' C_STANDARD='$(C_STANDARD)' CXX='$(build_CXX)' CXX_STANDARD='$(CXX_STANDARD)' AR='$(build_AR)' RANLIB='$(build_RANLIB)' STRIP='$(build_STRIP)' SHA256SUM='$(build_SHA256SUM)' DEBUG='$(DEBUG)' LTO='$(LTO)' NO_HARDEN='$(NO_HARDEN)' ./gen_id '$(BUILD_ID_SALT)' 'GUIX_ENVIRONMENT=$(realpath $(GUIX_ENVIRONMENT))')
151+
$(host_arch)_$(host_os)_id:=$(shell env CC='$(host_CC)' C_STANDARD='$(C_STANDARD)' CXX='$(host_CXX)' CXX_STANDARD='$(CXX_STANDARD)' AR='$(host_AR)' RANLIB='$(host_RANLIB)' STRIP='$(host_STRIP)' SHA256SUM='$(build_SHA256SUM)' DEBUG='$(DEBUG)' LTO='$(LTO)' NO_HARDEN='$(NO_HARDEN)' ./gen_id '$(HOST_ID_SALT)' 'GUIX_ENVIRONMENT=$(realpath $(GUIX_ENVIRONMENT))')
152+
153+
boost_packages_$(NO_BOOST) = $(boost_packages)
154+
155+
libevent_packages_$(NO_LIBEVENT) = $(libevent_packages)
149156

150157
qrencode_packages_$(NO_QR) = $(qrencode_$(host_os)_packages)
151158

@@ -162,7 +169,7 @@ zmq_packages_$(NO_ZMQ) = $(zmq_packages)
162169
multiprocess_packages_$(MULTIPROCESS) = $(multiprocess_packages)
163170
usdt_packages_$(NO_USDT) = $(usdt_$(host_os)_packages)
164171

165-
packages += $($(host_arch)_$(host_os)_packages) $($(host_os)_packages) $(qt_packages_) $(wallet_packages_) $(upnp_packages_) $(natpmp_packages_) $(usdt_packages_)
172+
packages += $($(host_arch)_$(host_os)_packages) $($(host_os)_packages) $(boost_packages_) $(libevent_packages_) $(qt_packages_) $(wallet_packages_) $(upnp_packages_) $(natpmp_packages_) $(usdt_packages_)
166173
native_packages += $($(host_arch)_$(host_os)_native_packages) $($(host_os)_native_packages)
167174

168175
ifneq ($(zmq_packages_),)
@@ -242,6 +249,7 @@ $(host_prefix)/share/config.site : config.site.in $(host_prefix)/.stamp_$(final_
242249
-e 's|@no_natpmp@|$(NO_NATPMP)|' \
243250
-e 's|@multiprocess@|$(MULTIPROCESS)|' \
244251
-e 's|@lto@|$(LTO)|' \
252+
-e 's|@no_harden@|$(NO_HARDEN)|' \
245253
-e 's|@debug@|$(DEBUG)|' \
246254
$< > $@
247255
touch $@

depends/README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,10 +113,11 @@ The following can be set when running make: `make FOO=bar`
113113
- `NO_BDB`: Don't download/build/cache BerkeleyDB
114114
- `NO_SQLITE`: Don't download/build/cache SQLite
115115
- `NO_UPNP`: Don't download/build/cache packages needed for enabling UPnP
116+
- `NO_NATPMP`: Don't download/build/cache packages needed for enabling NAT-PMP
117+
- `NO_USDT`: Don't download/build/cache packages needed for enabling USDT tracepoints
116118
- `ALLOW_HOST_PACKAGES`: Packages that are missed in dependencies (due to `NO_*` option or
117119
build script logic) are searched for among the host system packages using
118120
`pkg-config`. It allows building with packages of other (newer) versions
119-
- `NO_NATPMP`: Don't download/build/cache packages needed for enabling NAT-PMP
120121
- `MULTIPROCESS`: build libmultiprocess (experimental, requires cmake)
121122
- `DEBUG`: Disable some optimizations and enable more runtime checking
122123
- `HOST_ID_SALT`: Optional salt to use when generating host package ids
@@ -125,6 +126,7 @@ The following can be set when running make: `make FOO=bar`
125126
resides in the `depends` directory, and the log file is printed out automatically in case
126127
of build error. After successful build log files are moved along with package archives
127128
- `LTO`: Enable options needed for LTO. Does not add `-flto` related options to *FLAGS.
129+
- `NO_HARDEN=1`: Don't use hardening options when building packages
128130

129131
If some packages are not built, for example `make NO_WALLET=1`, the appropriate
130132
options will be passed to Dash Core's configure. In this case, `--disable-wallet`.

depends/config.site.in

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,14 +78,15 @@ if test "@host_os@" = darwin; then
7878
BREW=no
7979
fi
8080

81+
if test -z "$enable_hardening" && test -n "@no_harden@"; then
82+
enable_hardening=no
83+
fi
84+
8185
PKG_CONFIG="$(which pkg-config) --static"
8286

83-
# These two need to remain exported because pkg-config does not see them
84-
# otherwise. That means they must be unexported at the end of configure.ac to
85-
# avoid ruining the cache. Sigh.
86-
export PKG_CONFIG_PATH="${depends_prefix}/share/pkgconfig:${depends_prefix}/lib/pkgconfig"
87+
PKG_CONFIG_PATH="${depends_prefix}/share/pkgconfig:${depends_prefix}/lib/pkgconfig"
8788
if test -z "@allow_host_packages@"; then
88-
export PKG_CONFIG_LIBDIR="${depends_prefix}/lib/pkgconfig"
89+
PKG_CONFIG_LIBDIR="${depends_prefix}/lib/pkgconfig"
8990
fi
9091

9192
CPPFLAGS="-I${depends_prefix}/include/ ${CPPFLAGS}"

depends/gen_id

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
# Usage: env [ CC=... ] [ C_STANDARD=...] [ CXX=... ] [CXX_STANDARD=...] \
44
# [ AR=... ] [ RANLIB=... ] [ STRIP=... ] [ DEBUG=... ] \
5-
# [ LTO=... ] ./build-id [ID_SALT]...
5+
# [ LTO=... ] [ NO_HARDEN=... ] ./build-id [ID_SALT]...
66
#
77
# Prints to stdout a SHA256 hash representing the current toolset, used by
88
# depends/Makefile as a build id for caching purposes (detecting when the
@@ -69,6 +69,10 @@
6969
echo "LTO=${LTO}"
7070
echo "END LTO"
7171

72+
echo "BEGIN NO_HARDEN"
73+
echo "NO_HARDEN=${NO_HARDEN}"
74+
echo "END NO_HARDEN"
75+
7276
echo "END ALL"
7377
) | if [ -n "$DEBUG" ] && command -v tee > /dev/null 2>&1; then
7478
# When debugging and `tee` is available, output the preimage to stderr

depends/packages/libevent.mk

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ define $(package)_set_vars
1616
$(package)_config_opts+=-DEVENT__DISABLE_TESTS=ON -DEVENT__LIBRARY_TYPE=STATIC
1717
$(package)_cppflags += -D_GNU_SOURCE
1818
$(package)_cppflags_mingw32=-D_WIN32_WINNT=0x0601
19+
20+
ifeq ($(NO_HARDEN),)
21+
$(package)_cppflags+=-D_FORTIFY_SOURCE=3
22+
endif
1923
endef
2024

2125
define $(package)_preprocess_cmds

depends/packages/packages.mk

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
1-
packages:=boost libevent gmp backtrace
1+
packages:=gmp backtrace
22

3-
qt_linux_packages:=qt expat libxcb xcb_proto libXau xproto freetype fontconfig libxkbcommon libxcb_util libxcb_util_render libxcb_util_keysyms libxcb_util_image libxcb_util_wm
3+
boost_packages = boost
4+
5+
libevent_packages = libevent
46

57
qrencode_linux_packages = qrencode
68
qrencode_android_packages = qrencode
79
qrencode_darwin_packages = qrencode
810
qrencode_mingw32_packages = qrencode
911

12+
qt_linux_packages:=qt expat libxcb xcb_proto libXau xproto freetype fontconfig libxkbcommon libxcb_util libxcb_util_render libxcb_util_keysyms libxcb_util_image libxcb_util_wm
1013
qt_android_packages=qt
1114
qt_darwin_packages=qt
1215
qt_mingw32_packages=qt

doc/dependencies.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ You can find installation instructions in the `build-*.md` file for your platfor
1818
| Dependency | Version used | Minimum required | Runtime |
1919
| --- | --- | --- | --- |
2020
| [Boost](https://www.boost.org/users/download/) | 1.81.0 | [1.73.0](https://github.com/bitcoin/bitcoin/pull/29066) | No |
21-
| [libevent](https://github.com/libevent/libevent/releases) | 2.1.12-stable | [2.0.21](https://github.com/bitcoin/bitcoin/pull/18676) | No |
21+
| [libevent](https://github.com/libevent/libevent/releases) | 2.1.12-stable | [2.1.8](https://github.com/bitcoin/bitcoin/pull/24681) | No |
2222
| [glibc](https://www.gnu.org/software/libc/) | N/A | [2.31](https://github.com/bitcoin/bitcoin/pull/29987) | Yes |
2323

2424
## Optional

0 commit comments

Comments
 (0)