diff options
5 files changed, 17 insertions, 439 deletions
diff --git a/pkgs/applications/science/math/singular/default.nix b/pkgs/applications/science/math/singular/default.nix index b543252e87121..23712061160e4 100644 --- a/pkgs/applications/science/math/singular/default.nix +++ b/pkgs/applications/science/math/singular/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchFromGitHub, gmp, bison, perl, ncurses, readline, coreutils, pkg-config , lib -, fetchpatch , autoreconfHook +, buildPackages , sharutils , file , flint @@ -11,6 +11,7 @@ , lrcalc , doxygen , graphviz +, latex2html # upstream generates docs with texinfo 4. later versions of texinfo # use letters instead of numbers for post-appendix chapters, and we # want it to match the upstream format because sage depends on it. @@ -22,66 +23,25 @@ stdenv.mkDerivation rec { pname = "singular"; - version = "4.2.0p2"; + version = "4.3.0"; - # since the tarball does not contain tests or documentation (and - # there is no separate tests tarball for 4.2.0), we fetch from - # GitHub. + # since the tarball does not contain tests, we fetch from GitHub. src = fetchFromGitHub { owner = "Singular"; repo = "Singular"; - # 4.2.0p2 is not tagged, but the tarball matches the commit below. - rev = "6f68939ddf612d96e3caaaaa8275f77613ac1da8"; - sha256 = "sha256-BJNzYylzDqD/5YjzjxPRb/c96tYiuGy9Y+A7qf3ZSG8="; - - # if a release is tagged it will be in the format below. - # rev = "Release${lib.replaceStrings ["."] ["-"] version}"; + # if a release is tagged (which sometimes does not happen), it will + # be in the format below. + # rev = "Release-${lib.replaceStrings ["."] ["-"] version}"; + rev = "d895b0f1f543c61eb03adddad20f08655a419d4e"; + sha256 = "sha256-c5Qr6VUuPKjfw8fowjJJz3oGAyUwo/K0WeMvU5djzVA="; # the repository's .gitattributes file contains the lines "/Tst/ # export-ignore" and "/doc/ export-ignore" so some directories are - # not included in the tarball downloaded by fetchzip. setting - # fetchSubmodules works around this by using fetchgit instead of - # fetchzip. - fetchSubmodules = true; + # not included in the tarball downloaded by fetchzip. + forceFetchGit = true; }; - patches = [ - # fix timeouts when docbuilding with >= 64 cpus - # https://github.com/Singular/Singular/issues/1117 - ./vspace-MAX_PROCESS.patch - - # add aarch64 support to cpu-check.m4. copied from redhat. - ./redhat-aarch64.patch - - # the newest version of ax-prog-cc-for-build.m4 seems to trigger - # linker errors. see - # https://github.com/alsa-project/alsa-firmware/issues/3 for a - # related issue. - ./use-older-ax-prog-cc-for-build.patch - - # https://github.com/Singular/Singular/issues/1086 - (fetchpatch { - name = "schubert-lib-fails-with-too-many-cpus.patch"; - url = "https://github.com/Singular/Singular/commit/3cda50c00a849455efa2502e56596955491a353a.patch"; - sha256 = "sha256-fgYd+2vT32w5Ki8kKx6PfZn2e4QSJcYWOwEFXtc+lSA="; - }) - ] ++ lib.optionals enableDocs [ - # singular supports building without 4ti2, bertini, normaliz or - # topcom just fine, but the docbuilding does not skip manual pages - # tagged as depending on those binaries (probably a bug in - # doc2tex.pl::HandleLib, since it seems to ignore "-exclude" - # argumens). skip them manually. - ./disable-docs-for-optional-unpackaged-deps.patch - - # fix some non-ascii characters in doc/decodegb.doc - (fetchpatch { - name = "decodegb-ascii.patch"; - url = "https://github.com/Singular/Singular/commit/36966d9009de572ee4dbc487f3e5744098fe91be.patch"; - sha256 = "sha256-9WcEov/oOQRC584ag6WVHFwY2aCjbM75HWyvZoEwppw="; - }) - ]; - configureFlags = [ "--with-ntl=${ntl}" "--disable-pyobject-module" @@ -114,6 +74,7 @@ stdenv.mkDerivation rec { ] ++ lib.optionals enableGfanlib [ cddlib ]; + nativeBuildInputs = [ bison perl @@ -123,9 +84,11 @@ stdenv.mkDerivation rec { ] ++ lib.optionals enableDocs [ doxygen graphviz + latex2html texinfo4 texlive.combined.scheme-small ]; + depsBuildBuild = [ buildPackages.stdenv.cc ]; preAutoreconf = '' find . -type f -readable -writable -exec sed \ @@ -137,21 +100,14 @@ stdenv.mkDerivation rec { hardeningDisable = lib.optional stdenv.isi686 "stackprotector"; - # The Makefile actually defaults to `make install` anyway - buildPhase = '' - # do nothing - ''; - doCheck = true; # very basic checks, does not test any libraries installPhase = '' - mkdir -p "$out" - cp -r Singular/LIB "$out/lib" make install '' + lib.optionalString enableDocs '' - # Sage uses singular.hlp (which is not in the tarball) + # Sage uses singular.info, which is not installed by default mkdir -p $out/share/info - cp doc/singular.hlp $out/share/info + cp doc/singular.info $out/share/info '' + '' # Make sure patchelf picks up the right libraries rm -rf libpolys factory resources omalloc Singular @@ -211,5 +167,6 @@ stdenv.mkDerivation rec { license = licenses.gpl3; # Or GPLv2 at your option - but not GPLv4 homepage = "http://www.singular.uni-kl.de"; downloadPage = "http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/SOURCES/"; + mainProgram = "Singular"; }; } diff --git a/pkgs/applications/science/math/singular/disable-docs-for-optional-unpackaged-deps.patch b/pkgs/applications/science/math/singular/disable-docs-for-optional-unpackaged-deps.patch deleted file mode 100644 index 46d92922f3ce4..0000000000000 --- a/pkgs/applications/science/math/singular/disable-docs-for-optional-unpackaged-deps.patch +++ /dev/null @@ -1,112 +0,0 @@ -commit 9e8b044d982e132cf35a106a1cc0cf7e77b27f7c -Author: Mauricio Collares <mauricio@collares.org> -Date: Thu Apr 15 20:33:21 2021 -0300 - - Disable manual sections using optional packages not yet in Nixpkgs - - * normaliz.lib depends on normaliz. - * polymake.lib depends on topcom. - * recover.lib depends on bertini. - * sing4ti2.lib depends on 4ti2. - * tateProdCplxNegGrad.lib uses multigrading.lib, which depends on 4ti2. - -diff --git a/doc/singular.doc b/doc/singular.doc -index 64b969d39..e704f95f0 100644 ---- a/doc/singular.doc -+++ b/doc/singular.doc -@@ -407,7 +407,6 @@ LIB "all.lib"; - * nfmodsyz_lib:: Syzygy modules of submodules of free modules over algebraic number fields - * noether_lib:: Noether normalization of an ideal - * normal_lib:: procedure for normalization --* normaliz_lib:: integral closure, normalization for monomial ideals, toric ideals - * pointid_lib:: factorized lex GB of the vanishing ideal of a set of points - * primdec_lib:: procedures for primary decomposition - * primdecint_lib:: primary decomposition over the integers -@@ -416,7 +415,6 @@ LIB "all.lib"; - * reesclos_lib:: Rees Algebra and integral closure of an ideal - * rstandard_lib:: Janet bases and border bases for ideals - * sagbi_lib:: Subalgebras bases Analogous to Groebner bases for ideals --* sing4ti2_lib:: interface to program 4ti2 - * symodstd_lib:: Groebner bases for symmetric ideals - * toric_lib:: toric ideals - @end menu -@@ -521,10 +519,6 @@ LIB "all.lib"; - @node normal_lib - @subsection normal_lib - @c lib normal.lib --@c --------------------------------------------------------- --@node normaliz_lib --@subsection normaliz_lib --@c lib normaliz.lib tag:normaliz - @c ---------------------------------------------------------- - @node pointid_lib - @subsection pointid_lib -@@ -558,10 +552,6 @@ LIB "all.lib"; - @subsection sagbi_lib - @c lib sagbi.lib - @c --------------------------------------------------------- --@node sing4ti2_lib --@subsection sing4ti2_lib --@c lib sing4ti2.lib tag:sing4ti2 --@c ---------------------------------------------------------- - @node symodstd_lib - @subsection symodstd_lib - @c lib symodstd.lib -@@ -873,7 +863,6 @@ iniD, reslist, sumlist, dividelist, createlist - * solve_lib:: procedures to solve polynomial systems - * triang_lib:: procedures for decomposing zero-dimensional ideals - * ntsolve_lib:: one real solution of polynomial systems (Newton iteration) --* recover_lib:: Hybrid numerical/symbolical algorithms - * rootisolation_lib:: real root isolation with intervals - * signcond_lib:: computing realizable sign conditions - * zeroset_lib:: procedures for roots and factorization -@@ -904,10 +893,6 @@ iniD, reslist, sumlist, dividelist, createlist - @subsection ntsolve_lib - @c lib ntsolve.lib - @c --------------------------------------------------------- --@node recover_lib --@subsection recover_lib --@c lib recover.lib tag:bertini --@c ---------------------------------------------------------- - @node rootisolation_lib - @subsection rootisolation_lib - @c lib rootisolation.lib -@@ -1108,7 +1093,6 @@ but not for serious computations. - * cimonom_lib:: complete intersection for toric ideals - * gfan_lib:: A gfanlib interface for Singular - * gitfan_lib:: Compute GIT-fans --* polymake_lib:: interface to TOPCOM - * realizationMatroids_lib:: Realizability for Tropical Fan Curves - * tropical_lib:: interface to gfan - * tropicalNewton_lib:: Newton polygons in tropical geometry -@@ -1125,10 +1109,7 @@ but not for serious computations. - @node gitfan_lib - @subsection gitfan_lib - @c lib gitfan.lib --@c ---------------------------------------------------------- --@node polymake_lib --@subsection polymake_lib --@c lib polymake.lib tag:topcom -+ - @c ---------------------------------------------------------- - @node realizationMatroids_lib - @subsection realizationMatroids_lib -@@ -1219,7 +1200,6 @@ Comments should be send to the author of the library directly. - * stanleyreisner_lib:: T1 and T2 for a general Stanley-Reiser ring - * swalk_lib:: Sagbi Walk Conversion Algorithm - * systhreads_lib:: multi-threaded objects --* tateProdCplxNegGrad_lib:: sheaf cohomology on product of projective spaces - * VecField_lib:: vector fields - @end menu - @c ---------------------------------------------------------- -@@ -1310,10 +1290,6 @@ Todos/Issues: - @subsection systhreads_lib - @c lib systhreads.lib - @c --------------------------------------------------------- --@node tateProdCplxNegGrad_lib --@subsection tateProdCplxNegGrad_lib --@c lib tateProdCplxNegGrad.lib --@c --------------------------------------------------------- - @node VecField_lib - @subsection VecField_lib - @c lib VecField.lib diff --git a/pkgs/applications/science/math/singular/redhat-aarch64.patch b/pkgs/applications/science/math/singular/redhat-aarch64.patch deleted file mode 100644 index e0db6e87f994a..0000000000000 --- a/pkgs/applications/science/math/singular/redhat-aarch64.patch +++ /dev/null @@ -1,38 +0,0 @@ -diff --git a/m4/cpu-check.m4 b/m4/cpu-check.m4 -index 3cf0a7f08..12bb926ac 100644 ---- a/m4/cpu-check.m4 -+++ b/m4/cpu-check.m4 -@@ -37,6 +37,18 @@ if test "$ac_cv_singcpuname" = ppc; then - AC_DEFINE(SI_CPU_PPC,1,"PPC") - AC_SUBST(SI_CPU_PPC) - fi -+if test "$ac_cv_singcpuname" = arm -o "$ac_cv_singcpuname" = armel; then -+ AC_DEFINE(SI_CPU_ARM,1,"ARM") -+ AC_SUBST(SI_CPU_ARM) -+fi -+if test "$ac_cv_singcpuname" = aarch64; then -+ AC_DEFINE(SI_CPU_AARCH64,1,"AARCH64") -+ AC_SUBST(SI_CPU_AARCH64) -+fi -+if test "$ac_cv_singcpuname" = s390; then -+ AC_DEFINE(SI_CPU_S390,1,"S390") -+ AC_SUBST(SI_CPU_S390) -+fi - - # UNAME and PATH - AC_MSG_CHECKING(uname for Singular) -@@ -65,6 +77,14 @@ dnl testet on: ppc_Linux, 740/750 PowerMac G3, 512k L2 cache - [powerpc*|ppc*], [AC_DEFINE(HAVE_GENERIC_MULT,1,multiplication is fast on the cpu: a*b is with mod otherwise using tables of logartihms)], - dnl the following settings seems to be better on arm processors - [arm*], [], -+dnl FIXME: need to run some tests -+ [aarch64*], [ -+ AC_DEFINE(HAVE_MULT_MOD,1,multiplication is fast on the cpu: a*b is with mod otherwise using tables of logartihms) -+ AC_DEFINE(HAVE_GENERIC_ADD,1,use branch for addition in Z/p otherwise it uses a generic add) -+ AC_DEFINE(HAVE_DIV_MOD,1,division using extend euclidian algorithm otherwise using tables of logartihms) -+ ], -+dnl FIXME: need to run some tests -+ [s390*], [AC_DEFINE(HAVE_GENERIC_ADD,1,use branch for addition in Z/p otherwise it uses a generic add)], - [] - ) - diff --git a/pkgs/applications/science/math/singular/use-older-ax-prog-cc-for-build.patch b/pkgs/applications/science/math/singular/use-older-ax-prog-cc-for-build.patch deleted file mode 100644 index f664378617cfc..0000000000000 --- a/pkgs/applications/science/math/singular/use-older-ax-prog-cc-for-build.patch +++ /dev/null @@ -1,194 +0,0 @@ -diff --git a/m4/ax_prog_cc_for_build.m4 b/m4/ax_prog_cc_for_build.m4 -index f7410d74b..12cb005a5 100644 ---- a/m4/ax_prog_cc_for_build.m4 -+++ b/m4/ax_prog_cc_for_build.m4 -@@ -32,35 +32,31 @@ - # and this notice are preserved. This file is offered as-is, without any - # warranty. - --#serial 18 -+#serial 9 - - AU_ALIAS([AC_PROG_CC_FOR_BUILD], [AX_PROG_CC_FOR_BUILD]) - AC_DEFUN([AX_PROG_CC_FOR_BUILD], [dnl - AC_REQUIRE([AC_PROG_CC])dnl - AC_REQUIRE([AC_PROG_CPP])dnl --AC_REQUIRE([AC_CANONICAL_BUILD])dnl -+AC_REQUIRE([AC_EXEEXT])dnl -+AC_REQUIRE([AC_CANONICAL_HOST])dnl - - dnl Use the standard macros, but make them use other variable names - dnl - pushdef([ac_cv_prog_CPP], ac_cv_build_prog_CPP)dnl --pushdef([ac_cv_prog_cc_c89], ac_cv_build_prog_cc_c89)dnl - pushdef([ac_cv_prog_gcc], ac_cv_build_prog_gcc)dnl - pushdef([ac_cv_prog_cc_works], ac_cv_build_prog_cc_works)dnl - pushdef([ac_cv_prog_cc_cross], ac_cv_build_prog_cc_cross)dnl - pushdef([ac_cv_prog_cc_g], ac_cv_build_prog_cc_g)dnl --pushdef([ac_cv_c_compiler_gnu], ac_cv_build_c_compiler_gnu)dnl - pushdef([ac_cv_exeext], ac_cv_build_exeext)dnl - pushdef([ac_cv_objext], ac_cv_build_objext)dnl - pushdef([ac_exeext], ac_build_exeext)dnl - pushdef([ac_objext], ac_build_objext)dnl - pushdef([CC], CC_FOR_BUILD)dnl - pushdef([CPP], CPP_FOR_BUILD)dnl --pushdef([GCC], GCC_FOR_BUILD)dnl - pushdef([CFLAGS], CFLAGS_FOR_BUILD)dnl - pushdef([CPPFLAGS], CPPFLAGS_FOR_BUILD)dnl --pushdef([EXEEXT], BUILD_EXEEXT)dnl - pushdef([LDFLAGS], LDFLAGS_FOR_BUILD)dnl --pushdef([OBJEXT], BUILD_OBJEXT)dnl - pushdef([host], build)dnl - pushdef([host_alias], build_alias)dnl - pushdef([host_cpu], build_cpu)dnl -@@ -71,29 +67,27 @@ pushdef([ac_cv_host_alias], ac_cv_build_alias)dnl - pushdef([ac_cv_host_cpu], ac_cv_build_cpu)dnl - pushdef([ac_cv_host_vendor], ac_cv_build_vendor)dnl - pushdef([ac_cv_host_os], ac_cv_build_os)dnl --pushdef([ac_tool_prefix], ac_build_tool_prefix)dnl --pushdef([am_cv_CC_dependencies_compiler_type], am_cv_build_CC_dependencies_compiler_type)dnl --pushdef([am_cv_prog_cc_c_o], am_cv_build_prog_cc_c_o)dnl --pushdef([cross_compiling], cross_compiling_build)dnl -+pushdef([ac_cpp], ac_build_cpp)dnl -+pushdef([ac_compile], ac_build_compile)dnl -+pushdef([ac_link], ac_build_link)dnl - --cross_compiling_build=no -+save_cross_compiling=$cross_compiling -+save_ac_tool_prefix=$ac_tool_prefix -+cross_compiling=no -+ac_tool_prefix= - --ac_build_tool_prefix= --AS_IF([test -n "$build"], [ac_build_tool_prefix="$build-"], -- [test -n "$build_alias"],[ac_build_tool_prefix="$build_alias-"]) -- --AC_LANG_PUSH([C]) - AC_PROG_CC --_AC_COMPILER_EXEEXT --_AC_COMPILER_OBJEXT - AC_PROG_CPP -+AC_EXEEXT -+ -+ac_tool_prefix=$save_ac_tool_prefix -+cross_compiling=$save_cross_compiling - - dnl Restore the old definitions - dnl --popdef([cross_compiling])dnl --popdef([am_cv_prog_cc_c_o])dnl --popdef([am_cv_CC_dependencies_compiler_type])dnl --popdef([ac_tool_prefix])dnl -+popdef([ac_link])dnl -+popdef([ac_compile])dnl -+popdef([ac_cpp])dnl - popdef([ac_cv_host_os])dnl - popdef([ac_cv_host_vendor])dnl - popdef([ac_cv_host_cpu])dnl -@@ -104,33 +98,25 @@ popdef([host_vendor])dnl - popdef([host_cpu])dnl - popdef([host_alias])dnl - popdef([host])dnl --popdef([OBJEXT])dnl - popdef([LDFLAGS])dnl --popdef([EXEEXT])dnl - popdef([CPPFLAGS])dnl - popdef([CFLAGS])dnl --popdef([GCC])dnl - popdef([CPP])dnl - popdef([CC])dnl - popdef([ac_objext])dnl - popdef([ac_exeext])dnl - popdef([ac_cv_objext])dnl - popdef([ac_cv_exeext])dnl --popdef([ac_cv_c_compiler_gnu])dnl - popdef([ac_cv_prog_cc_g])dnl - popdef([ac_cv_prog_cc_cross])dnl - popdef([ac_cv_prog_cc_works])dnl --popdef([ac_cv_prog_cc_c89])dnl - popdef([ac_cv_prog_gcc])dnl - popdef([ac_cv_prog_CPP])dnl - --dnl restore global variables ac_ext, ac_cpp, ac_compile, --dnl ac_link, ac_compiler_gnu (dependant on the current --dnl language after popping): --AC_LANG_POP([C]) -- - dnl Finally, set Makefile variables - dnl -+BUILD_EXEEXT=$ac_build_exeext -+BUILD_OBJEXT=$ac_build_objext - AC_SUBST(BUILD_EXEEXT)dnl - AC_SUBST(BUILD_OBJEXT)dnl - AC_SUBST([CFLAGS_FOR_BUILD])dnl -diff --git a/m4/ax_prog_cxx_for_build.m4 b/m4/ax_prog_cxx_for_build.m4 -index 4d976769f..17c19a89f 100644 ---- a/m4/ax_prog_cxx_for_build.m4 -+++ b/m4/ax_prog_cxx_for_build.m4 -@@ -31,7 +31,7 @@ - # and this notice are preserved. This file is offered as-is, without any - # warranty. - --#serial 4 -+#serial 3 - - AU_ALIAS([AC_PROG_CXX_FOR_BUILD], [AX_PROG_CXX_FOR_BUILD]) - AC_DEFUN([AX_PROG_CXX_FOR_BUILD], [dnl -@@ -49,7 +49,6 @@ pushdef([ac_cv_prog_cxx_cross], ac_cv_build_prog_cxx_cross)dnl - pushdef([ac_cv_prog_cxx_g], ac_cv_build_prog_cxx_g)dnl - pushdef([CXX], CXX_FOR_BUILD)dnl - pushdef([CXXCPP], CXXCPP_FOR_BUILD)dnl --pushdef([GXX], GXX_FOR_BUILD)dnl - pushdef([CXXFLAGS], CXXFLAGS_FOR_BUILD)dnl - pushdef([CPPFLAGS], CPPFLAGS_FOR_BUILD)dnl - pushdef([CXXCPPFLAGS], CXXCPPFLAGS_FOR_BUILD)dnl -@@ -63,25 +62,26 @@ pushdef([ac_cv_host_alias], ac_cv_build_alias)dnl - pushdef([ac_cv_host_cpu], ac_cv_build_cpu)dnl - pushdef([ac_cv_host_vendor], ac_cv_build_vendor)dnl - pushdef([ac_cv_host_os], ac_cv_build_os)dnl --pushdef([ac_tool_prefix], ac_build_tool_prefix)dnl --pushdef([am_cv_CXX_dependencies_compiler_type], am_cv_build_CXX_dependencies_compiler_type)dnl --pushdef([cross_compiling], cross_compiling_build)dnl -+pushdef([ac_cxxcpp], ac_build_cxxcpp)dnl -+pushdef([ac_compile], ac_build_compile)dnl -+pushdef([ac_link], ac_build_link)dnl - --cross_compiling_build=no -+save_cross_compiling=$cross_compiling -+save_ac_tool_prefix=$ac_tool_prefix -+cross_compiling=no -+ac_tool_prefix= - --ac_build_tool_prefix= --AS_IF([test -n "$build"], [ac_build_tool_prefix="$build-"], -- [test -n "$build_alias"],[ac_build_tool_prefix="$build_alias-"]) -- --AC_LANG_PUSH([C++]) - AC_PROG_CXX - AC_PROG_CXXCPP - -+ac_tool_prefix=$save_ac_tool_prefix -+cross_compiling=$save_cross_compiling -+ - dnl Restore the old definitions - dnl --popdef([cross_compiling])dnl --popdef([am_cv_CXX_dependencies_compiler_type])dnl --popdef([ac_tool_prefix])dnl -+popdef([ac_link])dnl -+popdef([ac_compile])dnl -+popdef([ac_cxxcpp])dnl - popdef([ac_cv_host_os])dnl - popdef([ac_cv_host_vendor])dnl - popdef([ac_cv_host_cpu])dnl -@@ -103,10 +103,6 @@ popdef([ac_cv_prog_cxx_works])dnl - popdef([ac_cv_prog_gxx])dnl - popdef([ac_cv_prog_CXXCPP])dnl - --dnl restore global variables (dependant on the current --dnl language after popping): --AC_LANG_POP([C++]) -- - dnl Finally, set Makefile variables - dnl - AC_SUBST([CXXFLAGS_FOR_BUILD])dnl diff --git a/pkgs/applications/science/math/singular/vspace-MAX_PROCESS.patch b/pkgs/applications/science/math/singular/vspace-MAX_PROCESS.patch deleted file mode 100644 index 78d658f926ee0..0000000000000 --- a/pkgs/applications/science/math/singular/vspace-MAX_PROCESS.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff --git a/kernel/GBEngine/kChinese.cc b/kernel/GBEngine/kChinese.cc -index 829a66609..84655caf2 100644 ---- a/kernel/GBEngine/kChinese.cc -+++ b/kernel/GBEngine/kChinese.cc -@@ -209,6 +209,8 @@ ideal id_ChineseRemainder_0(ideal *xx, number *q, int rl, const ring r) - return NULL; - } - int cpus=(int)(long)feOptValue(FE_OPT_CPUS); -+ if (cpus>=vspace::internals::MAX_PROCESS) -+ cpus=vspace::internals::MAX_PROCESS-1; - if ((cpus==1) || (2*cpus>=cnt)) - /* at least 2 polys for each process, or switch to seriell version */ - return id_ChineseRemainder(xx,q,rl,r); -@@ -295,6 +297,8 @@ ideal id_Farey_0(ideal x, number N, const ring r) - { - int cnt=IDELEMS(x)*x->nrows; - int cpus=(int)(long)feOptValue(FE_OPT_CPUS); -+ if (cpus>=vspace::internals::MAX_PROCESS) -+ cpus=vspace::internals::MAX_PROCESS-1; - if (2*cpus>=cnt) /* at least 2 polys for each process, - or switch to seriell version */ - return id_Farey(x,N,r); -diff --git a/kernel/GBEngine/kverify.cc b/kernel/GBEngine/kverify.cc -index 909d84994..aa06d6624 100644 ---- a/kernel/GBEngine/kverify.cc -+++ b/kernel/GBEngine/kverify.cc -@@ -176,6 +176,8 @@ BOOLEAN kVerify2(ideal F, ideal Q) - /*---------------------------------------------------------------------*/ - BOOLEAN all_okay=TRUE; - int cpus=(int)(long)feOptValue(FE_OPT_CPUS); -+ if (cpus>=vspace::internals::MAX_PROCESS) -+ cpus=vspace::internals::MAX_PROCESS-1; - int parent_pid=getpid(); - using namespace vspace; - vmem_init(); |