ghc-6.6 under solaris

Duncan Coutts duncan.coutts at worc.ox.ac.uk
Fri Oct 13 04:01:35 EDT 2006


On Fri, 2006-10-13 at 09:30 +0200, Christian Maeder wrote:
> Christian Maeder schrieb:
> > I've created ghc-6.6 under solaris. This did only work with SplitObj=No
> > in mk/build.mk. (There was an early split error, that I could reproduce.)
> 
> Here is the output of that split error:
> 
> ../../compiler/ghc-inplace -H16m -O -fglasgow-exts -cpp -Iinclude
> -"#include" Hs
> Base.h -funbox-strict-fields -package-name  base-2.0 -O -Rghc-timing
> -fgenerics -fgenerics -split-objs    -c GHC/Base.lhs -o GHC/Base.o  -ohi
> GHC/Base.hi
> /tmp/ghc27221_0/ghc27221_0.split__1.s: Assembler messages:
> 
> /tmp/ghc27221_0/ghc27221_0.split__1.s:22:0:
>      Error: Architecture mismatch on "blu,pt %icc,.LL7".
> 
> /tmp/ghc27221_0/ghc27221_0.split__1.s:22:0:
>       (Requires v9|v9a|v9b; requested architecture is v8.)

When I've had similar error messages in the past on sparc linux it was
because of a mismatch between the requested architecture when compiling
and when assembling.

For example if I were to do:

ghc --make HelloWorld.hs -optc-mcpu=ultrasparc

then ghc would call gcc to compile .c -> .s with -mcpu=ultrasparc and so
generate sparc V9 instructions. But when it came to assembling the .s
file, we've not passed the abi flag via -opta so it defaults to the
minimum abi. Then of course the assembler bumps into sparc V9
instructions but it had only been told to expect sparc V8 and so it
complains.

So I'd suggest building a test file with -split-objs and -v and see
exactly what flags ghc is passing to gcc at the compilation and assembly
stages.

Duncan



More information about the Glasgow-haskell-users mailing list