| delorie.com/archives/browse.cgi | search |
| Message-Id: | <200005312207.SAA28835@delorie.com> |
| Mailing-List: | contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm |
| List-Subscribe: | <mailto:cygwin-subscribe AT sourceware DOT cygnus DOT com> |
| List-Archive: | <http://sourceware.cygnus.com/ml/cygwin/> |
| List-Post: | <mailto:cygwin AT sourceware DOT cygnus DOT com> |
| List-Help: | <mailto:cygwin-help AT sourceware DOT cygnus DOT com>, <http://sourceware.cygnus.com/ml/#faqs> |
| Sender: | cygwin-owner AT sourceware DOT cygnus DOT com |
| Delivered-To: | mailing list cygwin AT sourceware DOT cygnus DOT com |
| From: | "Parker, Ron" <rdparker AT butlermfg DOT com> |
| To: | Ross Smith <ross DOT s AT ihug DOT co DOT nz>, cygwin AT sourceware DOT cygnus DOT com |
| Cc: | "'khan AT NanoTech DOT Wisc DOT EDU'" <khan AT NanoTech DOT Wisc DOT EDU> |
| Subject: | RE: Major bug -- Exception handling broken |
| Date: | Wed, 31 May 2000 17:05:06 -0500 |
| MIME-Version: | 1.0 |
| X-Mailer: | Internet Mail Service (5.5.2448.0) |
------_=_NextPart_000_01BFCB4C.65269A78
Content-Type: text/plain;
charset="iso-8859-1"
> > Exception handling in g++ is totally broken in the current Cygwin
> > release. Almost any program that uses exceptions crashes:
> >
> > class Foo {};
> > int main() {
> > try { throw Foo(); }
> > catch (const Foo&) { return 0; }
> > }
> >
> > $ g++ foo.cpp -o foo
> > $ ./foo
> > 0 [main] foo 1007 handle_exceptions: Exception:
> > STATUS_ACCESS_VIOLATION
> > 5052 [main] foo 1007 stackdump: Dumping stack trace to
> > foo.exe.stackdump
>
> I have verified that this is a bug. Mumit Khan, the cygwin
> gcc guru, is out
> of the country and should be back mid-June. In the mean time
> I will see
> what I can find.
>
> For the time being you may work around it by replacing g++ in
> the command
> line with gcc. That produces a working executable. My best
> guess at this
> time is that there is a problem with g++ in the specs file.
> I will check it
> next.
My hunch about the specs file was wrong. There are no entries related to
g++. However I did track this down to a problem with g++ using libm.a.
When I did a:
gcc -v foo.cpp -o foo
the following was the last line of output:
/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2/collect2.exe -o foo.exe
/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2/../../../../i686-pc-cygwin/lib/crt0.o
-L/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2
-L/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2/../../../../i686-pc-cygwin/lib
-L/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2/../../.. /tmp/ccT9VBnq.o -lgcc
-lcygwin -luser32 -lkernel32 -ladvapi32 -lshell32 -lgcc
And:
g++ -v foo.cpp -o foo
yields:
/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2/collect2.exe -o foo.exe
/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2/../../../../i686-pc-cygwin/lib/crt0.o
-L/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2
-L/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2/../../../../i686-pc-cygwin/lib
-L/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2/../../.. /tmp/ccjfPal7.o -lstdc++
-lm -lgcc -lcygwin -luser32 -lkernel32 -ladvapi32 -lshell32 -lgcc
The only significant differences here are the -lstdc++ and the -lm. This
led to following tests:
gcc -v foo.cpp -o foo -lstd++ (OKAY)
gcc -v foo.cpp -o foo -lstd++ -lm(BAD)
gcc -v foo.cpp -o foo -lm (BAD)
So the problem seems to be with libm.a.
I did a little more looking around and discovered that g++ should not be
linking against -lm. So, I came up with the following patch that at least
make g++ able to compile a working version of the trivial test listed above.
It looks like a previous patch of Mumit's may have gotten dropped.
If you cannot rebuild gcc, I can email a stripped and gzip'd version of the
fixed g++. It is only 29,995 bytes.
Wed May 31 14:52:18 CDT 2000 Ron Parker (rdparker AT butlermfg DOT com)
* i386/cygwin.h (MATH_LIBRARY): Make it null.
------_=_NextPart_000_01BFCB4C.65269A78
Content-Type: text/plain; charset=us-ascii
--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com
------_=_NextPart_000_01BFCB4C.65269A78--
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |