|
|
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
|
|
|
|
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
|
|