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/runtime/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_
...
SPECIALISATION MESSAGES (Desirable):
*** INSTANCES
{-# SPECIALIZE instance Eq [Class] #-}
{-# SPECIALIZE instance Eq (Class, [Class]) #-}
{-# SPECIALIZE instance Outputable [ClassOp] #-}
{-# SPECIALIZE instance Outputable [Id] #-}
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:
(1) add a suitable -H
flag to the <module>_HC_OPTS
make
variable
in the appropriate Makefile
; (2) try again: gmake
. (Section
Pattern Rules and Options.)
Alternatively, just cut to the chase scene:
% cd ghc/compiler
% make EXTRA_HC_OPTS=-H32m # or some nice big number
Giant error 'do'ing getopts.pl: at ./lit2pgm.BOOT line 27.
This indicates that your perl
was mis-installed; the binary is
unable to find the files for its ``built-in'' library. Speak to your
perl installer, then re-try.
/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.
tib
(Simon's favourite), the odds are that something about your/our setup
will reach out and bite you. Yes, please complain; meanwhile, you can
do make -n whatever.dvi
to see the intended commands, then try to
muddle through, doing them by hand.
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.