Re: Axiom: Errors on suse 10.2, 32 bit

Daniel Herring <[email protected]> Wed, 31 Oct 2007 20:57:45 -0400 (EDT)
Newsgroups gmane.comp.mathematics.axiom.general
Message-ID <[email protected]>
> I have installed the axiom binaries on a suse linux 10.2, 32 bit system, and
> am trying some basic commands.
>
> I am getting the errors below.

The language you type into Axiom is interpreted by a lisp subsystem, more 
specifically GCL.  Every time you define a function in Axiom, this 
triggers a lisp function to be generated; GCL actually writes out C source 
files, compiles them with GCC, and links the objects back in.

Below are my ramblings as I found a solution.

> (11) -> draw(sin(x),x=-1..1);
>   Loading /home/apps/axiombin/mnt/fedora5/algebra/SEG.o for domain
>      Segment
>   Loading /home/apps/axiombin/mnt/fedora5/algebra/SEGBIND.o for domain
>      SegmentBinding
>   Loading /home/apps/axiombin/mnt/fedora5/algebra/FLOAT.o for domain
>      Float

Here we see GCL loading the object files for some precompiled functions.

>   >> System error:
>   (SYSTEM "gcc -c -Wall -DVOL=volatile -fsigned-char -pipe
> -I/root/axiom/mnt/fedora5/bin/../h  -O3 -fomit-frame-pointer -c
> \"/tmp/gazonk7.c\" -o \"/tmp/gazonk7.o\" -w") returned a non-zero value 0.

Here we see GCL trying to compile a new function... and failing.

Based on the previous error message, GCC was having trouble with the 
"-I/root/axiom/mnt/fedora5/bin/../h".  Clearly not good; this path 
contains a reference to fedora5, while you're running suse and probably 
not as root...

This is a funny artifact of how Axiom is compiled.  This path points into 
the compilation directory, but is totally unnecessary for Axiom to run 
properly.  On systems where the path doesn't exist, everything is fine. 
Unfortunately, GCC sees that this path *might* exist but that your user 
doesn't have permissions to look inside /root and see if it does...

For fun, run
> strings `which AXIOMsys` | grep /root/axiom/mnt/fedora5/bin

You should see a line like
#+:akcl (setq si::*system-directory* "/root/axiom/mnt/fedora5/bin/")

That's where the problem lies.

To work around this, type the following line
)lisp (setf si::*system-directory* ".")
as your first command to Axiom after it starts up.

All your problems (wrt the above error) should go away.

Later,
Daniel