X-Authentication-Warning: delorie.com: mailnull set sender to djgpp-workers-bounces using -f From: sandmann AT clio DOT rice DOT edu (Charles Sandmann) Message-Id: <10112210608.AA18063@clio.rice.edu> Subject: Re: RFC - Dynamic loading (partial prototype) To: djgpp-workers AT delorie DOT com Date: Fri, 21 Dec 2001 00:08:00 -0600 (CST) In-Reply-To: <10112200510.AA19496@clio.rice.edu> from "Charles Sandmann" at Dec 19, 2001 11:10:36 PM X-Mailer: ELM [version 2.5 PL2] Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit 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 I've got handling of imports working - I was able to look at the symbol details to tell the difference between absolute and relatives. So I've got a DXE which uses malloc and printf's to the screen. It can also play with errno (memory) from the dxe. The extra fixup code currently adds about 80 bytes to dxeload (which noone would ever notice). I created a new global _dxe_fixup pointer where the caller can set the appropriate offsets for imports. I didn't mess with multiple export symbols (yet) since I decided handling imports and supporting multiple exports easier were really two different features (you should be able to handle imports with a single routine interface like today). If your "main" program modules are compiled -g then when you step into the DXE code any references (like malloc or errno) in the main code code do show up symbolically. No line numbers or internal symbols. It's just a prototype right now, but it gives an idea of what I was thinking about and how it might be useful for dll'ing some chunks of the libc.