On Fri, 14 Oct 2011 11:16:52 -0400, Ben Gamari <[email protected]> wrote:
> Thanks for the fix.
>  
> > applied to get it compiling, I got:
> > 
> > Loading package ghc-prim ... linking ... ghc-stage2: 
> > /export/home/karel/vcs/ghc-src/bgamari-ghc-arm-linker/libraries/ghc-prim/dist-install/build/HSghc-prim-0.2.0.0.o:
> >  
> > Thumb to ARM transition with JUMP24 relocation not supported
> > 
> Quite unfortunate. Well, I'll try implementing this. I know the sequence
> of instructions that should be used in the veneer. I just need to figure
> out where to place them.
> 
I've implemented the transition logic for the JUMP24
relocation. Hopefully it is correct. I'll take a closer look over it
today to check that it's correct, but the rough idea has been
uploaded in the name of release early-release often.

On the front of my own build efforts, I successfully built an
LLVM-backed stage 2 compiler thanks to your patch. Unfortunately, it
segfaults as soon as you try to compile anything. It seems that the
crash must occur fairly early in the compilation process as even -v4
produces no output. Moreover, the gdb backtrace[1] is completely
useless, so it's definitely in Haskell code. I think next I'll try
recompiling stage 1 with some debugging flags[2] and -O0. Sadly, I'm not
particularly confident that this will catch the issue since one of the
large risk factors here, the LLVM backend, is likely not checked by
-DDEBUG.

When you said you were unable to get the LLVM backend running on Thumb,
what exactly did you mean? I've found your blog post Did you find that
things segfaulted? Unfortunately, my LLVM tree's build system seems to
have somehow gotten itself into a funky state (trying to build any
target merely results in make building all, which then succeeds since
the build is finished) so running the test suite isn't an option. Very
frustrating. Looks like this will require another LLVM rebuild. The
BeagleBoard is certainly getting a workout. For now I'll try building
GHC against your LLVM.

Cheers,

- Ben


[1]

(gdb) run -Binplace/lib
Starting program: /mnt/data/ghc/ghc/inplace/lib/ghc-stage2 -Binplace/lib
[Thread debugging using libthread_db enabled]

Program received signal SIGSEGV, Segmentation fault.
0xea000006 in ?? ()
(gdb) bt
#0  0xea000006 in ?? ()
#1  0x01866a00 in base_GHCziEventziThread_ensureIOManagerIsRunning2_info ()
#2  0x01866a00 in base_GHCziEventziThread_ensureIOManagerIsRunning2_info ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)


[2] http://hackage.haskell.org/trac/ghc/wiki/Debugging/Compiler

_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to