
On Tue, May 02, 2006 at 12:16:27PM +0100, Simon Marlow wrote: Hi, [..]
There appears to be a problem with the threaded RTS on some platforms: Solaris and possibly FreeBSD. I haven't been able to track down the problem yet - if someone could build GHC with -threaded -debug and send me the output from +RTS -Ds, that might help.
Wrote private mail.
You could work around this by removing the -threaded option in ghc/compiler/Makefile.
Ok, I tried[1] that and like I guessed, now I get again the infamous 'Prologue junk?' error' again: ../../ghc/compiler/ghc-inplace -H16m -O -O2 -static -I. -#include Prelude.h -#include Rts.h -#include RtsFlags.h -#include RtsUtils.h -#include StgRun.h -#include Schedule.h -#include Printer.h -#include Sanity.h -#include STM.h -#include Storage.h -#include SchedAPI.h -#include Timer.h -#include Itimer.h -#include ProfHeap.h -#include LdvProfile.h -#include Profiling.h -#include Apply.h -fvia-C -dcmm-lint -c Apply.cmm -o Apply.o Prologue junk?: .globl stg_ap_0_ret .type stg_ap_0_ret, @function stg_ap_0_ret: pushl %ebp movl %esp, %ebp make[2]: *** [Apply.o] Error 255 make[1]: *** [all] Error 1 make[1]: Leaving directory `/var/tmp/gsauthof/src/nothread/ghc-6.4.2/ghc' make: *** [build] Error 1 This error I don't understand. Doesn't the mangler expects the pushl/movl instructions? Isn't this a 'normal' sequence if the functions pushes local variables to the stack? Ok, if I diff a raw_s file from linux against one from solaris x86, the pushl/movl sequences are deleted (and the '#NO_APP' command is replaced by '/NO_APP'). Regards Georg Sauthoff [1] PATH=/var/tmp/gsauthof/bin:/usr/sfw/bin:$PATH ./configure --with-gcc=/usr/sfw/bin/gcc --with-ghc="/var/tmp/gsauthof/src/ghc-6.4.2/ghc/compiler/ghc-inplace" --prefix=/var/tmp/gsauthof/ghc-6.4.2-nt 2>&1 | tee log PATH=/var/tmp/gsauthof/bin:/usr/sfw/bin:$PATH make 2>&1 | tee log2