[Haskell-cafe] Re: GHC 6.4.1 x86-64 does not compile

Simon Marlow simonmarhaskell at gmail.com
Fri May 5 05:23:42 EDT 2006


Dusan Kolar wrote:
> Hello all,
> 
>  I've install "universal binary" for x86_64 of GHC 6.4.1. The 
> installation was done on AMD dual core machine. Uname for the machine 
> gives:
> 
> Linux <machine name> 2.6.16.5 #1 SMP Thu Apr 13 09:08:22 CEST 2006 
> x86_64 x86_64 x86_64 GNU/Linux
> 
> While ghci was running some tests well, the ghc ended compilation with a 
> long list of errors starting like this:
> 
> Chasing modules from: queen-main
> Compiling QueensDK         ( ./QueensDK.hs, ./QueensDK.o )
> /tmp/ghc27286.s: Assembler messages:
> /tmp/ghc27286.s:26: Error: bad register name `%r12'
> /tmp/ghc27286.s:27: Error: bad register name `%r15'
> /tmp/ghc27286.s:29: Error: bad register name `%r12)'
> /tmp/ghc27286.s:30: Error: bad register name `%r12)'
> /tmp/ghc27286.s:31: Error: bad register name `%r12)'
> /tmp/ghc27286.s:32: Error: bad register name `%rax'
> /tmp/ghc27286.s:33: Error: bad register name `%r13)'
> /tmp/ghc27286.s:34: Error: bad register name `%rbp'
> /tmp/ghc27286.s:37: Error: bad register name `%rbx)'
> /tmp/ghc27286.s:38: Error: bad register name `%rbx)'
> /tmp/ghc27286.s:45: Error: bad register name `%rbp)'
> /tmp/ghc27286.s:46: Error: bad register name `%r14'
> /tmp/ghc27286.s:48: Error: bad register name `%rbp)'
> /tmp/ghc27286.s:49: Error: bad register name `%r13'
> ....
> 
> The list is quite long. I've truncated it.
> 
> Well, OK, the x386 version is running, but it won't compile GHC-6.4.2 
> and, moreover, it's not optimized for the HW. ;-)
> 
> Is there any way out, or what may I be doing wrong way?

It appears that somehow the assembler is being used in 32-bit mode, 
rather than 64-bit.  I'm not sure why this happens.  Perhaps your 
machine is set up to use a 32-bit build environment by default, rather 
than a 64-bit one?  The fact that the x86 version works without any 
special options seems to support that.

On my x86_64 box here, I have to give -m32 options to gcc to generate 
32-bit code, for example.

Cheers,
	Simon


More information about the Haskell-Cafe mailing list