delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2000/06/15/07:35:26

Date: Thu, 15 Jun 2000 11:19:59 +0300 (IDT)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
X-Sender: eliz AT is
To: Edmund Horner <ejrh AT paradise DOT net DOT nz>
cc: djgpp AT delorie DOT com
Subject: Re: DXE/DLX and C++
In-Reply-To: <960989641.316160@shelley.paradise.net.nz>
Message-ID: <Pine.SUN.3.91.1000615111933.11632D-100000@is>
MIME-Version: 1.0
Reply-To: djgpp AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

On Thu, 15 Jun 2000, Edmund Horner wrote:

> 1. I've examined the DXE mechanism and managed to get past the multiple
> sections issue by adding a couple of lines to the linker script.

Please post here what changes did you do in dxe.ld.

> 2. But I am now stuck with "unable to resolve external symbols" on
> '___builtin_delete', '_terminate__Fv', '___throw', '___builtin_new' and
> '___eh_pc'.

As explained in section 22.15 of the DJGPP FAQ list, DXE cannot access
functions linked into the main module; the unresolved externals you
cite are from the standard C++ library.

I think the easiest way out of this mess (if there is one) would be to
not use any standard C++ classes in your DXE.  In particular, it seems
your code uses exceptions and `new' and `delete' operators; try to
rewrite it so as not to use these features.

Another possibility would be to pull the object modules that define
these symbols from libstdcxx.a (using the `ar' utility) and link them
into your DXE.

Failing all that, I suggest to rewrite your DXE in C (why do you need
it in C++, anyway?)

- Raw text -


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