This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ld for VMS?


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]