
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