Boost Libraries v1.70 released

Have some feature requests, feedback, cool stuff to share, or want to know where FreeCAD is going? This is the place.
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
Post Reply
User avatar
Kunda1
Veteran
Posts: 13434
Joined: Thu Jan 05, 2017 9:03 pm

Boost Libraries v1.70 released

Post by Kunda1 »

Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
User avatar
looo
Veteran
Posts: 3941
Joined: Mon Nov 11, 2013 5:29 pm

Re: Boost Libraries v1.70 released

Post by looo »

some issues with coin3d updated to boost 1.70:
https://github.com/conda-forge/coin3d-feedstock/pull/14
User avatar
looo
Veteran
Posts: 3941
Joined: Mon Nov 11, 2013 5:29 pm

Re: Boost Libraries v1.70 released

Post by looo »

THe problem with coin was solved by using:

Code: Select all

-D Boost_NO_BOOST_CMAKE:BOOL=ON \
Now I am stuck with FreeCAD. Linux has a conda-specific problem with vtk-configuration. On windows a problem with boost-libraries is reported:
https://ci.appveyor.com/project/conda-f ... 8370#L1388

Code: Select all

Interpreter.cpp.obj : error LNK2019: unresolved external symbol "private: class boost::basic_regex<char,struct boost::regex_traits<char,class boost::w32_regex_traits<char> > > & __cdecl boost::basic_regex<char,struct boost::regex_traits<char,class boost::w32_regex_traits<char> > >::do_assign(char const *,char const *,unsigned int)" (?do_assign@?$basic_regex@DU?$regex_traits@DV?$w32_regex_traits@D@boost@@@boost@@@boost@@AEAAAEAV12@PEBD0I@Z) referenced in function "public: __cdecl boost::basic_regex<char,struct boost::regex_traits<char,class boost::w32_regex_traits<char> > >::basic_regex<char,struct boost::regex_traits<char,class boost::w32_regex_traits<char> > >(char const *,unsigned int)" (??0?$basic_regex@DU?$regex_traits@DV?$w32_regex_traits@D@boost@@@boost@@@boost@@QEAA@PEBDI@Z)
Interpreter.cpp.obj : error LNK2019: unresolved external symbol "public: bool __cdecl boost::re_detail_107000::perl_matcher<char const *,class std::allocator<struct boost::sub_match<char const *> >,struct boost::regex_traits<char,class boost::w32_regex_traits<char> > >::match(void)" (?match@?$perl_matcher@PEBDV?$allocator@U?$sub_match@PEBD@boost@@@std@@U?$regex_traits@DV?$w32_regex_traits@D@boost@@@boost@@@re_detail_107000@boost@@QEAA_NXZ) referenced in function "bool __cdecl boost::regex_match<char const *,class std::allocator<struct boost::sub_match<char const *> >,char,struct boost::regex_traits<char,class boost::w32_regex_traits<char> > >(char const *,char const *,class boost::match_results<char const *,class std::allocator<struct boost::sub_match<char const *> > > &,class boost::basic_regex<char,struct boost::regex_traits<char,class boost::w32_regex_traits<char> > > const &,enum boost::regex_constants::_match_flags)" (??$regex_match@PEBDV?$allocator@U?$sub_match@PEBD@boost@@@std@@DU?$regex_traits@DV?$w32_regex_traits@D@boost@@@boost@@@boost@@YA_NPEBD0AEAV?$match_results@PEBDV?$allocator@U?$sub_match@PEBD@boost@@@std@@@0@AEBV?$basic_regex@DU?$regex_traits@DV?$w32_regex_traits@D@boost@@@boost@@@0@W4_match_flags@regex_constants@0@@Z)
Interpreter.cpp.obj : error LNK2019: unresolved external symbol "private: void __cdecl boost::re_detail_107000::perl_matcher<char const *,class std::allocator<struct boost::sub_match<char const *> >,struct boost::regex_traits<char,class boost::w32_regex_traits<char> > >::construct_init(class boost::basic_regex<char,struct boost::regex_traits<char,class boost::w32_regex_traits<char> > > const &,enum boost::regex_constants::_match_flags)" (?construct_init@?$perl_matcher@PEBDV?$allocator@U?$sub_match@PEBD@boost@@@std@@U?$regex_traits@DV?$w32_regex_traits@D@boost@@@boost@@@re_detail_107000@boost@@AEAAXAEBV?$basic_regex@DU?$regex_traits@DV?$w32_regex_traits@D@boost@@@boost@@@3@W4_match_flags@regex_constants@3@@Z) referenced in function "bool __cdecl boost::regex_match<char const *,class std::allocator<struct boost::sub_match<char const *> >,char,struct boost::regex_traits<char,class boost::w32_regex_traits<char> > >(char const *,char const *,class boost::match_results<char const *,class std::allocator<struct boost::sub_match<char const *> > > &,class boost::basic_regex<char,struct boost::regex_traits<char,class boost::w32_regex_traits<char> > > const &,enum boost::regex_constants::_match_flags)" (??$regex_match@PEBDV?$allocator@U?$sub_match@PEBD@boost@@@std@@DU?$regex_traits@DV?$w32_regex_traits@D@boost@@@boost@@@boost@@YA_NPEBD0AEAV?$match_results@PEBDV?$allocator@U?$sub_match@PEBD@boost@@@std@@@0@AEBV?$basic_regex@DU?$regex_traits@DV?$w32_regex_traits@D@boost@@@boost@@@0@W4_match_flags@regex_constants@0@@Z)
bin\FreeCADBase.dll : fatal error LNK1120: 3 unresolved externals

edit: this build uses source for FreeCAD 0.18.2. So it's possible this is already solved in master.
User avatar
looo
Veteran
Posts: 3941
Joined: Mon Nov 11, 2013 5:29 pm

Re: Boost Libraries v1.70 released

Post by looo »

Is it possible we are not linking against boost/regex which is needed in Interpreter.cpp?
User avatar
looo
Veteran
Posts: 3941
Joined: Mon Nov 11, 2013 5:29 pm

Re: Boost Libraries v1.70 released

Post by looo »

The previous reported problem for windows was solved by using:
-D Boost_NO_BOOST_CMAKE:BOOL=ON for windows too. But now there is another problem:

Code: Select all

%PREFIX%\Library\include\boost/system/detail/system_category_win32.hpp(52): error C2039: '_snprintf': is not a member of 'std'
similar issue here:
https://github.com/boostorg/system/issues/32
User avatar
looo
Veteran
Posts: 3941
Joined: Mon Nov 11, 2013 5:29 pm

Re: Boost Libraries v1.70 released

Post by looo »

This are the relevant lines for the reported boost-error: https://github.com/boostorg/system/blob ... hpp#L29L56
User avatar
looo
Veteran
Posts: 3941
Joined: Mon Nov 11, 2013 5:29 pm

Re: Boost Libraries v1.70 released

Post by looo »

After patching vtk-cmake for linux the build works but FreeCAD fails at runtime. Maybe someone knows what the error message means:

Code: Select all


ok
libgcc_s.so.1 must be installed for pthread_cancel to work
testAsynchronPrintFromThread (BaseTests.ConsoleTestCase) ... FreeCAD 0.18, Libs: 0.18R16117 (Git)
(c) Juergen Riegel, Werner Mayer, Yorik van Havre 2001-2019
  #####                 ####  ###   ####  
  #                    #      # #   #   # 
  #     ##  #### ####  #     #   #  #   # 
  ####  # # #  # #  #  #     #####  #   # 
  #     #   #### ####  #    #     # #   # 
  #     #   #    #     #    #     # #   #  ##  ##  ##
  #     #   #### ####   ### #     # ####   ##  ##  ##

import TestFemCommon 
import TestObjectCreate 
import TestObjectType 
Call from Python thread (not synchronized): count=1
/home/conda/feedstock_root/build_artifacts/freecad_1560942319717/test_tmp/run_test.sh: line 7: 11405 Aborted                 (core dumped) FreeCADCmd -t 0
wmayer
Founder
Posts: 20319
Joined: Thu Feb 19, 2009 10:32 am
Contact:

Re: Boost Libraries v1.70 released

Post by wmayer »

/home/conda/feedstock_root/build_artifacts/freecad_1560942319717/test_tmp/run_test.sh: line 7: 11405 Aborted
One possible reason is that somewhere a Python C function is used without locking the GIL. However, there can be many other reasons for an "abort".
User avatar
looo
Veteran
Posts: 3941
Joined: Mon Nov 11, 2013 5:29 pm

Re: Boost Libraries v1.70 released

Post by looo »

I think the important information here is:

Code: Select all

libgcc_s.so.1 must be installed for pthread_cancel to work
User avatar
looo
Veteran
Posts: 3941
Joined: Mon Nov 11, 2013 5:29 pm

Re: Boost Libraries v1.70 released

Post by looo »

linux problem found: I previously added a patch to smesh which result in the reported issue. removing the patch and using sed to remove some wrong paths in the vtk-library resulted in a working smesh-freecad combination. There will be an updated smesh available soon (hopefully) [1]

Now only the windows issue has to be resolved. Somewhere in the headers of the dependencies or in freecad-source itself there must be a definition of _snprintf this somehow conflicts with std::snprintf.

[1] https://github.com/conda-forge/smesh-feedstock/pull/25
Post Reply