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: src/winsup/cygwin ChangeLog syscalls.cc


On Thu, Nov 05, 2009 at 01:08:47PM -0500, Christopher Faylor wrote:
>On Thu, Nov 05, 2009 at 06:34:50PM +0100, Corinna Vinschen wrote:
>>On Nov  5 11:14, Yaakov S wrote:
>>> On 05/11/2009 08:44, corinna-rDBXBDvO6BXQT0dZR+AlfA@public.gmane.org wrote:
>>> >Modified files:
>>> >	winsup/cygwin  : ChangeLog syscalls.cc
>>> >
>>> >Log message:
>>> >	* syscalls.cc (nt_path_has_suffix): New function.
>>> >	(rename): Don't append .exe suffix if binary target name has any suffix
>>> >	at all.
>>> >
>>> >Patches:
>>> >http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/ChangeLog.diff?cvsroot=src&r1=1.4708&r2=1.4709
>>> >http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/syscalls.cc.diff?cvsroot=src&r1=1.543&r2=1.544
>>> 
>>> On my system dozens of executables do have a '.' near the end of
>>> their names, either representing a version (e.g. perl5.10.0.exe,
>>> python2.5.exe), or OCaml native code (*.opt.exe), or for other
>>> reasons (e.g. *.bin.exe where the program is launched via a script).
>>> How does this change affect building/installing them?
>>
>>Let's see:
>>
>>  rename ("foo.exe", "perl5.10.0.exe")  result: perl5.10.0.exe
>>  rename ("foo.exe", "perl5.10.0")      result: perl5.10.0
>>  rename ("foo", "perl5.10.0.exe")      result: perl5.10.0.exe
>>  rename ("foo", "perl5.10.0")          result: perl5.10.0
>>
>>The latter one is a problem, because that's what happens when calling
>>
>>  strip perl5.10.0
>>
>>so after strip the binary is missing a .exe suffix.
>>
>>Sigh.
>>
>>Is there any *reliable* solution to this problem, other than never to
>>add a .exe suffix?
>
>Isn't the reliable-but-slow method to check the magic at the beginning
>of the file to see if it actually is a .exe?  I'm not sure we want to do
>that though.

Which is, of course, what we're doing.  Duh.

I see why the strip case is problematic but I can't think of a way to
fix it since the "state" of the temporary file is lost between stripping
and renaming.

cgf

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