diff options
author | Ken Brown <kbrown@cornell.edu> | 2022-08-03 16:45:23 -0400 |
---|---|---|
committer | Ken Brown <kbrown@cornell.edu> | 2022-08-04 15:51:39 -0400 |
commit | c2aa5b6d74139cc2236f4cdf415d7a133a61042d (patch) | |
tree | 6b213ff1acdd58233b27d2e3ef1c31b048a18d80 /winsup/cygwin/syscalls.cc | |
parent | 288788f91eadf307aa77853396917d9f9398adb9 (diff) | |
download | newlib-c2aa5b6d74139cc2236f4cdf415d7a133a61042d.zip newlib-c2aa5b6d74139cc2236f4cdf415d7a133a61042d.tar.gz newlib-c2aa5b6d74139cc2236f4cdf415d7a133a61042d.tar.bz2 |
Cygwin: syscalls.cc: remove ".dll" from blessed_executable_suffixes
This reverts commit d9e9c7b5a7. The latter added ".dll" to the
blessed_executable_suffixes array because on 32-bit Windows, the
GetBinaryType function would report that a 64-bit DLL is an
executable, contrary to the documentation of that function.
That anomaly does not exist on 64-bit Windows, so we can remove ".dll"
from the list. Reverting the commit does, however, change the
behavior of the rename(2) syscall in the following unlikely situation:
Suppose we have an executable foo.exe and we make the call
rename ("foo", "bar.dll");
Previously, foo.exe would be renamed to bar.dll. So bar.dll would
then be an executable without the .exe extension. The new behavior is
that foo.exe will be renamed to bar.dll.exe. [Exception: If there
already existed an executable (not a DLL!) with the name bar.dll, then
.exe will not be appended.]
Diffstat (limited to 'winsup/cygwin/syscalls.cc')
-rw-r--r-- | winsup/cygwin/syscalls.cc | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc index 2a481b8..94cb576 100644 --- a/winsup/cygwin/syscalls.cc +++ b/winsup/cygwin/syscalls.cc @@ -2098,12 +2098,6 @@ nt_path_has_executable_suffix (PUNICODE_STRING upath) static const PUNICODE_STRING blessed_executable_suffixes[] = { &ro_u_com, - &ro_u_dll, /* Messy, messy. Per MSDN, the GetBinaryType function is - supposed to return with ERROR_BAD_EXE_FORMAT. if the file - is a DLL. On 64-bit Windows, this works as expected for - 32-bit and 64-bit DLLs. On 32-bit Windows this only works - for 32-bit DLLs. For 64-bit DLLs, 32-bit Windows returns - true with the type set to SCS_64BIT_BINARY. */ &ro_u_exe, &ro_u_scr, &ro_u_sys, |