On 10/16/11 05:48 PM, Ben Gamari wrote:
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.

This code is not going to fly yet. You invoke makeArmSymbolExtra with:

S = &(makeArmSymbolExtra(oc, ELF_R_SYM(info), S)->jumpIsland);

but this function is using 4 parameters, so 1 parm is missing above:

static SymbolExtra* makeArmSymbolExtra( ObjectCode* oc,
                                        unsigned long symbolNumber,
                                        unsigned long target,
                                        int toThumb )
{

Also I'm quite out of idea what was your intention on line above so I'm not able to fix this myself.

Also another simple fix is needed for compilation:

--- a/rts/Linker.c
+++ b/rts/Linker.c
@@ -4388,7 +4388,7 @@ do_Elf_Rel_relocations ( ObjectCode* oc, char* ehdrC,
             StgWord16 *lower = (StgWord16 *)(P + 2);
             int sign = (*upper >> 10) & 1;
             int j1, j2, i1, i2;
-            int is_bl = lower & (1<<12);
+            int is_bl = *lower & (1<<12);



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?

Yes, simply speaking ghc-stage2 segfaulted on me and I've not invested the time to find out why. This is task for future...

Thanks,
Karel

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

Reply via email to