Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Message-Id: <4.3.1.2.20000908095010.00b4ff18@pop.ma.ultranet.com> X-Sender: lhall AT pop DOT ma DOT ultranet DOT com X-Mailer: QUALCOMM Windows Eudora Version 4.3.1 Date: Fri, 08 Sep 2000 09:52:52 -0400 To: "Fleischer, Karsten (K.)" , "'kris DOT thielemans AT ic DOT ac DOT uk'" From: "Larry Hall (RFK Partners, Inc)" Subject: RE: problem with dynamic_cast Cc: "Cygwin (E-mail)" In-Reply-To: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Quite true. -lm and -lc are not necessary with Cygwin. The support for them are in the Cygwin DLL/lib which is linked in automatically. Linking with it twice (or more) guarantees a crash. The simple answer is, don't us -lm or -lc with Cygwin. Larry Hall lhall AT rfk DOT com RFK Partners, Inc. http://www.rfk.com 118 Washington Street (508) 893-9779 - RFK Office Holliston, MA 01746 (508) 893-9889 - FAX At 07:58 AM 9/8/2000, Fleischer, Karsten (K.) wrote: >Hi Kris, > >I didn't look at your example, but I think you shouldn't use -lm (and -lc). >libm.a/libc.a are symlinked to libcygwin.a and this is linked against every >program by default. I ran into troubles and stackdumps too, when linking >with -lm. I think there's more about this problem in the archives. > >Karsten > > > -----Original Message----- > > From: Kris Thielemans [mailto:kris DOT thielemans AT ic DOT ac DOT uk] > > Sent: Freitag, 8. September 2000 12:46 > > To: Gnuwin > > Cc: gcc-bugs AT gcc DOT gnu DOT org > > Subject: RE: problem with dynamic_cast > > > > > > > > > > > -----Original Message----- > > > From: Chris Faylor [mailto:cgf AT cygnus DOT com] > > > Sent: 07 September 2000 17:01 > > > To: Gnuwin > > > Cc: kris DOT thielemans AT csc DOT mrc DOT ac DOT uk > > > Subject: Re: problem with dynamic_cast > > > > > > > > > This is a c++ problem. You should probably report this to a c++ > > > mailing list. > > > > I doubt it really, but I send this to a C++ mailing list > > anyway. I've been > > able to boil it down to something really simple. If the latest gcc > > distribution is that broken, we're all in trouble. > > > > Summarising: in cygwin 1.1.4, or the gcc (or ld) distributed > > with it (I've > > installed 1.1.4 yesterday), there is a conflict with using > > RTTI and using > > the math library. > > > > > > Attached is a VERY simple C++ program that uses RTTI, but > > nothing else. > > Compile it with > > > > g++ dynamic_cast.cxx -lm > > > > When you run it, it crashes in the dynamic_cast statement. On > > the other > > hand, compile it with > > > > g++ dynamic_cast.cxx > > > > -> it runs fine (i.e. does essentially nothing). > > > > > > > > > > More details: > > > > I'm running NT 4.0 sp5 and cygwin 1.1.4. > > > > screendump of running g++ -v: > > > > $ g++ dynamic_cast.cxx -lm -v > > Reading specs from /usr/lib/gcc-lib/i686-pc-cygwin/2.95.2/specs > > gcc version 2.95.2 19991024 (release-2) > > > > /usr/lib/gcc-lib/i686-pc-cygwin/2.95.2/cpp.exe -lang-c++ -v > > -D__GNUC__=2 -D_ > > _GN > > UG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -Di386 -D_X86=1 > > -D__STDC__=1 -D__st > > dcal > > l=__attribute__((__stdcall__)) > > -D__cdecl=__attribute__((__cdecl__)) -D__decl > > spec > > (x)=__attribute__((x)) -D__i386__ -D_X86=1 -D__STDC__=1 > > -D__stdcall=__attrib > > ute_ > > _((__stdcall__)) -D__cdecl=__attribute__((__cdecl__)) > > -D__declspec(x)=__attr > > ibut > > e__((x)) -D__i386 -Asystem(winnt) -Acpu(i386) -Amachine(i386) > > -D__EXCEPTIONS > > -re > > map -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ > > -Di686 -Dpentiump > > ro - > > D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ > > -D__CYGWIN32__ -D__CYGWIN > > __ - > > Dunix -D_WIN32 -DWINNT dynamic_cast.cxx /cygdrive/c/TMP/ccpF3zVU.ii > > GNU CPP version 2.95.2 19991024 (release-2) (80386, BSD syntax) > > #include "..." search starts here: > > #include <...> search starts here: > > /usr/include > > /usr/lib/gcc-lib/i686-pc-cygwin/2.95.2/../../../../include/g++-3 > > /usr/lib/gcc-lib/i686-pc-cygwin/2.95.2/../../../../include > > /usr/include > > /usr/lib/gcc-lib/i686-pc-cygwin/2.95.2/include > > /usr/include > > End of search list. > > The following default directories have been omitted from the > > search path: > > /usr/include/g++ > > /usr/X11R6.4/include > > /usr/local/include > > End of omitted list. > > /usr/lib/gcc-lib/i686-pc-cygwin/2.95.2/cc1plus.exe > > /cygdrive/c/TMP/ccpF3zVU.ii > > -quiet -dumpbase dynamic_cast.cc -version -o > > /cygdrive/c/TMP/ccKbIuaN.s > > GNU C++ version 2.95.2 19991024 (release-2) (i686-pc-cygwin) > > compiled by GNU > > C v > > ersion 2.95.2 19991024 (release-2). > > as -o /cygdrive/c/TMP/cc7g2nmV.o /cygdrive/c/TMP/ccKbIuaN.s > > /usr/lib/gcc-lib/i686-pc-cygwin/2.95.2/collect2.exe -Bdynamic > > /usr/lib/crt0.o - > > L/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2 > > /cygdrive/c/TMP/cc7g2nmV.o -lstdc++ -lm > > -lgcc -lcygwin -luser32 -lkernel32 -ladvapi32 -lshell32 -lgcc > > > > ld.dump attached is a screendump from running ld --verbose > > explicitly, after > > removing as much libraries and options I could, while still > > reproducing the > > crash. > > > > > > gdb.dump is a screendump from running gdb on the file > > > >-- >Want to unsubscribe from this list? >Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com