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]

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


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/


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