ld for VMS?

Tristan Gingold gingold@adacore.com
Tue May 4 09:39:00 GMT 2010


On May 4, 2010, at 11:34 AM, h.becker wrote:

> Tristan Gingold wrote:
>> The handler is installed by decc$crtl_init using a global vector.  Thus the condition handler for
>> main is not required.  Of course, other user condition handlers should return SS$_RESIGNAL on condition
>> that they don't handle.
>> (But this is more a gcc topic!)
> I'mnot sure what is meant by using a global vector. VMS has primary and secondary exception handlers, they are for the debugger and friends. If present, they are called before any frame based handler is looked up. SS$_RESIGNAL is what a frame based handler is supposed to return, if the handler can't handle the exception. If none of the frame based handler can handle an exception last chance handlers are called. That's probably what is meant, here. But I haven't checked what decc$main or decc$crtl_init do. The manual says, that on VAX decc$crtl_init establishes a frame based handler for its caller. That's not that easy for Alpha, because Alpha has only static handlers. So there is very likely a different mechanism which may be a last chance handler.

Right, it uses a last chance handler.

> How lib$establish (and lib$revert) actually enable dynamic handlers is a different thing. It requires compiler support (to add a static handler).

Sure.

Tristan.



More information about the Binutils mailing list