[BUG] Cygwin default mounts in 1.7

marco atzeri marco.atzeri@gmail.com
Sun Sep 23 15:10:00 GMT 2012


On 9/22/2012 11:03 PM, Jiri Engelthaler wrote:
> 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

you missed this point on
http://cygwin.com/cygwin-ug-net/using.html#mount-table

"/usr/bin and /usr/lib are by default also automatic mount points 
generated by the Cygwin DLL similar to the way the root directory is 
evaluated. /usr/bin points to the directory the Cygwin DLL is installed 
in, /usr/lib is supposed to point to the /lib directory. This choice is 
safe and usually shouldn't be changed. An fstab entry for them is not 
required."

What are you looking for is a way to avoid it


> 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



More information about the Cygwin mailing list