Subject: RE: EGCS 1.0.2: weird include paths with gcc -b, specs, etc
From: [email-masked] (Fieldhouse, Dirk)

26 Aug 1998 17:32:16 -0700
Message-ID: <[email-masked]>
To: [email-masked]

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
[email-masked]           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
"[email-masked]" with one line of text: "help".