Download GNU MP - The Institute of Mathematical Sciences

Transcript
14
DJGPP
GNU MP 4.1.3
The DJGPP port of bash 2.03 is unable to run the ‘configure’ script, it exits
silently, having died writing a preamble to ‘config.log’. Use bash 2.04 or higher.
‘make all’ was found to run out of memory during the final ‘libgmp.la’ link on one
system tested, despite having 64Mb available. A separate ‘make libgmp.la’ helped,
perhaps recursing into the various subdirectories uses up memory.
‘DESTDIR’ and shared ‘libgmpxx’
‘make install DESTDIR=/my/staging/area’, or the same with a ‘prefix’ override,
to install to a temporary directory is not fully supported by current versions of
libtool when building a shared version of a library which depends on another being
built at the same time, like ‘libgmpxx’ and ‘libgmp’.
The problem is that ‘libgmpxx’ is relinked at the install stage to ensure that if the
system puts a hard-coded path to ‘libgmp’ within ‘libgmpxx’ then that path will
be correct. Naturally the linker is directed to look only at the final location, not the
staging area, so if ‘libgmp’ is not already in that final location then the link will
fail.
A workaround for this on SVR4 style systems, such as GNU/Linux, where paths
are not hard-coded, is to include the staging area in the linker’s search using LD_LIBRARY_PATH. For example with ‘--prefix=/usr’ but installing under
‘/my/staging/area’,
LD_LIBRARY_PATH=/my/staging/area/usr/lib \
make install DESTDIR=/my/staging/area
GNU binutils strip prior to 2.12
strip from GNU binutils 2.11 and earlier should not be used on the static libraries
‘libgmp.a’ and ‘libmp.a’ since it will discard all but the last of multiple archive
members with the same name, like the three versions of ‘init.o’ in ‘libgmp.a’.
Binutils 2.12 or higher can be used successfully.
The shared libraries ‘libgmp.so’ and ‘libmp.so’ are not affected by this and any
version of strip can be used on them.
make syntax error
On certain versions of SCO OpenServer 5 and IRIX 6.5 the native make is unable
to handle the long dependencies list for ‘libgmp.la’. The symptom is a “syntax
error” on the following line of the top-level ‘Makefile’.
libgmp.la: $(libgmp_la_OBJECTS) $(libgmp_la_DEPENDENCIES)
Either use GNU Make, or as a workaround remove $(libgmp_la_DEPENDENCIES)
from that line (which will make the initial build work, but if any recompiling is done
‘libgmp.la’ might not be rebuilt).
MacOS X and GCC
Libtool currently only knows how to create shared libraries on MacOS X using the
native cc (which is a modified GCC), not a plain GCC. A static-only build should
work though (‘--disable-shared’).
Also, libtool currently cannot build C++ shared libraries on MacOS X, so if
‘--enable-cxx’ is desired then ‘--disable-shared’ must be used. Hopefully this
will be fixed in the future.
Motorola 68k ABI
The GMP assembler code has been written for the SVR4 standard ABI. GCC option
‘-mshort’ changes the calling conventions and is not currently supported. We believe
the PalmOS calling conventions are similarly different and are likewise not currently
supported.