From 93c0aa065995bc317812f00995a5f50911e329fb Mon Sep 17 00:00:00 2001 From: Duke Date: Mon, 29 Dec 2025 20:18:01 -0500 Subject: [PATCH 01/17] Use custom compiler env vars CC/CXX for linux hosts when building --- depends/hosts/linux.mk | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/depends/hosts/linux.mk b/depends/hosts/linux.mk index 3805d2307..4895b1e30 100644 --- a/depends/hosts/linux.mk +++ b/depends/hosts/linux.mk @@ -10,15 +10,15 @@ linux_debug_CXXFLAGS=$(linux_debug_CFLAGS) linux_debug_CPPFLAGS=-D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC ifeq (86,$(findstring 86,$(build_arch))) -i686_linux_CC=gcc -m32 -i686_linux_CXX=g++ -m32 +i686_linux_CC=$(CC) -m32 +i686_linux_CXX=$(CXX) -m32 i686_linux_AR=ar i686_linux_RANLIB=ranlib i686_linux_NM=nm i686_linux_STRIP=strip -x86_64_linux_CC=gcc -m64 -x86_64_linux_CXX=g++ -m64 +x86_64_linux_CC=$(CC) -m64 +x86_64_linux_CXX=$(CXX) -m64 x86_64_linux_AR=ar x86_64_linux_RANLIB=ranlib x86_64_linux_NM=nm From be036e7013e1d330ba21d288f35a73e6b6dbc661 Mon Sep 17 00:00:00 2001 From: Duke Date: Mon, 29 Dec 2025 21:26:55 -0500 Subject: [PATCH 02/17] Try to support gcc 15 in our GMP dependency --- depends/packages/libgmp.mk | 6 ++++++ depends/patches/libgmp/gcc-15.patch | 30 +++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 depends/patches/libgmp/gcc-15.patch diff --git a/depends/packages/libgmp.mk b/depends/packages/libgmp.mk index 4ec7cde16..b154932eb 100644 --- a/depends/packages/libgmp.mk +++ b/depends/packages/libgmp.mk @@ -1,5 +1,6 @@ package=libgmp + ifeq ($(host_os),mingw32) $(package)_download_path=https://github.com/radix42/$(package)/archive $(package)_file_name=$(package)-$($(package)_git_commit).tar.gz @@ -16,6 +17,7 @@ $(package)_file_name=d613c855-cd92-4efb-b893-658496852019 $(package)_download_file=d613c855-cd92-4efb-b893-658496852019 $(package)_sha256_hash=a8109865f2893f1373b0a8ed5ff7429de8db696fc451b1036bd7bdf95bbeffd6 $(package)_config_opts=--enable-cxx --disable-shared +$(package)_patches=gcc-15.patch endif #else @@ -27,6 +29,10 @@ endif #$(package)_config_opts=--enable-cxx --disable-shared #endif +define $(package)_preprocess_cmds + patch -p1 < $($(package)_patch_dir)/gcc-15.patch +endef + define $(package)_config_cmds $($(package)_autoconf) --host=$(host) --build=$(build) endef diff --git a/depends/patches/libgmp/gcc-15.patch b/depends/patches/libgmp/gcc-15.patch new file mode 100644 index 000000000..738e40d85 --- /dev/null +++ b/depends/patches/libgmp/gcc-15.patch @@ -0,0 +1,30 @@ +diff --git a/acinclude.m4 b/acinclude.m4 +index bcc6f52..53705e1 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -602,24 +602,6 @@ int f () + } + ]) + +-GMP_PROG_CC_WORKS_PART([$1], [long long reliability test 1], +-[/* The following provokes a segfault in the compiler on powerpc-apple-darwin. +- Extracted from tests/mpn/t-iord_u.c. Causes Apple's gcc 3.3 build 1640 and +- 1666 to segfault with e.g., -O2 -mpowerpc64. */ +- +-#if defined (__GNUC__) && ! defined (__cplusplus) +-typedef unsigned long long t1;typedef t1*t2; +-void g(){} +-void h(){} +-static __inline__ t1 e(t2 rp,t2 up,int n,t1 v0) +-{t1 c,x,r;int i;if(v0){c=1;for(i=1;i Date: Mon, 29 Dec 2025 21:47:11 -0500 Subject: [PATCH 03/17] We also need to remove this from the generated ./configure script --- depends/patches/libgmp/gcc-15.patch | 77 ++++++++++++++++++++++++++++- 1 file changed, 76 insertions(+), 1 deletion(-) diff --git a/depends/patches/libgmp/gcc-15.patch b/depends/patches/libgmp/gcc-15.patch index 738e40d85..6b924f95e 100644 --- a/depends/patches/libgmp/gcc-15.patch +++ b/depends/patches/libgmp/gcc-15.patch @@ -27,4 +27,79 @@ index bcc6f52..53705e1 100644 GMP_PROG_CC_WORKS_PART([$1], [long long reliability test 2], [/* The following provokes an internal compiler error on powerpc-apple-darwin. Extracted from mpz/cfdiv_q_2exp.c. Causes Apple's gcc 3.3 build 1640 and - +diff --git a/configure b/configure +index b9abc1b..04ba451 100755 +--- a/configure ++++ b/configure +@@ -6382,71 +6382,6 @@ fi + + + +-if test "$gmp_prog_cc_works" = yes; then +- # remove anything that might look like compiler output to our "||" expression +- rm -f conftest* a.out b.out a.exe a_out.exe +- cat >conftest.c <&5 +- gmp_compile="$cc $cflags $cppflags conftest.c >&5" +- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 +- (eval $gmp_compile) 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; }; then +- cc_works_part=yes +- if test "$cross_compiling" = no; then +- if { ac_try='./a.out || ./b.out || ./a.exe || ./a_out.exe || ./conftest' +- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; }; }; then :; +- else +- cc_works_part=norun +- fi +- fi +- else +- cc_works_part=no +- fi +- if test "$cc_works_part" != yes; then +- echo "failed program was:" >&5 +- cat conftest.c >&5 +- fi +- rm -f conftest* a.out b.out a.exe a_out.exe +- case $cc_works_part in +- yes) +- +- ;; +- no) +- gmp_prog_cc_works="no, long long reliability test 1" +- ;; +- norun) +- gmp_prog_cc_works="no, long long reliability test 1, program does not run" +- ;; +- esac +-fi +- +- +- +- + if test "$gmp_prog_cc_works" = yes; then + # remove anything that might look like compiler output to our "||" expression + rm -f conftest* a.out b.out a.exe a_out.exe From 3b77ddc16e7b1da7030e69c260672d8505307959 Mon Sep 17 00:00:00 2001 From: Duke Date: Mon, 29 Dec 2025 22:06:17 -0500 Subject: [PATCH 04/17] Use C17 standard when compiling bdb to avoid problems with gcc15 which defaults to C23 --- depends/packages/bdb.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/depends/packages/bdb.mk b/depends/packages/bdb.mk index 6b8b8e144..bb3ba46f3 100644 --- a/depends/packages/bdb.mk +++ b/depends/packages/bdb.mk @@ -15,6 +15,7 @@ $(package)_config_opts_darwin=--disable-atomicsupport endif $(package)_config_opts_aarch64=--disable-atomicsupport $(package)_cxxflags+=-std=c++11 +$(package)_cppflags+=-std=gnu17 endef define $(package)_preprocess_cmds From 8dc516e82fb2badc2d05d1d0f841588164703798 Mon Sep 17 00:00:00 2001 From: Duke Date: Mon, 29 Dec 2025 22:35:22 -0500 Subject: [PATCH 05/17] Use -std=gnu17 to compile wolfssl and use all cores to compile --- depends/packages/wolfssl.mk | 2 +- src/hush/tlsmanager.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/depends/packages/wolfssl.mk b/depends/packages/wolfssl.mk index 21b95e0ab..d40e99d03 100644 --- a/depends/packages/wolfssl.mk +++ b/depends/packages/wolfssl.mk @@ -64,7 +64,7 @@ endef #endef define $(package)_build_cmds - $(MAKE) CPPFLAGS='-fPIC' -j1 src/libwolfssl.la + $(MAKE) CPPFLAGS='-fPIC -std=gnu17' -j$(nproc) src/libwolfssl.la endef define $(package)_stage_cmds diff --git a/src/hush/tlsmanager.cpp b/src/hush/tlsmanager.cpp index 8b03445ce..dbfa9b006 100644 --- a/src/hush/tlsmanager.cpp +++ b/src/hush/tlsmanager.cpp @@ -301,7 +301,7 @@ WOLFSSL_CTX* TLSManager::initCtx(TLSContextType ctxType) bool bInitialized = false; WOLFSSL_CTX* tlsCtx = NULL; - byte *pem; + unsigned char *pem; int plen = 0; if ((tlsCtx = wolfSSL_CTX_new(ctxType == SERVER_CONTEXT ? wolfTLSv1_3_server_method() : wolfTLSv1_3_client_method()))) { From 61927fd72cc4563f439cdd89e560f769e1063712 Mon Sep 17 00:00:00 2001 From: Duke Date: Mon, 29 Dec 2025 22:49:14 -0500 Subject: [PATCH 06/17] Use -std=gnu17 when compiling depends sources and main source file --- util/build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/util/build.sh b/util/build.sh index 51c2c5687..2cf7934b0 100755 --- a/util/build.sh +++ b/util/build.sh @@ -127,11 +127,11 @@ as --version | tail -n1 ld -v autoconf --version -HOST="$HOST" BUILD="$BUILD" "$MAKE" "$@" -C ./depends/ V=1 +HOST="$HOST" BUILD="$BUILD" "$MAKE" CPPFLAGS='-std=gnu17' "$@" -C ./depends/ V=1 time ./autogen.sh -CONFIG_SITE="$PWD/depends/$HOST/share/config.site" ./configure "$HARDENING_ARG" "$LCOV_ARG" "$TEST_ARG" "$MINING_ARG" $CONFIGURE_FLAGS CXXFLAGS='-g' +CONFIG_SITE="$PWD/depends/$HOST/share/config.site" ./configure "$HARDENING_ARG" "$LCOV_ARG" "$TEST_ARG" "$MINING_ARG" $CONFIGURE_FLAGS CXXFLAGS='-g' CPPFLAGS='-std=gnu17' # Build CryptoConditions stuff WD=$PWD From 1abff7c61979d5002ca971a66b4bf9f3746727d9 Mon Sep 17 00:00:00 2001 From: Duke Date: Mon, 29 Dec 2025 23:14:10 -0500 Subject: [PATCH 07/17] Compile libsodium with -std=gnu17 --- depends/packages/libsodium.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/depends/packages/libsodium.mk b/depends/packages/libsodium.mk index 2d930c4ae..baf8dad6a 100644 --- a/depends/packages/libsodium.mk +++ b/depends/packages/libsodium.mk @@ -6,6 +6,7 @@ $(package)_download_file=0d9f589e-a9f9-4ddb-acaa-0f1b423b32eb $(package)_sha256_hash=6f504490b342a4f8a4c4a02fc9b866cbef8622d5df4e5452b46be121e46636c1 $(package)_dependencies= $(package)_config_opts= +$(package)_cppflags+=-std=gnu17 ifeq ($(build_os),darwin) define $(package)_set_vars $(package)_build_env=MACOSX_DEPLOYMENT_TARGET="10.11" From 996f7c6d4ace02449f72cd7e2dbc284895eb5889 Mon Sep 17 00:00:00 2001 From: Duke Date: Mon, 29 Dec 2025 23:24:00 -0500 Subject: [PATCH 08/17] Do not build googletest since we do not currently compile the tests that use this dep --- depends/packages/packages.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/depends/packages/packages.mk b/depends/packages/packages.mk index 8c8cfadc8..1324ad7d6 100644 --- a/depends/packages/packages.mk +++ b/depends/packages/packages.mk @@ -39,8 +39,8 @@ native_packages := native_ccache wallet_packages=bdb ifeq ($(host_os),linux) - packages := boost wolfssl libevent $(zcash_packages) googletest libcurl #googlemock + packages := boost wolfssl libevent $(zcash_packages) libcurl #googlemock googletest else - packages := boost wolfssl libevent $(zcash_packages) libcurl googletest #googlemock + packages := boost wolfssl libevent $(zcash_packages) libcurl #googlemock googletest endif From 7b14d1a00b4c3639382bf8d3ad6d8a511843005e Mon Sep 17 00:00:00 2001 From: Duke Date: Mon, 29 Dec 2025 23:28:30 -0500 Subject: [PATCH 09/17] Set CCFLAGS not CPPFLAGS --- depends/packages/libsodium.mk | 3 +-- util/build.sh | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/depends/packages/libsodium.mk b/depends/packages/libsodium.mk index baf8dad6a..ec3d74d15 100644 --- a/depends/packages/libsodium.mk +++ b/depends/packages/libsodium.mk @@ -6,7 +6,6 @@ $(package)_download_file=0d9f589e-a9f9-4ddb-acaa-0f1b423b32eb $(package)_sha256_hash=6f504490b342a4f8a4c4a02fc9b866cbef8622d5df4e5452b46be121e46636c1 $(package)_dependencies= $(package)_config_opts= -$(package)_cppflags+=-std=gnu17 ifeq ($(build_os),darwin) define $(package)_set_vars $(package)_build_env=MACOSX_DEPLOYMENT_TARGET="10.11" @@ -24,7 +23,7 @@ define $(package)_config_cmds endef define $(package)_build_cmds - $(MAKE) + CCFLAGS='-std=gnu17' $(MAKE) endef define $(package)_stage_cmds diff --git a/util/build.sh b/util/build.sh index 2cf7934b0..22bfd2f73 100755 --- a/util/build.sh +++ b/util/build.sh @@ -127,11 +127,11 @@ as --version | tail -n1 ld -v autoconf --version -HOST="$HOST" BUILD="$BUILD" "$MAKE" CPPFLAGS='-std=gnu17' "$@" -C ./depends/ V=1 +HOST="$HOST" BUILD="$BUILD" "$MAKE" CCFLAGS='-std=gnu17' "$@" -C ./depends/ V=1 time ./autogen.sh -CONFIG_SITE="$PWD/depends/$HOST/share/config.site" ./configure "$HARDENING_ARG" "$LCOV_ARG" "$TEST_ARG" "$MINING_ARG" $CONFIGURE_FLAGS CXXFLAGS='-g' CPPFLAGS='-std=gnu17' +CONFIG_SITE="$PWD/depends/$HOST/share/config.site" ./configure "$HARDENING_ARG" "$LCOV_ARG" "$TEST_ARG" "$MINING_ARG" $CONFIGURE_FLAGS CXXFLAGS='-g' CCFLAGS='-std=gnu17' # Build CryptoConditions stuff WD=$PWD From aba63b44a1c2ad29ac705a646761e65885a8e355 Mon Sep 17 00:00:00 2001 From: Duke Date: Mon, 29 Dec 2025 23:30:08 -0500 Subject: [PATCH 10/17] Set CCFLAGS not CPPFLAGS --- depends/packages/bdb.mk | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/depends/packages/bdb.mk b/depends/packages/bdb.mk index bb3ba46f3..2842cad90 100644 --- a/depends/packages/bdb.mk +++ b/depends/packages/bdb.mk @@ -15,7 +15,6 @@ $(package)_config_opts_darwin=--disable-atomicsupport endif $(package)_config_opts_aarch64=--disable-atomicsupport $(package)_cxxflags+=-std=c++11 -$(package)_cppflags+=-std=gnu17 endef define $(package)_preprocess_cmds @@ -40,7 +39,7 @@ endef endif define $(package)_build_cmds - $(MAKE) libdb_cxx-6.2.a libdb-6.2.a + CCFLAGS=-std=gnu17 $(MAKE) libdb_cxx-6.2.a libdb-6.2.a endef define $(package)_stage_cmds From f6364c9ec6f9f0e75aaf4c6b5e83caefb2af86f7 Mon Sep 17 00:00:00 2001 From: Duke Date: Mon, 29 Dec 2025 23:35:22 -0500 Subject: [PATCH 11/17] CFLAGS --- depends/packages/bdb.mk | 2 +- depends/packages/libsodium.mk | 2 +- util/build.sh | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/depends/packages/bdb.mk b/depends/packages/bdb.mk index 2842cad90..ada63e50d 100644 --- a/depends/packages/bdb.mk +++ b/depends/packages/bdb.mk @@ -39,7 +39,7 @@ endef endif define $(package)_build_cmds - CCFLAGS=-std=gnu17 $(MAKE) libdb_cxx-6.2.a libdb-6.2.a + CFLAGS=-std=gnu17 $(MAKE) libdb_cxx-6.2.a libdb-6.2.a endef define $(package)_stage_cmds diff --git a/depends/packages/libsodium.mk b/depends/packages/libsodium.mk index ec3d74d15..c11e38785 100644 --- a/depends/packages/libsodium.mk +++ b/depends/packages/libsodium.mk @@ -23,7 +23,7 @@ define $(package)_config_cmds endef define $(package)_build_cmds - CCFLAGS='-std=gnu17' $(MAKE) + CFLAGS='-std=gnu17' $(MAKE) endef define $(package)_stage_cmds diff --git a/util/build.sh b/util/build.sh index 22bfd2f73..f9ddf99fa 100755 --- a/util/build.sh +++ b/util/build.sh @@ -127,11 +127,11 @@ as --version | tail -n1 ld -v autoconf --version -HOST="$HOST" BUILD="$BUILD" "$MAKE" CCFLAGS='-std=gnu17' "$@" -C ./depends/ V=1 +HOST="$HOST" BUILD="$BUILD" "$MAKE" CFLAGS='-std=gnu17' "$@" -C ./depends/ V=1 time ./autogen.sh -CONFIG_SITE="$PWD/depends/$HOST/share/config.site" ./configure "$HARDENING_ARG" "$LCOV_ARG" "$TEST_ARG" "$MINING_ARG" $CONFIGURE_FLAGS CXXFLAGS='-g' CCFLAGS='-std=gnu17' +CONFIG_SITE="$PWD/depends/$HOST/share/config.site" ./configure "$HARDENING_ARG" "$LCOV_ARG" "$TEST_ARG" "$MINING_ARG" $CONFIGURE_FLAGS CXXFLAGS='-g' CFLAGS='-std=gnu17' # Build CryptoConditions stuff WD=$PWD From 017d0eeae541f05bdde6109a60a5acb007e30bc0 Mon Sep 17 00:00:00 2001 From: Duke Date: Tue, 30 Dec 2025 00:37:21 -0500 Subject: [PATCH 12/17] CFLAGS --- depends/packages/bdb.mk | 3 ++- depends/packages/libsodium.mk | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/depends/packages/bdb.mk b/depends/packages/bdb.mk index ada63e50d..771e118e1 100644 --- a/depends/packages/bdb.mk +++ b/depends/packages/bdb.mk @@ -15,6 +15,7 @@ $(package)_config_opts_darwin=--disable-atomicsupport endif $(package)_config_opts_aarch64=--disable-atomicsupport $(package)_cxxflags+=-std=c++11 +$(package)_cflags+=-std=gnu17 endef define $(package)_preprocess_cmds @@ -39,7 +40,7 @@ endef endif define $(package)_build_cmds - CFLAGS=-std=gnu17 $(MAKE) libdb_cxx-6.2.a libdb-6.2.a + $(MAKE) libdb_cxx-6.2.a libdb-6.2.a endef define $(package)_stage_cmds diff --git a/depends/packages/libsodium.mk b/depends/packages/libsodium.mk index c11e38785..787abae91 100644 --- a/depends/packages/libsodium.mk +++ b/depends/packages/libsodium.mk @@ -6,6 +6,8 @@ $(package)_download_file=0d9f589e-a9f9-4ddb-acaa-0f1b423b32eb $(package)_sha256_hash=6f504490b342a4f8a4c4a02fc9b866cbef8622d5df4e5452b46be121e46636c1 $(package)_dependencies= $(package)_config_opts= +$(package)_cflags=-std=gnu17 + ifeq ($(build_os),darwin) define $(package)_set_vars $(package)_build_env=MACOSX_DEPLOYMENT_TARGET="10.11" @@ -23,7 +25,7 @@ define $(package)_config_cmds endef define $(package)_build_cmds - CFLAGS='-std=gnu17' $(MAKE) + $(MAKE) endef define $(package)_stage_cmds From 50a4107f08abc1fd9f880700eed5118b992d098d Mon Sep 17 00:00:00 2001 From: Duke Date: Tue, 30 Dec 2025 01:26:09 -0500 Subject: [PATCH 13/17] CFLAGS --- depends/packages/wolfssl.mk | 3 ++- util/build.sh | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/depends/packages/wolfssl.mk b/depends/packages/wolfssl.mk index d40e99d03..0c32d2de2 100644 --- a/depends/packages/wolfssl.mk +++ b/depends/packages/wolfssl.mk @@ -20,6 +20,7 @@ $(package)_download_path=https://github.com/wolfSSL/wolfssl/archive $(package)_download_file=v$($(package)_version)-stable.tar.gz define $(package)_set_vars +$(package)_cflags+=-std=gnu17 $(package)_config_env=AR="$($(package)_ar)" RANLIB="$($(package)_ranlib)" CC="$($(package)_cc)" $(package)_config_opts=--prefix=$(host_prefix) $(package)_config_opts+=--host=$(host) @@ -64,7 +65,7 @@ endef #endef define $(package)_build_cmds - $(MAKE) CPPFLAGS='-fPIC -std=gnu17' -j$(nproc) src/libwolfssl.la + $(MAKE) CPPFLAGS='-fPIC' -j$(nproc) src/libwolfssl.la endef define $(package)_stage_cmds diff --git a/util/build.sh b/util/build.sh index f9ddf99fa..b362f2d11 100755 --- a/util/build.sh +++ b/util/build.sh @@ -127,7 +127,7 @@ as --version | tail -n1 ld -v autoconf --version -HOST="$HOST" BUILD="$BUILD" "$MAKE" CFLAGS='-std=gnu17' "$@" -C ./depends/ V=1 +HOST="$HOST" BUILD="$BUILD" "$MAKE" "$@" -C ./depends/ V=1 time ./autogen.sh From 79230c41ab734a1c30b74996a91f94e339a22a77 Mon Sep 17 00:00:00 2001 From: Duke Date: Tue, 30 Dec 2025 01:54:09 -0500 Subject: [PATCH 14/17] CFLAGS --- src/Makefile.am | 4 ++-- util/build.sh | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Makefile.am b/src/Makefile.am index d6ed7eb41..a3332578f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -594,7 +594,7 @@ libzcash_a_CPPFLAGS = -DMULTICORE -fopenmp -fPIC -DBOOST_SPIRIT_THREADSAFE -DHAV #libzcash_a_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) #libzcash_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) -DMONTGOMERY_OUTPUT -libzcash_a_CXXFLAGS = $(SAN_CXXFLAGS) $(HARDENED_CXXFLAGS) -fwrapv -fno-strict-aliasing +libzcash_a_CXXFLAGS = $(SAN_CXXFLAGS) $(HARDENED_CXXFLAGS) -fwrapv -fno-strict-aliasing -std=gnu17 libzcash_a_LDFLAGS = $(SAN_LDFLAGS) $(HARDENED_LDFLAGS) libzcash_a_CPPFLAGS += -DMONTGOMERY_OUTPUT @@ -636,7 +636,7 @@ libhush_a_SOURCES = \ libhush_a_CPPFLAGS = -DMULTICORE -fopenmp -fPIC -DBINARY_OUTPUT -DCURVE_ALT_BN128 -DBOOST_SPIRIT_THREADSAFE -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS $(HARDENED_CPPFLAGS) -pipe -O1 -g -Wstack-protector -fstack-protector-all -fPIE -fvisibility=hidden -DSTATIC $(BITCOIN_INCLUDES) -libhush_a_CXXFLAGS = $(HARDENED_CXXFLAGS) -fwrapv -fno-strict-aliasing +libhush_a_CXXFLAGS = $(HARDENED_CXXFLAGS) -fwrapv -fno-strict-aliasing -std=gnu17 libhush_a_LDFLAGS = $(HARDENED_LDFLAGS) diff --git a/util/build.sh b/util/build.sh index b362f2d11..da5622706 100755 --- a/util/build.sh +++ b/util/build.sh @@ -137,7 +137,7 @@ CONFIG_SITE="$PWD/depends/$HOST/share/config.site" ./configure "$HARDENING_ARG" WD=$PWD cd src/cc echo $PWD -CC=${CC:-gcc} ./makecustom +CFLAGS=-std=gnu17 CC=${CC:-gcc} ./makecustom cd $WD # Build RandomX @@ -154,4 +154,5 @@ fi cd $WD +CXXFLAGS+=-std=gnu17 time "$MAKE" "$@" V=1 From efbaff9d89080d8ad4339fdebe64f261ccdc3c64 Mon Sep 17 00:00:00 2001 From: Duke Date: Tue, 30 Dec 2025 02:37:40 -0500 Subject: [PATCH 15/17] Wolfssl uses a typedef called 'byte' which is no longer allowed in gcc15 --- src/net.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/net.h b/src/net.h index 937f07ef1..fdc1984ce 100644 --- a/src/net.h +++ b/src/net.h @@ -51,7 +51,9 @@ #undef TFM_TIMING_RESISTANT #define ECC_TIMING_RESISTANT 420 #define TFM_TIMING_RESISTANT 420 +#define byte unsigned char #include +#undef byte class CAddrMan; class CBlockIndex; From c1c5da11bdc9dbe579399de663a4119dc5e5efa4 Mon Sep 17 00:00:00 2001 From: Duke Date: Tue, 30 Dec 2025 02:59:40 -0500 Subject: [PATCH 16/17] CXXFLAGS --- src/Makefile.am | 2 +- util/build.sh | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Makefile.am b/src/Makefile.am index a3332578f..979df1a58 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -5,7 +5,7 @@ DIST_SUBDIRS = secp256k1 univalue AM_LDFLAGS = $(PTHREAD_CFLAGS) $(LIBTOOL_LDFLAGS) $(SAN_LDFLAGS) $(HARDENED_LDFLAGS) -AM_CXXFLAGS = $(SAN_CXXFLAGS) $(HARDENED_CXXFLAGS) $(ERROR_CXXFLAGS) +AM_CXXFLAGS = $(SAN_CXXFLAGS) $(HARDENED_CXXFLAGS) $(ERROR_CXXFLAGS) -std=c++17 AM_CPPFLAGS = $(HARDENED_CPPFLAGS) EXTRA_LIBRARIES = diff --git a/util/build.sh b/util/build.sh index da5622706..7b9bb25ec 100755 --- a/util/build.sh +++ b/util/build.sh @@ -154,5 +154,4 @@ fi cd $WD -CXXFLAGS+=-std=gnu17 time "$MAKE" "$@" V=1 From 437a229c97948c8b79e0c6979880a26a513897c5 Mon Sep 17 00:00:00 2001 From: Duke Date: Tue, 30 Dec 2025 03:41:06 -0500 Subject: [PATCH 17/17] bdb requires -fPIE to link correctly --- depends/packages/bdb.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/depends/packages/bdb.mk b/depends/packages/bdb.mk index 771e118e1..08c5793fb 100644 --- a/depends/packages/bdb.mk +++ b/depends/packages/bdb.mk @@ -14,8 +14,8 @@ ifneq ($(build_os),darwin) $(package)_config_opts_darwin=--disable-atomicsupport endif $(package)_config_opts_aarch64=--disable-atomicsupport -$(package)_cxxflags+=-std=c++11 -$(package)_cflags+=-std=gnu17 +$(package)_cxxflags+=-std=c++11 -fPIE +$(package)_cflags+=-std=gnu17 -fPIE endef define $(package)_preprocess_cmds