This is the mail archive of the
cygwin-developers@sourceware.cygnus.com
mailing list for the Cygwin project.
Re: Can't build the latest snapshot with gcc-2.95.2-1
- To: Kazuhiro Fujieda <fujieda at jaist dot ac dot jp>
- Subject: Re: Can't build the latest snapshot with gcc-2.95.2-1
- From: Mumit Khan <khan at NanoTech dot Wisc dot EDU>
- Date: Thu, 18 May 2000 16:16:14 -0500 (CDT)
- cc: cygwin-developers at sourceware dot cygnus dot com
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