porting ghc-6.4 to x86_64

Simon Marlow simonmar at microsoft.com
Mon Mar 21 09:20:25 EST 2005


On 21 March 2005 14:12, Andrei A. Voropaev wrote:

> On Mon, Mar 21, 2005 at 02:09:03PM -0000, Simon Marlow wrote:
>> On 21 March 2005 09:52, Andrei A. Voropaev wrote:
>> 
>>> I know that this has been done already (at least by RedHat), but
>>> since I don't use RedHat (or any other distro of linux) and instead
>>> compiled everything myself, I have to bootstrap ghc as well. So I'm
>>> carefully following the instruction. On my host (i386) I have
>>> ghc-6.2.2 (and ghc-6.4). Looks like I have some problem.
>>> 
>>> As far as I understand this should fail.
>>> 
>>> $ cd H/ghc && make boot && make
>>> .....
>>> ==fptools== make all -r;
>>>  in /usr/local/src/ghc-6.4/ghc/rts
>>> 
>>
------------------------------------------------------------------------
>>> ../../ghc/compiler/ghc-inplace -H16m -O -H32m -keep-hc-files -static
>>> -I. -#include Prelude.h -#include Rts.h -#include RtsFlags.h
>>> -#include RtsUtils.h -#include StgRun.h -#include Schedule.h
>>> -#include Printer.h -#include Sanity.h -#include STM.h -#include
>>> Storage.h -#include SchedAPI.h -#include Timer.h -#include Itimer.h
>>> -#include ProfHeap.h -#include LdvProfile.h -#include Profiling.h
>>> -#include Apply.h -fvia-C -dcmm-lint     -c Apply.cmm -o Apply.o
>>> In file included from Apply.cmm:13:
>>> /usr/local/src/ghc-6.4/ghc/includes/Cmm.h:288: #error mp_limb_t !=
>>> StgWord: assumptions in PrimOps.cmm are now false
>>> make[1]: *** [Apply.o] Error 1
>>> make: *** [all] Error 1
>> 
>> Yes, I hit exactly this problem when I recently bootstrapped on
>> x86_64. IIRC, the solution was to make the RTS compile.
>> 
>> Did you copy across ghc/includes/DerivedConstants.h and
>> ghc/includes/GHCConstants.h from the target to the host?  I think
>> that should fix the above error (the docs do say you have to do
>> this, so perhaps it's something else).
> 
> Sure enough I did. As I said, I carefully followed the instructions. I
> repeated the whole process 3 times to make sure I didn't forget
> something :)

So could you check the values of SIZEOF_VOID_P (in ghcautoconf.h) and
SIZEOF_mp_limb_t (in DerivedConstants.h)?  They should both be 8 in the
versions of these files copied from the target.

Cheers,
	Simon


More information about the Glasgow-haskell-users mailing list