From: Fieldhouse AT logica DOT com (Fieldhouse, Dirk) Subject: RE: EGCS 1.0.2: weird include paths with gcc -b, specs, etc 26 Aug 1998 17:32:16 -0700 Message-ID: <6DA86DEBF68AD1119B1C00A0C94D230696226B.cygnus.gnu-win32@hopper.logica.co.uk> To: gnu-win32 AT cygnus DOT com OK folks, now I'm really confused. > > On Mon, 17 Aug 1998, Fieldhouse, Dirk wrote: >... > > > ref: Earnie Boyd's http://www.cygnus.com/ml/gnu-win32/1998-Apr/0028.html > > > > > > I'm trying to set up a dual cygwin32/mingw32 environment with the egcs 1.0.2 > > > cygwin32 binaries and being defeated by some strange behaviour with search > > > paths. >...> > > > The binary distribution of egcs-1.0.2 for cygwin32 seems to have some > > > hard-wired directories built into it, specifically > > > > > > ../../../../../include > > > and > > > ../../../../i386-cygwin32/include > > > > > > > Yeah, this is what I call the "Cygnus unlibsubdir" patch that is standard > > with Cygnus built distributions. Basically, unlibsubdir patch relocates > > the entire GCC package with only one env variable -- GCC_EXEC_PREFIX -- > > and everything is accessed relative to that. This change affects the > > language drivers, cpp and proto tools only. But look at this transcript: BASH.EXE-2.01$ /bin/cpp -v -iprefix /usr/H-i386-cygwin32/lib/gcc-lib/egcs-2.90.27 glob.c /dev/null GNU CPP version 2.7-B19 (80386, BSD syntax) #include "..." search starts here: #include <...> search starts here: /usr/H-i386-cygwin32/lib/gcc-lib/egcs-2.90.27../../../../../include /usr/H-i386-cygwin32/lib/gcc-lib/egcs-2.90.27../../../../i386-cygwin32/inclu de c:\programf\gnu\local\include\mingw c:\programf\gnu\include c:\programf\gnu\H-i386-cygwin32\i386-cygwin32\include /usr/include End of search list. So the default 2.7-B19 cpp also uses the prefix-relative paths when -iprefix is used, but prepends them to the C_INCLUDE_PATH. If I still had gcc-2.7-B19 to hand, I could verify that as I guess it doesn't actually pass -iprefix to cpp, whereas gcc-2.9 does but ignores C_INCLUDE_PATH. In any case, I would have expected the search path to start with C_INCLUDE_PATH followed by compiler version defaults (relative to GCC_EXEC_PREFIX), followed by global defaults (/usr/include). And here's a strange 'feature'. With COMPILER_PATH=/usr/bin, where /usr is mounted on c:\programf\gnu, BASH.EXE-2.01$ echo $COMPILER_PATH /usr/bin gcc-2.90.27 adds the following options to cpp: -isystem c\include -isystem \programf\gnu\include Apparently it sees the : from the DOS filename and parses it as a separator. /df -- Dirk Fieldhouse Logica UK Limited fieldhouse AT logica DOT com 75 Hampstead Road c=gb;a=attmail;p=logica; London NW1 2PL o=lg;ou1=lgwct;s=fieldhouse UK +44 (171) 637 9111 - For help on using this list (especially unsubscribing), send a message to "gnu-win32-request AT cygnus DOT com" with one line of text: "help".