diff -up src/sage/libs/eclib/mwrank.pyx.orig src/sage/libs/eclib/mwrank.pyx --- src/sage/libs/eclib/mwrank.pyx.orig 2021-05-09 16:00:11.000000000 -0600 +++ src/sage/libs/eclib/mwrank.pyx 2021-07-07 09:31:20.972526814 -0600 @@ -55,7 +55,7 @@ cdef extern from "wrap.cpp": char* mw_getbasis(mw* m) double mw_regulator(mw* m) int mw_rank(mw* m) - int mw_saturate(mw* m, bigint* index, char** unsat, + int mw_saturate(mw* m, long* index, char** unsat, long sat_bd, int odd_primes_only) void mw_search(mw* m, char* h_lim, int moduli_option, int verb) @@ -894,12 +894,12 @@ cdef class _mw: """ - cdef _bigint index + cdef long index cdef char* s cdef int ok sig_on() - index = _bigint() - ok = mw_saturate(self.x, index.x, &s, sat_bd, odd_primes_only) + index = 0 + ok = mw_saturate(self.x, &index, &s, sat_bd, odd_primes_only) unsat = string_sigoff(s) return ok, index, unsat diff -up src/sage/libs/eclib/wrap.cpp.orig src/sage/libs/eclib/wrap.cpp --- src/sage/libs/eclib/wrap.cpp.orig 2021-05-09 16:00:11.000000000 -0600 +++ src/sage/libs/eclib/wrap.cpp 2021-07-06 17:38:03.377018615 -0600 @@ -178,7 +178,7 @@ int mw_rank(struct mw* m) } /* Returns index and unsat long array, which user must deallocate */ -int mw_saturate(struct mw* m, bigint* index, char** unsat, +int mw_saturate(struct mw* m, long* index, char** unsat, long sat_bd, int odd_primes_only) { vector v;