MSYS2-packages/msys2-runtime-3.5/0003-Rename-dll-from-cygwin-to-msys.patch
2025-04-10 10:05:41 +02:00

977 lines
35 KiB
Diff

From 4fbbc58e0d35447436db6952ec5594c5f5939dba Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B8=CC=86=20=D0=9F?=
=?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=BE=D0=B2?= <alexey.pawlow@gmail.com>
Date: Sun, 14 Apr 2019 21:09:17 +0300
Subject: [PATCH 03/N] Rename dll from cygwin to msys
---
winsup/cygserver/transport_pipes.h | 4 +++
winsup/cygwin/Makefile.am | 27 ++++++++++---------
winsup/cygwin/crt0.c | 8 ++++++
winsup/cygwin/cygwin.din | 6 ++---
winsup/cygwin/cygwin.sc.in | 4 +++
winsup/cygwin/dcrt0.cc | 4 +++
winsup/cygwin/dlfcn.cc | 5 ++++
winsup/cygwin/dll_init.cc | 4 +++
winsup/cygwin/dtable.cc | 6 +++++
winsup/cygwin/exceptions.cc | 4 +--
winsup/cygwin/fhandler/pipe.cc | 4 +++
winsup/cygwin/fhandler/pty.cc | 20 ++++++++++++++
winsup/cygwin/hookapi.cc | 4 +++
winsup/cygwin/include/cygwin/cygwin_dll.h | 10 +++----
winsup/cygwin/include/cygwin/version.h | 8 ++++++
winsup/cygwin/lib/_cygwin_crt0_common.cc | 4 +++
winsup/cygwin/lib/crt0.h | 4 +++
winsup/cygwin/lib/cygwin_attach_dll.c | 8 ++++++
winsup/cygwin/lib/cygwin_crt0.c | 8 ++++++
.../cygwin/local_includes/cygserver_setpwd.h | 4 +++
winsup/cygwin/scripts/mkvers.sh | 6 ++---
winsup/cygwin/sec/auth.cc | 8 +++---
winsup/cygwin/syscalls.cc | 4 +--
winsup/cygwin/syslog.cc | 4 +++
winsup/cygwin/winver.rc | 2 +-
winsup/testsuite/winsup.api/cygload.cc | 10 +++----
winsup/testsuite/winsup.api/cygload.h | 2 +-
winsup/utils/ldd.cc | 2 +-
winsup/utils/loadlib.h | 6 ++---
winsup/utils/mingw/cygcheck.cc | 27 +++++++++----------
winsup/utils/mingw/strace.cc | 9 +++----
winsup/utils/path.cc | 12 ++++-----
winsup/utils/ssp.c | 8 +++---
33 files changed, 174 insertions(+), 72 deletions(-)
diff --git a/winsup/cygserver/transport_pipes.h b/winsup/cygserver/transport_pipes.h
index e101623..66272bc 100644
--- a/winsup/cygserver/transport_pipes.h
+++ b/winsup/cygserver/transport_pipes.h
@@ -11,7 +11,11 @@ details. */
#ifndef _TRANSPORT_PIPES_H
#define _TRANSPORT_PIPES_H
+#ifdef __MSYS__
+#define PIPE_NAME_PREFIX L"\\\\.\\pipe\\msys-"
+#else
#define PIPE_NAME_PREFIX L"\\\\.\\pipe\\cygwin-"
+#endif
#define PIPE_NAME_SUFFIX L"-lpc"
/* Named pipes based transport, for security on NT */
diff --git a/winsup/cygwin/Makefile.am b/winsup/cygwin/Makefile.am
index 376c79f..e65e675 100644
--- a/winsup/cygwin/Makefile.am
+++ b/winsup/cygwin/Makefile.am
@@ -37,12 +37,12 @@ newlib_build=$(target_builddir)/newlib
toollibdir=$(tooldir)/lib
toolincludedir=$(tooldir)/include
-# Parameters used in building the cygwin.dll.
+# Parameters used in building the msys-2.0.dll.
-DLL_NAME=cygwin1.dll
-NEW_DLL_NAME=new-cygwin1.dll
-DEF_FILE=cygwin.def
-LIB_NAME=libcygwin.a
+DLL_NAME=msys-2.0.dll
+NEW_DLL_NAME=new-msys-2.0.dll
+DEF_FILE=msys.def
+LIB_NAME=libmsys-2.0.a
#
# sources
@@ -584,16 +584,16 @@ LIBSERVER = $(cygserver_blddir)/libcygserver.a
$(LIBSERVER):
$(MAKE) -C $(cygserver_blddir) libcygserver.a
-# We build as new-cygwin1.dll and rename at install time to overcome native
+# We build as new-msys-2.0.dll and rename at install time to overcome native
# rebuilding issues (we don't want the build tools to see a partially built
-# cygwin1.dll and attempt to use it instead of the old one).
+# msys-2.0.dll and attempt to use it instead of the old one).
# linker script
LDSCRIPT=cygwin.sc
$(LDSCRIPT): $(LDSCRIPT).in
$(AM_V_GEN)$(CC) -E - -P < $^ -o $@
-# cygwin dll
+# msys-2.0 dll
# Set PE and export table header timestamps to zero for reproducible builds.
$(NEW_DLL_NAME): $(LDSCRIPT) libdll.a $(VERSION_OFILES) $(LIBSERVER)\
$(newlib_build)/libm.a $(newlib_build)/libc.a
@@ -602,18 +602,18 @@ $(NEW_DLL_NAME): $(LDSCRIPT) libdll.a $(VERSION_OFILES) $(LIBSERVER)\
-Wl,--gc-sections -nostdlib -Wl,-T$(LDSCRIPT) \
-Wl,--dynamicbase -static \
$${SOURCE_DATE_EPOCH:+-Wl,--no-insert-timestamp} \
- -Wl,--heap=0 -Wl,--out-implib,cygdll.a -shared -o $@ \
+ -Wl,--heap=0 -Wl,--out-implib,msysdll.a -shared -o $@ \
-e @DLL_ENTRY@ $(DEF_FILE) \
-Wl,-whole-archive libdll.a -Wl,-no-whole-archive \
$(VERSION_OFILES) \
$(LIBSERVER) \
$(newlib_build)/libm.a \
$(newlib_build)/libc.a \
- -lgcc -lkernel32 -lntdll -Wl,-Map,cygwin.map
+ -lgcc -lkernel32 -lntdll -Wl,-Map,msys.map
@$(MKDIR_P) ${target_builddir}/winsup/testsuite/testinst/bin/
$(AM_V_at)$(INSTALL_PROGRAM) $(NEW_DLL_NAME) ${target_builddir}/winsup/testsuite/testinst/bin/$(DLL_NAME)
-# cygwin import library
+# msys-2.0 import library
toolopts=--cpu=@target_cpu@ --ar=@AR@ --as=@AS@ --nm=@NM@ --objcopy=@OBJCOPY@
$(DEF_FILE): scripts/gendef cygwin.din
@@ -626,13 +626,14 @@ sigfe.s: $(DEF_FILE) tlsoffsets
LIBCOS=$(addsuffix .o,$(basename $(LIB_FILES)))
$(LIB_NAME): $(DEF_FILE) $(LIBCOS) | $(NEW_DLL_NAME)
- $(AM_V_GEN)$(srcdir)/scripts/mkimport $(toolopts) $(NEW_FUNCTIONS) $@ cygdll.a $(wordlist 2,99,$^)
+ $(AM_V_GEN)$(srcdir)/scripts/mkimport $(toolopts) $(NEW_FUNCTIONS) $@ msysdll.a $(wordlist 2,99,$^)
# sublibs
# import libraries for some subset of symbols indicated by given objects
speclib=\
$(srcdir)/scripts/speclib $(toolopts) \
--exclude='cygwin' \
+ --exclude='msys' \
--exclude='(?i:dll)' \
--exclude='reloc' \
--exclude='^main$$' \
@@ -679,7 +680,7 @@ all-local: $(LIB_NAME) $(SUBLIBS)
clean-local:
-rm -f $(BUILT_SOURCES)
-rm -f $(DEF_FILE) sigfe.s
- -rm -f cygwin.sc cygdll.a cygwin.map
+ -rm -f cygwin.sc msysdll.a msys.map
-rm -f $(NEW_DLL_NAME)
-rm -f $(LIB_NAME) $(SUBLIBS)
-rm -f version.cc
diff --git a/winsup/cygwin/crt0.c b/winsup/cygwin/crt0.c
index 1096e58..3160df4 100644
--- a/winsup/cygwin/crt0.c
+++ b/winsup/cygwin/crt0.c
@@ -9,12 +9,20 @@ details. */
extern int main (int argc, char **argv);
+#ifdef __MSYS__
+void msys_crt0 (int (*main) (int, char **));
+#else
void cygwin_crt0 (int (*main) (int, char **));
+#endif
void
mainCRTStartup ()
{
+#ifdef __MSYS__
+ msys_crt0 (main);
+#else
cygwin_crt0 (main);
+#endif
/* These are never actually called. They are just here to force the inclusion
of things like -lbinmode. */
diff --git a/winsup/cygwin/cygwin.din b/winsup/cygwin/cygwin.din
index 9e354ac..76e88df 100644
--- a/winsup/cygwin/cygwin.din
+++ b/winsup/cygwin/cygwin.din
@@ -1,4 +1,4 @@
-LIBRARY "cygwin1.dll" BASE=0x180040000
+LIBRARY "msys-2.0.dll" BASE=0x180040000
EXPORTS
# Exported variables
@@ -404,8 +404,8 @@ cygwin_attach_handle_to_fd SIGFE
cygwin_conv_path SIGFE
cygwin_conv_path_list SIGFE
cygwin_create_path SIGFE
-cygwin_detach_dll SIGFE_MAYBE
-cygwin_dll_init NOSIGFE
+msys_detach_dll SIGFE_MAYBE
+msys_dll_init NOSIGFE
cygwin_internal NOSIGFE
cygwin_logon_user SIGFE
cygwin_posix_path_list_p NOSIGFE
diff --git a/winsup/cygwin/cygwin.sc.in b/winsup/cygwin/cygwin.sc.in
index 69526f5..4dc5dae 100644
--- a/winsup/cygwin/cygwin.sc.in
+++ b/winsup/cygwin/cygwin.sc.in
@@ -1,6 +1,10 @@
#ifdef __x86_64__
OUTPUT_FORMAT(pei-x86-64)
+# ifdef __MSYS__
+SEARCH_DIR("/usr/x86_64-pc-msys/lib/w32api"); SEARCH_DIR("=/usr/lib/w32api");
+# else
SEARCH_DIR("/usr/x86_64-pc-cygwin/lib/w32api"); SEARCH_DIR("=/usr/lib/w32api");
+# endif
#else
#error unimplemented for this target
#endif
diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc
index ff7e6ec..16b624e 100644
--- a/winsup/cygwin/dcrt0.cc
+++ b/winsup/cygwin/dcrt0.cc
@@ -1077,7 +1077,11 @@ dll_crt0 (per_process *uptr)
See winsup/testsuite/cygload for an example of how to use cygwin1.dll
from MSVC and non-cygwin MinGW applications. */
extern "C" void
+#ifdef __MSYS__
+msys_dll_init ()
+#else
cygwin_dll_init ()
+#endif
{
static int _fmode;
diff --git a/winsup/cygwin/dlfcn.cc b/winsup/cygwin/dlfcn.cc
index fb70524..7367d29 100644
--- a/winsup/cygwin/dlfcn.cc
+++ b/winsup/cygwin/dlfcn.cc
@@ -147,8 +147,13 @@ collect_basenames (pathfinder::basenamelist & basenames,
/* If the basename starts with "lib", ... */
if (!strncmp (basename, "lib", 3))
{
+#ifdef __MSYS__
+ /* ... replace "lib" with "msys-", before ... */
+ basenames.appendv ("msys-", 5, basename+3, baselen-3, ext, extlen, NULL);
+#else
/* ... replace "lib" with "cyg", before ... */
basenames.appendv ("cyg", 3, basename+3, baselen-3, ext, extlen, NULL);
+#endif
}
/* ... using original basename with new suffix. */
basenames.appendv (basename, baselen, ext, extlen, NULL);
diff --git a/winsup/cygwin/dll_init.cc b/winsup/cygwin/dll_init.cc
index 1a04751..7c5f8cc 100644
--- a/winsup/cygwin/dll_init.cc
+++ b/winsup/cygwin/dll_init.cc
@@ -874,7 +874,11 @@ dll_dllcrt0_1 (VOID *x)
}
extern "C" void
+#ifdef __MSYS__
+msys_detach_dll (dll *)
+#else
cygwin_detach_dll (dll *)
+#endif
{
HANDLE retaddr;
if (_my_tls.isinitialized ())
diff --git a/winsup/cygwin/dtable.cc b/winsup/cygwin/dtable.cc
index 9508f3e..3c40e0f 100644
--- a/winsup/cygwin/dtable.cc
+++ b/winsup/cygwin/dtable.cc
@@ -998,9 +998,15 @@ handle_to_fn (HANDLE h, char *posix_fn)
if (wcsncasecmp (w32, DEV_NAMED_PIPE, DEV_NAMED_PIPE_LEN) == 0)
{
w32 += DEV_NAMED_PIPE_LEN;
+#ifdef __MSYS__
+ if (wcsncmp (w32, L"msys-", WCLEN (L"msys-")) != 0)
+ return false;
+ w32 += WCLEN (L"msys-");
+#else
if (wcsncmp (w32, L"cygwin-", WCLEN (L"cygwin-")) != 0)
return false;
w32 += WCLEN (L"cygwin-");
+#endif
/* Check for installation key and trailing dash. */
w32len = cygheap->installation_key.Length / sizeof (WCHAR);
if (w32len
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc
index 9accf3c..c734a4d 100644
--- a/winsup/cygwin/exceptions.cc
+++ b/winsup/cygwin/exceptions.cc
@@ -526,14 +526,14 @@ int exec_prepared_command (PWCHAR command)
PWCHAR rawenv = GetEnvironmentStringsW () ;
for (PWCHAR p = rawenv; *p != L'\0'; p = wcschr (p, L'\0') + 1)
{
- if (wcsncmp (p, L"CYGWIN=", wcslen (L"CYGWIN=")) == 0)
+ if (wcsncmp (p, L"MSYS=", wcslen (L"MSYS=")) == 0)
{
PWCHAR q = wcsstr (p, L"error_start") ;
/* replace 'error_start=...' with '_rror_start=...' */
if (q)
{
*q = L'_' ;
- SetEnvironmentVariableW (L"CYGWIN", p + wcslen (L"CYGWIN=")) ;
+ SetEnvironmentVariableW (L"MSYS", p + wcslen (L"MSYS=")) ;
}
break;
}
diff --git a/winsup/cygwin/fhandler/pipe.cc b/winsup/cygwin/fhandler/pipe.cc
index 6a1ef03..7244fa4 100644
--- a/winsup/cygwin/fhandler/pipe.cc
+++ b/winsup/cygwin/fhandler/pipe.cc
@@ -751,7 +751,11 @@ fhandler_pipe::close ()
return ret;
}
+#ifdef __MSYS__
+#define PIPE_INTRO "\\\\.\\pipe\\msys-"
+#else
#define PIPE_INTRO "\\\\.\\pipe\\cygwin-"
+#endif
/* Create a pipe, and return handles to the read and write ends,
just like CreatePipe, but ensure that the write end permits
diff --git a/winsup/cygwin/fhandler/pty.cc b/winsup/cygwin/fhandler/pty.cc
index 4f0f718..eb51c6d 100644
--- a/winsup/cygwin/fhandler/pty.cc
+++ b/winsup/cygwin/fhandler/pty.cc
@@ -875,7 +875,11 @@ fhandler_pty_slave::open (int flags, mode_t)
pipe_reply repl;
DWORD len;
+#ifdef __MSYS__
+ __small_sprintf (buf, "\\\\.\\pipe\\msys-%S-pty%d-master-ctl",
+#else
__small_sprintf (buf, "\\\\.\\pipe\\cygwin-%S-pty%d-master-ctl",
+#endif
&cygheap->installation_key, get_minor ());
termios_printf ("dup handles via master control pipe %s", buf);
if (!CallNamedPipe (buf, &req, sizeof req, &repl, sizeof repl,
@@ -1137,7 +1141,11 @@ fhandler_pty_slave::reset_switch_to_nat_pipe (void)
{
char pipe[MAX_PATH];
__small_sprintf (pipe,
+#ifdef __MSYS__
+ "\\\\.\\pipe\\msys-%S-pty%d-master-ctl",
+#else
"\\\\.\\pipe\\cygwin-%S-pty%d-master-ctl",
+#endif
&cygheap->installation_key, get_minor ());
pipe_request req = { GetCurrentProcessId () };
pipe_reply repl;
@@ -2021,7 +2029,11 @@ fhandler_pty_master::close ()
pipe_reply repl;
DWORD len;
+#ifdef __MSYS__
+ __small_sprintf (buf, "\\\\.\\pipe\\msys-%S-pty%d-master-ctl",
+#else
__small_sprintf (buf, "\\\\.\\pipe\\cygwin-%S-pty%d-master-ctl",
+#endif
&cygheap->installation_key, get_minor ());
acquire_output_mutex (mutex_timeout);
if (master_ctl)
@@ -2927,7 +2939,11 @@ fhandler_pty_master::setup ()
/* Create master control pipe which allows the master to duplicate
the pty pipe handles to processes which deserve it. */
+#ifdef __MSYS__
+ __small_sprintf (buf, "\\\\.\\pipe\\msys-%S-pty%d-master-ctl",
+#else
__small_sprintf (buf, "\\\\.\\pipe\\cygwin-%S-pty%d-master-ctl",
+#endif
&cygheap->installation_key, unit);
master_ctl = CreateNamedPipe (buf, PIPE_ACCESS_DUPLEX
| FILE_FLAG_FIRST_PIPE_INSTANCE,
@@ -3816,7 +3832,11 @@ fhandler_pty_slave::transfer_input (tty::xfer_dir dir, HANDLE from, tty *ttyp,
{
char pipe[MAX_PATH];
__small_sprintf (pipe,
+#ifdef __MSYS__
+ "\\\\.\\pipe\\msys-%S-pty%d-master-ctl",
+#else
"\\\\.\\pipe\\cygwin-%S-pty%d-master-ctl",
+#endif
&cygheap->installation_key, ttyp->get_minor ());
pipe_request req = { GetCurrentProcessId () };
pipe_reply repl;
diff --git a/winsup/cygwin/hookapi.cc b/winsup/cygwin/hookapi.cc
index ee2edba..9f31a71 100644
--- a/winsup/cygwin/hookapi.cc
+++ b/winsup/cygwin/hookapi.cc
@@ -379,7 +379,11 @@ hook_or_detect_cygwin (const char *name, const void *fn, WORD& subsys, HANDLE h)
for (PIMAGE_IMPORT_DESCRIPTOR pd = pdfirst; pd->FirstThunk; pd++)
{
if (!ascii_strcasematch (rva (PSTR, map ?: (char *) hm, pd->Name - delta),
+#ifdef __MSYS__
+ "msys-2.0.dll"))
+#else
"cygwin1.dll"))
+#endif
continue;
if (!fn)
{
diff --git a/winsup/cygwin/include/cygwin/cygwin_dll.h b/winsup/cygwin/include/cygwin/cygwin_dll.h
index 1e4cf98..b77598b 100644
--- a/winsup/cygwin/include/cygwin/cygwin_dll.h
+++ b/winsup/cygwin/include/cygwin/cygwin_dll.h
@@ -24,8 +24,8 @@ details. */
CDECL_BEGIN \
int Entry (HINSTANCE h, DWORD reason, void *ptr); \
typedef int (*mainfunc) (int, char **, char **); \
- extern PVOID cygwin_attach_dll (HMODULE, mainfunc); \
- extern void cygwin_detach_dll (PVOID); \
+ extern PVOID msys_attach_dll (HMODULE, mainfunc); \
+ extern void msys_detach_dll (PVOID); \
CDECL_END \
\
static HINSTANCE storedHandle; \
@@ -42,7 +42,7 @@ static int __dllMain (int a __attribute__ ((__unused__)), \
\
static PVOID dll_index; \
\
-int _cygwin_dll_entry (HINSTANCE h, DWORD reason, void *ptr) \
+int _msys_dll_entry (HINSTANCE h, DWORD reason, void *ptr) \
{ \
int ret; \
ret = 1; \
@@ -55,7 +55,7 @@ int _cygwin_dll_entry (HINSTANCE h, DWORD reason, void *ptr) \
storedReason = reason; \
storedPtr = ptr; \
__dynamically_loaded = (ptr == NULL); \
- dll_index = cygwin_attach_dll (h, &__dllMain); \
+ dll_index = msys_attach_dll (h, &__dllMain); \
if (dll_index == (PVOID) -1) \
ret = 0; \
} \
@@ -66,7 +66,7 @@ int _cygwin_dll_entry (HINSTANCE h, DWORD reason, void *ptr) \
ret = Entry (h, reason, ptr); \
if (ret) \
{ \
- cygwin_detach_dll (dll_index); \
+ msys_detach_dll (dll_index); \
dll_index = (PVOID) -1; \
} \
} \
diff --git a/winsup/cygwin/include/cygwin/version.h b/winsup/cygwin/include/cygwin/version.h
index 78fbce0..245f04f 100644
--- a/winsup/cygwin/include/cygwin/version.h
+++ b/winsup/cygwin/include/cygwin/version.h
@@ -502,7 +502,11 @@ details. */
names include the CYGWIN_VERSION_SHARED_DATA version as well as this
identifier. */
+#ifdef __MSYS__
+#define CYGWIN_VERSION_DLL_IDENTIFIER "msys-2.0"
+#else
#define CYGWIN_VERSION_DLL_IDENTIFIER "cygwin1"
+#endif
/* The Cygwin mount table interface in the Win32 registry also has a version
number associated with it in case that is changed in a non-backwards
@@ -518,7 +522,11 @@ details. */
/* Identifiers used in the Win32 registry. */
+#ifdef __MSYS__
+#define CYGWIN_INFO_CYGWIN_REGISTRY_NAME "MSYS"
+#else
#define CYGWIN_INFO_CYGWIN_REGISTRY_NAME "Cygwin"
+#endif
#define CYGWIN_INFO_INSTALLATIONS_NAME "Installations"
/* The default cygdrive prefix. */
diff --git a/winsup/cygwin/lib/_cygwin_crt0_common.cc b/winsup/cygwin/lib/_cygwin_crt0_common.cc
index d356a50..801b6f9 100644
--- a/winsup/cygwin/lib/_cygwin_crt0_common.cc
+++ b/winsup/cygwin/lib/_cygwin_crt0_common.cc
@@ -73,7 +73,11 @@ struct per_process_cxx_malloc __cygwin_cxx_malloc =
and then jump to the dll. */
int
+#ifdef __MSYS__
+_msys_crt0_common (MainFunc f, per_process *u)
+#else
_cygwin_crt0_common (MainFunc f, per_process *u)
+#endif
{
per_process *newu = (per_process *) cygwin_internal (CW_USER_DATA);
bool uwasnull;
diff --git a/winsup/cygwin/lib/crt0.h b/winsup/cygwin/lib/crt0.h
index e599b44..e817500 100644
--- a/winsup/cygwin/lib/crt0.h
+++ b/winsup/cygwin/lib/crt0.h
@@ -13,7 +13,11 @@ extern "C" {
#include "winlean.h"
struct per_process;
typedef int (*MainFunc) (int argc, char *argv[], char **env);
+#ifdef __MSYS__
+int _msys_crt0_common (MainFunc, struct per_process *);
+#else
int _cygwin_crt0_common (MainFunc, struct per_process *);
+#endif
PVOID dll_dllcrt0 (HMODULE, struct per_process *);
#ifdef __cplusplus
diff --git a/winsup/cygwin/lib/cygwin_attach_dll.c b/winsup/cygwin/lib/cygwin_attach_dll.c
index 866bfd8..82679c4 100644
--- a/winsup/cygwin/lib/cygwin_attach_dll.c
+++ b/winsup/cygwin/lib/cygwin_attach_dll.c
@@ -15,10 +15,18 @@ details. */
/* for a loaded dll */
PVOID
+#ifdef __MSYS__
+msys_attach_dll (HMODULE h, MainFunc f)
+#else
cygwin_attach_dll (HMODULE h, MainFunc f)
+#endif
{
static struct per_process u;
+#ifdef __MSYS__
+ (void) _msys_crt0_common (f, &u);
+#else
(void) _cygwin_crt0_common (f, &u);
+#endif
/* jump into the dll. */
return dll_dllcrt0 (h, &u);
diff --git a/winsup/cygwin/lib/cygwin_crt0.c b/winsup/cygwin/lib/cygwin_crt0.c
index 7020a63..396447e 100644
--- a/winsup/cygwin/lib/cygwin_crt0.c
+++ b/winsup/cygwin/lib/cygwin_crt0.c
@@ -14,8 +14,16 @@ extern void _dll_crt0 ()
/* for main module */
void
+#ifdef __MSYS__
+msys_crt0 (MainFunc f)
+#else
cygwin_crt0 (MainFunc f)
+#endif
{
+#ifdef __MSYS__
+ _msys_crt0_common (f, NULL);
+#else
_cygwin_crt0_common (f, NULL);
+#endif
_dll_crt0 (); /* Jump into the dll, never to return */
}
diff --git a/winsup/cygwin/local_includes/cygserver_setpwd.h b/winsup/cygwin/local_includes/cygserver_setpwd.h
index fc1576b..b297511 100644
--- a/winsup/cygwin/local_includes/cygserver_setpwd.h
+++ b/winsup/cygwin/local_includes/cygserver_setpwd.h
@@ -12,7 +12,11 @@ details. */
#include <sys/types.h>
#include "cygserver.h"
+#ifdef __MSYS__
+#define CYGWIN_LSA_KEY_PREFIX L"L$MSYS_"
+#else
#define CYGWIN_LSA_KEY_PREFIX L"L$CYGWIN_"
+#endif
#ifndef __INSIDE_CYGWIN__
class transport_layer_base;
diff --git a/winsup/cygwin/scripts/mkvers.sh b/winsup/cygwin/scripts/mkvers.sh
index 38f439c..a3d45c5 100755
--- a/winsup/cygwin/scripts/mkvers.sh
+++ b/winsup/cygwin/scripts/mkvers.sh
@@ -123,7 +123,7 @@ dir=$(echo $dir | sed -e 's%/include/cygwin.*$%%' -e 's%include/cygwin.*$%.%')
) | while read var; do
read val
cat <<EOF
- "%%% Cygwin $var: $val\n"
+ "%%% MSYS $var: $val\n"
EOF
done | tee /tmp/mkvers.$$ 1>&9
@@ -135,9 +135,9 @@ trap "rm -f /tmp/mkvers.$$" 0 1 2 15
#
cat <<EOF 1>&9
#ifdef DEBUGGING
- "%%% Cygwin shared id: " CYGWIN_VERSION_DLL_IDENTIFIER "S" shared_data_version "-$builddate\n"
+ "%%% MSYS shared id: " CYGWIN_VERSION_DLL_IDENTIFIER "S" shared_data_version "-$builddate\n"
#else
- "%%% Cygwin shared id: " CYGWIN_VERSION_DLL_IDENTIFIER "S" shared_data_version "\n"
+ "%%% MSYS shared id: " CYGWIN_VERSION_DLL_IDENTIFIER "S" shared_data_version "\n"
#endif
"END_CYGWIN_VERSION_INFO\n\0";
cygwin_version_info cygwin_version =
diff --git a/winsup/cygwin/sec/auth.cc b/winsup/cygwin/sec/auth.cc
index 43b5803..db1d5c8 100644
--- a/winsup/cygwin/sec/auth.cc
+++ b/winsup/cygwin/sec/auth.cc
@@ -462,7 +462,7 @@ verify_token (HANDLE token, cygsid &usersid, user_groups &groups, bool *pintern)
if (!NT_SUCCESS (status))
debug_printf ("NtQueryInformationToken(), %y", status);
else
- *pintern = intern = !memcmp (ts.SourceName, "Cygwin.1", 8);
+ *pintern = intern = !memcmp (ts.SourceName, "MSYS.2", 6);
}
/* Verify usersid */
cygsid tok_usersid (NO_SID);
@@ -747,7 +747,7 @@ s4uauth (bool logon, PCWSTR domain, PCWSTR user, NTSTATUS &ret_status)
{
/* Register as logon process. */
debug_printf ("Impersonation requested");
- RtlInitAnsiString (&name, "Cygwin");
+ RtlInitAnsiString (&name, "MSYS");
status = LsaRegisterLogonProcess (&name, &lsa_hdl, &sec_mode);
}
else
@@ -786,11 +786,11 @@ s4uauth (bool logon, PCWSTR domain, PCWSTR user, NTSTATUS &ret_status)
}
/* Create origin. */
- stpcpy (origin.buf, "Cygwin");
+ stpcpy (origin.buf, "MSYS");
RtlInitAnsiString (&origin.str, origin.buf);
/* Create token source. */
- memcpy (ts.SourceName, "Cygwin.1", 8);
+ memcpy (ts.SourceName, "MSYS.2", 6);
ts.SourceIdentifier.HighPart = 0;
ts.SourceIdentifier.LowPart = kerberos_auth ? 0x0105 : 0x0106;
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc
index 83318d6..808e661 100644
--- a/winsup/cygwin/syscalls.cc
+++ b/winsup/cygwin/syscalls.cc
@@ -339,7 +339,7 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access, ULONG flags)
}
else
{
- /* Create unique filename. Start with a dot, followed by "cyg"
+ /* Create unique filename. Start with a dot, followed by "msys"
transposed to the Unicode private use area in the U+f700 area
on file systems supporting Unicode (except Samba), followed by
the inode number in hex, followed by a path hash in hex. The
@@ -347,7 +347,7 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access, ULONG flags)
RtlAppendUnicodeToString (&recycler,
(pc.fs_flags () & FILE_UNICODE_ON_DISK
&& !pc.fs_is_samba ())
- ? L".\xf763\xf779\xf767" : L".cyg");
+ ? L".\xf76d\xf773\xf779\xf773" : L".msys");
pfii = (PFILE_INTERNAL_INFORMATION) infobuf;
status = NtQueryInformationFile (fh, &io, pfii, sizeof *pfii,
FileInternalInformation);
diff --git a/winsup/cygwin/syslog.cc b/winsup/cygwin/syslog.cc
index 6a29550..431f9d2 100644
--- a/winsup/cygwin/syslog.cc
+++ b/winsup/cygwin/syslog.cc
@@ -26,7 +26,11 @@ details. */
#include "cygtls.h"
#include "tls_pbuf.h"
+#ifdef __MSYS__
+#define CYGWIN_LOG_NAME L"MSYS"
+#else
#define CYGWIN_LOG_NAME L"Cygwin"
+#endif
static struct
{
diff --git a/winsup/cygwin/winver.rc b/winsup/cygwin/winver.rc
index 980d512..58878d4 100644
--- a/winsup/cygwin/winver.rc
+++ b/winsup/cygwin/winver.rc
@@ -35,7 +35,7 @@ BEGIN
VALUE "InternalName", CYGWIN_DLL_NAME
VALUE "LegalCopyright", "Copyright \251 Cygwin Authors 1996-" STRINGIFY(CYGWIN_BUILD_YEAR)
VALUE "OriginalFilename", CYGWIN_DLL_NAME
- VALUE "ProductName", "Cygwin"
+ VALUE "ProductName", "MSYS2"
VALUE "ProductVersion", STRINGIFY(CYGWIN_VERSION)
VALUE "APIVersion", CYGWIN_API_VERSION
VALUE "SharedMemoryVersion", STRINGIFY(CYGWIN_VERSION_SHARED_DATA)
diff --git a/winsup/testsuite/winsup.api/cygload.cc b/winsup/testsuite/winsup.api/cygload.cc
index afd3ee9..1b2f79d 100644
--- a/winsup/testsuite/winsup.api/cygload.cc
+++ b/winsup/testsuite/winsup.api/cygload.cc
@@ -25,7 +25,7 @@
save for errors.
-testinterrupts Pauses the program for 30 seconds so you can demonstrate
that it handles ^C properly.
- -cygwin Name of DLL to load. Defaults to "cygwin1.dll". */
+ -cygwin Name of DLL to load. Defaults to "msys-2.0.dll". */
#include "cygload.h"
#include <iostream>
@@ -154,13 +154,13 @@ cygwin::connector::connector (const char *dll)
*out << "Initializing cygwin..." << endl;
- // This calls dcrt0.cc:cygwin_dll_init(), which calls dll_crt0_1(),
+ // This calls dcrt0.cc:msys_dll_init(), which calls dll_crt0_1(),
// which will, among other things:
// * spawn the cygwin signal handling thread from sigproc_init()
// * initialize the thread-local storage for this thread and overwrite
// the first 4K of the stack
void (*cyginit) ();
- get_symbol ("cygwin_dll_init", cyginit);
+ get_symbol ("msys_dll_init", cyginit);
(*cyginit) ();
*out << "Loading symbols..." << endl;
@@ -224,7 +224,7 @@ cygwin::connector::~connector ()
// This should call init.cc:dll_entry() with DLL_PROCESS_DETACH.
if (!FreeLibrary (_library))
- throw windows_error ("FreeLibrary", "cygwin1.dll");
+ throw windows_error ("FreeLibrary", "msys-2.0.dll");
}
catch (std::exception &x)
{
@@ -490,7 +490,7 @@ main (int argc, char *argv[])
std::ostringstream output;
bool verbose = false, testinterrupts = false;
- const char *dll = "cygwin1.dll";
+ const char *dll = "msys-2.0.dll";
out = &output;
diff --git a/winsup/testsuite/winsup.api/cygload.h b/winsup/testsuite/winsup.api/cygload.h
index 3015404..0f2aacd 100644
--- a/winsup/testsuite/winsup.api/cygload.h
+++ b/winsup/testsuite/winsup.api/cygload.h
@@ -76,7 +76,7 @@ namespace cygwin
// spawns a thread to let you receive signals from cygwin.
class connector {
public:
- connector (const char *dll = "cygwin1.dll");
+ connector (const char *dll = "msys-2.0.dll");
~connector ();
// A wrapper around GetProcAddress() for fetching symbols from the
diff --git a/winsup/utils/ldd.cc b/winsup/utils/ldd.cc
index 0d073c2..a31c4c6 100644
--- a/winsup/utils/ldd.cc
+++ b/winsup/utils/ldd.cc
@@ -249,7 +249,7 @@ tocyg (wchar_t *win_fn)
return fn;
}
-#define CYGWIN_DLL_LEN (wcslen (L"\\cygwin1.dll"))
+#define CYGWIN_DLL_LEN (wcslen (L"\\msys-2.0.dll"))
static int
print_dlls (dlls *dll, const wchar_t *dllfn, const wchar_t *process_fn)
{
diff --git a/winsup/utils/loadlib.h b/winsup/utils/loadlib.h
index c83b764..42ffbfd 100644
--- a/winsup/utils/loadlib.h
+++ b/winsup/utils/loadlib.h
@@ -13,7 +13,7 @@
#include <wchar.h>
/* Load all system libs from the windows system directory by prepending the
- full path. This doesn't work for loadling cygwin1.dll. For this case,
+ full path. This doesn't work for loadling msys-2.0.dll. For this case,
instead of prepending the path, make sure that the CWD is removed from
the DLL search path, if possible (XP SP1++, Vista++). */
static HMODULE _load_sys_library (const wchar_t *dll) __attribute__ ((used));
@@ -45,8 +45,8 @@ _load_sys_library (const wchar_t *dll)
set_dll_directory (L"");
}
- if (wcscmp (dll, L"cygwin1.dll") == 0)
- return LoadLibraryExW (L"cygwin1.dll", NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
+ if (wcscmp (dll, L"msys-2.0.dll") == 0)
+ return LoadLibraryExW (L"msys-2.0.dll", NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
wcscpy (dllpath, sysdir);
wcscpy (dllpath + sysdir_len, dll);
diff --git a/winsup/utils/mingw/cygcheck.cc b/winsup/utils/mingw/cygcheck.cc
index 1dde2ec..7718ab9 100644
--- a/winsup/utils/mingw/cygcheck.cc
+++ b/winsup/utils/mingw/cygcheck.cc
@@ -95,8 +95,7 @@ static const char *known_env_vars[] = {
"c_include_path",
"compiler_path",
"cxx_include_path",
- "cygwin",
- "cygwin32",
+ "msys",
"dejagnu",
"expect",
"gcc_default_options",
@@ -554,7 +553,7 @@ struct ImpDirectory
static bool track_down (const char *file, const char *suffix, int lvl);
-#define CYGPREFIX (sizeof ("%%% Cygwin ") - 1)
+#define CYGPREFIX (sizeof ("%%% Msys ") - 1)
static void
cygwin_info (HANDLE h)
{
@@ -586,7 +585,7 @@ cygwin_info (HANDLE h)
while (buf < bufend)
if ((buf = (char *) memchr (buf, '%', bufend - buf)) == NULL)
break;
- else if (strncmp ("%%% Cygwin ", buf, CYGPREFIX) != 0)
+ else if (strncmp ("%%% Msys ", buf, CYGPREFIX) != 0)
buf++;
else
{
@@ -780,7 +779,7 @@ dll_info (const char *path, HANDLE fh, int lvl, int recurse)
}
}
}
- if (strstr (path, "\\cygwin1.dll"))
+ if (strstr (path, "\\msys-2.0.dll"))
cygwin_info (fh);
}
@@ -1027,7 +1026,7 @@ scan_registry (RegInfo * prev, HKEY hKey, char *name, int cygwin, bool wow64)
char *cp;
for (cp = name; *cp; cp++)
- if (strncasecmp (cp, "Cygwin", 6) == 0)
+ if (strncasecmp (cp, "Msys", 4) == 0)
cygwin = 1;
DWORD num_subkeys, max_subkey_len, num_values;
@@ -1309,7 +1308,7 @@ handle_reg_installation (handle_reg_t what)
printf ("Cygwin installations found in the registry:\n");
for (int i = 0; i < 2; ++i)
if (RegOpenKeyEx (i ? HKEY_CURRENT_USER : HKEY_LOCAL_MACHINE,
- "SOFTWARE\\Cygwin\\Installations", 0,
+ "SOFTWARE\\Msys\\Installations", 0,
what == DELETE_KEY ? KEY_READ | KEY_WRITE : KEY_READ,
&key)
== ERROR_SUCCESS)
@@ -1331,7 +1330,7 @@ handle_reg_installation (handle_reg_t what)
if (what == PRINT_KEY)
printf (" %s Key: %s Path: %s", i ? "User: " : "System:",
name, path);
- strcat (path, "\\bin\\cygwin1.dll");
+ strcat (path, "\\bin\\msys-2.0.dll");
if (what == PRINT_KEY)
printf ("%s\n", access (path, F_OK) ? " (ORPHANED)" : "");
else if (access (path, F_OK))
@@ -1783,7 +1782,7 @@ dump_sysinfo ()
if (registry)
{
if (givehelp)
- printf ("Scanning registry for keys with 'Cygwin' in them...\n");
+ printf ("Scanning registry for keys with 'Msys' in them...\n");
scan_registry (0, HKEY_CURRENT_USER,
(char *) "HKEY_CURRENT_USER", 0, false);
scan_registry (0, HKEY_LOCAL_MACHINE,
@@ -1978,10 +1977,10 @@ dump_sysinfo ()
wcstombs (f, ffinfo.cFileName, sizeof f);
if (strcasecmp (f + strlen (f) - 4, ".dll") == 0)
{
- if (strncasecmp (f, "cyg", 3) == 0)
+ if (strncasecmp (f, "msys-", 5) == 0)
{
sprintf (tmp, "%s%s", pth->dir, f);
- if (strcasecmp (f, "cygwin1.dll") == 0)
+ if (strcasecmp (f, "msys-2.0.dll") == 0)
{
if (!cygwin_dll_count)
strcpy (cygdll_path, pth->dir);
@@ -2005,9 +2004,9 @@ dump_sysinfo ()
FindClose (ff);
}
if (cygwin_dll_count > 1)
- puts ("Warning: There are multiple cygwin1.dlls on your path");
+ puts ("Warning: There are multiple msys-2.0.dlls on your path");
if (!cygwin_dll_count)
- puts ("Warning: cygwin1.dll not found on your path");
+ puts ("Warning: msys-2.0.dll not found on your path");
dump_dodgy_apps (verbose);
@@ -3021,7 +3020,7 @@ load_cygwin (int& argc, char **&argv)
{
HMODULE h;
- if (!(h = LoadLibrary ("cygwin1.dll")))
+ if (!(h = LoadLibrary ("msys-2.0.dll")))
return;
GetModuleFileNameW (h, cygwin_dll_path, 32768);
if ((cygwin_internal = (uintptr_t (*) (cygwin_getinfo_types, ...))
diff --git a/winsup/utils/mingw/strace.cc b/winsup/utils/mingw/strace.cc
index c220643..29db640 100644
--- a/winsup/utils/mingw/strace.cc
+++ b/winsup/utils/mingw/strace.cc
@@ -284,7 +284,7 @@ load_cygwin ()
if (h)
return 0;
- if (!(h = LoadLibrary ("cygwin1.dll")))
+ if (!(h = LoadLibrary ("msys-2.0.dll")))
{
errno = ENOENT;
return 0;
@@ -354,17 +354,16 @@ create_child (char **argv)
make_command_line (one_line, argv);
SetConsoleCtrlHandler (NULL, 0);
-
- const char *cygwin_env = getenv ("CYGWIN");
+ const char *cygwin_env = getenv ("MSYS");
const char *space;
if (cygwin_env && strlen (cygwin_env) <= 256) /* sanity check */
space = " ";
else
space = cygwin_env = "";
- char *newenv = (char *) malloc (sizeof ("CYGWIN=noglob")
+ char *newenv = (char *) malloc (sizeof ("MSYS=noglob")
+ strlen (space) + strlen (cygwin_env));
- sprintf (newenv, "CYGWIN=noglob%s%s", space, cygwin_env);
+ sprintf (newenv, "MSYS=noglob%s%s", space, cygwin_env);
_putenv (newenv);
ret = CreateProcess (0, one_line.buf, /* command line */
NULL, /* Security */
diff --git a/winsup/utils/path.cc b/winsup/utils/path.cc
index fe55a64..323e4c7 100644
--- a/winsup/utils/path.cc
+++ b/winsup/utils/path.cc
@@ -585,14 +585,14 @@ read_mounts ()
}
max_mount_entry = 0;
- /* First fetch the cygwin1.dll path from the LoadLibrary call in load_cygwin.
- This utilizes the DLL search order to find a matching cygwin1.dll and to
+ /* First fetch the msys-2.0.dll path from the LoadLibrary call in load_cygwin.
+ This utilizes the DLL search order to find a matching msys-2.0.dll and to
compute the installation path from that DLL's path. */
if (cygwin_dll_path[0])
wcscpy (path, cygwin_dll_path);
- /* If we can't load cygwin1.dll, check where cygcheck is living itself and
- try to fetch installation path from here. Does cygwin1.dll exist in the
- same path? This should only kick in if the cygwin1.dll in the same path
+ /* If we can't load msys-2.0.dll, check where cygcheck is living itself and
+ try to fetch installation path from here. Does msys-2.0.dll exist in the
+ same path? This should only kick in if the msys-2.0.dll in the same path
has been made non-executable for the current user accidentally. */
else if (!GetModuleFileNameW (NULL, path, 32768))
return;
@@ -601,7 +601,7 @@ read_mounts ()
{
if (!cygwin_dll_path[0])
{
- wcscpy (path_end, L"\\cygwin1.dll");
+ wcscpy (path_end, L"\\msys-2.0.dll");
DWORD attr = GetFileAttributesW (path);
if (attr == (DWORD) -1
|| (attr & (FILE_ATTRIBUTE_DIRECTORY
diff --git a/winsup/utils/ssp.c b/winsup/utils/ssp.c
index 96a90a1..95045e1 100644
--- a/winsup/utils/ssp.c
+++ b/winsup/utils/ssp.c
@@ -710,15 +710,15 @@ usage (FILE * stream)
"You must specify the range of memory addresses to keep track of\n"
"manually, but it's not hard to figure out what to specify. Use the\n"
"\"objdump\" program to determine the bounds of the target's \".text\"\n"
- "section. Let's say we're profiling cygwin1.dll. Make sure you've\n"
+ "section. Let's say we're profiling msys-2.0.dll. Make sure you've\n"
"built it with debug symbols (else gprof won't run) and run objdump\n"
"like this:\n"
"\n"
- " objdump -h cygwin1.dll\n"
+ " objdump -h msys-2.0.dll\n"
"\n"
"It will print a report like this:\n"
"\n"
- "cygwin1.dll: file format pei-i386\n"
+ "msys-2.0.dll: file format pei-i386\n"
"\n"
"Sections:\n"
"Idx Name Size VMA LMA File off Algn\n"
@@ -749,7 +749,7 @@ usage (FILE * stream)
"\"gmon.out\". You can turn this data file into a readable report with\n"
"gprof:\n"
"\n"
- " gprof -b cygwin1.dll\n"
+ " gprof -b msys-2.0.dll\n"
"\n"
"The \"-b\" means 'skip the help pages'. You can omit this until you're\n"
"familiar with the report layout. The gprof documentation explains\n"