GHC-6.4.1 on FreeBSD-amd64 still not ported
Wilhelm B. Kloke
wb at arb-phys.uni-dortmund.de
Sat Oct 15 18:09:32 EDT 2005
John Hornkvist <john at toastedmarshmallow.com> 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 0x00000000014f3ed0 in StgRun ()
> #1 0x00000000014f09b5 in schedule ()
> #2 0x00000000014f1386 in waitThread_ ()
> #3 0x00000000014f12aa in scheduleWaitThread ()
> #4 0x00000000014ee421 in rts_evalLazyIO ()
> #5 0x00000000014edccf 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
More information about the Glasgow-haskell-users
mailing list