ghc-6.6 under solaris

Christian Maeder maeder at tzi.de
Fri Oct 13 05:01:25 EDT 2006


Duncan Coutts schrieb:
> 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.

ok, my gcc is called with mcpu=v9.

So "ghc -split-objs" works now with either -optc-mcpu=v8 or
-opta-mcpu=v9 (or even -opta-mcpu=ultrasparc).

Where should I place what so that my stage1 inplace-compiler works
without "SplitObjs=NO" in mk/build.mk?

Thanks Christian
-------------- next part --------------
Glasgow Haskell Compiler, Version 6.6, for Haskell 98, compiled by GHC version 6.6
Using package config file: /usr/local/pub-bkb/ghc/ghc-6.6/lib/ghc-6.6/package.conf
wired-in package base mapped to base-2.0
wired-in package rts mapped to rts-1.0
wired-in package haskell98 mapped to haskell98-1.0
wired-in package template-haskell mapped to template-haskell-2.0
Hsc static flags: -static
*** Chasing dependencies:
Chasing modules from: hello.hs
Created temporary directory: /tmp/ghc25062_0
*** Haskell pre-processor:
convert.sh hello.hs hello.hs /tmp/ghc25062_0/ghc25062_0.hspp
Stable obj: []
Stable BCO: []
compile: input file /tmp/ghc25062_0/ghc25062_0.hspp
*** Checking old interface for main:Main:
[1 of 1] Compiling Main             ( hello.hs, hello.o )
*** Parser:
*** Renamer/typechecker:
*** Desugar:
    Result size = 10
*** Simplify:
    Result size = 8
*** Tidy Core:
    Result size = 8
*** CorePrep:
    Result size = 10
*** Stg2Stg:
*** CodeGen:
*** CodeOutput:
*** C Compiler:
gcc -x c /tmp/ghc25062_0/ghc25062_0.hc -o /tmp/ghc25062_0/ghc25062_0.raw_s -mcpu=v9 -w -fno-strict-aliasing -v -S -Wimplicit -O -D__GLASGOW_HASKELL__=606 -DUSE_SPLIT_MARKERS -I . -I /usr/local/pub-bkb/ghc/ghc-6.6/lib/ghc-6.6/include
Using built-in specs.
Target: sparc-sun-solaris2.10
Configured with: ../gcc-4.0.3/configure --prefix=/usr/local/lang -program-suffix=_4.0.3_s10 --with-gnu-as --with-as=/usr/local/bin/gnu-as --with-gnu-ld --with-ld=/usr/local/bin/gnu-ld --enable-version-specific-runtime-libs --enable-languages=c,c++
Thread model: posix
gcc version 4.0.3
 /export/local/mirror/sparc-solaris/lang/bin/../libexec/gcc/sparc-sun-solaris2.10/4.0.3/cc1 -quiet -v -I . -I /usr/local/pub-bkb/ghc/ghc-6.6/lib/ghc-6.6/include -iprefix /export/local/mirror/sparc-solaris/lang/bin/../lib/gcc/sparc-sun-solaris2.10/4.0.3/ -D__sparcv8 -D__GLASGOW_HASKELL__=606 -DUSE_SPLIT_MARKERS /tmp/ghc25062_0/ghc25062_0.hc -quiet -dumpbase ghc25062_0.hc -mcpu=v9 -auxbase-strip /tmp/ghc25062_0/ghc25062_0.raw_s -O -Wimplicit -w -version -fno-strict-aliasing -o /tmp/ghc25062_0/ghc25062_0.raw_s
ignoring nonexistent directory "/export/local/mirror/sparc-solaris/lang/bin/../lib/gcc/sparc-sun-solaris2.10/4.0.3/../../../../sparc-sun-solaris2.10/include"
ignoring duplicate directory "/usr/local/lang/lib/gcc/sparc-sun-solaris2.10/4.0.3/include"
ignoring nonexistent directory "/usr/local/lang/lib/gcc/sparc-sun-solaris2.10/4.0.3/../../../../sparc-sun-solaris2.10/include"
#include "..." search starts here:
#include <...> search starts here:
 .
 /usr/local/pub-bkb/ghc/ghc-6.6/lib/ghc-6.6/include
 /export/local/mirror/sparc-solaris/lang/bin/../lib/gcc/sparc-sun-solaris2.10/4.0.3/include
 /usr/local/include
 /usr/local/lang/include
 /usr/include
End of search list.
GNU C version 4.0.3 (sparc-sun-solaris2.10)
	compiled by GNU C version 4.0.3.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
*** Mangler:
/usr/local/pub-bkb/ghc/ghc-6.6/lib/ghc-6.6/ghc-asm /tmp/ghc25062_0/ghc25062_0.raw_s /tmp/ghc25062_0/ghc25062_0.split_s
*** Splitter:
/usr/local/pub-bkb/ghc/ghc-6.6/lib/ghc-6.6/ghc-split /tmp/ghc25062_0/ghc25062_0.split_s /tmp/ghc25062_0/ghc25062_0.split /tmp/ghc25062_0/ghc25062_0.split
*** Assembler:
gcc -c -o hello_split/hello__1.o /tmp/ghc25062_0/ghc25062_0.split__1.s
/tmp/ghc25062_0/ghc25062_0.split__1.s: Assembler messages:

/tmp/ghc25062_0/ghc25062_0.split__1.s:30:0:
     Error: Architecture mismatch on "blu,pn %icc,.LL2".

/tmp/ghc25062_0/ghc25062_0.split__1.s:30:0:
      (Requires v9|v9a|v9b; requested architecture is v8.)

/tmp/ghc25062_0/ghc25062_0.split__1.s:34:0:
     Error: Architecture mismatch on "bgu,pt %icc,.LL2".

/tmp/ghc25062_0/ghc25062_0.split__1.s:34:0:
      (Requires v9|v9a|v9b; requested architecture is v8.)

/tmp/ghc25062_0/ghc25062_0.split__1.s:63:0:
     Error: Architecture mismatch on "return".

/tmp/ghc25062_0/ghc25062_0.split__1.s:63:0:
      (Requires v9|v9a|v9b; requested architecture is v8.)
*** Deleting temp files:
Deleting: /tmp/ghc25062_0/ghc25062_0.split__4.s /tmp/ghc25062_0/ghc25062_0.split__3.s /tmp/ghc25062_0/ghc25062_0.split__2.s /tmp/ghc25062_0/ghc25062_0.split__1.s /tmp/ghc25062_0/ghc25062_0.split /tmp/ghc25062_0/ghc25062_0.split_s /tmp/ghc25062_0/ghc25062_0.raw_s /tmp/ghc25062_0/ghc25062_0.hc /tmp/ghc25062_0/ghc25062_0.hspp
*** Deleting temp dirs:
Deleting: /tmp/ghc25062_0


More information about the Glasgow-haskell-users mailing list