Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
33f0931
merge bitcoin#28900: remove mingw-w64 install for "older" systems
kwvg Nov 17, 2023
42a7296
refactor: move `windres` fix to `hosts/mingw32.mk`
kwvg Oct 25, 2025
b1d51e4
refactor: point Qt URL to `archives` subdirectory
kwvg Oct 24, 2025
b32fd36
merge bitcoin#29249: add NM output to gen_id
kwvg Oct 24, 2025
a0970aa
merge bitcoin#29895: remove bzip2 from deps
kwvg Oct 25, 2025
91cd696
merge bitcoin#30387: use c++ compiler rather than c compiler for bina…
kwvg Jul 3, 2024
e5eddda
partial bitcoin#30940: Fix build with `MULTIPROCESS=1` in Guix enviro…
kwvg Sep 23, 2024
17867af
merge bitcoin#31461: add `-g` to *BSD_debug flags
kwvg Dec 10, 2024
146ca30
merge bitcoin#31484: update capnproto to 1.0.2
kwvg Dec 12, 2024
740b16c
merge bitcoin#31498: Ignore prefix directory on OpenBSD
kwvg Dec 14, 2024
974451c
merge bitcoin#31552: Update capnproto to 1.1.0
kwvg Oct 24, 2025
7b9053c
merge bitcoin#31627: Fix spacing issue
kwvg Jan 9, 2025
f278b54
merge bitcoin#30774: Qt 5.15.16
kwvg Aug 30, 2024
41f5c6e
merge bitcoin#31125: add *FLAGS to gen_id
kwvg Oct 24, 2025
b21e4c1
merge bitcoin#31661: Override default build type for `libevent`
kwvg Oct 24, 2025
ff230fd
merge bitcoin#31800: Avoid using the `-ffile-prefix-map` compiler option
kwvg Oct 24, 2025
614a63f
merge bitcoin#31500: Fix compiling `libevent` package on NetBSD
kwvg Feb 3, 2025
da54740
merge bitcoin#33494: Update URL for `qrencode` package source tarball
kwvg Sep 30, 2025
341339d
merge bitcoin#31100: remove dependency install instructions from win …
kwvg Oct 24, 2025
6a4317a
partial bitcoin#30454: Introduce CMake-based build system
kwvg Oct 24, 2025
df85bb4
merge bitcoin#31626: Use base system's `sha256sum` utility on FreeBSD
kwvg Jan 9, 2025
6ab6dcd
merge bitcoin#31840: add missing Darwin objcopy
kwvg Feb 11, 2025
166376b
merge bitcoin#30584: Make default `host` and `build` comparable
kwvg Aug 4, 2024
20221dd
merge bitcoin#31982: rename libmultiprocess repository
kwvg Oct 24, 2025
efb486a
merge bitcoin#32086: Shuffle depends instructions and recommend moder…
kwvg Oct 24, 2025
2121083
merge bitcoin#31998: patch around PlacementNew issue in capnp
kwvg Feb 7, 2025
985117b
merge bitcoin#32505: bump to latest config.guess and config.sub
kwvg May 14, 2025
5d23b3c
merge bitcoin#32568: use "mkdir -p" when installing xproto
kwvg May 20, 2025
9c84351
merge bitcoin#32690: fix multiprocess build on OpenBSD (apply capnp p…
kwvg Jun 5, 2025
8968508
merge bitcoin#32731: Build `qt` package for FreeBSD hosts
kwvg Oct 25, 2025
3eef0a7
merge bitcoin#32716: Override host compilers for FreeBSD and OpenBSD
kwvg Jun 10, 2025
a67c285
merge bitcoin#32837: fix libevent `_WIN32_WINNT` usage
kwvg Jun 30, 2025
fb42af9
merge bitcoin#32266: Avoid `warning: "_FORTIFY_SOURCE"` redefined for…
kwvg Apr 14, 2025
e1b55f9
merge bitcoin#30095: avoid using thread_local variable that has a des…
kwvg May 13, 2024
da5d128
merge bitcoin#30137: Remove `--enable-threadlocal`
kwvg May 14, 2024
d7075f9
merge bitcoin#33580: Use $(package)_file_name when downloading from t…
kwvg Oct 8, 2025
6305fdc
docs: add omitted "Compatibility" heading to release notes template
kwvg Oct 24, 2025
c89b1a6
partial bitcoin#29023: add historical release notes for 26.0
kwvg Oct 24, 2025
c4ca32a
merge bitcoin#31048: Bump minimum supported macOS to 13.0
kwvg Oct 24, 2025
f1a8d33
merge bitcoin#31099: drop macOS LLVM install instructions
kwvg Oct 24, 2025
ac7b929
partial bitcoin#30454: Introduce CMake-based build system
kwvg Oct 24, 2025
bbb789a
fix: bump `darwin_cmake_system_version` to match `OSX_MIN_VERSION`
kwvg Oct 27, 2025
b3b52f7
merge bitcoin#31172: increase minimum supported Windows to 10.0
kwvg Oct 24, 2025
fb0fd57
merge bitcoin#32400: Use modern Windows randomness functions
kwvg May 1, 2025
91db092
partial bitcoin#32922: use notarized v28.2 binaries and fix macOS det…
kwvg Jul 8, 2025
ee64509
merge bitcoin#31608: Clarify min macOS and Xcode version
kwvg Jan 6, 2025
30cc2ff
merge bitcoin#13151: Serve blocks directly from disk when possible
kwvg Oct 28, 2025
ecb8eec
refactor: drop `message_start` from `ReadRawBlockFromDisk()`
kwvg Oct 28, 2025
e483bd9
partial bitcoin#27125: Decouple ArgsManager from blockstorage
kwvg Oct 28, 2025
cc1d706
merge bitcoin#26415: faster getblock, NotifyBlock and rest_block by r…
kwvg Oct 28, 2025
8ae69ab
merge bitcoin#30321: don't copy data when sending binary response
kwvg Jun 22, 2024
5d8f116
merge bitcoin#30263: Bump clang minimum supported version to 16
kwvg Oct 28, 2025
80033ee
merge bitcoin#33489: Drop support for EOL macOS 13
kwvg Sep 29, 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
12 changes: 6 additions & 6 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -317,14 +317,14 @@ clean-local: clean-docs

test-security-check:
if TARGET_DARWIN
$(AM_V_at) CC='$(CC)' CFLAGS='$(CFLAGS)' CPPFLAGS='$(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' $(PYTHON) $(top_srcdir)/contrib/devtools/test-security-check.py TestSecurityChecks.test_MACHO
$(AM_V_at) CC='$(CC)' CFLAGS='$(CFLAGS)' CPPFLAGS='$(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' $(PYTHON) $(top_srcdir)/contrib/devtools/test-symbol-check.py TestSymbolChecks.test_MACHO
$(AM_V_at) CXX='$(CXX)' CXXFLAGS='$(CXXFLAGS)' CPPFLAGS='$(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' $(PYTHON) $(top_srcdir)/contrib/devtools/test-security-check.py TestSecurityChecks.test_MACHO
$(AM_V_at) CXX='$(CXX)' CXXFLAGS='$(CXXFLAGS)' CPPFLAGS='$(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' $(PYTHON) $(top_srcdir)/contrib/devtools/test-symbol-check.py TestSymbolChecks.test_MACHO
endif
if TARGET_WINDOWS
$(AM_V_at) CC='$(CC)' CFLAGS='$(CFLAGS)' CPPFLAGS='$(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' $(PYTHON) $(top_srcdir)/contrib/devtools/test-security-check.py TestSecurityChecks.test_PE
$(AM_V_at) CC='$(CC)' CFLAGS='$(CFLAGS)' CPPFLAGS='$(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' $(PYTHON) $(top_srcdir)/contrib/devtools/test-symbol-check.py TestSymbolChecks.test_PE
$(AM_V_at) CXX='$(CXX)' CXXFLAGS='$(CXXFLAGS)' CPPFLAGS='$(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' $(PYTHON) $(top_srcdir)/contrib/devtools/test-security-check.py TestSecurityChecks.test_PE
$(AM_V_at) CXX='$(CXX)' CXXFLAGS='$(CXXFLAGS)' CPPFLAGS='$(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' $(PYTHON) $(top_srcdir)/contrib/devtools/test-symbol-check.py TestSymbolChecks.test_PE
endif
if TARGET_LINUX
$(AM_V_at) CC='$(CC)' CFLAGS='$(CFLAGS)' CPPFLAGS='$(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' $(PYTHON) $(top_srcdir)/contrib/devtools/test-security-check.py TestSecurityChecks.test_ELF
$(AM_V_at) CC='$(CC)' CFLAGS='$(CFLAGS)' CPPFLAGS='$(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' $(PYTHON) $(top_srcdir)/contrib/devtools/test-symbol-check.py TestSymbolChecks.test_ELF
$(AM_V_at) CXX='$(CXX)' CXXFLAGS='$(CXXFLAGS)' CPPFLAGS='$(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' $(PYTHON) $(top_srcdir)/contrib/devtools/test-security-check.py TestSecurityChecks.test_ELF
$(AM_V_at) CXX='$(CXX)' CXXFLAGS='$(CXXFLAGS)' CPPFLAGS='$(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' $(PYTHON) $(top_srcdir)/contrib/devtools/test-symbol-check.py TestSymbolChecks.test_ELF
endif
2 changes: 1 addition & 1 deletion build-aux/m4/bitcoin_qt.m4
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ AC_DEFUN([BITCOIN_QT_CONFIGURE],[
_BITCOIN_QT_CHECK_STATIC_PLUGIN([QWindowsIntegrationPlugin], [-lqwindows])
_BITCOIN_QT_CHECK_STATIC_PLUGIN([QWindowsVistaStylePlugin], [-lqwindowsvistastyle])
AC_DEFINE([QT_QPA_PLATFORM_WINDOWS], [1], [Define this symbol if the qt platform is windows])
elif test "$TARGET_OS" = "linux"; then
elif test "$TARGET_OS" = "linux" -o "$TARGET_OS" = "freebsd"; then
_BITCOIN_QT_CHECK_STATIC_PLUGIN([QXcbIntegrationPlugin], [-lqxcb])
AC_DEFINE([QT_QPA_PLATFORM_XCB], [1], [Define this symbol if the qt platform is xcb])
elif test "$TARGET_OS" = "darwin"; then
Expand Down
59 changes: 9 additions & 50 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -236,12 +236,6 @@ AC_ARG_ENABLE([lcov-branch-coverage],
[use_lcov_branch=yes],
[use_lcov_branch=no])

AC_ARG_ENABLE([threadlocal],
[AS_HELP_STRING([--enable-threadlocal],
[enable features that depend on the c++ thread_local keyword (currently just thread names in debug logs). (default is to enable if there is platform support)])],
[use_thread_local=$enableval],
[use_thread_local=auto])

AC_ARG_ENABLE([zmq],
[AS_HELP_STRING([--disable-zmq],
[disable ZMQ notifications])],
Expand Down Expand Up @@ -835,7 +829,7 @@ case $host in
AC_MSG_ERROR([windres not found])
fi

CORE_CPPFLAGS="$CORE_CPPFLAGS -D_MT -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0601 -D_WIN32_IE=0x0501 -DWIN32_LEAN_AND_MEAN"
CORE_CPPFLAGS="$CORE_CPPFLAGS -D_MT -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0A00 -D_WIN32_IE=0x0A00 -DWIN32_LEAN_AND_MEAN"
dnl Prevent the definition of min/max macros.
dnl We always want to use the standard library.
CORE_CPPFLAGS="$CORE_CPPFLAGS -DNOMINMAX"
Expand All @@ -848,8 +842,10 @@ case $host in
archive_cmds_CXX="\$CC -shared \$libobjs \$deplibs \$compiler_flags -static -o \$output_objdir/\$soname \${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker \$lib"
postdeps_CXX=

dnl We require Windows 7 (NT 6.1) or later
AX_CHECK_LINK_FLAG([-Wl,--major-subsystem-version -Wl,6 -Wl,--minor-subsystem-version -Wl,1], [CORE_LDFLAGS="$CORE_LDFLAGS -Wl,--major-subsystem-version -Wl,6 -Wl,--minor-subsystem-version -Wl,1"], [], [$LDFLAG_WERROR])
dnl We support Windows 10+, however it's not possible to set these values accordingly,
dnl due to a bug in mingw-w64. See https://sourceforge.net/p/mingw-w64/bugs/968/.
dnl As a best effort, target Windows 8.
AX_CHECK_LINK_FLAG([-Wl,--major-subsystem-version -Wl,6 -Wl,--minor-subsystem-version -Wl,2], [CORE_LDFLAGS="$CORE_LDFLAGS -Wl,--major-subsystem-version -Wl,6 -Wl,--minor-subsystem-version -Wl,2"], [], [$LDFLAG_WERROR])

dnl Avoid the use of aligned vector instructions when building for Windows.
dnl See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54412.
Expand Down Expand Up @@ -967,6 +963,9 @@ case $host in
*linux*)
TARGET_OS=linux
;;
*freebsd*)
TARGET_OS=freebsd
;;
esac

if test "$use_extended_functional_tests" != "no"; then
Expand Down Expand Up @@ -1084,8 +1083,7 @@ if test "$use_hardening" != "no"; then

case $host in
*mingw*)
dnl stack-clash-protection doesn't compile with GCC 10 and earlier.
dnl In any case, it is a no-op for Windows.
dnl stack-clash-protection is a no-op for Windows.
dnl See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90458 for more details.
;;
*)
Expand Down Expand Up @@ -1204,45 +1202,6 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([
[AC_MSG_RESULT([no])]
)

if test "$use_thread_local" = "yes" || test "$use_thread_local" = "auto"; then
TEMP_LDFLAGS="$LDFLAGS"
LDFLAGS="$TEMP_LDFLAGS $PTHREAD_CFLAGS"
AC_MSG_CHECKING([for thread_local support])
AC_LINK_IFELSE([AC_LANG_SOURCE([
#include <thread>
static thread_local int foo = 0;
static void run_thread() { foo++;}
int main(){
for(int i = 0; i < 10; i++) { std::thread(run_thread).detach();}
return foo;
}
])],
[
case $host in
*mingw*)
dnl mingw32's implementation of thread_local has also been shown to behave
dnl erroneously under concurrent usage; see:
dnl https://gist.github.com/jamesob/fe9a872051a88b2025b1aa37bfa98605
AC_MSG_RESULT([no])
;;
*freebsd*)
dnl FreeBSD's implementation of thread_local is also buggy (per
dnl https://groups.google.com/d/msg/bsdmailinglist/22ncTZAbDp4/Dii_pII5AwAJ)
AC_MSG_RESULT([no])
;;
*)
AC_DEFINE([HAVE_THREAD_LOCAL], [1], [Define if thread_local is supported.])
AC_MSG_RESULT([yes])
;;
esac
],
[
AC_MSG_RESULT([no])
]
)
LDFLAGS="$TEMP_LDFLAGS"
fi

dnl Check for different ways of gathering OS randomness
AC_MSG_CHECKING([for Linux getrandom syscall])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <unistd.h>
Expand Down
7 changes: 4 additions & 3 deletions contrib/devtools/symbol-check.py
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,8 @@
}

PE_ALLOWED_LIBRARIES = {
'ADVAPI32.dll', # security & registry
'ADVAPI32.dll', # legacy security & registry
'bcrypt.dll', # newer security and identity API
'IPHLPAPI.DLL', # IP helper API
'KERNEL32.dll', # win32 base APIs
'msvcrt.dll', # C standard library for MSVC
Expand Down Expand Up @@ -242,7 +243,7 @@ def check_MACHO_libraries(binary) -> bool:
return ok

def check_MACHO_min_os(binary) -> bool:
if binary.build_version.minos == [11,0,0]:
if binary.build_version.minos == [14,0,0]:
return True
return False

Expand All @@ -267,7 +268,7 @@ def check_PE_libraries(binary) -> bool:
def check_PE_subsystem_version(binary) -> bool:
major: int = binary.optional_header.major_subsystem_version
minor: int = binary.optional_header.minor_subsystem_version
if major == 6 and minor == 1:
if major == 6 and minor == 2:
return True
return False

Expand Down
Loading
Loading