On Wed Jul 17 17:16:20 2024 +0000, theofficialgman wrote:
> The issue I am having is when fully emulating x86_64 wine on arm64 using
> the likes of box64/fex/qemu. So the hardcode makes sense why the problem
> is happening. Thanks for the info, I'll look into using
> `get_host_addr_space_limit` for all architectures.
That resolved the issue
@julliard please consider using the `get_host_addr_space_limit` for all architectures as is done with this patch
```
diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
index 0d88315..87b27fb 100644
--- a/dlls/ntdll/unix/virtual.c
+++ b/dlls/ntdll/unix/virtual.c
@@ -2436,8 +2436,6 @@ static NTSTATUS map_pe_header( void *ptr, size_t size, int fd, BOOL *removable )
return STATUS_SUCCESS; /* page protections will be updated later */
}
-#ifdef __aarch64__
-
/***********************************************************************
* get_host_addr_space_limit
*/
@@ -2464,6 +2462,7 @@ static void *get_host_addr_space_limit(void)
return (void *)((addr << 1) - (granularity_mask + 1));
}
+#ifdef __aarch64__
/***********************************************************************
* alloc_arm64ec_map
@@ -3296,12 +3295,8 @@ void virtual_init(void)
pthread_mutex_init( &virtual_mutex, &attr );
pthread_mutexattr_destroy( &attr );
-#ifdef __aarch64__
host_addr_space_limit = get_host_addr_space_limit();
TRACE( "host addr space limit: %p\n", host_addr_space_limit );
-#else
- host_addr_space_limit = address_space_limit;
-#endif
if (preload_info && *preload_info)
for (i = 0; (*preload_info)[i].size; i++)
```
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3598#note_76805
This fixes various corner cases.
This is not motivated by any particular application. However, the server-side
code seems at least as simple as the existing client-side code, is more
accurate, and removes a potential source of complication from any future work
involving asyncs.
--
v5: server: Reimplement mailslots using server-side I/O.
ntdll: Respect the "options" argument to NtCreateMailslotFile.
server: Treat completion with error before async_handoff() as error.
kernel32/tests: Add more mailslot tests.
server: Make pipe ends FD_TYPE_DEVICE.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6045
--
v2: mshtml: Implement style msTransform.
mshtml: Implement style msTransition.
mshtml: Compactify the style_props expose tests for each style object into
mshtml: Don't allow vendor prefixed CSS props for style prop operations.
mshtml: Fix box-sizing CSS property.
mshtml: Use bitfields for the event BOOL fields.
mshtml: Fix special case between stopImmediatePropagation and setting
mshtml: Implement HTMLEventObj's cancelBubble on top of the underlying
mshtml: Implement event.cancelBubble.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6096
If a DSN is System wide, we need to write to the HKEY_LOCAL_MACHINE
part of the registry not HKEY_CURRENT_USER which it's currently doing.
--
v6: odbccp32: SQLWritePrivateProfileStringW simplify creating registry keys.
odbccp32: SQLWritePrivateProfileStringW check for existing DSN first.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5812
This fixes various corner cases.
This is not motivated by any particular application. However, the server-side
code seems at least as simple as the existing client-side code, is more
accurate, and removes a potential source of complication from any future work
involving asyncs.
--
v4: server: Reimplement mailslots using server-side I/O.
ntdll: Respect the "options" argument to NtCreateMailslotFile.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6045