On 10/16/11 10:26 PM, Ben Gamari wrote:
On Sun, 16 Oct 2011 22:10:16 +0200, Karel Gardas<[email protected]>
wrote:
On 10/16/11 09:28 PM, Ben Gamari wrote:
(snip)
Does not seems so. You still attempt to invoke makeArmSymbolExtra with
just 3 args, while it's defined with 4 and I'm not able to fix that
since I'm not sure what you like to do with this -- either brackets are
wrong here or something like that...
Yep, I completely botched that one. As you point out, I put the
arguments in the wrong brackets.
Now I got:
rts/Linker.c: In function ‘do_Elf_Rel_relocations’:
rts/Linker.c:4329:31:
warning: pointer targets in initialization differ in signedness
rts/Linker.c:4339:16:
warning: implicit declaration of function ‘makeArmSymbolExtra’
rts/Linker.c:4339:16:
warning: nested extern declaration of ‘makeArmSymbolExtra’
rts/Linker.c:4339:74:
error: invalid type argument of ‘->’ (have ‘int’)
rts/Linker.c:4407:74:
error: invalid type argument of ‘->’ (have ‘int’)
rts/Linker.c:4390:17: warning: unused variable ‘is_bl’
make[1]: *** [rts/dist/build/Linker.o] Error 1
make: *** [all] Error 2
also how do you do the changes push into Git? I always get conflicts
while doing pull from your repo...
Yes, I'm very sorry about that. I've been rebasing pretty liberally in
order to keep the patch set clean. I'll try to avoid doing this in the
future.
rebase freely, I just hope I don't screw your code myself.
It seems you are right. There are some symbols that are definitely
emitted as Thumb, but these must have come from libraries. All of the
Haskell code is emitted as full 32-bit ARM instructions. In this case I
really don't know what to blame my SEGVs on.
Kind of imprecision on my side: in fact on my system, ghc is mixed
binary as all Haskell code is compiled into ARM ISA by LLVM and C code
is compiled into Thumb ISA by GCC. This means ghc's RTS library is Thumb
code for example!
Ahh, yes. That explains it. So when you said a Thumb build failed, what
exactly were you referring to?
I mean full thumb build, this means enforcing LLVM to output thumb ISA
by appropriate command-line options. IIRC I've tried twice, once in
build.mk and second attempt was harder push, I edited LLVM codegen and
added specific option there to enforce Thumb ISA generation all the
time. Anyway, I still got ghc-stage2 segfaulting. I don't remember
exactly what was the option combination but IMHO it was: -march=thumb
-mattr=+v7,+vfp3,+thumb2
Karel
_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc