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.
ar
chiving 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 cpp
s 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.