aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2023-01-16 22:20:48 +0100
committerCorinna Vinschen <corinna@vinschen.de>2023-01-17 17:07:11 +0100
commit50cbbb1c0e7263d370a526fec0e905e3392bb9ba (patch)
tree313dbefe744acdeed9dd5c88580a4c92c8d895bc
parent93508e5bb841138911ed3dee3c92cc18be43d9ca (diff)
downloadnewlib-50cbbb1c0e7263d370a526fec0e905e3392bb9ba.zip
newlib-50cbbb1c0e7263d370a526fec0e905e3392bb9ba.tar.gz
newlib-50cbbb1c0e7263d370a526fec0e905e3392bb9ba.tar.bz2
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>
-rw-r--r--winsup/cygwin/local_includes/memory_layout.h18
-rw-r--r--winsup/cygwin/mm/shared.cc2
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 481215b..21e00c1 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 351d314..aa9997c 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
};