X-Authentication-Warning: delorie.com: mailnull set sender to djgpp-workers-bounces using -f From: "Tim Van Holder" To: 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 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 Precedence: bulk > > 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.