I've created a tool chain for Solaris on t2, which I'm hoping solves the 
gfortran issues. Certainly gcc-4.4.0 will compile fortran programs now 
and it seems to get a long way to building Sage, although I do have an 
error I hope to fix.

If anyone wishes to use it, please sent the following variables.

PATH=/home/kirkby/bin:/home/kirkby/dependencies/bin:/usr/bin
LD_LIBRARY_PATH=/home/kirkby/dependencies/lib
SAGE_FORTRAN=/home/kirkby/dependencies/bin/gfortran
SAGE_FORTRAN_LIB=/home/kirkby/dependencies/lib/libgfortran.so



The basic strategy for building this gcc 4.4.0 toolchain was:

1) Remove the default PATH, LD_LIBRARY_PATH, SAGE_FORTRAN and 
SAGE_FORTRAN_LIB. (I did not do this globally but only for myself. It is 
not normal practice to set environment variables like this for all users).

The following were in my path

/home/kirkby/bin:/usr/sfw/bin:/usr/bin (This is NOT the same as I listed 
above, for reasons which will become clear).

This ensured gcc 3.4.3 in /usr/sfw/bin was picked up *before* gcc 4.0.4 
in /usr/bin. A full install of Solaris does not include gcc 4.0.4 in 
/usr/bin, although gcc 4.0.4 might be on an optional 'companion' CD.

Anyway, gcc 4.0.4 should not be assumed to exists on a Solaris system, 
as it wont be there even on a full installation.

Hence I started by using gcc 3.4.3 in /usr/sfw/bin, as that will exists 
on any full install of Solaris, without the need for any optional CDs.

2) Create a directory $HOME/bin, and made the following links, so I had 
copies of the GNU utilites, without the 'g' in front of them. (I'm 
thinking this might cause less problems, if some bit of code expects to 
find 'as' and does not look for 'gas')

ar -> /usr/sfw/bin/gar
as -> /usr/sfw/bin/gas
ld -> /usr/sfw/bin/gld
m4 -> /usr/sfw/bin/gm4
make -> /usr/sfw/bin/gmake
nm -> /usr/sfw/bin/gnm
ranlib -> /usr/sfw/bin/granlib
strip -> /usr/sfw/bin/gstrip
tar -> /usr/sfw/bin/gtar


2) Build the latest gmp (4.3.1) with:

$ ./configure --prefix=/home/kirkby/dependencies ABI=32
$ make
$ make check (all passed)
$ make install.

Note I installed it in a directory 'dependencies' off my home directory. 
It used gcc 3.4.3 of course

3) Build the latest mpfr.

   $ ./configure --prefix=/home/kirkby/dependencies 
--with-gmp-include=/home/kirkby/dependencies/include 
--with-gmp-lib=/home/kirkby/dependencies/lib --with-gnu-ld


It was necessary to set the environment variable
LD_LIBRARY_PATH to /home/kirkby/dependencies/lib
so mpfr could find the gmp library. (This seems silly to me, as they are 
given as arguments to the configure script, but it is necessary).

$ make
$ make check (all 148 tests passed)

Again gcc-3.4.3 was used to build mpfr

4) Build gcc-4.4.0 with:

../gcc-4.4.0/configure --with-gnu-as --with-as=/home/kirkby/bin/as 
--with-gnu-ld --with-ld=/home/kirkby/bin/ld 
--with-gmp=/home/kirkby/dependencies/ 
--with-mpfr=/home/kirkby/dependencies/ --enable-languages=c,c++,fortran 
--prefix=/home/kirkby/dependencies/

That built and installed with no hitches at all.

5) Set the path and environment variables as

PATH=/home/kirkby/bin:/home/kirkby/dependencies/bin:/usr/bin
LD_LIBRARY_PATH=/home/kirkby/dependencies/lib
SAGE_FORTRAN=/home/kirkby/dependencies/bin/gfortran
SAGE_FORTRAN_LIB=/home/kirkby/dependencies/lib/libgfortran.so

Note now I don't have /usr/sfw/bin in my path.

6) Attempt to build Sage. This gets quite a long way but does fail at 
sqlite-3.5.3.p3.

I'll put the compilation issues in another message, as I don't think it 
is related to the build of gcc 4.4.0, but the order some libraries are 
linked in sqlite - the error message has been seen by lots of people 
using lots of software and appears to be related to what libraries are 
linked in a particular order.






--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to