From: flaster@qts.com ("Michael E. Flaster")
Subject: Fixing libiostream.a and _rtti_
27 Nov 1996 09:09:20 -0800
Sender: daemon@cygnus.com
Approved: cygnus.gnu-win32@cygnus.com
Distribution: cygnus
Message-ID: <329C59E0.7CE4.cygnus.gnu-win32@qts.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Mailer: Mozilla 3.0 (WinNT; I)
Original-To: gnu-win32@cygnus.com
Original-Sender: owner-gnu-win32@cygnus.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@cygnus.com" with one line of text: "help".
