Mailing-List: contact cygwin-developers-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-developers-owner AT cygwin DOT com Delivered-To: mailing list cygwin-developers AT cygwin DOT com Date: Fri, 12 Jul 2002 15:37:12 -0400 From: Christopher Faylor To: cygwin-developers AT cygwin DOT com Subject: Re: Available for test: gcc-3.1.1-2 gcc2-2.95.3-8 Message-ID: <20020712193712.GD9546@redhat.com> Reply-To: cygwin-developers AT cygwin DOT com Mail-Followup-To: cygwin-developers AT cygwin DOT com References: <20020711044304 DOT GA3292 AT redhat DOT com> <021001c229d2$e8f55b60$6132bc3e AT BABEL> <3D2F2B26 DOT 4040201 AT ece DOT gatech DOT edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3D2F2B26.4040201@ece.gatech.edu> User-Agent: Mutt/1.3.23.1i On Fri, Jul 12, 2002 at 03:16:54PM -0400, Charles Wilson wrote: > > >Conrad Scott wrote: > >>There's a problem compiling the cygwin_daemon branch with the gcc >>3.1.1 compiler as Nicholas discovered today. In particular, gcc >>can't find the header file, which I need for the placement >>new operator. This used to be in /usr/lib/gcc-lib/.../include/ >>but is now in /usr/include/c++/3.1.1/. Can I add this include >>path to the makefile now? I can't see that it'll break anything >>with gcc 2.X (as this include directory didn't exist previously). >> >>[Nb. In case something has changed here, note that I'm using other >>than the latest release of the gcc 3.1.1 compiler: >> gcc 3.1.1-1 >> gcc-mingw 3_1-20020516-1 ] > > >No, not a good idea. gcc-3.1.1-2 fixed this behavior, I think. Plus, >there's a gcc-3.1.1-3 coming out soon, so just chill, for now. A g++ >compiler that doesn't automatically include the directory where its own >stdc++ library header files are stored is a broken g++ compiler and >needs to be fixed in g++ itself -- not band-aiding every C++ program on >earth. Except as Conrad pointed out (and I should have known), cygwin uses -nostdinc++. So, in this case adding the -I makes a certain sense. Unfortunately, it means that we'll be adding one of these for every version of the C compiler from 3.1.1 on, which isn't right. That is for gcc 3.2, we'll need a -I /usr/include/c++/3.2, etc. I'm not sure what the correct fix is for this. The other problem is that the intent is to ensure that the compiler used to build cygwin is using the correct set of include files, i.e., the ones that may be included with it in the source directory. But finding the correct libstdc++ files could be problematic. So, for now, I guess the only solution is to add the path to the Makefile along with a big flashing FIXME. I wonder why "they" are making so many tweaks to the header file stuff in 3.1. It seems a little to severe to be part of a minor version number release. cgf