new ghc under solaris

Simon Marlow simonmar at microsoft.com
Fri Feb 25 06:09:19 EST 2005


On 25 February 2005 10:09, Christian Maeder wrote:

> Simon Marlow wrote:
>> What version of gcc are you using?
> 
> I used gcc_2.95.3 until I discovered the warning:
> 
>   LdvProfile.c:43: #error Please use gcc 3.0+ to compile this file
>   with DEBUG; gcc < 3.0 miscompiles it
> 
> I've switched to gcc_3.4.3. Now the final linking of the stage2
> compiler fails (with thousands of undefined symbols).
> 
>   ../../ghc/compiler/stage1/ghc-inplace -o stage2/ghc-6.5 -H16m -O
>   [...]
>   DriverState_WayThreaded_closure     stage2/main/DriverFlags.o
>   ld: fatal: Symbol referencing errors. No output written to
>   stage2/ghc-6.5
>   collect2: ld returned 1 exit status
> 
> As a linker (that ./configure finds) I use gnu-ld_2.14, but gcc_3.4.3
> uses the solaris linker (see below).

This looks like a mangler or a splitter problem (those manky Perl
scripts we use to postprocess assembly code).  Probably gcc 3.4.3 is
generating something we don't recognise.

Could you try the following:

  - Add SplitObjs=NO to build.mk, recompile the libraries (make clean
    && make) and try to compile a simple program with the stage1 ghc.
    If that works, then it's a splitter problem.

  - If you get link errors, then
 
     $ cd libraries/base
     $ rm -f GHC/Base.o
     $ make GHC/Base.o EXTRA_HC_OPTS='-keep-s-file -keep-raw-s-file'
  
   and send me the contents of GHC/Base.s and GHC/Base.raw_s.

Cheers,
	Simon


More information about the Glasgow-haskell-users mailing list