Open kloczek opened 3 months ago
Thank you. This is probably due to a missing <limits.h>
include.
Which version of boost are you using?
boost 1.84.0.
Confirmed with iwyu:
bench/bench.h should add these lines:
#include <stdint.h> // for uint64_t
#include <boost/function/function_template.hpp> // for function
#include <limits> // for numeric_limits
bench/bench.h should remove these lines:
- #include <boost/function.hpp> // lines 11-11
I'll make us a cleanup patch on this.
If you will have any patch to test please let me know.
If I run a docker container w/ fedora:rawhide, I get gcc 14 and boost 1.83. What do I do to get gcc 15 and boost 1.84?
I'm using my own distribution which is relatively close to fedora rawhide.
Based on the error above, #3456 should fix this.
I need to do a manual boost 1.84 build to verify it fully; please let me know if this fixes the above error in your setup.
Just tested that PR and I was able build and and pass test suite. Thank you 👍 😄
I see some compile time warnings but I'll open for that separated ticket.
I ran into this same issue on archlinux with their patched boost-1.83.0-5 on 1.15.0-dev and all prior versions including 1.14.6:
To reproduce, Dockerfile
from #3471 can be used (right now):
FROM archlinux
WORKDIR /build
RUN pacman -Sy \
&& pacman --noconfirm -S git base-devel boost libevent python db
ARG GITREF=1.15.0-dev
ARG MAKEOPTS=-j8
RUN git clone https://github.com/dogecoin/dogecoin.git \
&& cd dogecoin \
&& git checkout $GITREF \
&& ./autogen.sh \
&& ./configure --without-gui --without-miniupnpc \
&& make $MAKEOPTS \
&& make check
This makes the issue broader than just boost 1.84.0 (and therefore more urgent)
Looks like build fails when gcc 15.x (available now in fedora rawhide) is used
Build fails with
```console [tkloczko@pers-jacek dogecoin-1.14.7]$ make -k Making all in src make[1]: Entering directory '/home/tkloczko/rpmbuild/BUILD/dogecoin-1.14.7/src' make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/dogecoin-1.14.7/src' /usr/bin/g++ -std=c++11 -DHAVE_CONFIG_H -I. -I../src/config -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -I. -I./obj -I/usr/include/libdb/ -pthread -I/usr/include -I./leveldb/include -I./leveldb/helpers/memenv -I./secp256k1/include -I./univalue/include -I./bench/ -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/include/db53 -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS -Wstack-protector -fstack-protector-all -fPIE -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -g -grecord-gcc-switches -pipe -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fdata-sections -ffunction-sections -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -flto=auto -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -Wall -Werror=format-security -std=c++14 -c -o bench/bench_dogecoin-bench_bitcoin.o `test -f 'bench/bench_bitcoin.cpp' || echo './'`bench/bench_bitcoin.cpp In file included from bench/bench_bitcoin.cpp:5: bench/bench.h: In constructor ‘benchmark::State::State(std::string, double)’: bench/bench.h:52:28: error: ‘numeric_limits’ is not a member of ‘std’ 52 | minTime = std::numeric_limits