Opened 21 months ago

Last modified 2 weeks ago

#28703 new defect

pynormaliz fails to build on Cygwin

Reported by: embray Owned by:
Priority: major Milestone: sage-9.5
Component: porting: Cygwin Keywords:
Cc: jipilab, mkoeppe, vdelecroix, Winfried, gh-sebasguts Merged in:
Authors: Reviewers:
Report Upstream: Reported upstream. No feedback yet. Work issues:
Branch: Commit:
Dependencies: #28803 Stopgaps:

Status badges

Description

When linking the PyNormaliz_cpp.dll module, there is a long spew of errors mostly in two classes that look like:

g++ -shared -Wl,--enable-auto-image-base -L/home/embray/src/sagemath/sage/local/lib -Wl,-rpath,/home/embray/src/sagemath/sage/local/lib -L/home/embray/src/sagemath/sage/local/lib -Wl,-rpath,/home/embray/src/sagemath/sage/local/lib build/temp.cygwin-3.0.7-x86_64-2.7/NormalizModule.o -L/home/embray/src/sagemath/sage/local/lib/python2.7/config -L/home/embray/src/sagemath/sage/local/lib -lnormaliz -lgmp -lflint -larb -leanticxx -lpython2.7 -o build/lib.cygwin-3.0.7-x86_64-2.7/PyNormaliz_cpp.dll
...
build/temp.cygwin-3.0.7-x86_64-2.7/NormalizModule.o: In function `renf_elem_class::renf_elem_class(renf_class&)':
/home/embray/src/sagemath/sage/local/include/e-antic/renfxx.h:649: undefined reference to `renf_elem_init'
/home/embray/src/sagemath/sage/local/include/e-antic/renfxx.h:649:(.text+0x2a21): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `renf_elem_init'
...
/home/embray/src/sagemath/sage/local/lib/libnormaliz.a(other_algorithms.o): In function `libnormaliz::DescentFace<__gmp_expr<__mpz_struct [1], __mpz_struct [1]> >::compute(libnormaliz::DescentSystem<__gmp_expr<__mpz_struct [1], __mpz_struct [1]> >&, unsigned long, boost::dynamic_bitset<unsigned long, std::allocator<unsigned long> > const&, std::vector<unsigned int, std::allocator<unsigned int> >&, std::vector<boost::dynamic_bitset<unsigned long, std::allocator<unsigned long> >, std::allocator<boost::dynamic_bitset<unsigned long, std::allocator<unsigned long> > > >&, std::vector<unsigned int, std::allocator<unsigned int> >&, std::vector<__gmp_expr<__mpz_struct [1], __mpz_struct [1]>, std::allocator<__gmp_expr<__mpz_struct [1], __mpz_struct [1]> > >&, unsigned int&) [clone ._omp_fn.42]':
...
/home/embray/src/sagemath/sage/local/var/tmp/sage/build/normaliz-3.7.2/src/source/./libnormaliz/descent.cpp:397: undefined reference to `omp_get_num_threads'

There basically seem to be two broad classes of problems here; one is linking with its library dependencies, either eantic or libnormaliz, or both. Another seems to be with functions that require OpenMP.

It seems libnormaliz is compiled with -fopenmp by default, but since pynormaliz isn't, this breaks.

Change History (10)

comment:1 Changed 21 months ago by jipilab

  • Cc jipilab mkoeppe vdelecroix Winfried gh-sebasguts added
  • Report Upstream changed from N/A to Reported upstream. No feedback yet.

comment:2 Changed 21 months ago by embray

I don't think an upstream issue for this needed to be reported. I don't think it's an issue with pynormaliz so much as how it's being built in Sage. I think it used to work, in fact. It might have broken as part of #27444

comment:3 Changed 19 months ago by embray

  • Milestone changed from sage-9.0 to sage-9.1

Ticket retargeted after milestone closed

comment:4 Changed 16 months ago by mkoeppe

  • Component changed from packages: optional to porting: Cygwin

comment:5 Changed 15 months ago by mkoeppe

comment:6 Changed 15 months ago by mkoeppe

  • Milestone changed from sage-9.1 to sage-9.2

comment:7 Changed 15 months ago by mkoeppe

  • Dependencies set to #28803

comment:8 Changed 9 months ago by mkoeppe

  • Milestone changed from sage-9.2 to sage-9.3

comment:9 Changed 4 months ago by mkoeppe

  • Milestone changed from sage-9.3 to sage-9.4

Sage development has entered the release candidate phase for 9.3. Setting a new milestone for this ticket based on a cursory review.

comment:10 Changed 2 weeks ago by mkoeppe

  • Milestone changed from sage-9.4 to sage-9.5
Note: See TracTickets for help on using tickets.