From b12a70f330d0ffcc3064ecf2643f8cfe765cf9c8 Mon Sep 17 00:00:00 2001 From: fanquake Date: Thu, 23 Jul 2026 11:16:04 +0100 Subject: [PATCH] guix: turn linux/win linker warnings into errors Can do this now that the GUI has been split out. riscv64-linux-gnu failus due to https://github.com/boostorg/test/issues/345: ```bash [102%] Linking CXX executable ../../bin/test_bitcoin /gnu/store/r03804zpq5i6wsalx0yaqrr5jb7pqrmv-binutils-cross-riscv64-linux-gnu-2.46.0/bin/riscv64-linux-gnu-ld: CMakeFiles/test_bitcoin.dir/main.cpp.o: in function `boost::fpe::disable(unsigned int)': /bitcoin/depends/riscv64-linux-gnu/boost/include/boost/test/impl/execution_monitor.ipp:1538:(.text+0x9dc8): warning: fedisableexcept is not implemented and will always fail /gnu/store/r03804zpq5i6wsalx0yaqrr5jb7pqrmv-binutils-cross-riscv64-linux-gnu-2.46.0/bin/riscv64-linux-gnu-ld: CMakeFiles/test_bitcoin.dir/main.cpp.o: in function `boost::fpe::enable(unsigned int)': /bitcoin/depends/riscv64-linux-gnu/boost/include/boost/test/impl/execution_monitor.ipp:1502:(.text+0x9d76): warning: feenableexcept is not implemented and will always fail collect2: error: ld returned 1 exit status ``` Darwin could be done after something like https://github.com/bitcoin/bitcoin/pull/35756. --- contrib/guix/libexec/build_linux.sh | 6 ++++++ contrib/guix/libexec/build_win.sh | 2 +- contrib/guix/libexec/build_win_gui.sh | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/contrib/guix/libexec/build_linux.sh b/contrib/guix/libexec/build_linux.sh index 492890ecc1c..f1b25b52e55 100755 --- a/contrib/guix/libexec/build_linux.sh +++ b/contrib/guix/libexec/build_linux.sh @@ -65,6 +65,12 @@ esac # LDFLAGS HOST_LDFLAGS="-Wl,--as-needed -Wl,--dynamic-linker=$(glibc_dynamic_linker "$HOST") -Wl,-O2" +# Use LINK_WARNING_AS_ERROR when using CMake 4.x +case "$HOST" in + riscv64-linux-gnu) ;; # https://github.com/boostorg/test/issues/345 + *) HOST_LDFLAGS="${HOST_LDFLAGS} -Wl,--fatal-warnings" ;; +esac + mkdir -p "$DISTSRC" ( cd "$DISTSRC" diff --git a/contrib/guix/libexec/build_win.sh b/contrib/guix/libexec/build_win.sh index ce1f7fd4d03..de9870f879e 100755 --- a/contrib/guix/libexec/build_win.sh +++ b/contrib/guix/libexec/build_win.sh @@ -54,7 +54,7 @@ HOST_CFLAGS+=" -fno-ident" HOST_CXXFLAGS="$HOST_CFLAGS" # LDFLAGS -HOST_LDFLAGS="-Wl,--no-insert-timestamp" +HOST_LDFLAGS="-Wl,--no-insert-timestamp -Wl,--fatal-warnings" mkdir -p "$DISTSRC" ( diff --git a/contrib/guix/libexec/build_win_gui.sh b/contrib/guix/libexec/build_win_gui.sh index 94f21166392..ec5048d84ea 100755 --- a/contrib/guix/libexec/build_win_gui.sh +++ b/contrib/guix/libexec/build_win_gui.sh @@ -53,7 +53,7 @@ HOST_CFLAGS+=" -fno-ident" HOST_CXXFLAGS="$HOST_CFLAGS" # LDFLAGS -HOST_LDFLAGS="-Wl,--no-insert-timestamp" +HOST_LDFLAGS="-Wl,--no-insert-timestamp -Wl,--fatal-warnings" mkdir -p "$DISTSRC" (