mirror of
https://github.com/bitcoin/bitcoin.git
synced 2024-11-20 10:38:42 +01:00
Merge bitcoin/bitcoin#29876: build: add -Wundef
e3dc64f499
build: add -Wundef (fanquake)82b43955f7
refactor: use #ifdef HAVE_SOCKADDR_UN (fanquake)40cd7585a0
randomenv: use ifdef over if (fanquake)7839503b30
zmq: use #ifdef ENABLE_ZMQ (fanquake)79e197b175
build: Suppress warnings from boost and capnproto in multiprocess code (Ryan Ofsky) Pull request description: Turn on `-Wundef`. [> Warn if an undefined identifier is evaluated in an #if directive. Such identifiers are replaced with zero.](https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wundef). Note that this is still beneficial with CMake, and may even be nice to have enabled prior, to catch any change in behaviour. If we end up with this enabled, it should probably be enough to fix #16419. ACKs for top commit: hebasto: ACKe3dc64f499
, I have reviewed the code and it looks OK. Tree-SHA512: 73436ead07f3a09ba0d30f7105df50d9b2ec8452f11e866bc1c7ebc10c005772ee77fedaa125f444175663c04dfc472f98c2699c63711da356089b66a8cc3e0a
This commit is contained in:
commit
aef5ac7f2c
@ -405,6 +405,7 @@ AX_CHECK_COMPILE_FLAG([-Wimplicit-fallthrough], [WARN_CXXFLAGS="$WARN_CXXFLAGS -
|
||||
AX_CHECK_COMPILE_FLAG([-Wunreachable-code], [WARN_CXXFLAGS="$WARN_CXXFLAGS -Wunreachable-code"], [], [$CXXFLAG_WERROR])
|
||||
AX_CHECK_COMPILE_FLAG([-Wdocumentation], [WARN_CXXFLAGS="$WARN_CXXFLAGS -Wdocumentation"], [], [$CXXFLAG_WERROR])
|
||||
AX_CHECK_COMPILE_FLAG([-Wself-assign], [WARN_CXXFLAGS="$WARN_CXXFLAGS -Wself-assign"], [], [$CXXFLAG_WERROR])
|
||||
AX_CHECK_COMPILE_FLAG([-Wundef], [WARN_CXXFLAGS="$WARN_CXXFLAGS -Wundef"], [], [$CXXFLAG_WERROR])
|
||||
|
||||
dnl Some compilers (gcc) ignore unknown -Wno-* options, but warn about all
|
||||
dnl unknown options if any other warning is produced. Test the -Wfoo case, and
|
||||
@ -1392,6 +1393,9 @@ if test "$with_libmultiprocess" = "yes" || test "$with_libmultiprocess" = "auto"
|
||||
PKG_CHECK_MODULES([LIBMULTIPROCESS], [libmultiprocess], [
|
||||
libmultiprocess_found=yes;
|
||||
libmultiprocess_prefix=`$PKG_CONFIG --variable=prefix libmultiprocess`;
|
||||
if test "$suppress_external_warnings" != "no" ; then
|
||||
LIBMULTIPROCESS_CFLAGS=SUPPRESS_WARNINGS($LIBMULTIPROCESS_CFLAGS)
|
||||
fi
|
||||
], [true])
|
||||
elif test "$with_libmultiprocess" != "no"; then
|
||||
AC_MSG_ERROR([--with-libmultiprocess=$with_libmultiprocess value is not yes, auto, or no])
|
||||
|
@ -1088,7 +1088,7 @@ libbitcoin_ipc_a_SOURCES = \
|
||||
ipc/process.cpp \
|
||||
ipc/process.h \
|
||||
ipc/protocol.h
|
||||
libbitcoin_ipc_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
||||
libbitcoin_ipc_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS)
|
||||
libbitcoin_ipc_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) $(LIBMULTIPROCESS_CFLAGS)
|
||||
|
||||
include $(MPGEN_PREFIX)/include/mpgen.mk
|
||||
|
16
src/init.cpp
16
src/init.cpp
@ -109,7 +109,7 @@
|
||||
|
||||
#include <boost/signals2/signal.hpp>
|
||||
|
||||
#if ENABLE_ZMQ
|
||||
#ifdef ENABLE_ZMQ
|
||||
#include <zmq/zmqabstractnotifier.h>
|
||||
#include <zmq/zmqnotificationinterface.h>
|
||||
#include <zmq/zmqrpc.h>
|
||||
@ -364,7 +364,7 @@ void Shutdown(NodeContext& node)
|
||||
client->stop();
|
||||
}
|
||||
|
||||
#if ENABLE_ZMQ
|
||||
#ifdef ENABLE_ZMQ
|
||||
if (g_zmq_notification_interface) {
|
||||
if (node.validation_signals) node.validation_signals->UnregisterValidationInterface(g_zmq_notification_interface.get());
|
||||
g_zmq_notification_interface.reset();
|
||||
@ -531,7 +531,7 @@ void SetupServerArgs(ArgsManager& argsman)
|
||||
argsman.AddArg("-maxreceivebuffer=<n>", strprintf("Maximum per-connection receive buffer, <n>*1000 bytes (default: %u)", DEFAULT_MAXRECEIVEBUFFER), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
|
||||
argsman.AddArg("-maxsendbuffer=<n>", strprintf("Maximum per-connection memory usage for the send buffer, <n>*1000 bytes (default: %u)", DEFAULT_MAXSENDBUFFER), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
|
||||
argsman.AddArg("-maxuploadtarget=<n>", strprintf("Tries to keep outbound traffic under the given target per 24h. Limit does not apply to peers with 'download' permission or blocks created within past week. 0 = no limit (default: %s). Optional suffix units [k|K|m|M|g|G|t|T] (default: M). Lowercase is 1000 base while uppercase is 1024 base", DEFAULT_MAX_UPLOAD_TARGET), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
|
||||
#if HAVE_SOCKADDR_UN
|
||||
#ifdef HAVE_SOCKADDR_UN
|
||||
argsman.AddArg("-onion=<ip:port|path>", "Use separate SOCKS5 proxy to reach peers via Tor onion services, set -noonion to disable (default: -proxy). May be a local file path prefixed with 'unix:'.", ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
|
||||
#else
|
||||
argsman.AddArg("-onion=<ip:port>", "Use separate SOCKS5 proxy to reach peers via Tor onion services, set -noonion to disable (default: -proxy)", ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
|
||||
@ -544,7 +544,7 @@ void SetupServerArgs(ArgsManager& argsman)
|
||||
argsman.AddArg("-peerblockfilters", strprintf("Serve compact block filters to peers per BIP 157 (default: %u)", DEFAULT_PEERBLOCKFILTERS), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
|
||||
argsman.AddArg("-txreconciliation", strprintf("Enable transaction reconciliations per BIP 330 (default: %d)", DEFAULT_TXRECONCILIATION_ENABLE), ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::CONNECTION);
|
||||
argsman.AddArg("-port=<port>", strprintf("Listen for connections on <port> (default: %u, testnet: %u, signet: %u, regtest: %u). Not relevant for I2P (see doc/i2p.md).", defaultChainParams->GetDefaultPort(), testnetChainParams->GetDefaultPort(), signetChainParams->GetDefaultPort(), regtestChainParams->GetDefaultPort()), ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::CONNECTION);
|
||||
#if HAVE_SOCKADDR_UN
|
||||
#ifdef HAVE_SOCKADDR_UN
|
||||
argsman.AddArg("-proxy=<ip:port|path>", "Connect through SOCKS5 proxy, set -noproxy to disable (default: disabled). May be a local file path prefixed with 'unix:' if the proxy supports it.", ArgsManager::ALLOW_ANY | ArgsManager::DISALLOW_ELISION, OptionsCategory::CONNECTION);
|
||||
#else
|
||||
argsman.AddArg("-proxy=<ip:port>", "Connect through SOCKS5 proxy, set -noproxy to disable (default: disabled)", ArgsManager::ALLOW_ANY | ArgsManager::DISALLOW_ELISION, OptionsCategory::CONNECTION);
|
||||
@ -578,7 +578,7 @@ void SetupServerArgs(ArgsManager& argsman)
|
||||
|
||||
g_wallet_init_interface.AddWalletOptions(argsman);
|
||||
|
||||
#if ENABLE_ZMQ
|
||||
#ifdef ENABLE_ZMQ
|
||||
argsman.AddArg("-zmqpubhashblock=<address>", "Enable publish hash block in <address>", ArgsManager::ALLOW_ANY, OptionsCategory::ZMQ);
|
||||
argsman.AddArg("-zmqpubhashtx=<address>", "Enable publish hash transaction in <address>", ArgsManager::ALLOW_ANY, OptionsCategory::ZMQ);
|
||||
argsman.AddArg("-zmqpubrawblock=<address>", "Enable publish raw block in <address>", ArgsManager::ALLOW_ANY, OptionsCategory::ZMQ);
|
||||
@ -1200,7 +1200,7 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
|
||||
for (const auto& client : node.chain_clients) {
|
||||
client->registerRpcs();
|
||||
}
|
||||
#if ENABLE_ZMQ
|
||||
#ifdef ENABLE_ZMQ
|
||||
RegisterZMQRPCCommands(tableRPC);
|
||||
#endif
|
||||
|
||||
@ -1325,7 +1325,7 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
|
||||
std::string host_out;
|
||||
uint16_t port_out{0};
|
||||
if (!SplitHostPort(socket_addr, port_out, host_out)) {
|
||||
#if HAVE_SOCKADDR_UN
|
||||
#ifdef HAVE_SOCKADDR_UN
|
||||
// Allow unix domain sockets for some options e.g. unix:/some/file/path
|
||||
if (!unix || socket_addr.find(ADDR_PREFIX_UNIX) != 0) {
|
||||
return InitError(InvalidPortErrMsg(arg, socket_addr));
|
||||
@ -1472,7 +1472,7 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
|
||||
return InitError(ResolveErrMsg("externalip", strAddr));
|
||||
}
|
||||
|
||||
#if ENABLE_ZMQ
|
||||
#ifdef ENABLE_ZMQ
|
||||
g_zmq_notification_interface = CZMQNotificationInterface::Create(
|
||||
[&chainman = node.chainman](std::vector<uint8_t>& block, const CBlockIndex& index) {
|
||||
assert(chainman);
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include <limits>
|
||||
#include <memory>
|
||||
|
||||
#if HAVE_SOCKADDR_UN
|
||||
#ifdef HAVE_SOCKADDR_UN
|
||||
#include <sys/un.h>
|
||||
#endif
|
||||
|
||||
@ -218,7 +218,7 @@ CService LookupNumeric(const std::string& name, uint16_t portDefault, DNSLookupF
|
||||
|
||||
bool IsUnixSocketPath(const std::string& name)
|
||||
{
|
||||
#if HAVE_SOCKADDR_UN
|
||||
#ifdef HAVE_SOCKADDR_UN
|
||||
if (name.find(ADDR_PREFIX_UNIX) != 0) return false;
|
||||
|
||||
// Split off "unix:" prefix
|
||||
@ -527,7 +527,7 @@ std::unique_ptr<Sock> CreateSockOS(int domain, int type, int protocol)
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
#if HAVE_SOCKADDR_UN
|
||||
#ifdef HAVE_SOCKADDR_UN
|
||||
if (domain == AF_UNIX) return sock;
|
||||
#endif
|
||||
|
||||
@ -638,7 +638,7 @@ std::unique_ptr<Sock> Proxy::Connect() const
|
||||
|
||||
if (!m_is_unix_socket) return ConnectDirectly(proxy, /*manual_connection=*/true);
|
||||
|
||||
#if HAVE_SOCKADDR_UN
|
||||
#ifdef HAVE_SOCKADDR_UN
|
||||
auto sock = CreateSock(AF_UNIX, SOCK_STREAM, 0);
|
||||
if (!sock) {
|
||||
LogPrintLevel(BCLog::NET, BCLog::Level::Error, "Cannot create a socket for connecting to %s\n", m_unix_socket_path);
|
||||
|
@ -42,15 +42,15 @@
|
||||
#if HAVE_DECL_GETIFADDRS && HAVE_DECL_FREEIFADDRS
|
||||
#include <ifaddrs.h>
|
||||
#endif
|
||||
#if HAVE_SYSCTL
|
||||
#ifdef HAVE_SYSCTL
|
||||
#include <sys/sysctl.h>
|
||||
#if HAVE_VM_VM_PARAM_H
|
||||
#ifdef HAVE_VM_VM_PARAM_H
|
||||
#include <vm/vm_param.h>
|
||||
#endif
|
||||
#if HAVE_SYS_RESOURCES_H
|
||||
#ifdef HAVE_SYS_RESOURCES_H
|
||||
#include <sys/resources.h>
|
||||
#endif
|
||||
#if HAVE_SYS_VMMETER_H
|
||||
#ifdef HAVE_SYS_VMMETER_H
|
||||
#include <sys/vmmeter.h>
|
||||
#endif
|
||||
#endif
|
||||
@ -162,7 +162,7 @@ void AddPath(CSHA512& hasher, const char *path)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if HAVE_SYSCTL
|
||||
#ifdef HAVE_SYSCTL
|
||||
template<int... S>
|
||||
void AddSysctl(CSHA512& hasher)
|
||||
{
|
||||
@ -274,7 +274,7 @@ void RandAddDynamicEnv(CSHA512& hasher)
|
||||
AddFile(hasher, "/proc/self/status");
|
||||
#endif
|
||||
|
||||
#if HAVE_SYSCTL
|
||||
#ifdef HAVE_SYSCTL
|
||||
# ifdef CTL_KERN
|
||||
# if defined(KERN_PROC) && defined(KERN_PROC_ALL)
|
||||
AddSysctl<CTL_KERN, KERN_PROC, KERN_PROC_ALL>(hasher);
|
||||
@ -419,7 +419,7 @@ void RandAddStaticEnv(CSHA512& hasher)
|
||||
|
||||
// For MacOS/BSDs, gather data through sysctl instead of /proc. Not all of these
|
||||
// will exist on every system.
|
||||
#if HAVE_SYSCTL
|
||||
#ifdef HAVE_SYSCTL
|
||||
# ifdef CTL_HW
|
||||
# ifdef HW_MACHINE
|
||||
AddSysctl<CTL_HW, HW_MACHINE>(hasher);
|
||||
|
Loading…
Reference in New Issue
Block a user