2012/9/23 marco atzeri <marco.atz...@gmail.com>: > 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 >>
Hello Marco. I didn't miss the note about default mount of /usr/bin, /lib and /. I think that this feature is a bug. According to my tests /usr/bin is not mounted where Cygwin DLL is but where executable is. Try testcmd.cmd in https://docs.google.com/open?id=0B3P4bLGf7ME1ZE1KUjU1WUk1V2s . And if I'm looking a way how to avoid this ...buggy feature..., my answer is yes. If someone can help me with how to run gcc compiler (see first post) which looks in ../libexec/...... for cc1.exe, I'll be happy. My question is still same: How to access ../libexec directory from bin directory. 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