Hi everybody, The issue of the nasty crashes whenever something is thrown internally (as in .normal(), if the heuristic algorithm failed or in .series() for functions with poles) came up last week. Finally it is becoming clear what's happening. series(tgamma(x),x==0,1) crashed reproducibly when linked dynamically, either in ginsh, ginaccint or elsewhere. Let me explain what's happening. So I am no longer to blame. :-) GiNaC 0.6.1 got an updated libtool from FSF (1.3.4 instead of 1.3.3) and that libtool has changed it's behaviour for linking: $ libtool --mode=link c++ ... uses $CC for linking instead of c++, as it used to be. Libtool's documentation does have something to say about this:
[...] running the C++ compiler directly may lead to problems related with inter-library dependencies.
The conclusion is that libtool is not ready for general use for C++ libraries.[...]
Furthermore, you'd better find out, at configure time, what are the C++ Standard libraries that the C++ compiler will link in by default, and explicitly list them in the link command line. Hopefully, in the future, libtool will be able to do this job by itself.
I am somewhat clueless what those `problems related with inter-library dependencies' might be (there seems to be a gap in the mailing list archives). Well, the day before yesterday they have released libtool 1.3.5 but that doesn't change much. Anyhow, the trouble starts only when you use jurrasic compilers. And Debian/Slink does precisely this: gcc (used for linking) is 2.7.2.3 while c++ (used for compiling) is 2.91.60. Makes the solution pretty obvious: Just exporting CC=egcc prior to configuring solves all problems. Big deal. Or upgrading to Potato (if they manage to release it some lucky day). Happy hacking -rbk. -- Richard Kreckel <Richard.Kreckel@Uni-Mainz.DE> <http://wwwthep.physik.uni-mainz.de/~kreckel/>