delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1996/11/27/09:09:20

From: flaster AT qts DOT com ("Michael E. Flaster")
Subject: Fixing libiostream.a and _rtti_
27 Nov 1996 09:09:20 -0800 :
Sender: daemon AT cygnus DOT com
Approved: cygnus DOT gnu-win32 AT cygnus DOT com
Distribution: cygnus
Message-ID: <329C59E0.7CE4.cygnus.gnu-win32@qts.com>
Mime-Version: 1.0
X-Mailer: Mozilla 3.0 (WinNT; I)
Original-To: gnu-win32 AT cygnus DOT com
Original-Sender: owner-gnu-win32 AT cygnus DOT com

Well, I guess I'm going to try to figure out why executables
linked against libstdc++.a in beta 16 will not execute,
or at least figure out a workaround (I only really need
libiostream.a).  (BTW, renaming the executable from
a.out to a.exe did not work for me.)

If I just build libiostream.a, there are many undefined
references to _rtti_ stuff, which I guess stands for
"run time type info".  It seems that these references
automatically get inserted by the compiler whenever
there is a virtual destructor in a class.

Now, I've noticed that their definition is in the
stdc++ library.  But I thought that the iostream lib
would be self contained, and wouldn't need the stdc++ lib.
Are the _rtti_ references necessary?  If they're not, is
there some compiler flag that will turn them off?

FYI, I have been able to link an executable against
the iostream lib + stdexcepti.o + exceptioni.o + typeinfoi.o
(+ a stub for Strings) from the stdc++ library.  The resulting
executable would still not execute.  This seems to imply
that the problem is with either
1. run-time type info
2. Exceptions
3. iostream lib
I'd guess it's 1 or 2, but unfortunately, as I've probably already
demonstrated, I know nothing about them...  :-(

Thanks in advance!

Mike
-
For help on using this list, send a message to
"gnu-win32-request AT cygnus DOT com" with one line of text: "help".

- Raw text -


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