On 18 October 2013 20:04, Vicente J. Botet Escriba <vicente.botet@wanadoo.fr> wrote:
Le 18/10/13 20:50, MM a écrit :

hello,

I am compiling my code with g++4.8.1 under c++11 mode, however the fedora's system provided boost thread lib has been compiled under c++98.

Linking fails because of errors like:

mainthread.cpp:(.text+0x2cf): undefined reference to `boost::thread::start_thread()'
mainthread.cpp:(.text+0xcc9): undefined reference to `boost::thread::join()'


looking at the provided shared object,
nm -C -D /usr/lib64/libboost_thread-mt.so.1.53.0 |grep start_thread


000000000000ba80 T boost::thread::start_thread_noexcept(boost::thread_attributes const&)
000000000000ba00 T boost::thread::start_thread_noexcept()

neither of which is start_thread()

I've put an entry here
https://bugzilla.redhat.com/show_bug.cgi?id=1021009

Is there a possible workaround?

Are you sure your compiling with Boost 1.53?
start_thread is defined in boost/thread/detail/thread.h lines 178-184 as

        void start_thread()
        {
          if (!start_thread_noexcept())
          {
            boost::throw_exception(thread_resource_error());
          }
        }

Indeed, this file (thread.hpp not .h) is there and has the same code at the same lines.
However /usr/lib64/libboost_thread-mt.so.1.53.0 doesn't have start_thread() symbol at all.
start_thread_noexcept() is there though.

Fedora guys said they compile with g++4.8 but with c++98, not c++11

 
Please could you check this file and the contexts of this linenes

Best,
Vicente
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users