POV-Ray : Newsgroups : povray.unix : build error, undefined reference to `boost::this_thread::yield() Server Time
28 Mar 2024 06:30:30 EDT (-0400)
  build error, undefined reference to `boost::this_thread::yield() (Message 1 to 3 of 3)  
From: skippy
Subject: build error, undefined reference to `boost::this_thread::yield()
Date: 23 May 2014 13:45:01
Message: <web.537f886098b2c26769944c250@news.povray.org>
Using PovRay sources version 3.7.0 on:
 Ubuntu 14.04 LTS, kernel 3.13.0-24-generic

Other package info:
 Package: libboost-dev
 Version: 1.54.0.1ubuntu1

 Package: zlib1g-dev
 Version: 1:1.2.8.dfsg-1ubuntu1

 Package: libpng12-dev
 Version: 1.2.50-1ubuntu2

 Package: libjpeg8-dev
 Version: 8c-2ubuntu8

 Package: libtiff5-dev
 Version: 4.0.3-7ubuntu0.1

 Package: libopenexr-dev
 Version: 1.6.1-7ubuntu1

After starting 'make test', the following was displayed:

 undefined reference to `typeinfo for boost::detail::thread_data_base'
.../source/libpovray.a(tokenize.o): In function `pov::Parser::Get_Token()':
tokenize.cpp:(.text+0x2471): undefined reference to
`boost::this_thread::yield()'
.../source/libpovray.a(photonestimationtask.o): In function
`pov::Task::Cooperate()':
photonestimationtask.cpp:(.text._ZN3pov4Task9CooperateEv[_ZN3pov4Task9CooperateEv]+0x19):
undefined reference to `boost::this_thread::yield()'
collect2: error: ld returned 1 exit status
make[2]: *** [povray] Error 1
make[2]: Leaving directory

Haven't tried any older versions of source. Is that the only solution?


Post a reply to this message

From: Le Forgeron
Subject: Re: build error, undefined reference to `boost::this_thread::yield()
Date: 23 May 2014 15:13:24
Message: <537f9dd4$1@news.povray.org>
Le 23/05/2014 19:41, skippy nous fit lire :
> Using PovRay sources version 3.7.0 on:
>  Ubuntu 14.04 LTS, kernel 3.13.0-24-generic
> 
> Other package info:
>  Package: libboost-dev
>  Version: 1.54.0.1ubuntu1
> 
>  Package: zlib1g-dev
>  Version: 1:1.2.8.dfsg-1ubuntu1
> 
>  Package: libpng12-dev
>  Version: 1.2.50-1ubuntu2
> 
>  Package: libjpeg8-dev
>  Version: 8c-2ubuntu8
> 
>  Package: libtiff5-dev
>  Version: 4.0.3-7ubuntu0.1
> 
>  Package: libopenexr-dev
>  Version: 1.6.1-7ubuntu1
> 
> After starting 'make test', the following was displayed:
> 
>  undefined reference to `typeinfo for boost::detail::thread_data_base'
> .../source/libpovray.a(tokenize.o): In function `pov::Parser::Get_Token()':
> tokenize.cpp:(.text+0x2471): undefined reference to
> `boost::this_thread::yield()'
> .../source/libpovray.a(photonestimationtask.o): In function
> `pov::Task::Cooperate()':
>
photonestimationtask.cpp:(.text._ZN3pov4Task9CooperateEv[_ZN3pov4Task9CooperateEv]+0x19):
> undefined reference to `boost::this_thread::yield()'
> collect2: error: ld returned 1 exit status
> make[2]: *** [povray] Error 1
> make[2]: Leaving directory
> 
> Haven't tried any older versions of source. Is that the only solution?
> 
> 

Ubuntu 14.04 needs :
 $ ./configure .... LIBS="-lboost_system"

Good luck... I'm even surprised you passed the compilation.

(and yield should be in libboost_thread ... )

result of "ldd povray" (on my system)


        linux-vdso.so.1 =>  (0x00007fffbc3fe000)
        libSDL-1.2.so.0 => /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0
(0x00007ff07b739000)
        libSM.so.6 => /usr/lib/x86_64-linux-gnu/libSM.so.6
(0x00007ff07b531000)
        libICE.so.6 => /usr/lib/x86_64-linux-gnu/libICE.so.6
(0x00007ff07b314000)
        libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6
(0x00007ff07afdf000)
        libIlmImf.so.6 => /usr/lib/x86_64-linux-gnu/libIlmImf.so.6
(0x00007ff07ad30000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007ff07ab16000)
        libImath.so.6 => /usr/lib/x86_64-linux-gnu/libImath.so.6
(0x00007ff07a910000)
        libHalf.so.6 => /usr/lib/x86_64-linux-gnu/libHalf.so.6
(0x00007ff07a6cd000)
        libIex.so.6 => /usr/lib/x86_64-linux-gnu/libIex.so.6
(0x00007ff07a4ae000)
        libIlmThread.so.6 => /usr/lib/x86_64-linux-gnu/libIlmThread.so.6
(0x00007ff07a2a8000)
        libtiff.so.5 => /usr/lib/x86_64-linux-gnu/libtiff.so.5
(0x00007ff07a036000)
        libjpeg.so.8 => /usr/lib/x86_64-linux-gnu/libjpeg.so.8
(0x00007ff079de0000)
        libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0
(0x00007ff079bba000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007ff0799b2000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007ff0796ab000)
        libboost_system.so.1.54.0 =>
/usr/lib/x86_64-linux-gnu/libboost_system.so.1.54.0 (0x00007ff0794a7000)
        libboost_thread.so.1.54.0 =>
/usr/lib/x86_64-linux-gnu/libboost_thread.so.1.54.0 (0x00007ff079291000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
(0x00007ff078f8c000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1
(0x00007ff078d76000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
(0x00007ff078b58000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff078791000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ff07858d000)
        libasound.so.2 => /usr/lib/x86_64-linux-gnu/libasound.so.2
(0x00007ff07829d000)
        libpulse-simple.so.0 =>
/usr/lib/x86_64-linux-gnu/libpulse-simple.so.0 (0x00007ff078098000)
        libpulse.so.0 => /usr/lib/x86_64-linux-gnu/libpulse.so.0
(0x00007ff077e4f000)
        libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6
(0x00007ff077c3d000)
        libcaca.so.0 => /usr/lib/x86_64-linux-gnu/libcaca.so.0
(0x00007ff07796f000)
        libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1
(0x00007ff07776a000)
        libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1
(0x00007ff07754b000)
        liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5
(0x00007ff077328000)
        libjbig.so.0 => /usr/lib/x86_64-linux-gnu/libjbig.so.0
(0x00007ff07711a000)
        /lib64/ld-linux-x86-64.so.2 (0x00007ff07ba0a000)
        libpulsecommon-4.0.so =>
/usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-4.0.so
(0x00007ff076eb2000)
        libjson-c.so.2 => /lib/x86_64-linux-gnu/libjson-c.so.2
(0x00007ff076ca8000)
        libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3
(0x00007ff076a62000)
        libslang.so.2 => /lib/x86_64-linux-gnu/libslang.so.2
(0x00007ff0766d2000)
        libncursesw.so.5 => /lib/x86_64-linux-gnu/libncursesw.so.5
(0x00007ff07649e000)
        libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5
(0x00007ff076274000)
        libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6
(0x00007ff076070000)
        libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6
(0x00007ff075e6a000)
        libwrap.so.0 => /lib/x86_64-linux-gnu/libwrap.so.0
(0x00007ff075c5f000)
        libsndfile.so.1 => /usr/lib/x86_64-linux-gnu/libsndfile.so.1
(0x00007ff0759f7000)
        libasyncns.so.0 => /usr/lib/x86_64-linux-gnu/libasyncns.so.0
(0x00007ff0757f1000)
        libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1
(0x00007ff0755d6000)
        libFLAC.so.8 => /usr/lib/x86_64-linux-gnu/libFLAC.so.8
(0x00007ff0753a5000)
        libvorbisenc.so.2 => /usr/lib/x86_64-linux-gnu/libvorbisenc.so.2
(0x00007ff074ed5000)
        libvorbis.so.0 => /usr/lib/x86_64-linux-gnu/libvorbis.so.0
(0x00007ff074ca8000)
        libogg.so.0 => /usr/lib/x86_64-linux-gnu/libogg.so.0
(0x00007ff074a9f000)
        libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2
(0x00007ff074883000)


Post a reply to this message

From: skippy
Subject: Re: build error, undefined reference to `boost::this_thread::yield()
Date: 23 May 2014 19:55:00
Message: <web.537fde92bcab68d969944c250@news.povray.org>
Le_Forgeron <jgr### [at] freefr> wrote:
> Le 23/05/2014 19:41, skippy nous fit lire :
> > Using PovRay sources version 3.7.0 on:
> >  Ubuntu 14.04 LTS, kernel 3.13.0-24-generic
> >
> > Other package info:
> >  Package: libboost-dev
> >  Version: 1.54.0.1ubuntu1
> >
> >  Package: zlib1g-dev
> >  Version: 1:1.2.8.dfsg-1ubuntu1
> >
> >  Package: libpng12-dev
> >  Version: 1.2.50-1ubuntu2
> >
> >  Package: libjpeg8-dev
> >  Version: 8c-2ubuntu8
> >
> >  Package: libtiff5-dev
> >  Version: 4.0.3-7ubuntu0.1
> >
> >  Package: libopenexr-dev
> >  Version: 1.6.1-7ubuntu1
> >
> > After starting 'make test', the following was displayed:
> >
> >  undefined reference to `typeinfo for boost::detail::thread_data_base'
> > .../source/libpovray.a(tokenize.o): In function `pov::Parser::Get_Token()':
> > tokenize.cpp:(.text+0x2471): undefined reference to
> > `boost::this_thread::yield()'
> > .../source/libpovray.a(photonestimationtask.o): In function
> > `pov::Task::Cooperate()':
> >
photonestimationtask.cpp:(.text._ZN3pov4Task9CooperateEv[_ZN3pov4Task9CooperateEv]+0x19):
> > undefined reference to `boost::this_thread::yield()'
> > collect2: error: ld returned 1 exit status
> > make[2]: *** [povray] Error 1
> > make[2]: Leaving directory
> >
> > Haven't tried any older versions of source. Is that the only solution?
> >
> >
>
> Ubuntu 14.04 needs :
>  $ ./configure .... LIBS="-lboost_system"
>
> Good luck... I'm even surprised you passed the compilation.
>
> (and yield should be in libboost_thread ... )
>
> result of "ldd povray" (on my system)
>
>
>         linux-vdso.so.1 =>  (0x00007fffbc3fe000)
>         libSDL-1.2.so.0 => /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0
> (0x00007ff07b739000)
>         libSM.so.6 => /usr/lib/x86_64-linux-gnu/libSM.so.6
> (0x00007ff07b531000)
>         libICE.so.6 => /usr/lib/x86_64-linux-gnu/libICE.so.6
> (0x00007ff07b314000)
>         libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6
> (0x00007ff07afdf000)
>         libIlmImf.so.6 => /usr/lib/x86_64-linux-gnu/libIlmImf.so.6
> (0x00007ff07ad30000)
>         libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007ff07ab16000)
>         libImath.so.6 => /usr/lib/x86_64-linux-gnu/libImath.so.6
> (0x00007ff07a910000)
>         libHalf.so.6 => /usr/lib/x86_64-linux-gnu/libHalf.so.6
> (0x00007ff07a6cd000)
>         libIex.so.6 => /usr/lib/x86_64-linux-gnu/libIex.so.6
> (0x00007ff07a4ae000)
>         libIlmThread.so.6 => /usr/lib/x86_64-linux-gnu/libIlmThread.so.6
> (0x00007ff07a2a8000)
>         libtiff.so.5 => /usr/lib/x86_64-linux-gnu/libtiff.so.5
> (0x00007ff07a036000)
>         libjpeg.so.8 => /usr/lib/x86_64-linux-gnu/libjpeg.so.8
> (0x00007ff079de0000)
>         libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0
> (0x00007ff079bba000)
>         librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007ff0799b2000)
>         libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007ff0796ab000)
>         libboost_system.so.1.54.0 =>
> /usr/lib/x86_64-linux-gnu/libboost_system.so.1.54.0 (0x00007ff0794a7000)
>         libboost_thread.so.1.54.0 =>
> /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.54.0 (0x00007ff079291000)
>         libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
> (0x00007ff078f8c000)
>         libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1
> (0x00007ff078d76000)
>         libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
> (0x00007ff078b58000)
>         libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff078791000)
>         libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ff07858d000)
>         libasound.so.2 => /usr/lib/x86_64-linux-gnu/libasound.so.2
> (0x00007ff07829d000)
>         libpulse-simple.so.0 =>
> /usr/lib/x86_64-linux-gnu/libpulse-simple.so.0 (0x00007ff078098000)
>         libpulse.so.0 => /usr/lib/x86_64-linux-gnu/libpulse.so.0
> (0x00007ff077e4f000)
>         libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6
> (0x00007ff077c3d000)
>         libcaca.so.0 => /usr/lib/x86_64-linux-gnu/libcaca.so.0
> (0x00007ff07796f000)
>         libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1
> (0x00007ff07776a000)
>         libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1
> (0x00007ff07754b000)
>         liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5
> (0x00007ff077328000)
>         libjbig.so.0 => /usr/lib/x86_64-linux-gnu/libjbig.so.0
> (0x00007ff07711a000)
>         /lib64/ld-linux-x86-64.so.2 (0x00007ff07ba0a000)
>         libpulsecommon-4.0.so =>
> /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-4.0.so
> (0x00007ff076eb2000)
>         libjson-c.so.2 => /lib/x86_64-linux-gnu/libjson-c.so.2
> (0x00007ff076ca8000)
>         libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3
> (0x00007ff076a62000)
>         libslang.so.2 => /lib/x86_64-linux-gnu/libslang.so.2
> (0x00007ff0766d2000)
>         libncursesw.so.5 => /lib/x86_64-linux-gnu/libncursesw.so.5
> (0x00007ff07649e000)
>         libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5
> (0x00007ff076274000)
>         libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6
> (0x00007ff076070000)
>         libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6
> (0x00007ff075e6a000)
>         libwrap.so.0 => /lib/x86_64-linux-gnu/libwrap.so.0
> (0x00007ff075c5f000)
>         libsndfile.so.1 => /usr/lib/x86_64-linux-gnu/libsndfile.so.1
> (0x00007ff0759f7000)
>         libasyncns.so.0 => /usr/lib/x86_64-linux-gnu/libasyncns.so.0
> (0x00007ff0757f1000)
>         libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1
> (0x00007ff0755d6000)
>         libFLAC.so.8 => /usr/lib/x86_64-linux-gnu/libFLAC.so.8
> (0x00007ff0753a5000)
>         libvorbisenc.so.2 => /usr/lib/x86_64-linux-gnu/libvorbisenc.so.2
> (0x00007ff074ed5000)
>         libvorbis.so.0 => /usr/lib/x86_64-linux-gnu/libvorbis.so.0
> (0x00007ff074ca8000)
>         libogg.so.0 => /usr/lib/x86_64-linux-gnu/libogg.so.0
> (0x00007ff074a9f000)
>         libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2
> (0x00007ff074883000)

I should have searched the output further up - to where the compilation first
erred (Duh!). This is where the problem started:

g++  -pipe -Wno-multichar -Wno-write-strings -fno-enforce-eh-specs -s -O3
-ffast-math -march=native -pthread  -L/usr/lib  -L/usr/lib -o povray disp_sdl.o
disp_text.o ../vfe/libvfe.a ../source/libpovray.a -lSM -lICE -lX11  -lIlmImf
-pthread -lIlmImf -lz -lImath -lHalf -lIex -lIlmThread   -lIlmThread -ltiff
-ljpeg -lpng -lz -lrt -lm   -pthread  -lboost_system
.../vfe/libvfe.a(unixconsole.o): In function `boost::detail::thread_data<void
(*)()>::~thread_data()':
unixconsole.cpp:(.text._ZN5boost6detail11thread_dataIPFvvEED2Ev[_ZN5boost6detail11thread_dataIPFvvEED5Ev]+0x8):
undefined reference to `boost::detail::thread_data_base::~thread_data_base()'

"-lboost_system" was already in the command.

Google/StackOverflow to the rescue:
   -install libboost-thread-dev and libevent-pthreads-2.0-5

But still had the problem. So then used configure with "LIBS="-lboost_thread"

At this point, 'make check' finally worked!

So you were close! Thanks for the help.


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.