This is the mail archive of the cygwin-developers@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

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


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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]