delorie.com/archives/browse.cgi | search |
X-Authentication-Warning: | delorie.com: mailnull set sender to djgpp-workers-bounces using -f |
From: | "Tim Van Holder" <tim DOT van DOT holder AT pandora DOT be> |
To: | <djgpp-workers AT delorie DOT com> |
Subject: | Re: RFC - Dynamic loading |
Date: | Fri, 21 Dec 2001 13:06:16 +0100 |
Message-ID: | <000201c18a17$e4f18940$ce3276d5@pandora.be> |
MIME-Version: | 1.0 |
X-Priority: | 3 (Normal) |
X-MSMail-Priority: | Normal |
X-Mailer: | Microsoft Outlook, Build 10.0.2627 |
X-MimeOLE: | Produced By Microsoft MimeOLE V6.00.2462.0000 |
In-Reply-To: | <10112202215.AA16086@clio.rice.edu> |
Importance: | Normal |
Reply-To: | djgpp-workers AT delorie DOT com |
Errors-To: | nobody AT delorie DOT com |
X-Mailing-List: | djgpp-workers AT delorie DOT com |
X-Unsubscribes-To: | listserv AT delorie DOT com |
> > You'd also need to provide for C++ support; a standard DXE cannot > > survive an exception being thrown in it (because the stack unwinding > > info doesn't get registered at load time). > > Is this stored in a static link section, or somehow registered with > a handler? Reference an external variable? If it calls a handler > or external variable to register, then that symbol should > be resolved with the imports. If it's part of a static section, it > would need to be added to the "stub" which loads the DXE. I haven't > looked at C++ support at all yet. Well, with gcc 2.95.2, you needed to call __register_frame() and __deregister_frame() (both are in lingcc.a) for all exception frames when loading and unloading modules. Both take a char* that points to the frame in question. The frames are marked by those __FRAME_BEGIN__ symbols in the object files. I've found that this system does not work with gcc3 (there probably some additional symbols and/or functions involved; I'll have to donload the gcc3 sources and find out.
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |