mv: `Tcollect2' and `collect2' are the same file

Earl Chew earl_chew@agilent.com
Sat Oct 9 05:25:00 GMT 2004


I got this error trying to build gcc using cygwin 1.5.11. This problem
is easily reproduced:

X:> touch Tfoo.exe
X:> chmod a+rx Tfoo
X:> ls -l Tfoo
-rwxrwxrwx    1 earlch   mkpasswd        0 Oct  8 22:08 Tfoo
X:> mv Tfoo foo
mv: `Tfoo' and `foo' are the same file

Huh?

Digging deeper, I see that ls uses stat(), which eventually gets
to stat_worker() which uses build_fh_name() passing it the suffix
table:

suffix_info stat_suffixes[] =
{
   suffix_info ("", 1),
   suffix_info (".exe", 1),
   suffix_info (NULL)
};

The function build_fh_name() uses path_conv and gives it the suffix
table to use to find the target.

OTOH rename() goes straight to using path_conv without a suffix table,
and fails to find the file.

Should rename() pass stat_suffixes[] to the path_conv ctor?

Is there some subtle reason for suffixes only to be passed for stat()
processing?

Earl


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



More information about the Cygwin mailing list