Won't compile with miniupnpc 2.2.8 #30266

issue edilmedeiros opened this issue on June 11, 2024
  1. edilmedeiros commented at 1:34 AM on June 11, 2024: contributor

    Bitcoin-core will not compile if using miniupnpc 2.2.8. Looks like the API in miniupnpc.h v2.2.8 has changed compared to v2.2.7 used in depends.

    Found this while updating the macports package.

    Might become a problem very soon for people installing dependencies using package managers like brew (still in v2.2.7 to this date) (like in the CI?) as described in the macos build docs, apt and dnf as in the linux build docs.

    • Obvious workaround: use miniupnpc version 2.2.7 which is known to work (see depends folder). Check your package manager about how to install older version of packages.
    • Second workaround: disable miniupnpc in the build with ./configure --without-miniupnpc if that's not important for you.

    Please note that this line from the configure script is probably not doing it's job well.

    checking whether miniUPnPc API version is supported... yes
    

    Steps to reproduce

    1. Install miniupnpc 2.2.8 from http://miniupnp.free.fr/.
    2. ./configure
    3. make

    Relevant log output

    <details> <summary>configure script output</summary>

    ❯ ./configure --with-boost=/opt/local/libexec/boost/1.78 --with-gui=no
    checking for pkg-config... /opt/local/bin/pkg-config
    checking pkg-config is at least version 0.9.0... yes
    checking build system type... aarch64-apple-darwin23.4.0
    checking host system type... aarch64-apple-darwin23.4.0
    checking for a BSD-compatible install... /opt/local/bin/ginstall -c
    checking whether build environment is sane... yes
    checking for a race-free mkdir -p... /opt/local/bin/gmkdir -p
    checking for gawk... no
    checking for mawk... no
    checking for nawk... no
    checking for awk... awk
    checking whether make sets $(MAKE)... yes
    checking whether make supports nested variables... yes
    checking whether to enable maintainer-specific portions of Makefiles... yes
    checking whether make supports nested variables... (cached) yes
    checking for g++... g++
    checking whether the C++ compiler works... yes
    checking for C++ compiler default output file name... a.out
    checking for suffix of executables...
    checking whether we are cross compiling... no
    checking for suffix of object files... o
    checking whether the compiler supports GNU C++... yes
    checking whether g++ accepts -g... yes
    checking for g++ option to enable C++11 features... none needed
    checking whether make supports the include directive... yes (GNU style)
    checking dependency style of g++... gcc3
    checking whether g++ supports C++20 features with -std=c++20... yes
    checking whether the compiler supports GNU Objective C++... yes
    checking whether g++ -std=c++20 accepts -g... yes
    checking dependency style of g++ -std=c++20... gcc3
    checking how to print strings... printf
    checking for gcc... gcc
    checking whether the compiler supports GNU C... yes
    checking whether gcc accepts -g... yes
    checking for gcc option to enable C11 features... none needed
    checking whether gcc understands -c and -o together... yes
    checking dependency style of gcc... gcc3
    checking for a sed that does not truncate output... /usr/bin/sed
    checking for grep that handles long lines and -e... /usr/bin/grep
    checking for egrep... /usr/bin/grep -E
    checking for fgrep... /usr/bin/grep -F
    checking for ld used by gcc... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
    checking if the linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) is GNU ld... no
    checking for BSD- or MS-compatible name lister (nm)... /opt/local/bin/nm -B
    checking the name lister (/opt/local/bin/nm -B) interface... BSD nm
    checking whether ln -s works... yes
    checking the maximum length of command line arguments... 786432
    checking how to convert aarch64-apple-darwin23.4.0 file names to aarch64-apple-darwin23.4.0 format... func_convert_file_noop
    checking how to convert aarch64-apple-darwin23.4.0 file names to toolchain format... func_convert_file_noop
    checking for /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld option to reload object files... -r
    checking for file... file
    checking for objdump... objdump
    checking how to recognize dependent libraries... pass_all
    checking for dlltool... no
    checking how to associate runtime and link libraries... printf %s\n
    checking for ar... ar
    checking for archiver [@FILE](/bitcoin-bitcoin/contributor/file/) support... no
    checking for strip... strip
    checking for ranlib... ranlib
    checking command to parse /opt/local/bin/nm -B output from gcc object... ok
    checking for sysroot... no
    checking for a working dd... /bin/dd
    checking how to truncate binary pipes... /bin/dd bs=4096 count=1
    checking for mt... no
    checking if : is a manifest tool... no
    checking for dsymutil... dsymutil
    checking for nmedit... nmedit
    checking for lipo... lipo
    checking for otool... otool
    checking for otool64... no
    checking for -single_module linker flag... (cached) yes
    checking for -exported_symbols_list linker flag... yes
    checking for -force_load linker flag... yes
    checking for stdio.h... yes
    checking for stdlib.h... yes
    checking for string.h... yes
    checking for inttypes.h... yes
    checking for stdint.h... yes
    checking for strings.h... yes
    checking for sys/stat.h... yes
    checking for sys/types.h... yes
    checking for unistd.h... yes
    checking for dlfcn.h... yes
    checking for objdir... .libs
    checking if gcc supports -fno-rtti -fno-exceptions... yes
    checking for gcc option to produce PIC... -fno-common -DPIC
    checking if gcc PIC flag -fno-common -DPIC works... yes
    checking if gcc static flag -static works... no
    checking if gcc supports -c -o file.o... yes
    checking if gcc supports -c -o file.o... (cached) yes
    checking whether the gcc linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) supports shared libraries... yes
    checking dynamic linker characteristics... darwin23.4.0 dyld
    checking how to hardcode library paths into programs... immediate
    checking whether stripping libraries is possible... yes
    checking if libtool supports shared libraries... yes
    checking whether to build shared libraries... yes
    checking whether to build static libraries... yes
    checking how to run the C++ preprocessor... g++ -std=c++20 -E
    checking for ld used by g++ -std=c++20... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
    checking if the linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) is GNU ld... no
    checking whether the g++ -std=c++20 linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) supports shared libraries... yes
    checking for g++ -std=c++20 option to produce PIC... -fno-common -DPIC
    checking if g++ -std=c++20 PIC flag -fno-common -DPIC works... yes
    checking if g++ -std=c++20 static flag -static works... no
    checking if g++ -std=c++20 supports -c -o file.o... yes
    checking if g++ -std=c++20 supports -c -o file.o... (cached) yes
    checking whether the g++ -std=c++20 linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) supports shared libraries... yes
    checking dynamic linker characteristics... darwin23.4.0 dyld
    checking how to hardcode library paths into programs... immediate
    checking for ar... /opt/local/bin/ar
    checking for gcov... /usr/bin/gcov
    checking for llvm-cov... no
    checking for lcov... /opt/local/bin/lcov
    checking for python3.9... no
    checking for python3.10... no
    checking for python3.11... /opt/local/bin/python3.11
    checking for genhtml... /opt/local/bin/genhtml
    checking for git... /usr/bin/git
    checking for ccache... no
    checking for xgettext... /opt/local/bin/xgettext
    checking for hexdump... /usr/bin/hexdump
    checking for objdump... /opt/local/bin/objdump
    checking for objcopy... no
    checking for doxygen... /opt/local/bin/doxygen
    checking whether C++ compiler accepts -Werror... yes
    checking whether the linker accepts -Wl,-fatal_warnings... yes
    checking whether C++ compiler accepts -Wall... yes
    checking whether C++ compiler accepts -Wextra... yes
    checking whether C++ compiler accepts -Wgnu... yes
    checking whether C++ compiler accepts -Wformat -Wformat-security... yes
    checking whether C++ compiler accepts -Wvla... yes
    checking whether C++ compiler accepts -Wshadow-field... yes
    checking whether C++ compiler accepts -Wthread-safety... yes
    checking whether C++ compiler accepts -Wloop-analysis... yes
    checking whether C++ compiler accepts -Wredundant-decls... yes
    checking whether C++ compiler accepts -Wunused-member-function... yes
    checking whether C++ compiler accepts -Wdate-time... yes
    checking whether C++ compiler accepts -Wconditional-uninitialized... yes
    checking whether C++ compiler accepts -Wduplicated-branches... no
    checking whether C++ compiler accepts -Wduplicated-cond... no
    checking whether C++ compiler accepts -Wlogical-op... no
    checking whether C++ compiler accepts -Woverloaded-virtual... yes
    checking whether C++ compiler accepts -Wsuggest-override... yes
    checking whether C++ compiler accepts -Wimplicit-fallthrough... yes
    checking whether C++ compiler accepts -Wunreachable-code... yes
    checking whether C++ compiler accepts -Wdocumentation... yes
    checking whether C++ compiler accepts -Wself-assign... yes
    checking whether C++ compiler accepts -Wunused-parameter... yes
    checking whether C++ compiler accepts -fno-extended-identifiers... no
    checking whether C++ compiler accepts -fstack-reuse=none... no
    checking whether C++ compiler accepts -msse4.2... no
    checking whether C++ compiler accepts -msse4.1... no
    checking whether C++ compiler accepts -mavx -mavx2... no
    checking whether C++ compiler accepts -msse4 -msha... no
    checking whether C++ compiler accepts -mpclmul... no
    checking for SSE4.2 intrinsics... no
    checking for SSE4.1 intrinsics... no
    checking for AVX2 intrinsics... no
    checking for x86 SHA-NI intrinsics... no
    checking whether C++ compiler accepts -march=armv8-a+crc+crypto... yes
    checking whether C++ compiler accepts -march=armv8-a+crypto... yes
    checking for ARMv8 CRC32 intrinsics... yes
    checking for ARMv8 SHA-NI intrinsics... yes
    checking whether the linker accepts -Wl,-headerpad_max_install_names... yes
    checking for brew... no
    checking whether byte ordering is bigendian... no
    checking how to run the C preprocessor... gcc -E
    checking whether gcc is Clang... yes
    checking whether pthreads work with "-pthread" and "-lpthread"... yes
    checking whether Clang needs flag to prevent "argument unused" warning when linking with -pthread... no
    checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
    checking whether more special flags are required for pthreads... no
    checking for PTHREAD_PRIO_INHERIT... yes
    checking whether std::atomic can be used without link library... yes
    checking for special C compiler options needed for large files... no
    checking for _FILE_OFFSET_BITS value needed for large files... no
    checking for g++ -std=c++20 options needed to detect all undeclared functions... none needed
    checking whether strerror_r is declared... yes
    checking whether strerror_r returns char *... no
    checking whether C++ compiler accepts -fPIC... yes
    checking whether C++ compiler accepts -Wstack-protector... yes
    checking whether C++ compiler accepts -fstack-protector-all... yes
    checking whether C++ compiler accepts -fcf-protection=full... no
    checking whether C++ compiler accepts -fstack-clash-protection... no
    checking whether C++ compiler accepts -mbranch-protection=bti... yes
    checking whether C++ preprocessor accepts -D_FORTIFY_SOURCE=3... yes
    checking whether C++ preprocessor accepts -U_FORTIFY_SOURCE... yes
    checking whether the linker accepts -Wl,--enable-reloc-section... no
    checking whether the linker accepts -Wl,--dynamicbase... no
    checking whether the linker accepts -Wl,--nxcompat... no
    checking whether the linker accepts -Wl,--high-entropy-va... no
    checking whether the linker accepts -Wl,-z,relro... no
    checking whether the linker accepts -Wl,-z,now... no
    checking whether the linker accepts -Wl,-z,separate-code... no
    checking whether the linker accepts -fPIE -pie... no
    checking whether the linker accepts -Wl,-dead_strip... yes
    checking whether the linker accepts -Wl,-dead_strip_dylibs... yes
    checking whether the linker accepts -Wl,-fixup_chains... yes
    checking for sys/select.h... yes
    checking for sys/prctl.h... no
    checking for sys/sysctl.h... yes
    checking for vm/vm_param.h... no
    checking for sys/vmmeter.h... yes
    checking for sys/resources.h... no
    checking whether getifaddrs is declared... yes
    checking whether ifaddrs funcs can be used without link library... yes
    checking whether freeifaddrs is declared... yes
    checking whether ifaddrs funcs can be used without link library... yes
    checking whether fork is declared... yes
    checking whether setsid is declared... yes
    checking whether pipe2 is declared... no
    checking for getmemoryinfo... no
    checking for mallopt M_ARENA_MAX... no
    checking for posix_fallocate... no
    checking for default visibility attribute... yes
    checking for dllexport attribute... no
    checking for Linux getrandom function... no
    checking for getentropy via sys/random.h... yes
    checking for sysctl... yes
    checking for sysctl KERN_ARND... no
    checking for fdatasync... no
    checking for F_FULLFSYNC... yes
    checking for O_CLOEXEC... yes
    checking for __builtin_prefetch... yes
    checking for _mm_prefetch... no
    checking for strong getauxval support in the system headers... no
    checking for sockaddr_un... yes
    checking for std::system... yes
    checking for ::_wsystem... no
    checking whether to build Bitcoin Core GUI... no
    checking whether main function is needed for fuzz binary... checking whether the linker accepts ... no
    yes
    checking for Berkeley DB C++ headers... /opt/local/include/db48/
    checking for main in -ldb_cxx-4.8... yes
    checking for sqlite3 >= 3.7.17... yes
    checking whether to build wallet with support for sqlite... yes
    checking whether Userspace, Statically Defined Tracing tracepoints are supported... no
    checking for miniupnpc/miniupnpc.h... yes
    checking for miniupnpc/upnpcommands.h... yes
    checking for miniupnpc/upnperrors.h... yes
    checking for upnpDiscover in -lminiupnpc... yes
    checking whether miniUPnPc API version is supported... yes
    checking for natpmp.h... no
    checking for boostlib >= 1.73.0 (107300) includes in "/opt/local/libexec/boost/1.78/include"... yes
    checking for boostlib >= 1.73.0 (107300) lib path in "/opt/local/libexec/boost/1.78/lib/aarch64-darwin23.4.0"... no
    checking for boostlib >= 1.73.0 (107300) lib path in "/opt/local/libexec/boost/1.78/lib64"... no
    checking for boostlib >= 1.73.0 (107300) lib path in "/opt/local/libexec/boost/1.78/lib"... yes
    checking for Boost headers >= 1.73.0 (107300)... yes
    checking whether C++ preprocessor accepts -DBOOST_NO_CXX98_FUNCTION_BASE... no
    checking for libevent >= 2.1.8... yes
    checking for libevent_pthreads >= 2.1.8... yes
    checking if evhttp_connection_get_peer expects const char**... no
    checking for libzmq >= 4... yes
    checking for libmultiprocess... no
    checking whether to build bitcoind... yes
    checking whether to build bitcoin-cli... yes
    checking whether to build bitcoin-tx... yes
    checking whether to build bitcoin-wallet... yes
    checking whether to build bitcoin-util... yes
    checking whether to build experimental bitcoin-chainstate... no
    checking if ccache should be used... no
    checking if wallet should be enabled... yes
    checking whether to build with support for UPnP... yes
    checking whether to build with support for NAT-PMP... no
    checking whether to build test_bitcoin... yes
    checking whether to reduce exports... no
    checking that generated files are newer than configure... done
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating src/Makefile
    config.status: creating doc/man/Makefile
    config.status: creating share/setup.nsi
    config.status: creating share/qt/Info.plist
    config.status: creating test/config.ini
    config.status: creating contrib/devtools/split-debug.sh
    config.status: creating doc/Doxyfile
    config.status: creating src/config/bitcoin-config.h
    config.status: src/config/bitcoin-config.h is unchanged
    config.status: executing depfiles commands
    config.status: executing libtool commands
    === configuring in src/secp256k1 (/Users/jose.edil/2-development/bitcoin/bitcoin-core/src/secp256k1)
    configure: running /bin/sh ./configure --disable-option-checking '--prefix=/usr/local'  '--with-boost=/opt/local/libexec/boost/1.78' '--with-gui=no' 'LDFLAGS= -L/opt/local/lib/db48 -L/opt/local/lib/db48' 'LIBS= -L/opt/local/lib -L/opt/local/lib' 'CPPFLAGS= -isystem /opt/local/include -isystem /opt/local/include' '--disable-shared' '--with-pic' '--with-ecmult-gen-kb=86' '--enable-benchmark=no' '--enable-module-recovery' '--disable-module-ecdh' --cache-file=/dev/null --srcdir=.
    checking build system type... aarch64-apple-darwin23.4.0
    checking host system type... aarch64-apple-darwin23.4.0
    checking for a BSD-compatible install... /opt/local/bin/ginstall -c
    checking whether build environment is sane... yes
    checking for a race-free mkdir -p... /opt/local/bin/gmkdir -p
    checking for gawk... no
    checking for mawk... no
    checking for nawk... no
    checking for awk... awk
    checking whether make sets $(MAKE)... yes
    checking whether make supports nested variables... yes
    checking whether make supports nested variables... (cached) yes
    checking for gcc... gcc
    checking whether the C compiler works... yes
    checking for C compiler default output file name... a.out
    checking for suffix of executables...
    checking whether we are cross compiling... no
    checking for suffix of object files... o
    checking whether the compiler supports GNU C... yes
    checking whether gcc accepts -g... yes
    checking for gcc option to enable C11 features... none needed
    checking whether gcc understands -c and -o together... yes
    checking whether make supports the include directive... yes (GNU style)
    checking dependency style of gcc... gcc3
    checking dependency style of gcc... gcc3
    checking for ar... ar
    checking the archiver (ar) interface... ar
    checking how to print strings... printf
    checking for a sed that does not truncate output... /usr/bin/sed
    checking for grep that handles long lines and -e... /usr/bin/grep
    checking for egrep... /usr/bin/grep -E
    checking for fgrep... /usr/bin/grep -F
    checking for ld used by gcc... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
    checking if the linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) is GNU ld... no
    checking for BSD- or MS-compatible name lister (nm)... /opt/local/bin/nm -B
    checking the name lister (/opt/local/bin/nm -B) interface... BSD nm
    checking whether ln -s works... yes
    checking the maximum length of command line arguments... 786432
    checking how to convert aarch64-apple-darwin23.4.0 file names to aarch64-apple-darwin23.4.0 format... func_convert_file_noop
    checking how to convert aarch64-apple-darwin23.4.0 file names to toolchain format... func_convert_file_noop
    checking for /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld option to reload object files... -r
    checking for file... file
    checking for objdump... objdump
    checking how to recognize dependent libraries... pass_all
    checking for dlltool... no
    checking how to associate runtime and link libraries... printf %s\n
    checking for archiver [@FILE](/bitcoin-bitcoin/contributor/file/) support... no
    checking for strip... strip
    checking for ranlib... ranlib
    checking command to parse /opt/local/bin/nm -B output from gcc object... ok
    checking for sysroot... no
    checking for a working dd... /bin/dd
    checking how to truncate binary pipes... /bin/dd bs=4096 count=1
    checking for mt... no
    checking if : is a manifest tool... no
    checking for dsymutil... dsymutil
    checking for nmedit... nmedit
    checking for lipo... lipo
    checking for otool... otool
    checking for otool64... no
    checking for -single_module linker flag... ld: warning: -single_module is obsolete
    no
    checking for -exported_symbols_list linker flag... yes
    checking for -force_load linker flag... yes
    checking for stdio.h... yes
    checking for stdlib.h... yes
    checking for string.h... yes
    checking for inttypes.h... yes
    checking for stdint.h... yes
    checking for strings.h... yes
    checking for sys/stat.h... yes
    checking for sys/types.h... yes
    checking for unistd.h... yes
    checking for dlfcn.h... yes
    checking for objdir... .libs
    checking if gcc supports -fno-rtti -fno-exceptions... yes
    checking for gcc option to produce PIC... -fno-common -DPIC
    checking if gcc PIC flag -fno-common -DPIC works... yes
    checking if gcc static flag -static works... no
    checking if gcc supports -c -o file.o... yes
    checking if gcc supports -c -o file.o... (cached) yes
    checking whether the gcc linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) supports shared libraries... yes
    checking dynamic linker characteristics... darwin23.4.0 dyld
    checking how to hardcode library paths into programs... immediate
    checking whether stripping libraries is possible... yes
    checking if libtool supports shared libraries... yes
    checking whether to build shared libraries... no
    checking whether to build static libraries... yes
    checking for brew... no
    checking for port... port
    checking if gcc supports -Werror... yes
    checking if gcc supports -std=c89 -pedantic -Wno-long-long -Wnested-externs -Wshadow -Wstrict-prototypes -Wundef... yes
    checking if gcc supports -Wno-overlength-strings... yes
    checking if gcc supports -Wall... yes
    checking if gcc supports -Wno-unused-function... yes
    checking if gcc supports -Wextra... yes
    checking if gcc supports -Wcast-align... yes
    checking if gcc supports -Wcast-align=strict... no
    checking if gcc supports -Wconditional-uninitialized... yes
    checking if gcc supports -Wreserved-identifier... yes
    checking if gcc supports -fvisibility=hidden... yes
    checking for valgrind support...
    checking for x86_64 assembly availability... no
    checking that generated files are newer than configure... done
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating libsecp256k1.pc
    config.status: executing depfiles commands
    config.status: executing libtool commands
    
    Build Options:
      with external callbacks = no
      with benchmarks         = no
      with tests              = yes
      with ctime tests        = no
      with coverage           = no
      with examples           = no
      module ecdh             = no
      module recovery         = yes
      module extrakeys        = yes
      module schnorrsig       = yes
      module ellswift         = yes
    
      asm                     = no
      ecmult window size      = 15
      ecmult gen table size   = 86 KiB
    
      valgrind                = no
      CC                      = gcc
      CPPFLAGS                =  -isystem /opt/local/include -isystem /opt/local/include -isystem /opt/local/include
      SECP_CFLAGS             = -O2  -std=c89 -pedantic -Wno-long-long -Wnested-externs -Wshadow -Wstrict-prototypes -Wundef -Wno-overlength-strings -Wall -Wno-unused-function -Wextra -Wcast-align -Wconditional-uninitialized -Wreserved-identifier -fvisibility=hidden
      CFLAGS                  = -g -O2
      LDFLAGS                 =  -L/opt/local/lib/db48 -L/opt/local/lib/db48 -L/opt/local/lib
    Removing -Wl,bind_at_load from libtool.
    
    Options used to compile and link:
      external signer = yes
      multiprocess    = no
      with wallet     = yes
        with sqlite   = yes
        with bdb      = yes
      with gui / qt   = no
      with zmq        = yes
      with test       = yes
      with fuzz binary = yes
      with bench      = yes
      with upnp       = yes
      with natpmp     = no
      USDT tracing    = no
      sanitizers      =
      debug enabled   = no
      werror          = no
    
      target os       = darwin23.4.0
      build os        = darwin23.4.0
    
      CC              = gcc
      CFLAGS          = -pthread  -g -O2
      CPPFLAGS        =   -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3  -DHAVE_BUILD_INFO -DMAC_OSX -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -DPROVIDE_FUZZ_MAIN_FUNCTION  -isystem /opt/local/include -isystem /opt/local/include
      CXX             = g++ -std=c++20
      CXXFLAGS        =  -g -O2   -Wstack-protector -fstack-protector-all -mbranch-protection=bti  -Wall -Wextra -Wgnu -Wformat -Wformat-security -Wvla -Wshadow-field -Wthread-safety -Wloop-analysis -Wredundant-decls -Wunused-member-function -Wdate-time -Wconditional-uninitialized -Woverloaded-virtual -Wsuggest-override -Wimplicit-fallthrough -Wunreachable-code -Wdocumentation -Wself-assign  -Wno-unused-parameter
      LDFLAGS         = -lpthread  -Wl,-fixup_chains   -Wl,-headerpad_max_install_names -Wl,-dead_strip -Wl,-dead_strip_dylibs  -L/opt/local/lib/db48 -L/opt/local/lib/db48
      AR              = /opt/local/bin/ar
      ARFLAGS         = cr
    

    </details>

    <details> <summary>output of make</summary>

    ❯ make -j12
    Making all in src
    (CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh '/Users/jose.edil/2-development/bitcoin/bitcoin-core/build-aux/missing' autoheader)
      CXX      init/bitcoind-bitcoind.o
      CXX      libbitcoin_node_a-bip324.o
      CXX      libbitcoin_node_a-blockfilter.o
      CXX      libbitcoin_node_a-chain.o
      CXX      consensus/libbitcoin_node_a-tx_verify.o
      CXX      libbitcoin_node_a-dbwrapper.o
      CXX      libbitcoin_node_a-deploymentstatus.o
      CXX      libbitcoin_node_a-flatfile.o
      CXX      libbitcoin_node_a-headerssync.o
      CXX      libbitcoin_node_a-httprpc.o
      CXX      libbitcoin_node_a-i2p.o
    rm -f src/config/stamp-h1
    touch src/config/bitcoin-config.h.in
      CXX      index/libbitcoin_node_a-base.o
      CXX      index/libbitcoin_node_a-coinstatsindex.o
      CXX      kernel/libbitcoin_node_a-chain.o
      CXX      kernel/libbitcoin_node_a-checks.o
      CXX      kernel/libbitcoin_node_a-coinstats.o
      CXX      kernel/libbitcoin_node_a-context.o
      CXX      kernel/libbitcoin_node_a-cs_main.o
      CXX      kernel/libbitcoin_node_a-disconnected_transactions.o
      CXX      kernel/libbitcoin_node_a-mempool_removal_reason.o
      CXX      libbitcoin_node_a-netgroup.o
      CXX      node/libbitcoin_node_a-abort.o
      CXX      node/libbitcoin_node_a-blockmanager_args.o
      CXX      node/libbitcoin_node_a-blockstorage.o
      CXX      node/libbitcoin_node_a-caches.o
      CXX      node/libbitcoin_node_a-chainstate.o
      CXX      node/libbitcoin_node_a-coin.o
      CXX      node/libbitcoin_node_a-coins_view_args.o
      CXX      node/libbitcoin_node_a-connection_types.o
      CXX      node/libbitcoin_node_a-context.o
      CXX      node/libbitcoin_node_a-database_args.o
      CXX      node/libbitcoin_node_a-eviction.o
      CXX      node/libbitcoin_node_a-interface_ui.o
      CXX      node/libbitcoin_node_a-mempool_args.o
      CXX      node/libbitcoin_node_a-mempool_persist_args.o
      CXX      node/libbitcoin_node_a-miner.o
      CXX      node/libbitcoin_node_a-mini_miner.o
      CXX      node/libbitcoin_node_a-minisketchwrapper.o
      CXX      node/libbitcoin_node_a-peerman_args.o
      CXX      node/libbitcoin_node_a-psbt.o
      CXX      node/libbitcoin_node_a-timeoffsets.o
      CXX      node/libbitcoin_node_a-transaction.o
      CXX      node/libbitcoin_node_a-utxo_snapshot.o
      CXX      node/libbitcoin_node_a-validation_cache_args.o
      CXX      libbitcoin_node_a-noui.o
      CXX      policy/libbitcoin_node_a-v3_policy.o
      CXX      policy/libbitcoin_node_a-fees_args.o
      CXX      policy/libbitcoin_node_a-packages.o
      CXX      policy/libbitcoin_node_a-rbf.o
      CXX      policy/libbitcoin_node_a-settings.o
      CXX      libbitcoin_node_a-pow.o
      CXX      rpc/libbitcoin_node_a-fees.o
      CXX      rpc/libbitcoin_node_a-mempool.o
      CXX      rpc/libbitcoin_node_a-output_script.o
      CXX      rpc/libbitcoin_node_a-rawtransaction.o
      CXX      rpc/libbitcoin_node_a-server_util.o
      CXX      rpc/libbitcoin_node_a-signmessage.o
      CXX      rpc/libbitcoin_node_a-txoutproof.o
      CXX      libbitcoin_node_a-torcontrol.o
      CXX      libbitcoin_node_a-txdb.o
      CXX      libbitcoin_node_a-txorphanage.o
      CXX      libbitcoin_node_a-txrequest.o
      CXX      libbitcoin_node_a-validationinterface.o
      CXX      libbitcoin_node_a-versionbits.o
      CXX      wallet/libbitcoin_wallet_a-coincontrol.o
      CXX      wallet/libbitcoin_wallet_a-context.o
      CXX      wallet/libbitcoin_wallet_a-migrate.o
      CXX      wallet/libbitcoin_wallet_a-transaction.o
      CXX      wallet/libbitcoin_wallet_a-walletutil.o
      CXX      libbitcoin_common_a-addresstype.o
      CXX      libbitcoin_common_a-base58.o
      CXX      libbitcoin_common_a-bech32.o
      CXX      libbitcoin_common_a-chainparams.o
      CXX      common/libbitcoin_common_a-args.o
      CXX      common/libbitcoin_common_a-bloom.o
      CXX      common/libbitcoin_common_a-config.o
      CXX      common/libbitcoin_common_a-init.o
      CXX      common/libbitcoin_common_a-interfaces.o
      CXX      common/libbitcoin_common_a-url.o
      CXX      libbitcoin_common_a-compressor.o
      CXX      libbitcoin_common_a-core_read.o
      CXX      libbitcoin_common_a-deploymentinfo.o
      CXX      kernel/libbitcoin_common_a-chainparams.o
      CXX      libbitcoin_common_a-key.o
      CXX      libbitcoin_common_a-key_io.o
      CXX      libbitcoin_common_a-merkleblock.o
      CXX      libbitcoin_common_a-net_types.o
      CXX      libbitcoin_common_a-netaddress.o
      CXX      libbitcoin_common_a-outputtype.o
      CXX      policy/libbitcoin_common_a-v3_policy.o
      CXX      policy/libbitcoin_common_a-feerate.o
      CXX      policy/libbitcoin_common_a-policy.o
      CXX      libbitcoin_common_a-psbt.o
      CXX      rpc/libbitcoin_common_a-rawtransaction_util.o
      CXX      rpc/libbitcoin_common_a-request.o
      CXX      libbitcoin_common_a-scheduler.o
      CXX      script/libbitcoin_common_a-descriptor.o
      CXX      script/libbitcoin_common_a-miniscript.o
      CXX      script/libbitcoin_common_a-sign.o
      CXX      script/libbitcoin_common_a-signingprovider.o
      CXX      script/libbitcoin_common_a-solver.o
      CXX      support/libbitcoin_util_a-lockedpool.o
      CXX      libbitcoin_util_a-chainparamsbase.o
      GEN      obj/build.h
      CXX      libbitcoin_util_a-logging.o
      CXX      libbitcoin_util_a-streams.o
      CXX      support/libbitcoin_util_a-cleanse.o
      CXX      libbitcoin_util_a-sync.o
      CXX      util/libbitcoin_util_a-batchpriority.o
      CXX      util/libbitcoin_util_a-bip32.o
      CXX      util/libbitcoin_util_a-bytevectorhash.o
      CXX      util/libbitcoin_util_a-chaintype.o
      CXX      util/libbitcoin_util_a-error.o
      CXX      util/libbitcoin_util_a-exception.o
      CXX      util/libbitcoin_util_a-feefrac.o
      CXX      util/libbitcoin_util_a-fees.o
      CXX      util/libbitcoin_util_a-fs.o
      CXX      util/libbitcoin_util_a-hasher.o
      CXX      util/libbitcoin_util_a-message.o
      CXX      util/libbitcoin_util_a-moneystr.o
      CXX      util/libbitcoin_util_a-rbf.o
      CXX      util/libbitcoin_util_a-readwritefile.o
      CXX      util/libbitcoin_util_a-signalinterrupt.o
      CXX      util/libbitcoin_util_a-thread.o
      CXX      util/libbitcoin_util_a-threadinterrupt.o
      CXX      util/libbitcoin_util_a-serfloat.o
      CXX      util/libbitcoin_util_a-spanparsing.o
      CXX      util/libbitcoin_util_a-strencodings.o
      CXX      util/libbitcoin_util_a-string.o
      CXX      util/libbitcoin_util_a-time.o
      CXX      univalue/lib/libunivalue_la-univalue.lo
      CXX      univalue/lib/libunivalue_la-univalue_get.lo
      CXX      univalue/lib/libunivalue_la-univalue_read.lo
      CXX      univalue/lib/libunivalue_la-univalue_write.lo
      CXX      zmq/libbitcoin_zmq_a-zmqabstractnotifier.o
      CXX      zmq/libbitcoin_zmq_a-zmqnotificationinterface.o
      CXX      zmq/libbitcoin_zmq_a-zmqpublishnotifier.o
      CXX      zmq/libbitcoin_zmq_a-zmqrpc.o
      CXX      zmq/libbitcoin_zmq_a-zmqutil.o
      CXX      libbitcoin_consensus_a-arith_uint256.o
      CXX      consensus/libbitcoin_consensus_a-merkle.o
      CXX      consensus/libbitcoin_consensus_a-tx_check.o
      CXX      libbitcoin_consensus_a-hash.o
      CXX      primitives/libbitcoin_consensus_a-block.o
      CXX      primitives/libbitcoin_consensus_a-transaction.o
      CXX      libbitcoin_consensus_a-pubkey.o
      CXX      script/libbitcoin_consensus_a-interpreter.o
      CXX      script/libbitcoin_consensus_a-script.o
      CXX      script/libbitcoin_consensus_a-script_error.o
      CXX      libbitcoin_consensus_a-uint256.o
      CXX      util/libbitcoin_consensus_a-strencodings.o
      CXX      crypto/libbitcoin_crypto_base_la-aes.lo
      CXX      crypto/libbitcoin_crypto_base_la-chacha20.lo
      CXX      crypto/libbitcoin_crypto_base_la-chacha20poly1305.lo
      CXX      crypto/libbitcoin_crypto_base_la-hkdf_sha256_32.lo
      CXX      crypto/libbitcoin_crypto_base_la-hmac_sha256.lo
      CXX      crypto/libbitcoin_crypto_base_la-hmac_sha512.lo
      CXX      crypto/libbitcoin_crypto_base_la-poly1305.lo
      CXX      crypto/libbitcoin_crypto_base_la-muhash.lo
      CXX      crypto/libbitcoin_crypto_base_la-ripemd160.lo
      CXX      crypto/libbitcoin_crypto_base_la-sha1.lo
      CXX      crypto/libbitcoin_crypto_base_la-sha256_sse4.lo
      CXX      crypto/libbitcoin_crypto_base_la-sha3.lo
      CXX      crypto/libbitcoin_crypto_base_la-sha512.lo
      CXX      crypto/libbitcoin_crypto_base_la-siphash.lo
      CXX      crypto/libbitcoin_crypto_arm_shani_la-sha256_arm_shani.lo
      CXX      leveldb/db/libleveldb_la-builder.lo
      CXX      leveldb/db/libleveldb_la-c.lo
      CXX      leveldb/db/libleveldb_la-dbformat.lo
      CXX      leveldb/db/libleveldb_la-db_impl.lo
      CXX      leveldb/db/libleveldb_la-db_iter.lo
      CXX      leveldb/db/libleveldb_la-dumpfile.lo
      CXX      leveldb/db/libleveldb_la-filename.lo
      CXX      leveldb/db/libleveldb_la-log_writer.lo
      CXX      leveldb/db/libleveldb_la-log_reader.lo
      CXX      leveldb/db/libleveldb_la-memtable.lo
      CXX      leveldb/db/libleveldb_la-repair.lo
      CXX      leveldb/db/libleveldb_la-table_cache.lo
      CXX      leveldb/db/libleveldb_la-version_edit.lo
      CXX      leveldb/db/libleveldb_la-version_set.lo
      CXX      leveldb/db/libleveldb_la-write_batch.lo
      CXX      leveldb/table/libleveldb_la-block_builder.lo
      CXX      leveldb/table/libleveldb_la-block.lo
      CXX      leveldb/table/libleveldb_la-filter_block.lo
      CXX      leveldb/table/libleveldb_la-format.lo
      CXX      leveldb/table/libleveldb_la-iterator.lo
      CXX      leveldb/table/libleveldb_la-merger.lo
      CXX      leveldb/table/libleveldb_la-table_builder.lo
      CXX      leveldb/table/libleveldb_la-table.lo
      CXX      leveldb/table/libleveldb_la-two_level_iterator.lo
      CXX      leveldb/util/libleveldb_la-arena.lo
      CXX      leveldb/util/libleveldb_la-bloom.lo
      CXX      leveldb/util/libleveldb_la-cache.lo
      CXX      leveldb/util/libleveldb_la-coding.lo
      CXX      leveldb/util/libleveldb_la-comparator.lo
      CXX      leveldb/util/libleveldb_la-crc32c.lo
      CXX      leveldb/util/libleveldb_la-env.lo
      CXX      leveldb/util/libleveldb_la-filter_policy.lo
      CXX      leveldb/util/libleveldb_la-histogram.lo
      CXX      leveldb/util/libleveldb_la-hash.lo
      CXX      leveldb/util/libleveldb_la-options.lo
      CXX      leveldb/util/libleveldb_la-logging.lo
      CXX      leveldb/util/libleveldb_la-status.lo
      CXX      leveldb/util/libleveldb_la-env_posix.lo
      CXX      crc32c/src/libcrc32c_la-crc32c.lo
      CXX      crc32c/src/libcrc32c_la-crc32c_portable.lo
      CXX      crc32c/src/libcrc32c_arm_crc_la-crc32c_arm64.lo
      CXX      leveldb/helpers/memenv/libmemenv_la-memenv.lo
      CC       src/libsecp256k1_la-secp256k1.lo
      CXX      compat/libbitcoin_cli_a-stdin.o
      CC       src/libsecp256k1_precomputed_la-precomputed_ecmult.lo
      CC       src/libsecp256k1_precomputed_la-precomputed_ecmult_gen.lo
      CXX      rpc/libbitcoin_cli_a-client.o
      CXX      init/bitcoin_wallet-bitcoin-wallet.o
      CXX      test/test_bitcoin-main.o
      CXX      wallet/test/test_test_bitcoin-init_test_fixture.o
      GEN      test/data/script_tests.json.h
      GEN      test/data/bip341_wallet_vectors.json.h
      GEN      test/data/base58_encode_decode.json.h
      GEN      test/data/blockfilters.json.h
      GEN      test/data/key_io_valid.json.h
      GEN      test/data/key_io_invalid.json.h
      GEN      test/data/sighash.json.h
      GEN      test/data/tx_invalid.json.h
      GEN      test/data/tx_valid.json.h
      GEN      test/data/asmap.raw.h
      CXX      test/util/libtest_util_a-blockfilter.o
      CXX      test/util/libtest_util_a-coins.o
      CXX      test/util/libtest_util_a-index.o
      CXX      test/util/libtest_util_a-json.o
      CXX      test/util/libtest_util_a-logging.o
      CXX      test/util/libtest_util_a-mining.o
      CCLD     libsecp256k1_precomputed.la
      CXX      test/util/libtest_util_a-net.o
      CXX      test/util/libtest_util_a-random.o
      CXX      test/util/libtest_util_a-script.o
      CXX      test/util/libtest_util_a-str.o
      CXX      test/util/libtest_util_a-transaction_utils.o
      CXX      test/util/libtest_util_a-txmempool.o
      CXX      test/util/libtest_util_a-validation.o
      CXX      minisketch/src/fields/libminisketch_a-generic_1byte.o
      CXX      minisketch/src/fields/libminisketch_a-generic_2bytes.o
      CXX      minisketch/src/fields/libminisketch_a-generic_3bytes.o
      CXX      minisketch/src/fields/libminisketch_a-generic_4bytes.o
      CXX      minisketch/src/fields/libminisketch_a-generic_5bytes.o
      CXX      minisketch/src/fields/libminisketch_a-generic_6bytes.o
      CXX      minisketch/src/fields/libminisketch_a-generic_7bytes.o
      CXX      minisketch/src/fields/libminisketch_a-generic_8bytes.o
      CXX      minisketch/src/libminisketch_a-minisketch.o
      CXX      bench/bench_bitcoin-addrman.o
      CXX      bench/bench_bitcoin-base58.o
      CXX      bench/bench_bitcoin-bech32.o
      CXX      bench/bench_bitcoin-bench.o
      CXX      bench/bench_bitcoin-bip324_ecdh.o
      CXX      bench/bench_bitcoin-block_assemble.o
      CXX      bench/bench_bitcoin-ccoins_caching.o
      CXX      bench/bench_bitcoin-chacha20.o
      CXX      bench/bench_bitcoin-checkblock.o
      CXX      bench/bench_bitcoin-crypto_hash.o
      GEN      bench/data/block413567.raw.h
      CXX      bench/bench_bitcoin-descriptors.o
      CXX      bench/bench_bitcoin-disconnected_transactions.o
      CXX      bench/bench_bitcoin-duplicate_inputs.o
      CXX      bench/bench_bitcoin-ellswift.o
      CXX      bench/bench_bitcoin-examples.o
      CXX      bench/bench_bitcoin-gcs_filter.o
      CXX      bench/bench_bitcoin-hashpadding.o
      CXX      bench/bench_bitcoin-index_blockfilter.o
      CCLD     libsecp256k1.la
      CXX      bench/bench_bitcoin-lockedpool.o
      CXX      bench/bench_bitcoin-logging.o
      CXX      bench/bench_bitcoin-mempool_eviction.o
      CXX      bench/bench_bitcoin-mempool_stress.o
      CXX      bench/bench_bitcoin-merkle_root.o
      CXX      bench/bench_bitcoin-nanobench.o
      CXX      bench/bench_bitcoin-parse_hex.o
      CXX      bench/bench_bitcoin-peer_eviction.o
      CXX      bench/bench_bitcoin-poly1305.o
      CXX      bench/bench_bitcoin-pool.o
      CXX      bench/bench_bitcoin-prevector.o
      CXX      bench/bench_bitcoin-readblock.o
      CXX      bench/bench_bitcoin-rollingbloom.o
      CXX      bench/bench_bitcoin-rpc_blockchain.o
      CXX      bench/bench_bitcoin-rpc_mempool.o
      CXX      bench/bench_bitcoin-streams_findbyte.o
      CXX      bench/bench_bitcoin-strencodings.o
      CXX      bench/bench_bitcoin-util_time.o
      CXX      bench/bench_bitcoin-verify_script.o
      CXX      bench/bench_bitcoin-xor.o
      CXX      wallet/test/fuzz/test_fuzz_fuzz-coinselection.o
      CXX      wallet/test/fuzz/test_fuzz_fuzz-crypter.o
      CXX      wallet/test/fuzz/test_fuzz_fuzz-wallet_bdb_parser.o
      CXX      test/fuzz/fuzz-addition_overflow.o
      CXX      test/fuzz/fuzz-addrman.o
      CXX      test/fuzz/fuzz-asmap.o
      CXX      test/fuzz/fuzz-asmap_direct.o
      CXX      test/fuzz/fuzz-autofile.o
      CXX      test/fuzz/fuzz-banman.o
      CXX      test/fuzz/fuzz-base_encode_decode.o
      CXX      test/fuzz/fuzz-bech32.o
      CXX      test/fuzz/fuzz-bip324.o
      CXX      test/fuzz/fuzz-bitdeque.o
      CXX      test/fuzz/fuzz-block.o
      CXX      test/fuzz/fuzz-block_header.o
      CXX      test/fuzz/fuzz-blockfilter.o
      CXX      test/fuzz/fuzz-buffered_file.o
      CXX      test/fuzz/fuzz-bloom_filter.o
      CXX      test/fuzz/fuzz-chain.o
      CXX      test/fuzz/fuzz-checkqueue.o
      CXX      test/fuzz/fuzz-coins_view.o
      CXX      test/fuzz/fuzz-coinscache_sim.o
      CXX      test/fuzz/fuzz-connman.o
      CXX      test/fuzz/fuzz-crypto.o
      CXX      test/fuzz/fuzz-crypto_aes256.o
      CXX      test/fuzz/fuzz-crypto_aes256cbc.o
      CXX      test/fuzz/fuzz-crypto_chacha20.o
      CXX      test/fuzz/fuzz-crypto_common.o
      CXX      test/fuzz/fuzz-crypto_diff_fuzz_chacha20.o
      CXX      test/fuzz/fuzz-crypto_hkdf_hmac_sha256_l32.o
      CXX      test/fuzz/fuzz-crypto_poly1305.o
      CXX      test/fuzz/fuzz-cuckoocache.o
      CXX      test/fuzz/fuzz-decode_tx.o
      CXX      test/fuzz/fuzz-descriptor_parse.o
      CXX      test/fuzz/fuzz-deserialize.o
      CXX      test/fuzz/fuzz-eval_script.o
      CXX      test/fuzz/fuzz-feefrac.o
      CXX      test/fuzz/fuzz-fee_rate.o
      CXX      test/fuzz/fuzz-feeratediagram.o
      CXX      test/fuzz/fuzz-fees.o
      CXX      test/fuzz/fuzz-flatfile.o
      CXX      test/fuzz/fuzz-float.o
      CXX      test/fuzz/fuzz-golomb_rice.o
      CXX      test/fuzz/fuzz-headerssync.o
      CXX      test/fuzz/fuzz-hex.o
      CXX      test/fuzz/fuzz-http_request.o
      CXX      test/fuzz/fuzz-key.o
      CXX      test/fuzz/fuzz-key_io.o
      CXX      test/fuzz/fuzz-kitchen_sink.o
      CXX      test/fuzz/fuzz-locale.o
      CXX      test/fuzz/fuzz-merkleblock.o
      CXX      test/fuzz/fuzz-message.o
      CXX      test/fuzz/fuzz-miniscript.o
      CXX      test/fuzz/fuzz-minisketch.o
      CXX      test/fuzz/fuzz-mini_miner.o
      CXX      test/fuzz/fuzz-muhash.o
      CXX      test/fuzz/fuzz-multiplication_overflow.o
      CXX      test/fuzz/fuzz-net.o
      CXX      test/fuzz/fuzz-net_permissions.o
      CXX      test/fuzz/fuzz-netaddress.o
      CXX      test/fuzz/fuzz-netbase_dns_lookup.o
      CXX      test/fuzz/fuzz-node_eviction.o
      CXX      test/fuzz/fuzz-p2p_transport_serialization.o
      CXX      test/fuzz/fuzz-package_eval.o
      CXX      test/fuzz/fuzz-parse_hd_keypath.o
      CXX      test/fuzz/fuzz-parse_numbers.o
      CXX      test/fuzz/fuzz-parse_script.o
      CXX      test/fuzz/fuzz-parse_univalue.o
      CXX      test/fuzz/fuzz-partially_downloaded_block.o
      CXX      test/fuzz/fuzz-policy_estimator.o
      CXX      test/fuzz/fuzz-policy_estimator_io.o
      CXX      test/fuzz/fuzz-poolresource.o
      CXX      test/fuzz/fuzz-pow.o
      CXX      test/fuzz/fuzz-prevector.o
      CXX      test/fuzz/fuzz-primitives_transaction.o
      CXX      test/fuzz/fuzz-process_message.o
      CXX      test/fuzz/fuzz-process_messages.o
      CXX      test/fuzz/fuzz-protocol.o
      CXX      test/fuzz/fuzz-psbt.o
      CXX      test/fuzz/fuzz-random.o
      CXX      test/fuzz/fuzz-rbf.o
      CXX      test/fuzz/fuzz-rolling_bloom_filter.o
      CXX      test/fuzz/fuzz-rpc.o
      CXX      test/fuzz/fuzz-script.o
      CXX      test/fuzz/fuzz-script_assets_test_minimizer.o
      CXX      test/fuzz/fuzz-script_descriptor_cache.o
      CXX      test/fuzz/fuzz-script_flags.o
      CXX      test/fuzz/fuzz-script_format.o
      CXX      test/fuzz/fuzz-script_interpreter.o
      CXX      test/fuzz/fuzz-script_ops.o
      CXX      test/fuzz/fuzz-script_sigcache.o
      CXX      test/fuzz/fuzz-script_sign.o
      CXX      test/fuzz/fuzz-scriptnum_ops.o
      CXX      test/fuzz/fuzz-secp256k1_ec_seckey_import_export_der.o
      CXX      test/fuzz/fuzz-secp256k1_ecdsa_signature_parse_der_lax.o
      CXX      test/fuzz/fuzz-signature_checker.o
      CXX      test/fuzz/fuzz-signet.o
      CXX      test/fuzz/fuzz-socks5.o
      CXX      test/fuzz/fuzz-span.o
      CXX      test/fuzz/fuzz-spanparsing.o
      CXX      test/fuzz/fuzz-strprintf.o
      CXX      test/fuzz/fuzz-system.o
      CXX      test/fuzz/fuzz-timeoffsets.o
      CXX      test/fuzz/fuzz-torcontrol.o
      CXX      test/fuzz/fuzz-transaction.o
      CXX      test/fuzz/fuzz-tx_in.o
      CXX      test/fuzz/fuzz-tx_out.o
      CXX      test/fuzz/fuzz-tx_pool.o
      CXX      test/fuzz/fuzz-txorphan.o
      CXX      test/fuzz/fuzz-txrequest.o
      CXX      test/fuzz/fuzz-utxo_snapshot.o
      CXX      test/fuzz/fuzz-utxo_total_supply.o
      CXX      test/fuzz/fuzz-validation_load_mempool.o
      CXX      test/fuzz/fuzz-vecdeque.o
      CXX      test/fuzz/fuzz-versionbits.o
      CXX      test/fuzz/libtest_fuzz_a-fuzz.o
      CXX      test/fuzz/libtest_fuzz_a-util.o
      CXX      test/fuzz/util/libtest_fuzz_a-descriptor.o
      CXX      test/fuzz/util/libtest_fuzz_a-mempool.o
      CXX      test/fuzz/util/libtest_fuzz_a-net.o
      CXX      univalue/test/object-object.o
      CXX      univalue/test/unitester-unitester.o
    cd . && /bin/sh ./config.status src/config/bitcoin-config.h
      CXXLD    libunivalue.la
      AR       libbitcoin_zmq.a
      AR       libbitcoin_consensus.a
      CXXLD    crypto/libbitcoin_crypto_arm_shani.la
      CXXLD    leveldb/libleveldb.la
    config.status: creating src/config/bitcoin-config.h
      CXXLD    crc32c/libcrc32c.la
      CXXLD    crc32c/libcrc32c_arm_crc.la
      CXXLD    leveldb/libmemenv.la
      CXX      test/test_bitcoin-amount_tests.o
      AR       libbitcoin_cli.a
      CXX      test/test_bitcoin-argsman_tests.o
      CXX      test/test_bitcoin-arith_uint256_tests.o
      CXX      test/test_bitcoin-banman_tests.o
      CXX      test/test_bitcoin-base32_tests.o
      CXX      test/test_bitcoin-base58_tests.o
      CXX      test/test_bitcoin-base64_tests.o
      CXX      test/test_bitcoin-bech32_tests.o
      CXX      test/test_bitcoin-bip324_tests.o
      CXX      test/test_bitcoin-blockchain_tests.o
      CXX      test/test_bitcoin-blockencodings_tests.o
      CXX      test/test_bitcoin-blockfilter_index_tests.o
      CXX      test/test_bitcoin-blockfilter_tests.o
      CXX      test/test_bitcoin-bswap_tests.o
      CXX      test/test_bitcoin-checkqueue_tests.o
      CXX      test/test_bitcoin-coinstatsindex_tests.o
      CXX      test/test_bitcoin-common_url_tests.o
      CXX      test/test_bitcoin-compilerbug_tests.o
      CXX      test/test_bitcoin-compress_tests.o
      CXX      test/test_bitcoin-crypto_tests.o
      CXX      test/test_bitcoin-cuckoocache_tests.o
      CXX      test/test_bitcoin-dbwrapper_tests.o
      CXX      test/test_bitcoin-denialofservice_tests.o
      CXX      test/test_bitcoin-descriptor_tests.o
      CXX      test/test_bitcoin-disconnected_transactions.o
      CXX      test/test_bitcoin-feefrac_tests.o
      CXX      test/test_bitcoin-fs_tests.o
      CXX      test/test_bitcoin-getarg_tests.o
      CXX      test/test_bitcoin-headers_sync_chainwork_tests.o
      CXX      test/test_bitcoin-httpserver_tests.o
      CXX      test/test_bitcoin-i2p_tests.o
      CXX      test/test_bitcoin-interfaces_tests.o
      CXX      test/test_bitcoin-key_io_tests.o
      CXX      test/test_bitcoin-logging_tests.o
      CXX      test/test_bitcoin-merkle_tests.o
      CXX      test/test_bitcoin-merkleblock_tests.o
      CXX      test/test_bitcoin-miniminer_tests.o
      CXX      test/test_bitcoin-miniscript_tests.o
      CXX      test/test_bitcoin-minisketch_tests.o
      CXX      test/test_bitcoin-multisig_tests.o
      CXX      test/test_bitcoin-net_peer_connection_tests.o
      CXX      test/test_bitcoin-net_peer_eviction_tests.o
      CXX      test/test_bitcoin-netbase_tests.o
      CXX      test/test_bitcoin-orphanage_tests.o
      CXX      test/test_bitcoin-peerman_tests.o
      CXX      test/test_bitcoin-pmt_tests.o
      CXX      test/test_bitcoin-policy_fee_tests.o
      CXX      test/test_bitcoin-policyestimator_tests.o
      CXX      test/test_bitcoin-pool_tests.o
      CXX      test/test_bitcoin-pow_tests.o
      CXX      test/test_bitcoin-prevector_tests.o
      CXX      test/test_bitcoin-raii_event_tests.o
      CXX      test/test_bitcoin-random_tests.o
      CXX      test/test_bitcoin-rest_tests.o
      CXX      test/test_bitcoin-result_tests.o
      CXX      test/test_bitcoin-reverselock_tests.o
      CXX      test/test_bitcoin-rpc_tests.o
      CXX      test/test_bitcoin-sanity_tests.o
      CXX      test/test_bitcoin-scheduler_tests.o
      CXX      test/test_bitcoin-script_p2sh_tests.o
      CXX      test/test_bitcoin-script_parse_tests.o
      CXX      test/test_bitcoin-script_segwit_tests.o
      CXX      test/test_bitcoin-script_standard_tests.o
      CXX      test/test_bitcoin-scriptnum_tests.o
      CXX      test/test_bitcoin-serfloat_tests.o
      CXX      test/test_bitcoin-serialize_tests.o
      CXX      test/test_bitcoin-settings_tests.o
      CXX      test/test_bitcoin-sigopcount_tests.o
      CXX      test/test_bitcoin-skiplist_tests.o
      CXX      test/test_bitcoin-span_tests.o
      CXX      test/test_bitcoin-streams_tests.o
      CXX      test/test_bitcoin-sync_tests.o
      CXX      test/test_bitcoin-timeoffsets_tests.o
      CXX      test/test_bitcoin-torcontrol_tests.o
      CXX      test/test_bitcoin-translation_tests.o
      CXX      test/test_bitcoin-txindex_tests.o
      CXX      test/test_bitcoin-txpackage_tests.o
      CXX      test/test_bitcoin-txreconciliation_tests.o
      CXX      test/test_bitcoin-txrequest_tests.o
      CXX      test/test_bitcoin-txvalidation_tests.o
      CXX      test/test_bitcoin-txvalidationcache_tests.o
      CXX      test/test_bitcoin-uint256_tests.o
      CXX      test/test_bitcoin-validation_block_tests.o
      CXX      test/test_bitcoin-validation_flush_tests.o
      CXX      test/test_bitcoin-validation_tests.o
      CXX      test/test_bitcoin-validationinterface_tests.o
      CXX      test/test_bitcoin-versionbits_tests.o
      CXX      test/test_bitcoin-xoroshiro128plusplus_tests.o
      CXX      wallet/test/test_test_bitcoin-wallet_crypto_tests.o
      CXX      wallet/test/test_test_bitcoin-init_tests.o
      AR       minisketch/libminisketch.a
      CXX      bench/bench_bitcoin-data.o
      AR       libtest_fuzz.a
      CXXLD    univalue/test/object
      CXXLD    univalue/test/unitester
    make[3]: `src/config/bitcoin-config.h' is up to date.
      CXX      bitcoind-bitcoind.o
      CXX      libbitcoin_node_a-addrdb.o
      CXX      libbitcoin_node_a-addrman.o
      CXX      libbitcoin_node_a-banman.o
      CXX      libbitcoin_node_a-blockencodings.o
      CXX      libbitcoin_node_a-httpserver.o
      CXX      index/libbitcoin_node_a-blockfilterindex.o
      CXX      index/libbitcoin_node_a-txindex.o
      CXX      libbitcoin_node_a-init.o
      CXX      kernel/libbitcoin_node_a-mempool_persist.o
      CXX      libbitcoin_node_a-mapport.o
      CXX      libbitcoin_node_a-net.o
      CXX      libbitcoin_node_a-net_processing.o
      CXX      node/libbitcoin_node_a-chainstatemanager_args.o
      CXX      node/libbitcoin_node_a-interfaces.o
    mapport.cpp:165:9: error: no matching function for call to 'UPNP_GetValidIGD'
        r = UPNP_GetValidIGD(devlist, &urls, &data, lanaddr, sizeof(lanaddr));
            ^~~~~~~~~~~~~~~~
    /opt/local/include/miniupnpc/miniupnpc.h:122:1: note: candidate function not viable: requires 7 arguments, but 5 were provided
    UPNP_GetValidIGD(struct UPNPDev * devlist,
    ^
    1 error generated.
    make[2]: *** [libbitcoin_node_a-mapport.o] Error 1
    make[2]: *** Waiting for unfinished jobs....
    make[1]: *** [all-recursive] Error 1
    make: *** [all-recursive] Error 1
    

    </details>

    What version of Bitcoin Core are you using?

    master at ffbc173

  2. edilmedeiros commented at 2:17 AM on June 11, 2024: contributor

    From miniupnpc changelog:

    VERSION 2.2.8 : released 2024/06/09
    
    2024/05/16:
      IPv6: try site-local before link-local
    
    2024/05/08:
      upnpc.c: Add -f option to upnpc program (delete multiple port redirections)
      UPNP_GetValidIGD(): distinguish between not connected and connected to a
        "private" network (with a reserved IP address).
      Increments API_VERSION to 18
    

    Relevant line in the configure script: https://github.com/bitcoin/bitcoin/blob/b1ba1b178f501daa1afdd91f9efec34e5ec1e294/configure.ac#L1245

    Relevant line in mapport.c: https://github.com/bitcoin/bitcoin/blob/b1ba1b178f501daa1afdd91f9efec34e5ec1e294/src/mapport.cpp#L29

    Very unfortunate that the maintainer changed the patch version number instead of increasing the major number under an API breaking change...

  3. edilmedeiros commented at 2:26 AM on June 11, 2024: contributor

    Well, this can be fixed:

    1. by adjusting the above checks (keep dependency of miniupnpc in version range 2.1 to 2.2.7). Drawback: miss potential security updates on the upstream package.
    2. by diving deeper and using the new API (backward incompatible, possibly increasing friction in a lot of systems until the main package managers maintainers decide to update miniupnpc version). It's probably possible to check the api version at compile time and adjust accordingly.

    Note that when someone decide to upgrade the version in depends, the code base will have to support the new API anyhow.

    Putting this here to see what people think is the best strategy to move forward.

  4. hebasto added the label Build system on Jun 11, 2024
  5. theuni commented at 5:18 PM on June 12, 2024: member

    Looks like we need to update for https://github.com/miniupnp/miniupnp/commit/c0a50ce33e3b99ce8a96fd43049bb5b53ffac62f I'll have a look at this tomorrow.

  6. fanquake closed this on Jun 19, 2024

  7. fanquake referenced this in commit ac4ea782af on Jun 19, 2024
  8. PastaPastaPasta referenced this in commit 941678c503 on Oct 25, 2024
  9. PastaPastaPasta referenced this in commit ca83773854 on Oct 27, 2024
  10. charlesrocket referenced this in commit bff1fd0d8e on Nov 20, 2024
  11. bitcoin locked this on Jun 19, 2025

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-05-01 09:13 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me