Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Mon, 03 May 2004 08:40:10 -0500 From: Bryan Siever Subject: RE: gcc -mno-cygwin finds the wrong include files In-reply-to: To: cygwin AT cygwin DOT com Message-id: MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7BIT Greetings, Has anyone else been able to confirm this as a bug? if so, any attempts to fix it? Regards, Bryan -----Original Message----- From: Dave Korn [mailto:dk AT artimi DOT com] Sent: Tuesday, April 13, 2004 1:08 PM To: cygwin AT cygwin DOT com Subject: RE: gcc -mno-cygwin finds the wrong include files > -----Original Message----- > From: cygwin-owner On Behalf Of Eric Hanchrow > Sent: 13 April 2004 18:43 > > Hi, > > when I use the following command gcc finds the wrong include > > file. > > $ echo "#include " | gcc -mno-cygwin -E - > Hi, could someone please confirm that this is a bug, and not a > problem that exists only on this computer. > > I just tried it, and got reasonable-looking output: > > # 1 "" > # 1 "" > # 1 "" > # 1 "" > # 1 "/lib/gcc-lib/i686-pc-mingw32/3.3.1/include/stddef.h" 1 3 4 I just tried it, and didn't: --------snip-------- dk AT mace /davek> echo "#include " | gcc -mno-cygwin -E - # 1 "" # 1 "" # 1 "" # 1 "" # 1 "/usr/lib/gcc-lib/i686-pc-cygwin/3.3.1/include/stddef.h" 1 3 4 --------snip-------- Dude, that's like *sooooooo* wrong. Let's check that search path. --------snip-------- dk AT mace /davek> echo "#include " | gcc -mno-cygwin -E -v - Reading specs from /usr/lib/gcc-lib/i686-pc-mingw32/3.3.1/specs --------snip-------- So far, so good..... --------snip-------- Configured with: /GCC/gcc-3.3.1-3/configure --with-gcc --with-gnu-ld --with-gnu- as --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --libdir=/usr/lib --libexe cdir=/usr/sbin --mandir=/usr/share/man --infodir=/usr/share/info --enable-langua ges=c,ada,c++,f77,pascal,java,objc --enable-libgcj --enable-threads=posix --with -system-zlib --enable-nls --without-included-gettext --enable-interpreter --enab le-sjlj-exceptions --disable-version-specific-runtime-libs --enable-shared --dis able-win32-registry --enable-java-gc=boehm --disable-hash-synchronization --verb ose --target=i686-pc-cygwin --host=i686-pc-cygwin --build=i686-pc-cygwin Thread model: posix gcc version 3.3.1 (cygming special) /usr/lib/gcc-lib/i686-pc-mingw32/3.3.1/cc1.exe -E -quiet -v -D__GNUC__=3 -D__GN UC_MINOR__=3 -D__GNUC_PATCHLEVEL__=1 -D__MSVCRT__ -D__MINGW32__ -DWIN32 -D_WIN32 -D__WIN32 -D__WIN32__ -DWINNT -idirafter /usr/lib/gcc-lib/i686-pc-mingw32/3.3.1 /../../../../include/w32api -idirafter /usr/lib/gcc-lib/i686-pc-mingw32/3.3.1/.. /../../../i686-pc-mingw32/lib/../../include/w32api - -mno-cygwin --------snip-------- And that's good: it's found the correct cc1 and has passed it all mingw directories on the command line. No problem yet then. --------snip-------- ignoring nonexistent directory "/usr/local/include/mingw" ignoring duplicate directory "/usr/include/mingw" ignoring duplicate directory "/usr/i686-pc-mingw32/lib/../../include/w32api" #include "..." search starts here: #include <...> search starts here: /usr/lib/gcc-lib/i686-pc-cygwin/3.3.1/include --------snip-------- HEY! WTF is that doing there? THAT DOES NOT BELONG! --------snip-------- /usr/i686-pc-mingw32/include /usr/include/w32api End of search list. --------snip-------- I noticed this rather peculiar entry in the specs file: --------snip-------- *mingw_include_path: i686-pc-cygwin --------snip-------- which looks wrong, but doesn't seem to be used anywhere. However, I think the underlying cause is that cc1.exe most likely contains a hard-coded path to the target-dependent include dir, and since there's only one actual .exe serving as *both* target dependent compilers, there's one path there. It might be possible to fix this by adding a -idirbefore option in the specs file, dependent on the -mno-cygwin switch, to add the correct i686-pc-mingw32/3.3.1/include directory earlier than the cygwin one. Other fixes would work also. cheers, DaveK -- Can't think of a witty .sigline today.... -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/