[Info-vax] exact case transfer_vectors for VAX Macro?

hb end.of at inter.net
Wed Jan 23 11:48:56 EST 2013


On 01/23/2013 04:13 AM, John E. Malmberg wrote:

> It is just that if I set the C compiler to exact case, it tells the
> linker to also use exact case when resolving symbols, and while the
> uppercase transfer vectors work when building the shared image, they do
> not work when linking against it.
I can't verify this on a VAX (just with the cross linker on Alpha) but 
the linker usually used and uses exact case when resolving symbols. 
There is no directive to tell the linker otherwise. The linker takes 
whatever the "language processors" supply and tries to find an exact match.

Linker options are different. They are processed by the linker after 
uppercasing everything, except you tell the linker to be case sensitive. 
There is a linker option for this, CASE_SENSITIVE=YES, which initially 
is treated case insensitive. The effect is, that for all subsequent 
options all tokens on the right side of the equal sign are treated as-is 
(so you can enable the feature with yes, but have to disable it with 
NO). Universal symbols can be defined in linker options. So whatever is 
read from the options file as a universal symbol will make it into the 
image.

It is (always) useful to have a full map with cross references to verify 
the result of the link process.

> I have not been able to figure out how to use the Linker option file to
> make exact case aliases for the transfer vector.
The transfer vector on VAX is usually made by MACRO32. There is nothing 
in the VAX linker to help you with that. I don't know whether there was 
a directive to enable case sensitive global symbols for MACRO32. Because 
you seem to use .transfer, you may need to modify the generated transfer 
object to get the case sensitive symbol into the object module and the 
shareable image.



More information about the Info-vax mailing list