I’m trying to compile a project that makes use of boost::lockfree::queue on a Raspberry Pi 2 running Jessie.
I built version 1.60 of Boost myself (apt-get was out of date) with sudo ./bjam install. I’m not cross-compiling.
When I attempt to compile a project that uses the boost library I get the error listed below (where boostreader.cpp is the file written by me). I found a patch suggested two years ago here (
https://svn.boost.org/trac/boost/ticket/9041) but the changes in that patch seem to have already applied in 1.60, so I’m at a loss as to what to do.
Assistance would be greatly appreciated.
Alexander Simpson
Error message:
In function `boost::lockfree::detail::freelist_stack<boost::lockfree::queue<int, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_>::node, std::allocator<boost::lockfree::queue<int, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_>::node> >::~freelist_stack()':
main.cpp:(.text._ZN5boost8lockfree6detail14freelist_stackINS0_5queueIiNS_9parameter5void_ES5_S5_E4nodeESaIS7_EED2Ev[_ZN5boost8lockfree6detail14freelist_stackINS0_5queueIiNS_9parameter5void_ES5_S5_E4nodeESaIS7_EED5Ev]+0x18): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::scoped_lock(void const volatile*)'
main.cpp:(.text._ZN5boost8lockfree6detail14freelist_stackINS0_5queueIiNS_9parameter5void_ES5_S5_E4nodeESaIS7_EED2Ev[_ZN5boost8lockfree6detail14freelist_stackINS0_5queueIiNS_9parameter5void_ES5_S5_E4nodeESaIS7_EED5Ev]+0x24): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::~scoped_lock()'
main.o: In function `boost::lockfree::queue<int, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_>::queue(unsigned int)':
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_EC2Ej[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_EC5Ej]+0x6c): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::scoped_lock(void const volatile*)'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_EC2Ej[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_EC5Ej]+0x78): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::~scoped_lock()'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_EC2Ej[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_EC5Ej]+0xb0): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::scoped_lock(void const volatile*)'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_EC2Ej[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_EC5Ej]+0xbc): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::~scoped_lock()'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_EC2Ej[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_EC5Ej]+0xd8): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::scoped_lock(void const volatile*)'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_EC2Ej[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_EC5Ej]+0xe4): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::~scoped_lock()'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_EC2Ej[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_EC5Ej]+0x148): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::scoped_lock(void const volatile*)'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_EC2Ej[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_EC5Ej]+0x170): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::~scoped_lock()'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_EC2Ej[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_EC5Ej]+0x1ec): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::scoped_lock(void const volatile*)'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_EC2Ej[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_EC5Ej]+0x1f8): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::~scoped_lock()'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_EC2Ej[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_EC5Ej]+0x224): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::scoped_lock(void const volatile*)'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_EC2Ej[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_EC5Ej]+0x230): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::~scoped_lock()'
main.o: In function `boost::lockfree::queue<int, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_>::~queue()':
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED2Ev[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED5Ev]+0x58): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::scoped_lock(void const volatile*)'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED2Ev[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED5Ev]+0x64): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::~scoped_lock()'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED2Ev[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED5Ev]+0x90): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::scoped_lock(void const volatile*)'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED2Ev[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED5Ev]+0x9c): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::~scoped_lock()'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED2Ev[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED5Ev]+0xc8): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::scoped_lock(void const volatile*)'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED2Ev[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED5Ev]+0xd4): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::~scoped_lock()'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED2Ev[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED5Ev]+0x128): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::scoped_lock(void const volatile*)'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED2Ev[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED5Ev]+0x134): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::~scoped_lock()'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED2Ev[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED5Ev]+0x164): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::scoped_lock(void const volatile*)'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED2Ev[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED5Ev]+0x170): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::~scoped_lock()'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED2Ev[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED5Ev]+0x180): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::scoped_lock(void const volatile*)'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED2Ev[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED5Ev]+0x18c): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::~scoped_lock()'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED2Ev[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED5Ev]+0x1c8): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::scoped_lock(void const volatile*)'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED2Ev[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED5Ev]+0x1d4): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::~scoped_lock()'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED2Ev[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED5Ev]+0x1e8): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::scoped_lock(void const volatile*)'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED2Ev[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED5Ev]+0x1f4): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::~scoped_lock()'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED2Ev[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED5Ev]+0x218): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::scoped_lock(void const volatile*)'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED2Ev[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED5Ev]+0x224): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::~scoped_lock()'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED2Ev[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED5Ev]+0x260): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::scoped_lock(void const volatile*)'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED2Ev[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED5Ev]+0x26c): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::~scoped_lock()'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED2Ev[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED5Ev]+0x278): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::scoped_lock(void const volatile*)'
main.cpp:(.text._ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED2Ev[_ZN5boost8lockfree5queueIiNS_9parameter5void_ES3_S3_ED5Ev]+0x284): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::~scoped_lock()'
boostreader.o: In function `BoostReader::run()':
boostreader.cpp:(.text+0x84): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::scoped_lock(void const volatile*)'
boostreader.cpp:(.text+0x90): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::~scoped_lock()'
boostreader.cpp:(.text+0xb8): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::scoped_lock(void const volatile*)'
boostreader.cpp:(.text+0xc4): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::~scoped_lock()'
boostreader.cpp:(.text+0xf0): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::scoped_lock(void const volatile*)'
boostreader.cpp:(.text+0xfc): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::~scoped_lock()'
boostreader.cpp:(.text+0x11c): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::scoped_lock(void const volatile*)'
boostreader.cpp:(.text+0x128): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::~scoped_lock()'
boostreader.cpp:(.text+0x1ac): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::scoped_lock(void const volatile*)'
boostreader.cpp:(.text+0x1dc): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::~scoped_lock()'
boostreader.cpp:(.text+0x204): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::scoped_lock(void const volatile*)'
boostreader.cpp:(.text+0x210): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::~scoped_lock()'
boostreader.cpp:(.text+0x264): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::scoped_lock(void const volatile*)'
boostreader.cpp:(.text+0x288): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::~scoped_lock()'
boostreader.cpp:(.text+0x438): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::scoped_lock(void const volatile*)'
boostreader.cpp:(.text+0x454): undefined reference to `boost::atomics::detail::lockpool::scoped_lock::~scoped_lock()'