This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [BUG] Cygwin default mounts in 1.7


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










-- 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]