delorie.com/archives/browse.cgi | search |
On Thu, May 18, 2000 at 12:42:59PM -0500, Mumit Khan wrote: >On 19 May 2000, Kazuhiro Fujieda wrote: > >> I can't build the latest snapshot properly with gcc-2.95.2-1 as >> the following. >> >> gcc -o mount.exe mount.o -lnetapi32 -ladvapi32 >> mount.o(.text+0x29):mount.cc: undefined reference to `muto::~muto(void)' >> /Home/fujieda/cygwin/snap/OBJ/i686-pc-cygwin/winsup/cygwin/libcygwin.a(libccrt0.o)(.text+0x29):libccrt0.cc: undefined reference to `muto::~muto(void)' >> collect2: ld returned 1 exit status >> make[1]: *** [mount.exe] Error 1 >> make[1]: Leaving directory `/Home/fujieda/cygwin/snap/OBJ/i686-pc-cygwin/winsup/utils' >> make: *** [utils] Error 2 > >This is being triggered by the defintion of __mbuf in the inline >definition of sigthread::init() (sigproc.h). At this point I don't >know where the problem is, but it has to do with the fact that >__mbuf is `static __attribute__((section(".data_cygwin_nocopy")))'. > >> As far as I look into the output of `nm libccrt0.o' (attached >> below), the compiler seems to put the unnecessary reference to >> the destructor into the libccrt0.o. Should I use the latest >> snapshot of GCC? > >GCC snapshots produce the same behaviour. It's probably a bug in GCC >-- once you start using section attributes and all that, things pretty >hairy in C++. We need to find a reasonably workaround. It's interesting that this happened once I moved the initialization from one class to another. cgf
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |