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