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.
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_
...
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 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.