delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2001/12/21/07:06:08

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.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019