[newlib-cygwin/cygwin-3_4-branch] Cygwin: Move shared regions, rename PINFO... to MYSELF_REGION_ADDRESS

Corinna Vinschen corinna@sourceware.org
Tue Jan 17 19:15:29 GMT 2023


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=1e854c18e5b2261e159671f6c09de593f3618ca2

commit 1e854c18e5b2261e159671f6c09de593f3618ca2
Author:     Corinna Vinschen <corinna@vinschen.de>
AuthorDate: Mon Jan 16 22:20:48 2023 +0100
Commit:     Corinna Vinschen <corinna@vinschen.de>
CommitDate: Tue Jan 17 19:49:39 2023 +0100

    Cygwin: Move shared regions, rename PINFO... to MYSELF_REGION_ADDRESS
    
    Fix comments accordingly.
    
    This is in preparation for a change in open_shared, handling shared
    regions more cleanly.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>

Diff:
---
 winsup/cygwin/local_includes/memory_layout.h | 18 ++++++++++--------
 winsup/cygwin/mm/shared.cc                   |  2 +-
 2 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/winsup/cygwin/local_includes/memory_layout.h b/winsup/cygwin/local_includes/memory_layout.h
index 83ccf8f65817..a3a0cae70fb0 100644
--- a/winsup/cygwin/local_includes/memory_layout.h
+++ b/winsup/cygwin/local_includes/memory_layout.h
@@ -16,14 +16,16 @@ details. */
    dynamicbase is accidentally not set in the PE/COFF header of the DLL. */
 #define CYGWIN_DLL_ADDRESS		0x180040000UL
 
-/* New with ASLR: We need a fixed place for the global shared memory areas.
-   Prior to ASLR, the addresses were relative to the address the Cygwin DLL
-   was loaded to. */
-#define SHARED_REGIONS_ADDRESS_LOW	0x1f0000000UL
-#define CYGWIN_REGION_ADDRESS		0x1f0000000UL
-#define USER_REGION_ADDRESS		0x1f2000000UL
-#define PINFO_REGION_ADDRESS		0x1f4000000UL
-#define SHARED_CONSOLE_REGION_ADDRESS	0x1f6000000UL
+/* Default addresses of required standard shared regions (Cygwin shared,
+   user shared, myself, shared console). */
+#define CYGWIN_REGION_ADDRESS		0x1a0000000UL
+#define USER_REGION_ADDRESS		0x1a1000000UL
+#define MYSELF_REGION_ADDRESS		0x1a2000000UL
+#define SHARED_CONSOLE_REGION_ADDRESS	0x1a3000000UL
+
+/* Area for non-fixed-address Cygwin-specific shared memory regions.  Fallback
+   for standard shared regions if the can't load at their default address. */
+#define SHARED_REGIONS_ADDRESS_LOW	0x1a4000000UL
 #define SHARED_REGIONS_ADDRESS_HIGH	0x200000000UL
 
 /* Rebased DLLs are located in this 16 Gigs arena.  Will be kept for
diff --git a/winsup/cygwin/mm/shared.cc b/winsup/cygwin/mm/shared.cc
index 351d314af01b..aa9997c7569c 100644
--- a/winsup/cygwin/mm/shared.cc
+++ b/winsup/cygwin/mm/shared.cc
@@ -118,7 +118,7 @@ static uintptr_t region_address[] =
 {
   CYGWIN_REGION_ADDRESS,		/* SH_CYGWIN_SHARED */
   USER_REGION_ADDRESS,			/* SH_USER_SHARED */
-  PINFO_REGION_ADDRESS,			/* SH_MYSELF */
+  MYSELF_REGION_ADDRESS,		/* SH_MYSELF */
   SHARED_CONSOLE_REGION_ADDRESS,	/* SH_SHARED_CONSOLE */
   0
 };


More information about the Cygwin-cvs mailing list