I don't have access to my build machine right now ... but have you tried 
explicitly setting the boost libraries to the *.a libs in the makefile?

MY_CMAKE_FLAGS +=-DBoost_INCLUDE_DIRS=<path/include>
MY_CMAKE_FLAGS +=-DBoost_LIBRARY_DIRS=<path/lib>
MY_CMAKE_FLAGS +=-DBoost_LIBRARIES=libboost_filesystem.a,libboost_regex.a

... or something to that effect.


On Friday, August 8, 2014 1:04 PM, Chad Dombrova <[email protected]> wrote:



hello good people,
I know this is a bad time to email with siggraph and all,
but I’ll give it a go and send a reminder if it lingers for awhile.
I’m building a static oiio lib, but it does not include certain symbols from 
the static libraries that it links against.  the upshot is that when I build 
something else that links against my libOpenImageIO.a, I end up with undefined 
symbol errors on load unless I also link against the libs that provide those 
symbols: boost_filesystem, boost_regex, Iex, IlmImf, IlmThread, Half, and a 
handful of others.
I’m pretty sure that those symbols are supposed to be in libOpenImageIO.a (i 
checked an old build of 0.10 and confirmed that it does have the symbols)
here’s an example symbol that’s missing from oiio:
chad$ nm oiio/lib/libOpenImageIO.a | grep 
_ZN5boost9re_detail19raise_runtime_errorERKSt13runtime_error U 
_ZN5boost9re_detail19raise_runtime_errorERKSt13runtime_error U 
_ZN5boost9re_detail19raise_runtime_errorERKSt13runtime_error U 
_ZN5boost9re_detail19raise_runtime_errorERKSt13runtime_error 
and here it is alive and well in boost:
chad$ nm boost/lib/libboost_regex.a | grep 
_ZN5boost9re_detail19raise_runtime_errorERKSt13runtime_error U 
_ZN5boost9re_detail19raise_runtime_errorERKSt13runtime_error U 
_ZN5boost9re_detail19raise_runtime_errorERKSt13runtime_error U 
_ZN5boost9re_detail19raise_runtime_errorERKSt13runtime_error U 
_ZN5boost9re_detail19raise_runtime_errorERKSt13runtime_error
0000000000000440 T _ZN5boost9re_detail19raise_runtime_errorERKSt13runtime_error 
U _ZN5boost9re_detail19raise_runtime_errorERKSt13runtime_error U 
_ZN5boost9re_detail19raise_runtime_errorERKSt13runtime_error 
I have this problem with both oiio 1.2.1+boost-1.47 and 1.4.12+boost-1.50.
Here’s how I’m building (options placed on separate lines for clarity)
make -j8 BUILDSTATIC=1 LINKSTATIC=1 ILMBASE_HOME=${ILMBASE_ROOT} 
OPENEXR_HOME=${OPENEXR_ROOT} BOOST_HOME=${BOOST_ROOT} USE_PYTHON=1 
PYTHON_VERSION=${PYTHON_MAJOR_VERSION}.${PYTHON_MINOR_VERSION} USE_OPENCV=0 
STOP_ON_WARNING=0
make install 
There are only static libraries in ${BOOST_ROOT}.
I’m using gcc-4.1.2
any ideas about what could be wrong?
these are the symbols that are missing from boost:
_ZN5boost6thread12start_threadEv
_ZN5boost11this_thread18interruption_pointEv
_ZN5boost6detail12get_tss_dataEPKv
_ZN5boost6detail23get_current_thread_dataEv
_ZN5boost10filesystem4path27m_erase_redundant_separatorEm
_ZN5boost10filesystem4path17replace_extensionERKS1_
_ZN5boost13match_resultsIN9__gnu_cxx17__normal_iteratorIPKcSsEESaINS_9sub_matchIS5_EEEE12maybe_assignERKS9_
_ZN5boost6system16generic_categoryEv
_ZN5boost6thread20hardware_concurrencyEv
_ZN5boost10filesystem6detail13dir_itr_closeERPvS3_
_ZN5boost10filesystem6detail19temp_directory_pathEPNS_6system10error_codeE
_ZN5boost11this_thread20disable_interruptionD1Ev
_ZN5boost9re_detail14verify_optionsEjNS_15regex_constants12_match_flagsE
_ZN5boost9re_detail27cpp_regex_traits_char_layerIcE4initEv
_ZN5boost10filesystem6detail6removeERKNS0_4pathEPNS_6system10error_codeE
_ZN5boost11regex_errorD1Ev
_ZN5boost6detail16thread_data_baseD2Ev
_ZN5boost10filesystem6detail15last_write_timeERKNS0_4pathElPNS_6system10error_codeE
_ZN5boost24scoped_static_mutex_lockC1ERNS_12static_mutexEb
_ZN5boost9re_detail11raw_storage6insertEmm
_ZN5boost9re_detail11raw_storage6resizeEm
_ZN5boost10filesystem6detail4copyERKNS0_4pathES4_PNS_6system10error_codeE
_ZN5boost10filesystem6detail15last_write_timeERKNS0_4pathEPNS_6system10error_codeE
_ZN5boost11regex_errorC1ERKSsNS_15regex_constants10error_typeEl
_ZN5boost10filesystem6detail16create_directoryERKNS0_4pathEPNS_6system10error_codeE
_ZN5boost10filesystem6detail28directory_iterator_constructERNS0_18directory_iteratorERKNS0_4pathEPNS_6system10error_codeE
_ZN5boost11this_thread20disable_interruptionC1Ev
_ZN5boost6detail12set_tss_dataEPKvNS_10shared_ptrINS0_20tss_cleanup_functionEEEPvb
_ZN5boost9re_detail19raise_runtime_errorERKSt13runtime_error
_ZN5boost10filesystem6detail10remove_allERKNS0_4pathEPNS_6system10error_codeE
_ZN5boost24scoped_static_mutex_lockD1Ev
_ZN5boost10filesystem6detail11unique_pathERKNS0_4pathEPNS_6system10error_codeE
_ZN5boost10filesystem6detail28directory_iterator_incrementERNS0_18directory_iteratorEPNS_6system10error_codeE
_ZN5boost6thread4joinEv
_ZN5boost10filesystem4path7codecvtEv
_ZN5boost11basic_regexIcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE9do_assignEPKcS7_j
_ZN5boost9re_detail13put_mem_blockEPv
_ZN5boost6system15system_categoryEv
_ZN5boost10filesystem4path28m_append_separator_if_neededEv
_ZN5boost9re_detail12perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcSsEESaINS_9sub_matchIS6_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE14construct_initERKNS_11basic_regexIcSD_EENS_15regex_constants12_match_flagsE
_ZN5boost9re_detail24get_default_error_stringENS_15regex_constants10error_typeE
_ZN5boost6thread6detachEv
_ZN5boost9re_detail31cpp_regex_traits_implementationIcE4initEv
_ZN5boost9re_detail13get_mem_blockEv
_ZN5boost10filesystem6detail6statusERKNS0_4pathEPNS_6system10error_codeE 
I think my next step will be to try with gcc 4.8, but before I go down that 
road I want to make sure that there’s not a known issue or something obvious 
I’m doing wrong.
thanks!
chad.
​
_______________________________________________
Oiio-dev mailing list
[email protected]
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
_______________________________________________
Oiio-dev mailing list
[email protected]
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

Reply via email to