Skip to content

"checking whether Boost.Process can be used" fails with Boost 1.88.0 #1496

@whitslack

Description

@whitslack
checking for boostlib >= 1.64.0 (106400)... yes
checking whether Boost.Process can be used... no
configure: error: External signing is not supported for this Boost version

config.log contains:

configure:35973: checking whether Boost.Process can be used
configure:35992: x86_64-pc-linux-gnu-g++-16 -std=c++17 -o conftest -pipe -march=native -Os -fno-extended-identifiers -Wno-error=narrowing  -DHAVE_BUILD_INFO -DPROVIDE_FUZZ_MAIN_FUNCTION -I/usr/include -Wl,-O2 -Wl,--as-needed -Wl,--sort-common -Wl,-z,pack-relative-relocs -pthread conftest.cpp  >&5
/usr/lib/gcc/x86_64-pc-linux-gnu/16/../../../../x86_64-pc-linux-gnu/bin/ld: /var/tmp/portage/net-p2p/elements-23.3.1_rc2/temp/cc704VyW.o: in function `_GLOBAL__sub_I_main':
conftest.cpp:(.text.startup+0x5): undefined reference to `boost::process::v2::error::get_utf8_category()'
/usr/lib/gcc/x86_64-pc-linux-gnu/16/../../../../x86_64-pc-linux-gnu/bin/ld: conftest.cpp:(.text.startup+0xa): undefined reference to `boost::process::v2::error::get_exit_code_category()'
/usr/lib/gcc/x86_64-pc-linux-gnu/16/../../../../x86_64-pc-linux-gnu/bin/ld: conftest.cpp:(.text.startup+0xf): undefined reference to `boost::process::v2::get_shell_category()'
collect2: error: ld returned 1 exit status
configure:35992: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "Elements Core"
| #define PACKAGE_TARNAME "elements"
| #define PACKAGE_VERSION "23.3.1rc2"
| #define PACKAGE_STRING "Elements Core 23.3.1rc2"
| #define PACKAGE_BUGREPORT "https://github.com/ElementsProject/elements/issues"
| #define PACKAGE_URL "https://elementsproject.org/"
| #define HAVE_CXX17 1
| #define HAVE_STDIO_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define USE_ASM 1
| #define HAVE_CLMUL 1
| #define ENABLE_SSE41 1
| #define ENABLE_AVX2 1
| #define ENABLE_X86_SHANI 1
| #define HAVE_PTHREAD_PRIO_INHERIT 1
| #define HAVE_PTHREAD 1
| #define HAVE_DECL_STRERROR_R 1
| #define HAVE_STRERROR_R 1
| #define STRERROR_R_CHAR_P 1
| #define HAVE_ENDIAN_H 1
| #define HAVE_BYTESWAP_H 1
| #define HAVE_STDIO_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_PRCTL_H 1
| #define HAVE_DECL_GETIFADDRS 1
| #define HAVE_DECL_FREEIFADDRS 1
| #define HAVE_DECL_STRNLEN 1
| #define HAVE_DECL_FORK 1
| #define HAVE_DECL_SETSID 1
| #define HAVE_DECL_PIPE2 1
| #define HAVE_DECL_LE16TOH 1
| #define HAVE_DECL_LE32TOH 1
| #define HAVE_DECL_LE64TOH 1
| #define HAVE_DECL_HTOLE16 1
| #define HAVE_DECL_HTOLE32 1
| #define HAVE_DECL_HTOLE64 1
| #define HAVE_DECL_BE16TOH 1
| #define HAVE_DECL_BE32TOH 1
| #define HAVE_DECL_BE64TOH 1
| #define HAVE_DECL_HTOBE16 1
| #define HAVE_DECL_HTOBE32 1
| #define HAVE_DECL_HTOBE64 1
| #define HAVE_DECL_BSWAP_16 1
| #define HAVE_DECL_BSWAP_32 1
| #define HAVE_DECL_BSWAP_64 1
| #define HAVE_MALLOC_INFO 1
| #define HAVE_MALLOPT_ARENA_MAX 1
| #define HAVE_POSIX_FALLOCATE 1
| #define HAVE_DEFAULT_VISIBILITY_ATTRIBUTE 1
| #define HAVE_THREAD_LOCAL 1
| #define HAVE_GMTIME_R 1
| #define HAVE_SYS_GETRANDOM 1
| #define HAVE_GETENTROPY_RAND 1
| #define HAVE_FDATASYNC 1
| #define HAVE_O_CLOEXEC 1
| #define HAVE_STRONG_GETAUXVAL 1
| #define HAVE_SYSTEM 1
| #define HAVE_SECP256K1_ECDH 1
| #define HAVE_SECP256K1_XONLY_PUBKEY_PARSE 1
| #define HAVE_SECP256K1_GENERATOR_PARSE 1
| #define HAVE_SECP256K1_RANGEPROOF_VERIFY 1
| #define HAVE_SECP256K1_ECDSA_RECOVER 1
| #define HAVE_SECP256K1_SCHNORRSIG_VERIFY 1
| #define HAVE_SECP256K1_SURJECTIONPROOF_INITIALIZE 1
| #define HAVE_SECP256K1_WHITELIST_VERIFY 1
| #define USE_SQLITE 1
| #define HAVE_BOOST /**/
| /* end confdefs.h.  */
| #include <boost/process.hpp>
| int
| main (void)
| {
| 
|   ;
|   return 0;
| }
configure:36004: result: no
configure:36013: error: External signing is not supported for this Boost version

Expected behavior

Boost 1.88.0 should be accepted as a usable version of Boost when enabling external-signer.

Actual behavior

Configure rejects Boost 1.88.0 due to a missing link library.

To reproduce

Upgrade to Boost 1.88.0. Try to configure Elements with --enable-external-signer.

System information

Elements 23.3.1rc2

Linux 6.12.41-gentoo x86_64

Note that there is an AX_BOOST_PROCESS macro that theoretically could be used here, but it also fails to detect Boost::Process, as it appears to be attempting to use a class declared in the deprecated Process v1 headers without actually including those headers.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions