This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/53899] New: [C++0x] undefined reference to std::atomic<boost::lockfree::detail::tagged_ptr...
- From: "nnelson at infowest dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 09 Jul 2012 13:35:18 +0000
- Subject: [Bug c++/53899] New: [C++0x] undefined reference to std::atomic<boost::lockfree::detail::tagged_ptr...
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53899
Bug #: 53899
Summary: [C++0x] undefined reference to
std::atomic<boost::lockfree::detail::tagged_ptr...
Classification: Unclassified
Product: gcc
Version: 4.6.3
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: nnelson@infowest.com
Thank you for your constantly used GCC compiler.
boost lockfree and boost atomic have been accepted by boost and should shortly
be in the boost distribution. The current programs are available at
http://tim.klingt.org/boost_lockfree.tar.gz
The following program when compiled and executed from libs/lockfree/test
(including the other required boost distribution components), a folder in the
prior gz, will work OK using
g++ bench_3.cpp -o bench_3
but gives errors of the following kind when using
g++ -std=c++0x bench_3.cpp -o bench_3
undefined reference to
`std::atomic<boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::fifo<long,
boost::lockfree::caching_freelist_t, std::allocator<long> >::node>
>::load(std::memory_order) const'
undefined reference to
`std::atomic<boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::fifo<long,
boost::lockfree::caching_freelist_t, std::allocator<long> >::node>
>::compare_exchange_weak(boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::fifo<long,
boost::lockfree::caching_freelist_t, std::allocator<long> >::node>&,
boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::fifo<long,
boost::lockfree::caching_freelist_t, std::allocator<long> >::node>,
std::memory_order)'
undefined reference to
`std::atomic<boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::fifo<long,
boost::lockfree::caching_freelist_t, std::allocator<long> >::node>
>::store(boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::fifo<long,
boost::lockfree::caching_freelist_t, std::allocator<long> >::node>,
std::memory_order)'
This item may be along the line given in
Bug 49445 [C++0x] Undefined reference to std::atomic<float> "operator float"
Thank you.
Neil
----------------
// bench_3.cpp
#include "../../../boost/lockfree/fifo.hpp"
int elements = 100;
int iterations = 50;
#define FIFO \
boost::lockfree::fifo<long> f(elements);
#define FIFO_FULL \
boost::lockfree::fifo<long> f(elements); \
for (int i = 0; i != elements; ++i) \
f.enqueue_unsafe(i); \
__attribute__ ((noinline))
__attribute__ ((flatten))
void test_fifo_push(void)
{
FIFO
for (int i = 0; i != elements; ++i)
f.enqueue(i);
}
__attribute__ ((noinline))
__attribute__ ((flatten))
void test_fifo_pop(void)
{
FIFO_FULL
long out;
for (int i = 0; i != elements; ++i)
f.dequeue(out);
}
int main()
{
for (int i = 0; i != iterations; ++i)
test_fifo_push();
for (int i = 0; i != iterations; ++i)
test_fifo_pop();
}