ld for VMS?
h.becker
becker.ismaning@freenet.de
Tue May 4 09:35:00 GMT 2010
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.
How lib$establish (and lib$revert) actually enable dynamic handlers is a
different thing. It requires compiler support (to add a static handler).
Hartmut
More information about the Binutils
mailing list