POV-Ray : Newsgroups : povray.bugreports : povray 3.7.0.0 fails to build with boost 1.59.0 Server Time
31 Oct 2024 08:16:14 EDT (-0400)
  povray 3.7.0.0 fails to build with boost 1.59.0 (Message 1 to 3 of 3)  
From: Ryan Schmidt
Subject: povray 3.7.0.0 fails to build with boost 1.59.0
Date: 26 Aug 2015 23:45:01
Message: <web.55de873c89585615f28ecadc0@news.povray.org>
Hello, I'm the maintainer of povray in the MacPorts package management system.
It was just reported to us (https://trac.macports.org/ticket/48731) that povray
3.7.0.0 fails to build with boost 1.59.0. It builds fine with boost 1.58.0. Let
me know if you require any additional information.


Post a reply to this message

From: Le Forgeron
Subject: Re: povray 3.7.0.0 fails to build with boost 1.59.0
Date: 28 Aug 2015 10:29:24
Message: <55e07044$1@news.povray.org>
Le 27/08/2015 05:43, Ryan Schmidt a écrit :
> Hello, I'm the maintainer of povray in the MacPorts package management system.
> It was just reported to us (https://trac.macports.org/ticket/48731) that povray
> 3.7.0.0 fails to build with boost 1.59.0. It builds fine with boost 1.58.0. Let
> me know if you require any additional information.
>
>
Yes, such as reported error, phase of errors, compilation option, 
eventually used compiler...

So far here: "my car does not move anymore."... great but rather hard to 
know if it's a tire problem, a weather problem (due to ice on road), 
lack of gas in tank, or something else.


Post a reply to this message

From: dev random
Subject: Re: povray 3.7.0.0 fails to build with boost 1.59.0
Date: 1 Oct 2015 07:00:00
Message: <web.560d117499584381db0767e50@news.povray.org>
Le_Forgeron <lef### [at] freefr> wrote:
> Le 27/08/2015 05:43, Ryan Schmidt a écrit :
> > Hello, I'm the maintainer of povray in the MacPorts package management system.
> > It was just reported to us (https://trac.macports.org/ticket/48731) that povray
> > 3.7.0.0 fails to build with boost 1.59.0. It builds fine with boost 1.58.0. Let
> > me know if you require any additional information.
> >
> >
> Yes, such as reported error, phase of errors, compilation option,
> eventually used compiler...
>
> So far here: "my car does not move anymore."... great but rather hard to
> know if it's a tire problem, a weather problem (due to ice on road),
> lack of gas in tank, or something else.

I also had this problem when updating to the latest version of Mac OS X, but I
found out what was wrong. It was just a configuration error, and you don't have
to fix anything at all. I'll report the fix to macports.

In case your curious, It was a link-time error when linking the povray object.
The link command being used was:

/usr/bin/clang++  -pipe -Wno-multichar -Wno-write-strings -O3 -ffast-math
-march=native -pipe -Os -arch x86_64 -stdlib=libc++ -D_THREAD_SAFE
-L/opt/local/lib -L/opt/local/lib -L/opt/local/lib -L/opt/local/lib
-L/opt/local/lib -Wl,-headerpad_max_install_names -arch x86_64 -L/opt/local/lib
-L/usr/lib -o povray disp_sdl.o disp_text.o ../vfe/libvfe.a
.../source/libpovray.a -lSDL -L/opt/local/lib -lSDLmain -Wl,-framework,AppKit
-lSDL -Wl,-framework,Cocoa -lXpm  -lSM -lICE -lX11  -lIlmImf -L/opt/local/lib
-lIlmImf -lz -lImath -lHalf -lIex -lIlmThread  -lIlmThread -ltiff -ljpeg -lpng
-lz -lm  -lboost_system-mt -D_THREAD_SAFE

The linker would then complain about not finding a bunch of objects:

Undefined symbols for architecture x86_64:
  "boost::this_thread::interruption_point()", referenced from:
      bool
boost::condition_variable_any::timed_wait<boost::unique_lock<boost::mutex>
>(boost::unique_lock<boost::mutex>&, boost::xtime const&) in
libvfe.a(vfesession.o)
      void boost::condition_variable_any::wait<boost::unique_lock<boost::mutex>
>(boost::unique_lock<boost::mutex>&) in libvfe.a(vfesession.o)
      vfe::SysQNode::Receive(int*, bool) in libvfe.a(vfepovms.o)
      pov::RTRData::CompletedFrame() in libpovray.a(view.o)
      void
boost::condition_variable_any::wait<boost::unique_lock<boost::recursive_mutex>
>(boost::unique_lock<boost::recursive_mutex>&) in libpovray.a(taskqueue.o)
  "boost::this_thread::yield()", referenced from:
      vfe::vfeSession::WorkerThread() in libvfe.a(vfesession.o)
      povray_init(boost::function0<void> const&, void**) in
libpovray.a(povray.o)
      (anonymous namespace)::MainThreadFunction(boost::function0<void> const&)
in libpovray.a(povray.o)
      povray_terminate() in libpovray.a(povray.o)
      pov::View::RenderControlThread() in libpovray.a(view.o)
      pov::Scene::ParserControlThread() in libpovray.a(scene.o)
      pov::BSPProgress::operator()(unsigned int) const in
libpovray.a(boundingtask.o)
      ...
  "boost::detail::thread_data_base::~thread_data_base()", referenced from:
      boost::detail::thread_data<void (*)()>::~thread_data() in
libvfe.a(unixconsole.o)
      boost::detail::thread_data<void (*)()>::~thread_data() in
libvfe.a(unixconsole.o)

boost::detail::thread_data<vfe::vfeSession::vfeSessionWorker>::~thread_data() in
libvfe.a(vfesession.o)

boost::detail::thread_data<vfe::vfeSession::vfeSessionWorker>::~thread_data() in
libvfe.a(vfesession.o)
      boost::detail::thread_data<boost::_bi::bind_t<void, void
(*)(boost::function0<void> const&),
boost::_bi::list1<boost::_bi::value<boost::function0<void> > > >
>::thread_data(boost::_bi::bind_t<void, void (*)(boost::function0<void> const&),
boost::_bi::list1<boost::_bi::value<boost::function0<void> > > >) in
libpovray.a(povray.o)
      boost::detail::thread_data<boost::_bi::bind_t<void, void
(*)(boost::function0<void> const&),
boost::_bi::list1<boost::_bi::value<boost::function0<void> > > >
>::~thread_data() in libpovray.a(povray.o)
      boost::detail::thread_data<boost::_bi::bind_t<void, void
(*)(boost::function0<void> const&),
boost::_bi::list1<boost::_bi::value<boost::function0<void> > > >
>::~thread_data() in libpovray.a(povray.o)
      ...
  "boost::detail::get_current_thread_data()", referenced from:

boost::detail::interruption_checker::interruption_checker(_opaque_pthread_mutex_t*,
_opaque_pthread_cond_t*) in libvfe.a(vfesession.o)

boost::detail::interruption_checker::interruption_checker(_opaque_pthread_mutex_t*,
_opaque_pthread_cond_t*) in libvfe.a(vfepovms.o)

boost::detail::interruption_checker::interruption_checker(_opaque_pthread_mutex_t*,
_opaque_pthread_cond_t*) in libpovray.a(view.o)

boost::detail::interruption_checker::interruption_checker(_opaque_pthread_mutex_t*,
_opaque_pthread_cond_t*) in libpovray.a(taskqueue.o)
  "boost::thread::join_noexcept()", referenced from:
      vfe::vfeSession::Shutdown(bool) in libvfe.a(vfesession.o)
      vfe::vfeSession::Initialize(vfe::vfeDestInfo*, vfe::vfeAuthInfo*) in
libvfe.a(vfesession.o)
      povray_terminate() in libpovray.a(povray.o)
      pov::View::~View() in libpovray.a(view.o)
      pov::Scene::~Scene() in libpovray.a(scene.o)
      pov::Task::Stop() in libpovray.a(task.o)
  "boost::thread::native_handle()", referenced from:
      vfe::vfeSession::Shutdown(bool) in libvfe.a(vfesession.o)
      vfe::vfeSession::Initialize(vfe::vfeDestInfo*, vfe::vfeAuthInfo*) in
libvfe.a(vfesession.o)
      povray_terminate() in libpovray.a(povray.o)
      pov::View::~View() in libpovray.a(view.o)
      pov::Scene::~Scene() in libpovray.a(scene.o)
      pov::Task::Stop() in libpovray.a(task.o)
  "boost::thread::start_thread_noexcept()", referenced from:
      boost::thread::start_thread() in libvfe.a(unixconsole.o)
      boost::thread::start_thread() in libvfe.a(vfesession.o)
      boost::thread::start_thread() in libpovray.a(povray.o)
      boost::thread::start_thread() in libpovray.a(view.o)
      boost::thread::start_thread() in libpovray.a(scene.o)
      boost::thread::start_thread() in libpovray.a(task.o)
  "boost::thread::detach()", referenced from:
      boost::thread::~thread() in libvfe.a(unixconsole.o)
      boost::thread::~thread() in libvfe.a(vfesession.o)
      boost::thread::~thread() in libpovray.a(povray.o)
      boost::thread::~thread() in libpovray.a(view.o)
      boost::thread::~thread() in libpovray.a(scene.o)
      boost::thread::~thread() in libpovray.a(task.o)
  "typeinfo for boost::detail::thread_data_base", referenced from:
      typeinfo for boost::detail::thread_data<void (*)()> in
libvfe.a(unixconsole.o)
      typeinfo for boost::detail::thread_data<vfe::vfeSession::vfeSessionWorker>
in libvfe.a(vfesession.o)
      typeinfo for boost::detail::thread_data<boost::_bi::bind_t<void, void
(*)(boost::function0<void> const&),
boost::_bi::list1<boost::_bi::value<boost::function0<void> > > > > in
libpovray.a(povray.o)
      typeinfo for boost::detail::thread_data<boost::_bi::bind_t<void,
boost::_mfi::mf0<void, pov::View>,
boost::_bi::list1<boost::_bi::value<pov::View*> > > > in libpovray.a(view.o)
      typeinfo for boost::detail::thread_data<boost::_bi::bind_t<void,
boost::_mfi::mf0<void, pov::Scene>,
boost::_bi::list1<boost::_bi::value<pov::Scene*> > > > in libpovray.a(scene.o)
      typeinfo for boost::detail::thread_data<boost::_bi::bind_t<void,
boost::_mfi::mf1<void, pov::Task, boost::function0<void> const&>,
boost::_bi::list2<boost::_bi::value<pov::Task*>,
boost::_bi::value<boost::function0<void> > > > > in libpovray.a(task.o)
  "vtable for boost::detail::thread_data_base", referenced from:
      boost::detail::thread_data_base::thread_data_base() in
libvfe.a(unixconsole.o)
      boost::detail::thread_data_base::thread_data_base() in
libvfe.a(vfesession.o)
      boost::detail::thread_data_base::thread_data_base() in
libpovray.a(povray.o)
      boost::detail::thread_data_base::thread_data_base() in libpovray.a(view.o)
      boost::detail::thread_data_base::thread_data_base() in
libpovray.a(scene.o)
      boost::detail::thread_data_base::thread_data_base() in libpovray.a(task.o)
  NOTE: a missing vtable usually means the first non-inline virtual member
function has no definition.
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [povray] Error 1

Linking also against boost_thread-mt, i.e.

/usr/bin/clang++  -pipe -Wno-multichar -Wno-write-strings -O3 -ffast-math
-march=native -pipe -Os -arch x86_64 -stdlib=libc++ -D_THREAD_SAFE
-L/opt/local/lib -L/opt/local/lib -L/opt/local/lib -L/opt/local/lib
-L/opt/local/lib -Wl,-headerpad_max_install_names -arch x86_64 -L/opt/local/lib
-L/usr/lib -o povray disp_sdl.o disp_text.o ../vfe/libvfe.a
.../source/libpovray.a -lSDL -L/opt/local/lib -lSDLmain -Wl,-framework,AppKit
-lSDL -Wl,-framework,Cocoa -lXpm  -lSM -lICE -lX11  -lIlmImf -L/opt/local/lib
-lIlmImf -lz -lImath -lHalf -lIex -lIlmThread  -lIlmThread -ltiff -ljpeg -lpng
-lz -lm  -lboost_system-mt -lboost_thread-mt -D_THREAD_SAFE

makes it compile cleanly.


Post a reply to this message

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