GCC

Mumit Khan khan@xraylith.wisc.EDU
Thu Sep 30 23:42:00 GMT 1999


On Tue, 14 Sep 1999, Kai Henningsen wrote:

[ fyi, I've trimmed the To: and Cc: lists ]

> 
> Hmm. Thinking about it, one of the things I think I did shortly before
> the problem was adding /bin in front of the path, which points here:
> 
> bash-2.02$ mount
> Device              Directory           Type         Flags
> f:\cygnus\cygwin-b20\H-i586-cygwin32\bin  /bin                user         binmo
> de
> e:                  /                   user         binmode
> bash-2.02$
> 
> And the cpp crash I looked most into was just typing "cpp" at the
> bash prompt.

Thanks for this piece of information, which makes everything clear.

And there's your problem. The way GCC (both Cygnus' and my versions) finds
where to look for subprograms (eg., cpp.exe, cc1.exe), includes and
libraries is the following: 

1. find where the executable lives. eg., if you invoke gcc.exe as `gcc',
   it'll search through path and find /bin; if you invoke it complete
   pathname, it'll also find /bin.

2. Now, find everything relative to the parent directory of the bin
   directory, ie., /bin/..

3. Look for specs and so on using the prefix '/bin/../'

Now you see why it will fail. If you're going to mount /bin only this way, 
you'll (1) also either have to mount everything else symmetrically like on
Unix, (2) use GCC_EXEC_PREFIX to point to the installation.

Cygwin b20.1 handling of relative pathnames is broken, but good news is
that it's fixed in b21 thanks to cgf's rewrite of path handling code.

Here's the workaround for you:
  
  $ export PATH=/cygdrive/f/cygnus/cygwin-b20/H-i586-cygwin32/bin:/bin:$PATH

Your problem shows up since your installation is on F: drive, and that's
why I didn't catch it the first time.

btw, a better way to run configure is not to fake it into looking into
another directory for the proper shell, but the following:
  
  $ CONFIG_SHELL=</path/to/my/favorite/shell> /src/dir/configure [options]

eg., on HP-UX, it's common to the following:

  $ CONFIG_SHELL=/bin/posix/sh /src/dir/configure [options]

and on Cygwin:

  $ CONFIG_SHELL=bash /src/dir/configure [options]

I also tend to use SHELL variable with make, if Makefiles don't already
have it in there.

  $ make SHELL=bash all

Regards,
Mumit





--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com



More information about the Cygwin mailing list