John Hornkvist [EMAIL PROTECTED] schrieb:
Simon Marlow simonmar at microsoft.com writes:
SIZEOF_mp_limb_t comes from DerivedConstants.h, and SIZEOF_VOID_P comes
from ghcautoconf.h (both in ghc/includes). Both of these files should
be from the target system for a cross-compile; I strongly suspect that
one of them has been overwritten by the host version in your tree.
Those files got overwritten several times for me, too, despite following the
instructions... I ended up watching for them to get overwritten and copying
them back whenever that happened.
This is not really sufficient. I use chflags uchg to protect these
files. At least you you will be noticed, when the overwrite tries to happen.
I've been trying to crosscompile for amd64-freebsd from Mac OS X, but
although I seem to get all the hc files, the ghc-pkg-inplace crashes, and
Are you sure? The recommended procedure has a serious bug, which I
discovered about 30 minutes ago. You need to do make boot in the rebuilding
of ghc/lib/compat with the same flags as make all, because libghccompat.a
is built in make boot and you won't get the .hc files otherwise.
Just look into ghc/lib/Compat subdirectories for .hc files.
so does ghc-inplace, with the following backtrace:
#0 0x014f3ed0 in StgRun ()
#1 0x014f09b5 in schedule ()
#2 0x014f1386 in waitThread_ ()
#3 0x014f12aa in scheduleWaitThread ()
#4 0x014ee421 in rts_evalLazyIO ()
#5 0x014edccf in main ()
Should I try to build again with debug symbols, or is that pointless for ghc
output?
This is pointless, and typical for the sort of errors SM mentioned.
I have got dozens of these in the process.
Now let me report real progress. I have got it on FreeBSD-6.0-amd64 at last.
Here are the steps on the host system, which are needed IIRC:
cp
../../fptools-amd64/ghc-6.4.1/ghc/includes/{ghcautoconf.h,DerivedConstants.h,GHCConstants.h}
ghc/includes
touch
ghc/includes/{ghcautoconf.h,DerivedConstants.h,GHCConstants.h,mkDerivedConstants.c}
touch
ghc/includes/{mkDerivedConstantsHdr,mkDerivedConstants.o,mkGHCConstants,mkGHCConstants.o}
touch ghc/includes/{ghcautoconf.h,DerivedConstants.h,GHCConstants.h}
chflags uchg ghc/includes/{ghcautoconf.h,DerivedConstants.h,GHCConstants.h}
(cd glafp-utils gmake boot gmake)
(cd ghc gmake boot gmake)
(cd libraries gmake boot gmake)
(cd ghc/compiler gmake boot stage=2 gmake stage=2)
(cd ghc/lib/compat gmake clean; rm .depend; gmake boot UseStage1=YES
EXTRA_HC_OPTS='-O -fvia-C -keep-hc-files'; gmake -k UseStage1=YES
EXTRA_HC_OPTS='-O -fvia-C -keep-hc-files')
(cd ghc/rts gmake -k UseStage1=YES EXTRA_HC_OPTS='-O -fvia-C -keep-hc-files')
(cd ghc/utils gmake clean; gmake -k UseStage1=YES EXTRA_HC_OPTS='-O -fvia-C
-keep-hc-files')
gmake hc-file-bundle Project=Ghc
Don't forget to delete Linker.c (for ghci). The stage on teh host system
where the process fails jsut now is
$MAKE -C libraries boot all
because
Fake happy is not happy!
But ghc-inplace seems to work pretty good now on amd64.
--
Dipl.-Math. Wilhelm Bernhard Kloke
Institut fuer Arbeitsphysiologie an der Universitaet Dortmund
Ardeystrasse 67, D-44139 Dortmund, Tel. 0231-1084-257
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users