Can't build the latest snapshot with gcc-2.95.2-1.

Mumit Khan khan@NanoTech.Wisc.EDU
Thu May 18 10:43:00 GMT 2000


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.

Regards,
Mumit




More information about the Cygwin-developers mailing list