This file documents problems installing GSL on specific platforms.

Information is available for the following systems,

-- Any platform
-- AIX
-- Compaq/DEC Alpha
-- DOS
-- IRIX
-- MacOS X
-- Microsoft Windows (MS Visual C++, Borland C++)
-- OpenBSD
-- OS/2
-- PPC
-- Solaris

* Any platform
--------------

If there are problems building the library try using

        ./configure --disable-shared

This will turn off the compilation of shared libraries and may allow
the build process to complete successfully.  

If you get any problems try this first.

Attempts to run 'strip' on the static library libgsl.a will probably
produce a broken library (it is known to happen with GNU binutils
strip, and probably affects others too). The libgsl.a ar archive made
by libtool contains files with the same filenames from different
directories, and this causes the strip program to overwrite these
archive entries.  If you need to produce a compact version of the
library compile without -g instead of using strip.

make install-strip does not work, due to a minor problem with autoconf
which is fixed in the 2.5 development version of autoconf.  In the
meantime compile without -g instead if you need to reduce the file size.


* AIX
-----

For compilation problems with the native compiler xlc, try disabling
shared libraries,

    setenv CC 'xlc'
    setenv CFLAGS '-O -qmaxmem=8192'
    ./configure --disable-shared
    make

If you get the error,

   ld: 0711-781 ERROR: TOC overflow. 

you can try building the library with a larger linker
table-of-contents by setting LDFLAGS before compilation,

   LDFLAGS="-Wl,-bbigtoc" ./configure


* Compaq/DEC Alpha
------------------

With gcc-2.95/2.96 the tests fail in the eigen/ directory.  This is
due to a compiler optimization bug which causes errors in the
manipulation of complex numbers.  Do not use the library if you
encounter this problem.

This may be fixed in more recent versions of gcc.  Compiling without
optimisation will work around the bug.

The library should compile successfully with Compaq's C compiler using
the -std option for ANSI conformance.  Use

    CC=cc ./configure    
    make CFLAGS="-std"

to build the library this way.

Use GNU tar to unpack the tar file, as Tru64 tar gives an error
halfway through.

* DOS
-----

When using DJGPP The default stack size of 512k may be insufficient for
the specfunc tests and will cause them to crash.  To increase the
stack size by a suitable amount use,

  	stubedit test.exe minstack=1536k

on the executable and then rerun it manually.  (5/01: The specfunc
tests have been rewritten to use less stack space now).

* IRIX
------

The library should be compiled with the following option,

        -OPT:IEEE_NaN_inf=ON 

to ensure correct IEEE arithmetic.  The tests in sys/ will fail
without this option.  The older deprecated option
-OPT:IEEE_comparisons=ON will also work.

The 32 bit IRIX compiler gives warnings about "long double" not being
supported. These can be ignored or turned off with,

   CCFLAGS="-woff 728" ./configure

or 

   make CCFLAGS="-woff 728"

The compiler also gives warnings about certain libraries that are "not
used for resolving any symbol". This is harmless and the warnings can
be ignored.

You may get warnings about " /usr/bin/ld: arg list too long" when
building shared libraries.  If so, try increasing the ncargs kernel
parameter with the systune(1m) command.

For 64-bit compilation use the following options,

  CC=cc CFLAGS="-64" LDFLAGS="-64" ./configure

or for gcc

  CFLAGS="-mabi-64" LDFLAGS="-mabi=64 -mips4 -L/usr/local/lib/mabi=64"

* MacOS X
---------

Note that GSL contains files with filenames of 32 characters or more.
Therefore you need to be careful in unpacking the tar file, as some
MacOS applications such as Stuffit Expander will truncate filenames to
31 characters.  Using GNU tar and gunzip directly is the safe way to
unpack the distribution.

There are problems with dynamic linker, so the library should be
compiled with

  ./configure --disable-shared

To avoid warnings about long-double, use the flag

  CFLAGS="-Wno-long-double ....(other options here)"

in addition to the normal compilation options.

* Microsoft Windows
-------------------------------

With Microsoft Visual C++, see the directory msvc/ in the CVS repository.

* OpenBSD
---------

As of July 2001 the OpenBSD log1p() function on i386 causes failures
in the gsl complex tests.  The configure script has been hardcoded to
substitute gsl_log1p instead on OpenBSD.  The log1p() bug has been
reported and so may be fixed in future versions of OpenBSD.

* OS/2
------

The configure script fails to detect the function 'isnan', leading to
a slew of errors 'isnan redefined'.

To work around this problem, run configure and edit the resulting
config.h file to comment out the line which defines HAVE_ISINF.

* PPC
-----

F J Frankin <MEP95JFF@sheffield.ac.uk> reported on the gsl-discuss
mailing list that some early versions of GCC-2.95 have a problem with
long argument lists on PPC architecture, and this prevents GSL from
compiling correctly (e.g. the test program in the blas directory gives
a segmentation fault when run).  This problem is fixed in recent
versions of GCC.  GSL now includes an autoconf test which detects the
problem.

* Solaris
---------

Some warnings about "end of loop code not reached". These can be
ignored -- they come from the do { ... ; return ; } while(0) statement
in the GSL_ERROR macro.






Local variables:
mode: outline
paragraph-separate: "[ 	]*$"
end:
