Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#700 closed bug (not a bug)

circular link dependency : libpolys and kernel

Reported by: marco.atzeri@… Owned by: somebody
Priority: dontKnow Milestone: 4-1-0 and higher
Component: singular-libs Version: 4-0-1
Keywords: Cc:

Description (last modified by Oleksandr )

building 4.0.1p2 for cygwin (addding all the needed -no-undefined) I am blocked by a circular dependecy at link stage:

libpolys requires kernel (sca_bba defined in kernel/GBEngine/sca.cc) but kernel requires libpolys.

$ grep -rH sca_bba
kernel/GBEngine/nc.h:        gb = sca_bba; // sca_gr_bba???
kernel/GBEngine/sca.cc:ideal sca_bba (const ideal F, const ideal Q, const intvec */*w*/, const intvec * /*hilb*/, kStrategy strat, const ring _currRing)
kernel/GBEngine/sca.cc:  PrintS("\n\n<sca_bba>\n\n");
kernel/GBEngine/sca.cc:  PrintS("\n\n</sca_bba>\n\n");
libpolys/polys/nc/gb_hack.h:ideal sca_bba(const ideal, const ideal, const intvec *, const intvec *, kStrategy, const ring _currRing);
libpolys/polys/nc/gb_hack.h:D(ideal sca_bba(const ideal, const ideal, const intvec *, const intvec *, kStrategy, const ring _currRing))
libpolys/polys/nc/sca.cc:    rGR->GetNC()->p_Procs.GB          = cast_A_to_vptr(sca_bba); // sca_gr_bba?

Change History (4)

comment:1 Changed 9 years ago by Oleksandr

Resolution: not a bug
Status: newclosed

this is not a bug (see http://singular-team.blogspot.de/2012/02/hacking-circular-dependency-away.html) one can easily build Singular under cgwin AFAIK.

your problem is probably due to your configure options or environment... please specify them if you need assistance.

comment:2 Changed 9 years ago by Oleksandr

Description: modified (diff)
Priority: criticaldontKnow

comment:3 Changed 9 years ago by Marco Atzeri <marco.atzeri@…>

I used the same config as reported in the current cygwin package documentation singular-base-3.1.6.README (the package is substantially orphaned as no further version were built and a 64 bit version was never provided)

./configure --without-MP --without-dl --disable-doc --disable-Texi2html --disable-Texinfo --disable-dl

The trick reported on the blog is NOT of clear execution, and it seems NOT implemented in the current build system.

For me (as experienced cygwin package maintainer) a circular dependency is a software bug, as make linking problematic on several platforms.

comment:4 Changed 9 years ago by Oleksandr

Singular and its build system have been refactored but unfortunately not to the very end. We may continue the refactoring later on since corrently Singular can be built on all our testing machines.

We will try to reproduce your problem (on cygwin, since i failed to reproduce the trouble on my Linux). Which Windows, cygwin, NTL, Flint, GMP, cddlib do you use? 32 or 64 bit?

Please use the following strongly recommend (due to extensive changes in our build system) configure arguments:

--without-python --enable-gfanlib --with-builtinmodules=syzextra,gfanlib --with-gmp=/usr --with-ntl=/usr --with-flint=/usr

for shared build also add : --disable-static --enable-shared --with-pic for static: --enable-static --disable-shared --without-pic

ps: NTL 6.2.1 and currently latest Flint & GMP & cddlib are required (in /usr) for complete build.

Last edited 9 years ago by Oleksandr (previous) (diff)
Note: See TracTickets for help on using tickets.