This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: ld for VMS?
- From: Tristan Gingold <gingold at adacore dot com>
- To: h.becker <becker dot ismaning at freenet dot de>
- Cc: Jay K <jay dot krell at cornell dot edu>, rupp at gnat dot com, binutils <binutils at sourceware dot org>
- Date: Tue, 4 May 2010 11:39:27 +0200
- Subject: Re: ld for VMS?
- References: <155841f3991588483cd1f08797799333@email.freenet.de>,<7ECC1459-522F-4D83-A990-3A831CCFFA2D@adacore.com>,<4BD5C1B8.30609@freenet.de>,<COL101-W21AD46888447D969481EC1E6F20@phx.gbl>,<48143E0B-1D96-4082-B142-18F9B9EA1DDC@adacore.com> <COL101-W68387EADB5CD4BC3140B4E6F20@phx.gbl>,<D4E538F5-8C45-4311-BFE3-9979B6B940BF@adacore.com> <COL101-W9D959F514D36BEA72C6DEE6F20@phx.gbl>,<802B5CEB-4A5A-4733-8748-344318F24D30@adacore.com> <col101-w145F6328D25E2DEB9E750DE6F20@phx.gbl>,<77C4B835-A9F1-4DA6-B5D2-2B57B96CAE4B@adacore.com> <COL101-W35655FB398B163603EA8AEE6F30@phx.gbl> <4BDFE577.1040701@freenet.de> <4BDFEA26.8050208@freenet.de>
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.