delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin-developers/2000/05/18/17:16:29

Mailing-List: contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-developers-subscribe AT sourceware DOT cygnus DOT com>
List-Archive: <http://sourceware.cygnus.com/ml/cygwin-developers/>
List-Post: <mailto:cygwin-developers AT sourceware DOT cygnus DOT com>
List-Help: <mailto:cygwin-developers-help AT sourceware DOT cygnus DOT com>, <http://sourceware.cygnus.com/ml/#faqs>
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 <khan AT NanoTech DOT Wisc DOT EDU>
To: Kazuhiro Fujieda <fujieda AT jaist DOT ac DOT jp>
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: <s1sln17hcid.fsf@jaist.ac.jp>
Message-ID: <Pine.HPP.3.96.1000518160133.20231G-100000@hp2.xraylith.wisc.edu>
MIME-Version: 1.0

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


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019