FS#64807 - [polymake] PLEASE ENTER SUMMARY
Attached to Project:
Community Packages
Opened by Benjamin Lorenz (benlorenz) - Wednesday, 11 December 2019, 11:57 GMT
Last edited by Antonio Rojas (arojas) - Wednesday, 11 December 2019, 13:41 GMT
Opened by Benjamin Lorenz (benlorenz) - Wednesday, 11 December 2019, 11:57 GMT
Last edited by Antonio Rojas (arojas) - Wednesday, 11 December 2019, 13:41 GMT
|
Details
Description:
polymake needs to be rebuilt against the latest normaliz version (3.8.3) since the abi changed between 3.8.1 and 3.8.2 and polymake now fails to start with a missing symbol error. Additional info: Name : polymake Version : 3.6-1 Steps to reproduce: 1) install polymake 2) run polymake $ polymake Welcome to polymake version 3.6 Copyright (c) 1997-2019 Ewgenij Gawrilow, Michael Joswig, and the polymake team Technische Universität Berlin, Germany https://polymake.org This is free software licensed under GPL; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Loading applications now...polymake: ERROR: "/usr/share/polymake/perllib/Polymake/Core/CPlusPlus.pm", line 1811: Can't load shared module /usr/lib/polymake/lib/polytope.so: undefined symbol: libnormaliz::Cone<__gmp_expr<__mpz_struct [1], __mpz_struct [1]> >::Cone(std::map<libnormaliz::Type::InputType, std::vector<std::vector<__gmp_expr<__mpz_struct [1], __mpz_struct [1]>, std::allocator<__gmp_expr<__mpz_struct [1], __mpz_struct [1]> > >, std::allocator<std::vector<__gmp_expr<__mpz_struct [1], __mpz_struct [1]>, std::allocator<__gmp_expr<__mpz_struct [1], __mpz_struct [1]> > > > >, std::less<libnormaliz::Type::InputType>, std::allocator<std::pair<libnormaliz::Type::InputType const, std::vector<std::vector<__gmp_expr<__mpz_struct [1], __mpz_struct [1]>, std::allocator<__gmp_expr<__mpz_struct [1], __mpz_struct [1]> > >, std::allocator<std::vector<__gmp_expr<__mpz_struct [1], __mpz_struct [1]>, std::allocator<__gmp_expr<__mpz_struct [1], __mpz_struct [1]> > > > > > > > const&) polymake builds and tests without any errors with normaliz 3.8.3. The reason is that a few constructors were changed from fixed types to templates and thus the symbols are not in the library anymore but will be instantiated during the polymake build: https://github.com/Normaliz/Normaliz/commit/1dc1942422cbef47c7f5c67f1fa225da74baa06d#diff-34f056e434d911e381fec1aebb1c9e0e |
This task depends upon
Closed by Antonio Rojas (arojas)
Wednesday, 11 December 2019, 13:41 GMT
Reason for closing: Fixed
Additional comments about closing: polymake 3.6-2
Wednesday, 11 December 2019, 13:41 GMT
Reason for closing: Fixed
Additional comments about closing: polymake 3.6-2
> bundled extension libnormaliz ... ok (3.8.3 @ /home/lorenz/software/prefixes/normaliz-3.8.3)
My custom normaliz build was without e-antic support.
The configure ('./configure --with-libnormaliz=/usr') check with the package fails with the following in build/bundled.log:
> /tmp/ccUg8Knh.o:polymake_20688_configure.cc:function renf_elem_class::~renf_elem_class(): error: undefined reference to 'renf_elem_clear'
and this is coming from the e-antic / number-field stuff from normaliz.
A workaround would be to add 'LIBS=-leantic' to the configure command for polymake (or add this in a few places in bundled/libnormaliz/support/configure.pl).
I will think about how to do this properly as we need to support both variants and there is no pkg-config or similar for normaliz.