diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-02-06 18:16:42 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-02-06 18:16:42 +0100 |
| commit | 255d5c661e0cf1a4d2bd2664b2cc8cc7587b6226 (patch) | |
| tree | 0ba7a596b19740acbbba8a97962dbbae5f6c10b7 /src | |
| parent | a60d9459683d309171748615b940e57464f1e250 (diff) | |
| download | box64-255d5c661e0cf1a4d2bd2664b2cc8cc7587b6226.tar.gz box64-255d5c661e0cf1a4d2bd2664b2cc8cc7587b6226.zip | |
Do not force mmap alginement if wine not detected (shoudl help #1249)
Diffstat (limited to 'src')
| -rw-r--r-- | src/wrapped/wrappedlibc.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/wrapped/wrappedlibc.c b/src/wrapped/wrappedlibc.c index 03d1c75a..53c0e749 100644 --- a/src/wrapped/wrappedlibc.c +++ b/src/wrapped/wrappedlibc.c @@ -2624,7 +2624,7 @@ EXPORT void* my_mmap64(x64emu_t* emu, void *addr, unsigned long length, int prot void* ret = internal_mmap(addr, length, prot, new_flags, fd, offset); #ifndef NOALIGN if((ret!=MAP_FAILED) && (flags&MAP_32BIT) && - (((uintptr_t)ret>0xffffffffLL) || ((box64_wine || 1) && ((uintptr_t)ret&0xffff) && (ret!=addr)))) { + (((uintptr_t)ret>0xffffffffLL) || ((box64_wine) && ((uintptr_t)ret&0xffff) && (ret!=addr)))) { int olderr = errno; if(emu && (box64_log>=LOG_DEBUG || box64_dynarec_log>=LOG_DEBUG)) printf_log(LOG_NONE, "Warning, mmap on 32bits didn't worked, ask %p, got %p ", addr, ret); munmap(ret, length); @@ -2636,7 +2636,7 @@ EXPORT void* my_mmap64(x64emu_t* emu, void *addr, unsigned long length, int prot if(emu && (box64_log>=LOG_DEBUG || box64_dynarec_log>=LOG_DEBUG)) printf_log(LOG_NONE, " tried again with %p, got %p\n", addr, ret); if(old_addr && ret!=old_addr && ret!=MAP_FAILED) errno = olderr; - } else if((ret!=MAP_FAILED) && !(flags&MAP_FIXED) && ((box64_wine || 1)) && (old_addr) && (addr!=ret) && + } else if((ret!=MAP_FAILED) && !(flags&MAP_FIXED) && ((box64_wine)) && (old_addr) && (addr!=ret) && (((uintptr_t)ret>0x7fffffffffffLL) || ((uintptr_t)ret&~0xffff))) { int olderr = errno; if(emu && (box64_log>=LOG_DEBUG || box64_dynarec_log>=LOG_DEBUG)) printf_log(LOG_NONE, "Warning, mmap on 47bits didn't worked, ask %p, got %p ", addr, ret); |