Boost logo

Boost Users :

Subject: Re: [Boost-users] (GCC) 4.6.3 and boost_1_47_0 lockfree issue
From: Shailja Kumari (shalja.rudra_at_[hidden])
Date: 2012-05-14 10:46:06


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_at_[hidden]> 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/423be9f76bf96230b55ac00d84450f5349c483fb/show/boost
>
> 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 ?


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net