Opened 2 years ago

Closed 12 months ago

#65060 closed defect (fixed)

blender: Undefined boost symbols

Reported by: srasku (Stephen Rasku) Owned by: jasonliu-- (Jason Liu)
Priority: Normal Milestone:
Component: ports Version: 2.7.2
Keywords: Cc:
Port: blender

Description

I'm getting the following

:info:build ld: warning: dylib (/opt/local/lib/libosdCPU.dylib) was built for newer macOS version (11.2) than being linked (11.0)
:info:build ld: warning: dylib (/opt/local/lib/libosdGPU.dylib) was built for newer macOS version (11.2) than being linked (11.0)
:info:build ld: warning: dylib (/opt/local/lib/libembree3.dylib) was built for newer macOS version (11.2) than being linked (11.0)
:info:build ld: warning: dylib (/opt/local/lib/opencollada/libOpenCOLLADAStreamWriter.dylib) was built for newer macOS version (11.2) than being linked (11.0)
:info:build ld: warning: dylib (/opt/local/lib/opencollada/libOpenCOLLADAFramework.dylib) was built for newer macOS version (11.2) than being linked (11.0)
:info:build ld: warning: dylib (/opt/local/lib/opencollada/libOpenCOLLADABaseUtils.dylib) was built for newer macOS version (11.2) than being linked (11.0)
:info:build ld: warning: dylib (/opt/local/lib/opencollada/libGeneratedSaxParser.dylib) was built for newer macOS version (11.2) than being linked (11.0)
:info:build ld: warning: dylib (/opt/local/lib/opencollada/libOpenCOLLADASaxFrameworkLoader.dylib) was built for newer macOS version (11.2) than being linked (11.0)
:info:build ld: warning: dylib (/opt/local/lib/opencollada/libMathMLSolver.dylib) was built for newer macOS version (11.2) than being linked (11.0)
:info:build ld: warning: dylib (/opt/local/lib/opencollada/libbuffer.dylib) was built for newer macOS version (11.2) than being linked (11.0)
:info:build ld: warning: dylib (/opt/local/lib/opencollada/libftoa.dylib) was built for newer macOS version (11.2) than being linked (11.0)
:info:build ld: warning: dylib (/opt/local/lib/opencollada/libUTF.dylib) was built for newer macOS version (11.2) than being linked (11.0)
:info:build ld: warning: dylib (/opt/local/lib/opencollada/libpcre.dylib) was built for newer macOS version (11.2) than being linked (11.0)
:info:build Undefined symbols for architecture x86_64:
:info:build   "boost::locale::base_message_format<char>::id", referenced from:
:info:build       _bl_locale_set in libbf_intern_locale.a(boost_locale_wrapper.cpp.o)
:info:build   "boost::locale::localization_backend_manager::global(boost::locale::localization_backend_manager const&)", referenced from:
:info:build       _bl_locale_init in libbf_intern_locale.a(boost_locale_wrapper.cpp.o)
:info:build   "boost::locale::localization_backend_manager::global()", referenced from:
:info:build       _bl_locale_init in libbf_intern_locale.a(boost_locale_wrapper.cpp.o)
:info:build   "boost::locale::localization_backend_manager::select(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned int)", referenced from:
:info:build       _bl_locale_init in libbf_intern_locale.a(boost_locale_wrapper.cpp.o)
:info:build   "boost::locale::localization_backend_manager::~localization_backend_manager()", referenced from:
:info:build       _bl_locale_init in libbf_intern_locale.a(boost_locale_wrapper.cpp.o)
:info:build   "boost::locale::info::id", referenced from:
:info:build       _bl_locale_set in libbf_intern_locale.a(boost_locale_wrapper.cpp.o)
:info:build   "boost::locale::generator::add_messages_path(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
:info:build       _bl_locale_set in libbf_intern_locale.a(boost_locale_wrapper.cpp.o)
:info:build   "boost::locale::generator::add_messages_domain(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
:info:build       _bl_locale_set in libbf_intern_locale.a(boost_locale_wrapper.cpp.o)
:info:build   "boost::locale::generator::generator()", referenced from:
:info:build       _bl_locale_set in libbf_intern_locale.a(boost_locale_wrapper.cpp.o)
:info:build   "boost::locale::generator::~generator()", referenced from:
:info:build       _bl_locale_set in libbf_intern_locale.a(boost_locale_wrapper.cpp.o)
:info:build   "boost::python::throw_error_already_set()", referenced from:
:info:build       _object* boost::python::api::object_initializer_impl<false, false>::get<float>(float const&, std::__1::integral_constant<bool, false>) in libbf_usd.a(usd_capi.cc.o)
:info:build       _object* boost::python::api::object_initializer_impl<false, false>::get<bool>(bool const&, std::__1::integral_constant<bool, false>) in libbf_usd.a(usd_writer_mesh.cc.o)
:info:build   "boost::python::converter::detail::arg_to_python_base::arg_to_python_base(void const volatile*, boost::python::converter::registration const&)", referenced from:
:info:build       _object* boost::python::api::object_initializer_impl<false, false>::get<pxrInternal_v0_20__pxrReserved__::TfToken>(pxrInternal_v0_20__pxrReserved__::TfToken const&, std::__1::integral_constant<bool, false>) in libbf_usd.a(usd_capi.cc.o)
:info:build       _object* boost::python::api::object_initializer_impl<false, false>::get<pxrInternal_v0_20__pxrReserved__::TfToken>(pxrInternal_v0_20__pxrReserved__::TfToken const&, std::__1::integral_constant<bool, false>) in libbf_usd.a(usd_writer_hair.cc.o)
:info:build       _object* boost::python::api::object_initializer_impl<false, false>::get<pxrInternal_v0_20__pxrReserved__::VtArray<pxrInternal_v0_20__pxrReserved__::GfVec3f> >(pxrInternal_v0_20__pxrReserved__::VtArray<pxrInternal_v0_20__pxrReserved__::GfVec3f> const&, std::__1::integral_constant<bool, false>) in libbf_usd.a(usd_writer_hair.cc.o)
:info:build       _object* boost::python::api::object_initializer_impl<false, false>::get<pxrInternal_v0_20__pxrReserved__::VtArray<int> >(pxrInternal_v0_20__pxrReserved__::VtArray<int> const&, std::__1::integral_constant<bool, false>) in libbf_usd.a(usd_writer_hair.cc.o)
:info:build       _object* boost::python::api::object_initializer_impl<false, false>::get<pxrInternal_v0_20__pxrReserved__::VtArray<pxrInternal_v0_20__pxrReserved__::GfVec2f> >(pxrInternal_v0_20__pxrReserved__::VtArray<pxrInternal_v0_20__pxrReserved__::GfVec2f> const&, std::__1::integral_constant<bool, false>) in libbf_usd.a(usd_writer_mesh.cc.o)
:info:build       _object* boost::python::api::object_initializer_impl<false, false>::get<pxrInternal_v0_20__pxrReserved__::VtArray<pxrInternal_v0_20__pxrReserved__::GfVec3f> >(pxrInternal_v0_20__pxrReserved__::VtArray<pxrInternal_v0_20__pxrReserved__::GfVec3f> const&, std::__1::integral_constant<bool, false>) in libbf_usd.a(usd_writer_mesh.cc.o)
:info:build       _object* boost::python::api::object_initializer_impl<false, false>::get<pxrInternal_v0_20__pxrReserved__::VtArray<int> >(pxrInternal_v0_20__pxrReserved__::VtArray<int> const&, std::__1::integral_constant<bool, false>) in libbf_usd.a(usd_writer_mesh.cc.o)
:info:build       ...
:info:build   "boost::python::converter::registry::lookup(boost::python::type_info)", referenced from:
:info:build       ___cxx_global_var_init.15 in libbf_usd.a(usd_capi.cc.o)
:info:build       ___cxx_global_var_init.3 in libbf_usd.a(usd_hierarchy_iterator.cc.o)
:info:build       ___cxx_global_var_init.4 in libbf_usd.a(usd_hierarchy_iterator.cc.o)
:info:build       ___cxx_global_var_init.7 in libbf_usd.a(usd_writer_hair.cc.o)
:info:build       ___cxx_global_var_init.8 in libbf_usd.a(usd_writer_hair.cc.o)
:info:build       ___cxx_global_var_init.9 in libbf_usd.a(usd_writer_hair.cc.o)
:info:build       ___cxx_global_var_init.10 in libbf_usd.a(usd_writer_hair.cc.o)
:info:build       ...
:info:build   "boost::locale::generator::generate(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const", referenced from:
:info:build       _bl_locale_set in libbf_intern_locale.a(boost_locale_wrapper.cpp.o)
:info:build ld: symbol(s) not found for architecture x86_64
:info:build clang: error: linker command failed with exit code 1 (use -v to see invocation)

Attachments (1)

main.log.gz (632.8 KB) - added by srasku (Stephen Rasku) 2 years ago.
main.log of Blender install

Download all attachments as: .zip

Change History (4)

Changed 2 years ago by srasku (Stephen Rasku)

Attachment: main.log.gz added

main.log of Blender install

comment:1 in reply to:  description ; Changed 2 years ago by ryandesign (Ryan Carsten Schmidt)

Owner: set to jasonliu--
Port: blender added
Status: newassigned
Summary: Undefined boost symbols when installing blenderblender: Undefined boost symbols
Version: 2.7.2

Replying to srasku:

:info:build ld: warning: dylib (...) was built for newer macOS version (11.2) than being linked (11.0)

This is probably not a problem. If it is, it can be solved by increasing the revision of the ports that provide those libraries to rebuild them, or updating them to a newer version if one is available. It occurred because those libraries were built on macOS 11.2 by MacPorts 2.6.4 which did not fully support macOS versions greater than 11.0.x. That problem was fixed in MacPorts 2.7.0.

:info:build Undefined symbols for architecture x86_64:
:info:build   "boost::locale::base_message_format<char>::id", referenced from:
:info:build       _bl_locale_set in libbf_intern_locale.a(boost_locale_wrapper.cpp.o)

These are certainly problems. I don't see any -lboost... or /opt/local/lib/libboost....dylib in the log so maybe that just needs to be added in the right places. Surely this port must've worked before and I'm not sure what broke since then, but my hunch would be the migration to the boost portgroup and multiple separate boost ports. Maybe this port needs additional changes for that to work properly.

comment:2 in reply to:  1 Changed 2 years ago by jasonliu-- (Jason Liu)

Replying to ryandesign:

Replying to srasku:

:info:build ld: warning: dylib (...) was built for newer macOS version (11.2) than being linked (11.0)

This is probably not a problem. If it is, it can be solved by increasing the revision of the ports that provide those libraries to rebuild them, or updating them to a newer version if one is available. It occurred because those libraries were built on macOS 11.2 by MacPorts 2.6.4 which did not fully support macOS versions greater than 11.0.x. That problem was fixed in MacPorts 2.7.0.

:info:build Undefined symbols for architecture x86_64:
:info:build   "boost::locale::base_message_format<char>::id", referenced from:
:info:build       _bl_locale_set in libbf_intern_locale.a(boost_locale_wrapper.cpp.o)

These are certainly problems. I don't see any -lboost... or /opt/local/lib/libboost....dylib in the log so maybe that just needs to be added in the right places. Surely this port must've worked before and I'm not sure what broke since then, but my hunch would be the migration to the boost portgroup and multiple separate boost ports. Maybe this port needs additional changes for that to work properly.

If you follow the "referenced from" messages all the way down the chain until the end, the undefined symbols error appears to be related to usd_writer_hair.cc, usd_hierarchy_iterator.cc, etc., which #include portions of the USD library, which is one of Blender's dependencies. The USD port was also migrated to the boost portgroup at the same time as Blender, and as far as I can tell, the USD port is still functioning fine? I'll do some testing to see whether I can reproduce and troubleshoot the error on my local machine.

If the other warnings can be resolved by a simple revbump, I'll take care of those after working on the undefined symbols error, since that one prevents building.

comment:3 Changed 12 months ago by catap (Kirill A. Korinsky)

Resolution: fixed
Status: assignedclosed

In f7e2c9f5b472d4d849cb25dcbf0945e88f172909/macports-ports (master):

blender: update to 2.93.17; fix build with python3.11

Closes: #65060

Note: See TracTickets for help on using tickets.