[Debian-science-sagemath] Building Giac for Sage 7.5

Ximin Luo infinity0 at debian.org
Tue Jan 17 13:50:00 UTC 2017


References:
https://www-fourier.ujf-grenoble.fr/~parisse/debian/dists/stable/main/source/
https://www-fourier.ujf-grenoble.fr/~parisse/giac.html

The upstream source package contains debian/ and debianold/ which is actually newer than debian/; I have already emailed the upstream author to ask about this, and what we should do with them.

Anyway, after downloading 1.2.2-103 (what Sage uses), running `debian/rules build` (on debian/) gives the following error:

[..]
libtool: link: x86_64-linux-gnu-g++ -shared -nostdlib /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o  .libs/input_lexer.o .libs/sym2poly.o .libs/gausspol.o .libs/threaded.o .libs/moyal.o .libs/maple.o .libs/ti89.o .libs/mathml.o .libs/misc.o .libs/permu.o .libs/quater.o .libs/desolve.o .libs/input_parser.o .libs/symbolic.o .libs/index.o .libs/modpoly.o .libs/modfactor.o .libs/ezgcd.o .libs/derive.o .libs/solve.o .libs/intg.o .libs/intgab.o .libs/risch.o .libs/lin.o .libs/series.o .libs/subst.o .libs/vecteur.o .libs/sparse.o .libs/csturm.o .libs/tex.o .libs/global.o .libs/ifactor.o .libs/alg_ext.o .libs/gauss.o .libs/isom.o .libs/plot.o .libs/plot3d.o .libs/rpn.o .libs/prog.o .libs/pari.o .libs/cocoa.o .libs/unary.o .libs/usual.o .libs/identificateur.o .libs/gen.o .libs/tinymt32.o .libs/first.o .libs/TmpLESystemSolver.o .libs/TmpFGLM.o .libs/help.o   -lntl -lpari -lgsl -lgslcblas -lrt -lpthread -llapack -lblas -lgfortran -ldl -lpng -lmpfi -lmpfr -lgmp -L/usr/lib/gcc/x86_64-linux-gnu/6 -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/6/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o    -Wl,-soname -Wl,libgiac.so.0 -o .libs/libgiac.so.0.0.0
/usr/bin/ld: PARI_stack_limit: TLS definition in /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libpari.so section .tbss mismatches non-TLS reference in .libs/pari.o
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libpari.so: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
Makefile:521: recipe for target 'libgiac.la' failed
make[3]: *** [libgiac.la] Error 1
[..]

A bit of googling suggests that this may be caused by this:

giac-1.2.2/src/pari.cc:
line 53-58
extern "C" {
#include <pari/pari.h>
#include <pari/paripriv.h>
  extern void *PARI_stack_limit;
  extern entree functions_basic[];
}

and the issue could be that these "extern" declarations are not compatible with what PARI 2.9 actually declares. However these are not declared in the header files in /usr/include/$triplet/pari either.

There is some note regarding --no-pari in debianold/README.debian but Sage 7.5 is not using it:

https://git.sagemath.org/sage.git/tree/build/pkgs/giac/spkg-install?id=7.5.1

so I assume we should try to compile *with* PARI for the Debian package.

If these errors seem familiar, to anyone more familiar with PARI than I, please give some advice. Otherwise I'll keep investigating, later when I have more time.

X

-- 
GPG: ed25519/56034877E1F87C35
GPG: rsa4096/1318EFAC5FBBDBCE
https://github.com/infinity0/pubkeys.git


More information about the Debian-science-sagemath mailing list