bitcoin: Missing Boost::System on ARM Ubuntu 18.04

Following the Ubuntu instructions on an Orange Pi Plus 2e running Ubuntu Bionic (Armbian):

sudo apt-get install build-essential libtool autotools-dev automake pkg-config bsdmainutils python3 ccache
sudo apt-get install libssl-dev libevent-dev libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev
./autogen.sh 
./configure --disable-wallet --without-gui --disable-tests --disable-bench
...
checking for boostlib >= 1.47.0 (104700)... yes
checking whether the Boost::System library is available... yes
configure: error: Could not find a version of the Boost::System library!
Linux orangepiplus2e 4.19.57-sunxi #5.90 SMP Fri Jul 5 17:58:43 CEST 2019 armv7l armv7l armv7l GNU/Linux

As suggested on Stack Overflow, adding --with-boost-libdir=/usr/lib/arm-linux-gnueabihf works around the issue. But ideally ./configure should figure this out.

I’ve installed Bitcoin Core on the same type of device before, also using Armbian, though this was over a year ago. I did not need the workaround back then.

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 17 (17 by maintainers)

Commits related to this issue

Most upvoted comments

My guess is this was broken in #15461 when the boost_base.m4 was updated, but our libsubdirs patch was dropped. I will get our patch upstreamed then pull the latest macro down.

Tested https://github.com/autoconf-archive/autoconf-archive/pull/214 on ODROID-HC1 (ARMv7l + Ubuntu 18.04.4): it works both with GCC 7.5.0 and Clang 6.0.0 compilers.

Therefore, I’d suggest to drop https://github.com/autoconf-archive/autoconf-archive/pull/198 in favor of https://github.com/autoconf-archive/autoconf-archive/pull/214, and apply changes in master before 0.20 branch off.

If no objections, going to replace #18501 accordingly.

It does look like the upstreaming is taking longer than expected. I don’t think it’s good to hold up rc1 on this, so going to push the fix to 0.19.0 only—master can wait for upstreaming.

My guess is this was broken in #15461 when the boost_base.m4 was updated, but our libsubdirs patch was dropped.

The patch itself: 54c7df81f3e5f81cb91646acaf82074a3a6be3b2 from #4704.

@Sjors

Ah excellent, I broke it 😃

This is not your fault 😉

Try this patch:

diff --git a/build-aux/m4/ax_boost_base.m4 b/build-aux/m4/ax_boost_base.m4
index 16fa69b41..65a6379bd 100644
--- a/build-aux/m4/ax_boost_base.m4
+++ b/build-aux/m4/ax_boost_base.m4
@@ -123,6 +123,7 @@ AC_DEFUN([_AX_BOOST_BASE_RUNDETECT],[
     dnl are almost assuredly the ones desired.
     AS_CASE([${host_cpu}],
       [i?86],[multiarch_libsubdir="lib/i386-${host_os}"],
+      [armv7l],[multiarch_libsubdir="lib/arm-linux-gnueabihf"],
       [multiarch_libsubdir="lib/${host_cpu}-${host_os}"]
     )