On Aug 11 13:36, Mainz, Roland via Cygwin wrote:
> Hi!
> 
> ----
> 
> Cygwin test release 3.5.0-0.384.g9939aa7d0945.x86_64 has some weird
> path problems with network filesystems on Windows 10. Previous stable
> version of Cygwin (4.7.x ?) worked fine.

3.4.7

> In our case we have a project with both custom binaries and sources
> both hosted on the filesystem as /home/rmainz/ (i.e. filesystem
> mounted on H:, and then bind mount to /home/rmainz).
> 
> After updating Cygwin to 3.5.0-0.384.g9939aa7d0945.x86_64 the build
> now fails *IF* I access the binaries with their full absolute path AND
> the sources with their absolute path:
> ---- snip ----
> $ cd /home/rmainz/tmp/try10_rde_new_rds/RDE-Development/build_windows4/tmp
> $ ls -l x.cpp
> -rw-r--r-- 1 rmainz rovdevel 110 Aug 11 15:32 x.cpp
> $ 
> /home/rmainz/tmp/try10_rde_new_rds/Dependencies/win/qt/qt_5_15_2/Tools/mingw810_64/bin/c++
>  $PWD/x.cpp
> c++.exe: error: 
> /home/rmainz/tmp/try10_rde_new_rds/RDE-Development/build_windows4/tmp/x.cpp: 
> No such file or directory
> c++.exe: fatal error: no input files
> compilation terminated.
> ---- snip ----

I can't reproduce this:

$ net use H: <blah>
$ mount -o exec H: /home/rmainz
$ cd /home/rmainz/tmp
$ cp /bin/cat.exe .
$ mkdir baz
$ echo foo > baz/bar
$ /home/rmainz/tmp/cat $PWD/baz/bar
foo

> Even more weird is that if I try to debug this via strace I get this:
> ---- snip ----
> $ strace -o mylog.log 
> /home/rmainz/tmp/try10_rde_new_rds/Dependencies/win/qt/qt_5_15_2/Tools/mingw810_64/bin/c++
>  $PWD/x.cpp
> strace.exe: error creating process 
> C:\cygwin64\home\rmainz\tmp\try10_rde_new_rds\Dependencies\win\qt\qt_5_15_2\Tools\mingw810_64\bin\c++,
>  (error 2)
> ---- snip ----
> 
> Note that the Windows-style path doesn't start with H:\tmp as I would
> expect - it starts with C:\cygwin64\, followed by the bind mount name
> (\home\rmainz).

Looks like your mount point is only temporary, i. e., you created it
with mount at runtime in your shell (as I did above).  If you add it to
your fstab file, e. g., /etc/fstab.d/rmainz, it will be persistent.

The problem here is this: To allow debugging bugs in Cygwin itself,
strace is a MingW executable.  As a non-Cygwin executable, it does not
have access to the Cygwin-specific shared memory region containing
mount points.

Thus, it reads the mount points from the /etc/fstab and
/etc/fstab.d/$USER files.  If the mount point is missing in these files,
strace can't use it.


Corinna

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

Reply via email to