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