Page 1 of 1

polymake 4.7 fails to compile on FreeBSD i386

Posted: 03 Oct 2022, 16:51
by Philipp
polymake 4.7 fails to compile on FreeBSD 13.1-Release i386; to be more specific: it fails to compile in a jail when testing the FreeBSD port with `poudriere testport`.

The error is the following:

Code: Select all

[798/944] c++ -c -o /wrkdirs/usr/ports/math/polymake/work/polymake-4.7/build/Opt/apps/topaz/grass_plucker_impl.o -MMD -MT /wrkdirs/usr/ports/math/polymake/work/polymake-4.7/build/Opt/apps/topaz/grass_plucker_impl.o -MF /wrkdirs/usr/ports/math/polymake/work/polymake-4.7/build/Opt/apps/topaz/grass_plucker_impl.o.d -fPIC -pipe -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -stdlib=libc++ -std=c++14 -Wno-logical-op-parentheses -Wno-shift-op-parentheses -Wno-mismatched-tags -Wno-unused-local-typedef -Wno-error=unneeded-internal-declaration -Wshadow -Wconversion -Wno-sign-conversion -Wzero-as-null-pointer-constant -fopenmp -I/usr/local/include -I/usr/local/lib -I/usr/local/include -DPOLYMAKE_WITH_FLINT -DPOLYMAKE_DEBUG=0 -DNDEBUG -O3 -DPOLYMAKE_APPNAME=topaz -DPOLYMAKE_DEFINITION_SOURCE_FILE="grass_plucker_impl.cc" -I/wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/app-wrappers -I/wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/apps -I/wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/external/TOSimplex -I/wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/external/Miniball -I/wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/core-wrappers -I/wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/core /wrkdirs/usr/ports/math/polymake/work/polymake-4.7/apps/topaz/src/grass_plucker_impl.cc && : 'COMPILER_USED=13.0.0' FAILED: /wrkdirs/usr/ports/math/polymake/work/polymake-4.7/build/Opt/apps/topaz/grass_plucker_impl.o c++ -c -o /wrkdirs/usr/ports/math/polymake/work/polymake-4.7/build/Opt/apps/topaz/grass_plucker_impl.o -MMD -MT /wrkdirs/usr/ports/math/polymake/work/polymake-4.7/build/Opt/apps/topaz/grass_plucker_impl.o -MF /wrkdirs/usr/ports/math/polymake/work/polymake-4.7/build/Opt/apps/topaz/grass_plucker_impl.o.d -fPIC -pipe -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -stdlib=libc++ -std=c++14 -Wno-logical-op-parentheses -Wno-shift-op-parentheses -Wno-mismatched-tags -Wno-unused-local-typedef -Wno-error=unneeded-internal-declaration -Wshadow -Wconversion -Wno-sign-conversion -Wzero-as-null-pointer-constant -fopenmp -I/usr/local/include -I/usr/local/lib -I/usr/local/include -DPOLYMAKE_WITH_FLINT -DPOLYMAKE_DEBUG=0 -DNDEBUG -O3 -DPOLYMAKE_APPNAME=topaz -DPOLYMAKE_DEFINITION_SOURCE_FILE="grass_plucker_impl.cc" -I/wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/app-wrappers -I/wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/apps -I/wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/external/TOSimplex -I/wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/external/Miniball -I/wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/core-wrappers -I/wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/core /wrkdirs/usr/ports/math/polymake/work/polymake-4.7/apps/topaz/src/grass_plucker_impl.cc && : 'COMPILER_USED=13.0.0' In file included from /wrkdirs/usr/ports/math/polymake/work/polymake-4.7/apps/topaz/src/grass_plucker_impl.cc:18: /wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/apps/polymake/topaz/grass_plucker.h:137:61: warning: shift count >= width of type [-Wshift-count-overflow] bool is_cube_index() const { return CubeIndex(value_) >= first_cube_index; } ^~~~~~~~~~~~~~~~ /wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/apps/polymake/topaz/grass_plucker.h:126:44: note: expanded from macro 'first_cube_index' #define first_cube_index (CubeIndex(Int(1) << (2*max_n_vertices))) ^ ~~~~~~~~~~~~~~~~~~ /wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/apps/polymake/topaz/grass_plucker.h:142:33: warning: shift count >= width of type [-Wshift-count-overflow] return CubeIndex(value_ - first_cube_index); ^~~~~~~~~~~~~~~~ /wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/apps/polymake/topaz/grass_plucker.h:126:44: note: expanded from macro 'first_cube_index' #define first_cube_index (CubeIndex(Int(1) << (2*max_n_vertices))) ^ ~~~~~~~~~~~~~~~~~~ /wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/apps/polymake/topaz/grass_plucker.h:282:19: warning: shift count >= width of type [-Wshift-count-overflow] if (store > first_cube_index) ^~~~~~~~~~~~~~~~ /wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/apps/polymake/topaz/grass_plucker.h:126:44: note: expanded from macro 'first_cube_index' #define first_cube_index (CubeIndex(Int(1) << (2*max_n_vertices))) ^ ~~~~~~~~~~~~~~~~~~ /wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/apps/polymake/topaz/grass_plucker.h:898:15: error: constexpr variable 'low_bitmask' must be initialized by a constant expression constexpr Int low_bitmask ( (Int(1) << max_n_vertices) - 1); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/apps/polymake/topaz/grass_plucker.h:898:56: note: value -2147483649 is outside the range of representable values of type 'long' constexpr Int low_bitmask ( (Int(1) << max_n_vertices) - 1); ^ /wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/apps/polymake/topaz/grass_plucker.h:899:15: error: constexpr variable 'high_bitmask' must be initialized by a constant expression constexpr Int high_bitmask( low_bitmask << max_n_vertices); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/apps/polymake/topaz/grass_plucker.h:899:29: note: initializer of 'low_bitmask' is not a constant expression constexpr Int high_bitmask( low_bitmask << max_n_vertices); ^ /wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/apps/polymake/topaz/grass_plucker.h:898:15: note: declared here constexpr Int low_bitmask ( (Int(1) << max_n_vertices) - 1); ^ /wrkdirs/usr/ports/math/polymake/work/polymake-4.7/apps/topaz/src/grass_plucker_impl.cc:902:15: warning: shift count >= width of type [-Wshift-count-overflow] if (n < first_cube_index) { ^~~~~~~~~~~~~~~~ /wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/apps/polymake/topaz/grass_plucker.h:126:44: note: expanded from macro 'first_cube_index' #define first_cube_index (CubeIndex(Int(1) << (2*max_n_vertices))) ^ ~~~~~~~~~~~~~~~~~~ 4 warnings and 2 errors generated. [799/944] c++ -c -o /wrkdirs/usr/ports/math/polymake/work/polymake-4.7/build/Opt/apps/topaz/gkz_computation.o -MMD -MT /wrkdirs/usr/ports/math/polymake/work/polymake-4.7/build/Opt/apps/topaz/gkz_computation.o -MF /wrkdirs/usr/ports/math/polymake/work/polymake-4.7/build/Opt/apps/topaz/gkz_computation.o.d -fPIC -pipe -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -stdlib=libc++ -std=c++14 -Wno-logical-op-parentheses -Wno-shift-op-parentheses -Wno-mismatched-tags -Wno-unused-local-typedef -Wno-error=unneeded-internal-declaration -Wshadow -Wconversion -Wno-sign-conversion -Wzero-as-null-pointer-constant -fopenmp -I/usr/local/include -I/usr/local/lib -I/usr/local/include -DPOLYMAKE_WITH_FLINT -DPOLYMAKE_DEBUG=0 -DNDEBUG -O3 -DPOLYMAKE_APPNAME=topaz -DPOLYMAKE_DEFINITION_SOURCE_FILE="gkz_computation.cc" -I/wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/app-wrappers -I/wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/apps -I/wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/external/TOSimplex -I/wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/external/Miniball -I/wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/core-wrappers -I/wrkdirs/usr/ports/math/polymake/work/polymake-4.7/include/core /wrkdirs/usr/ports/math/polymake/work/polymake-4.7/apps/topaz/src/gkz_computation.cc && : 'COMPILER_USED=13.0.0' ninja: build stopped: subcommand failed. gmake[1]: *** [Makefile:35: all] Error 1 gmake[1]: Leaving directory '/wrkdirs/usr/ports/math/polymake/work/polymake-4.7' ===> Compilation failed unexpectedly. Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to the maintainer. *** Error code 1 Stop. make: stopped in /usr/ports/math/polymake build of math/polymake | polymake-4.7 ended at Sat Oct 1 18:12:30 CEST 2022 build time: 00:57:17 !!! build failure encountered !!!

These are the configure arguments:

Code: Select all

--CONFIGURE_ARGS-- --prefix=/usr/local --exec-prefix=/usr/local --bindir=/usr/local/bin --includedir=/usr/local/include --libdir=/usr/local/lib --libexecdir=/usr/local/libexec/polymake --datadir=/usr/local/share/polymake --docdir=/usr/local/share/doc/polymake --without-prereq --with-libcxx --with-cdd=/usr/local --with-flint=/usr/local --with-permlib=/usr/local/lib --without-java --without-javaview --without-sympol --with-bliss=/usr/local --without-lrs --without-native --without-nauty --with-libnormaliz=/usr/local --with-ppl=/usr/local --without-scip --with-singular=/usr/local --without-soplex --End CONFIGURE_ARGS--

The complete logfile is attached (BTW: why are xz-compressed files not supported?).

[edit]
The patch to the FreeBSD ports tree is available here: https://bugs.freebsd.org/bugzilla/show_ ... ?id=266792
[/edit]

Re: polymake 4.7 fails to compile on FreeBSD i386

Posted: 03 Oct 2022, 20:36
by blorenz
Hi,

sorry about that error, due to the limited address space, both for compilation and for actual computations, 32bit platforms are not covered by our CI.
Please try the patch I posted here on github, this will be included in the next release.

Best,
Benjamin

Re: polymake 4.7 fails to compile on FreeBSD i386

Posted: 03 Oct 2022, 23:41
by Philipp
Hi Benjamin,

thank you very much for the hint. This indeed fixes the issue. I updated my patch for the ports tree accordingly.

Best
Philipp