Mailing-List: contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-developers-owner AT sourceware DOT cygnus DOT com Delivered-To: mailing list cygwin-developers AT sourceware DOT cygnus DOT com X-Authentication-Warning: hp2.xraylith.wisc.edu: khan owned process doing -bs Date: Thu, 18 May 2000 16:16:14 -0500 (CDT) From: Mumit Khan To: Kazuhiro Fujieda cc: cygwin-developers AT sourceware DOT cygnus DOT com Subject: Re: Can't build the latest snapshot with gcc-2.95.2-1 In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On 19 May 2000, Kazuhiro Fujieda wrote: > I can still observe the same problem. "mount.cc" didn't take > part in the problem. The problem is that any application can't > be compiled with the latest snapshot because of the unresolved > reference in "libcygwin.a". Same here. > According to the explanation by Mumit, the problem is triggered > by the sigthread::init(). This inlined method introduces the > reference to the destructor into all source codes which include > "sigproc.h". The reference only in "libccrt0.o" can't be > resolved and causes the problem. I'm trying to understand who is responsible at this point, and I am leaning towards GCC as the culprit (however, I'm not sure at this point). Here's a watered down version that shows where the problem is: struct muto { ~muto (); }; struct foobar { void init () { static muto __foobar; // <<<< THIS IS WHAT DOES IT! } }; $ i686-pc-cygwin-gcc -g -O2 -fno-exceptions -fno-rtti -c bug.cc $ i686-pc-cygwin-nm --dem bug.o | grep muto U muto::~muto(void) Argh. The only solution I see now is to move the sigthread::init method to an implementation file as an out-of-line definition instead. Regards, Mumit