delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2012/09/22/17:10:28

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-2.7 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,KHOP_THREADED,NML_ADSP_CUSTOM_MED,RP_MATCHES_RCVD,SPF_HELO_PASS,TW_MK,TW_RW,TW_WX,TW_XR,UNPARSEABLE_RELAY
X-Spam-Check-By: sourceware.org
To: cygwin AT cygwin DOT com
From: Jiri Engelthaler <engycz AT gmail DOT com>
Subject: Re: [BUG] Cygwin default mounts in 1.7
Date: Sat, 22 Sep 2012 21:03:08 +0000 (UTC)
Lines: 139
Message-ID: <loom.20120922T223801-212@post.gmane.org>
References: <CAHODtZQ6y8H=Teje=sjdBms_h9i45zFtY+76ihbFiTHgkamRug AT mail DOT gmail DOT com> <505C438B DOT 4040902 AT gmail DOT com>
Mime-Version: 1.0
User-Agent: Loom/3.14 (http://gmane.org/)
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

marco atzeri <marco.atzeri <at> gmail.com> writes:

> 
> On 9/21/2012 10:48 AM, Jiri Engelthaler wrote:
> > Hello Cygwin developers
> > I have a problem with cygwin default mounts
> > I have compiled gcc cross compiler for powerpc (some problem with arm
> > cross) and installed to destination directory. Installed directory
> > structure is (truncated)
> >
> > +bin
> > |   +powerpc-unknown-linux-gnu-gcc.exe
> > +include
> > +lib
> > +libexec
> > |   +gcc
> > |      +powerpc-unknown-linux-gnu
> > |          +4.4.7
> > |               +cc1.exe
> > +powerpc-unknown-linux-gnu
> > +share
> >
> > When I start “powerpc-unknown-linux-gnu-gcc.exe a.c” in “bin”
> > directory from windows command line, compiler fails with
> > “powerpc-unknown-linux-gnu-gcc: error trying to exec 'cc1': execvp: No
> > such file or directory”. Starting compiler from bash shell works fine
> > and a.c is compiled.
> > “powerpc-unknown-linux-gnu-gcc --print-search-dirs” says that one of
> > search paths for programs is
> > “/usr/bin/../libexec/gcc/powerpc-unknown-linux-gnu/4.4.7/” so all
> > should work.
> > But problem is with “/usr/bin” prefix. I have made tests with “ls” and
> > “pwd” copied do “bin” directory and found that:
> > - “pwd” is “/usr/bin”
> > - “ls” shows “bin” directory content
> > - “ls ..” shows “ls: cannot access ..: No such file or directory”
> > - “ls /” shows “bin  cygdrive  dev  etc  include  lib  libexec
> > powerpc-unknown-linux-gnu  proc  share”
> >
> > Core of problem is that pwd for “bin” directory is “/usr/bin”, but
> > “/usr/bin/..” is not accessible.
> > How to mount current directory as "/cygdrive/c/foo/bar/...../bin"
> > while executing pwd or ls?
> >
> >    Thank you for your answer and have a nice day.
> >        Jiri Engelthaler
> >
> 
> Jiri,
> I tried to follow up your mail and I am confused and not really
> sure what is you problem.
> On cygwin "/bin" and "/usr/bin" are the same directory
> (see http://cygwin.com/cygwin-ug-net/using.html#mount-table)
> 
> $ mount
> E:/cygwin/bin on /usr/bin type ntfs (binary,auto)
> E:/cygwin/lib on /usr/lib type ntfs (binary,auto)
> 
> as /usr/bin is a mount of /bin.
> 
> Pwd works in both the two cases:
> $ cd /bin
> $ pwd
> /bin
> 
> $ cd /usr/bin
> $ pwd
> /usr/bin
> 
> Most of the compilers/programs expect to find themself in /usr/bin,
> and some are referring their libraries relative to such position
> in this way
> ../libexec/gcc/powerpc-unknown-linux-gnu/4.4.7/
> is correctly targeting
> /usr/bin/../libexec/gcc/powerpc-unknown-linux-gnu/4.4.7/
> 
> for this reason you should have in the PATH "/usr/bin" before "/bin"
> ( /bin not defined at all)
> to avoid that these programs looks for
> 
> /bin/../libexec/gcc/powerpc-unknown-linux-gnu/4.4.7/
> 
> that does not exist.
> 
> What is your PATH ?
> 
> On /etc/profile it is defined as:
> PATH="/usr/local/bin:/usr/bin:${PATH}"
> 
> Regards
> Marco
> 
> 


Hello Marco.
  You didn't understood me fully. In bash shell all works as expected but
calling programs directly from windows command line don't. I wont to have gcc
compiler with cygwin-1.dll only which can be run directly from windows command
line or GNU make or Eclipse without need to have installed whole cygwin or need
to run from bash.
  Here https://docs.google.com/file/d/0B3P4bLGf7ME1OFZhY0pVd3V6YVk/edit?pli=1
are ls,pwd and minimal set of dll's. Try to run testcmd.cmd from bin which will
have wrong result:
C:\tmp\Cyg\foo\bar\bin>pwd
/usr/bin

C:\tmp\Cyg\foo\bar\bin>ls.exe -al ..
ls: cannot access ..: No such file or directory

C:\tmp\Cyg\foo\bar\bin>ls.exe -al ../libexec
ls: cannot access ../libexec: No such file or directory

C:\tmp\Cyg\foo\bar\bin>

Then rename bin to bix and run testcmd.cmd again which will have correct result:
C:\tmp\Cyg\foo\bar\bix>pwd
/bix

C:\tmp\Cyg\foo\bar\bix>ls.exe -al ..
total 0
drwxrwxrwt+ 1 j-e mkpasswd 0 Sep 22 23:00 .
drwxrwxrwt+ 1 j-e mkpasswd 0 Sep 22 23:00 ..
drwxrwxrwt+ 1 j-e mkpasswd 0 Sep 22 22:43 bix
dr-xr-xr-x  1 j-e mkpasswd 0 Sep 22 23:00 cygdrive
dr-xr-xr-x  1 j-e mkpasswd 0 Sep 22 23:00 dev
drwxrwxrwt+ 1 j-e mkpasswd 0 Sep 22 22:41 libexec
dr-xr-xr-x  7 j-e mkpasswd 0 Sep 22 23:00 proc

C:\tmp\Cyg\foo\bar\bix>ls.exe -al ../libexec
total 1
drwxrwxrwt+ 1 j-e mkpasswd  0 Sep 22 22:41 .
drwxrwxrwt+ 1 j-e mkpasswd  0 Sep 22 23:00 ..
-rwxrwxrwx  1 j-e mkpasswd 21 Sep 22 22:41 file_in_libexec.txt

C:\tmp\Cyg\foo\bar\bix>

Regards
 Jiri Engelthaler


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright 2019   by DJ Delorie     Updated Jul 2019