I'm working with an individual who has a couple of detailed linker-related 
questions; I hope this public forum is an appropriate place to raise them.

1. With the arrival of cc5.8 (Sun Studio 11) we see new types of relocations in 
its libraries, and their explanations in "Linker and Libraries Guide" (in the 
Solaris 10 documentation set) are far from sufficient. Their codes are 80 to 85 
(we can probably figure out the first four but not the last two).

2. Also, the formulas in Linker and Libraries guide seem to be misleading.
For reloc types R_SPARC_GOTDATA_LOX22 and R_SPARC_GOTDATA_OP_LOX22
it says:

((S+A-GOT) >> 10) & 0x3ff) | (0x1c00 ^~ (((S+A-GOT) >> 50) & 0x1c00)).

Understood literally, the expression affter '|' has 1 bits everywhere except 
0x1c00, and they will overwrite whatever is obtained at the left side of the 
'|'.

- Did they mean '^' rather than '|'?
- Is the constant 50 correct?

The section in question is the "File Formats" in the Solaris 10 Linkers and 
Libraries Guide:
http://docs.sun.com/app/docs/doc/817-1984/6mhm7pl29?a=view

Thanks for the guidance!
glen
This message posted from opensolaris.org

Reply via email to