(GCC) 4.6.3 and boost_1_47_0 lockfree issue

Hi All, I am using boost_1_47_0 and (GCC) 4.6.3. The C++ application on linux complains on the following in linking. boost_1_47_0/boost/lockfree/detail/freelist.hpp:124: undefined reference to `std::atomic<boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node>
::operator boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node>() const'
/boost_1_47_0/boost/lockfree/detail/freelist.hpp:124: undefined reference to `std::atomic<boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node>
::operator boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node>() const'
collect2: ld returned 1 exit status I looked into http://tim.klingt.org/code/projects/boost-lockfree/repository/revisions/423b... and dowloaded lockfree changed files. But the issue still exists. boost_1_47_0/boost/lockfree/detail/freelist.hpp:117: undefined reference to `std::atomic<boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node>
::compare_exchange_weak(boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node>&, boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node>, std::memory_order)'
boost_1_47_0/boost/lockfree/detail/freelist.hpp:87: undefined reference to `std::atomic<boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node>
::load(std::memory_order) const'
boost_1_47_0/boost/lockfree/detail/freelist.hpp:124: undefined reference to `std::atomic<boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node>
::operator boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node>() const'
Any idea on this ?

I think boost needs fix in lockfree / detail / freelist.hpp to compile with GCC 4.6.3 as the GCC is stricter in namespace now. I see the change where "lockfree: add new wrapper to dispatch between boost::atomic and std::atomic", the team has made classification between the previous GCC (< 4.6 version) and use std::stomic for GCC (
4.6 ). Similar fix is needed when we instantiate an atomic pointer. Precede the instantiation of atomic in "lockfree" source files with "std::" .
Please let me know if the change exists already. On Mon, May 7, 2012 at 2:39 PM, Shailja Kumari <shalja.rudra@gmail.com> wrote:
Hi All,
I am using boost_1_47_0 and (GCC) 4.6.3. The C++ application on linux complains on the following in linking.
boost_1_47_0/boost/lockfree/detail/freelist.hpp:124: undefined reference to `std::atomic<boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node>
::operator boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node>() const'
/boost_1_47_0/boost/lockfree/detail/freelist.hpp:124: undefined reference to `std::atomic<boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node>
::operator boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node>() const'
collect2: ld returned 1 exit status
I looked into http://tim.klingt.org/code/projects/boost-lockfree/repository/revisions/423b...
and dowloaded lockfree changed files. But the issue still exists.
boost_1_47_0/boost/lockfree/detail/freelist.hpp:117: undefined reference to `std::atomic<boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node>
::compare_exchange_weak(boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node>&, boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node>, std::memory_order)'
boost_1_47_0/boost/lockfree/detail/freelist.hpp:87: undefined reference to `std::atomic<boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node>
::load(std::memory_order) const'
boost_1_47_0/boost/lockfree/detail/freelist.hpp:124: undefined reference to `std::atomic<boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node>
::operator boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node>() const'
Any idea on this ?
participants (1)
-
Shailja Kumari