WARNINGS about pitfalls and known ``problems'':
/tmp. (It is impossible for the configuration stuff to
compensate for the vagaries of different sysadmin approaches re temp
space.)
The quickest way around it is setenv TMPDIR /usr/tmp
or
even setenv TMPDIR . (or the equivalent incantation with the shell
of your choice).
The best way around it is to say
export TMPDIR=<dir>
in your build.mk file.
Then GHC and the other fptools programs will use the appropriate directory
in all cases.
ghc/rts/gmp and even
in ghc/lib, you may get a few C-compiler warnings. We think these
are OK.
archiving warning messages like the following are not
a problem:
ar: filename GlaIOMonad__1_2s.o truncated to GlaIOMonad_
ar: filename GlaIOMonad__2_2s.o truncated to GlaIOMonad_
...
compiler/), you may
get an ``Out of heap space'' error message. These can vary with the
vagaries of different systems, it seems. The solution is simple:
-optCrts-M<size> flag (add this flag to
<module>_HC_OPTS make variable in the appropriate Makefile).
-H flag to the Makefile, as
above.
gmake. (see Section
Pattern Rules and Options for information about
<module>_HC_OPTS.)
Alternatively, just cut to the chase scene:
% cd ghc/compiler
% make EXTRA_HC_OPTS=-optCrts-M128M
/usr/include/math.h, then your GCC was
mis-installed. fixincludes wasn't run when it should've been.
As fixincludes is now automagically run as part of GCC installation,
this bug also suggests that you have an old GCC.
ranlib
your libraries (on Sun4s).
% cd $(libdir)/ghc-x.xx/sparc-sun-sunos4
% foreach i ( `find . -name '*.a' -print` ) # or other-shell equiv...
? ranlib $i
? # or, on some machines: ar s $i
? end
We'd be interested to know if this is still necessary.
cpp before being compiled, and cpp varies
a bit from one Unix to another. One particular gotcha is macro calls
like this:
SLIT("Hello, world")
Some cpps treat the comma inside the string as separating two macro
arguments, so you get
:731: macro `SLIT' used with too many (2) args
Alas, cpp doesn't tell you the offending file!
Workaround: don't put wierd things in string args to cpp macros.