6.4.2 hppa info tables question
Peter Tanski
p.tanski at gmail.com
Tue Jul 3 13:46:04 EDT 2007
On July 3, 2007 10:47:20 AM EDT, Joe Buehler wrote:
> In getting the registerised build up and running for
> hppa 6.4.2, I have run into a bit of a road block.
>
> I'm puzzling over the mangler and what is in the
> _info tables...
>
> <snip>
>
> The mangler normally would replace the srt pointer in the info
> table with a relative offset from the info table. However,
> the info table gets moved to the code space, in front of
> its associated function, and I think the offset computation
> is problematic for hppa.
If the linker does not support complex relocations you might try
setting:
GhcEnableTablesNextToCode=NO
in your build.mk.
See http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/Storage/
Stack for a basic introduction to the InfoTables and in the
Commentary. There is a more detailed introduction starting on p. 24
of the rts document--if you have built the docs in $(TOP)/docs/rts/.
I remember reading a better introduction than either of these
somewhere but I can't remember where right now. Placing the info
table next to the code saves dynamic memory and increases speed about
the same as using static-sized arrays in C (if the C compiler puts
the array into the .bss section)--I hope I am not confusing things;
info tables would go into the .data section. In any case, it
transfers something dynamically allocated to memory statically
allocated for the binary. I believe you can have a Registerised
build without tablesNextToCode.
Cheers,
Pete
More information about the Cvs-ghc
mailing list