From 21ae07021701a7baa62b7c90c504d759b3ee74d9 Mon Sep 17 00:00:00 2001 From: Davide Grilli Date: Mon, 26 Jan 2026 17:30:11 +0100 Subject: [PATCH] Fix compilation with modern GCC (Ubuntu 24.04+) Add missing C++ standard library includes required by GCC 13+ and newer toolchains. These headers were previously included implicitly through other headers in older GCC versions (e.g., GCC 9 on Ubuntu 20.04), but modern compilers require explicit includes per C++ standard compliance. Changes: - Add to util/bip32.h for uint32_t type definitions - Add to net_processing.cpp for std::array - Add to multiple headers for exception types: * support/events.h (std::runtime_error) * dbwrapper.h (std::runtime_error base class) * streams.h (std::out_of_range, std::ios_base::failure) * coins.h (std::logic_error) * wallet/coinselection.h (std::invalid_argument, std::out_of_range) * rpc/util.h (std::runtime_error) * support/lockedpool.h (std::runtime_error) * support/lockedpool.cpp (std::runtime_error) * wallet/scriptpubkeyman.h (std::runtime_error) This ensures compatibility across different compiler versions and architectures (ARM64/x86_64) while maintaining backward compatibility with older toolchains. Tested on Ubuntu 24.04 with GCC 13. --- src/coins.h | 1 + src/dbwrapper.h | 2 ++ src/net_processing.cpp | 1 + src/rpc/util.h | 1 + src/streams.h | 1 + src/support/events.h | 1 + src/support/lockedpool.cpp | 1 + src/support/lockedpool.h | 3 ++- src/util/bip32.h | 1 + src/wallet/coinselection.h | 2 ++ src/wallet/scriptpubkeyman.h | 2 ++ 11 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/coins.h b/src/coins.h index 2e4d8f1..a659b68 100644 --- a/src/coins.h +++ b/src/coins.h @@ -18,6 +18,7 @@ #include #include +#include #include /** diff --git a/src/dbwrapper.h b/src/dbwrapper.h index ce495b7..b9c7fe9 100644 --- a/src/dbwrapper.h +++ b/src/dbwrapper.h @@ -12,6 +12,8 @@ #include #include +#include + #include #include diff --git a/src/net_processing.cpp b/src/net_processing.cpp index 238ee81..83de354 100644 --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include diff --git a/src/rpc/util.h b/src/rpc/util.h index b4dfe73..c410997 100644 --- a/src/rpc/util.h +++ b/src/rpc/util.h @@ -17,6 +17,7 @@ #include #include +#include #include #include diff --git a/src/streams.h b/src/streams.h index 12c3c5c..6a625d0 100644 --- a/src/streams.h +++ b/src/streams.h @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include diff --git a/src/support/events.h b/src/support/events.h index bfd2227..1fe8881 100644 --- a/src/support/events.h +++ b/src/support/events.h @@ -7,6 +7,7 @@ #include #include +#include #include #include diff --git a/src/support/lockedpool.cpp b/src/support/lockedpool.cpp index 18913de..d2e8bfb 100644 --- a/src/support/lockedpool.cpp +++ b/src/support/lockedpool.cpp @@ -23,6 +23,7 @@ #endif #include +#include #ifdef ARENA_DEBUG #include #include diff --git a/src/support/lockedpool.h b/src/support/lockedpool.h index 18f04e2..8ae081a 100644 --- a/src/support/lockedpool.h +++ b/src/support/lockedpool.h @@ -8,8 +8,9 @@ #include #include #include -#include #include +#include +#include #include /** diff --git a/src/util/bip32.h b/src/util/bip32.h index e1dec53..a9a9954 100644 --- a/src/util/bip32.h +++ b/src/util/bip32.h @@ -6,6 +6,7 @@ #define PALLADIUM_UTIL_BIP32_H #include +#include #include #include diff --git a/src/wallet/coinselection.h b/src/wallet/coinselection.h index ddcd5cb..6a7bfc8 100644 --- a/src/wallet/coinselection.h +++ b/src/wallet/coinselection.h @@ -9,6 +9,8 @@ #include #include +#include + //! target minimum change amount static constexpr CAmount MIN_CHANGE{COIN / 100}; //! final minimum change amount after paying for fees diff --git a/src/wallet/scriptpubkeyman.h b/src/wallet/scriptpubkeyman.h index 0ef1a1b..7ff80b2 100644 --- a/src/wallet/scriptpubkeyman.h +++ b/src/wallet/scriptpubkeyman.h @@ -15,6 +15,8 @@ #include #include +#include + #include enum class OutputType;