bug: 43946 Signed-off-by: André Hentschel nerv@dawncrow.de --- loader/preloader.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/loader/preloader.c b/loader/preloader.c index 5a4bb16..6736dd8 100644 --- a/loader/preloader.c +++ b/loader/preloader.c @@ -113,11 +113,18 @@ static struct wine_preload_info preload_info[] = { (void *)0x00010000, 0x00100000 }, /* DOS area */ { (void *)0x00110000, 0x67ef0000 }, /* low memory area */ { (void *)0x7f000000, 0x03000000 }, /* top-down allocations + shared heap + virtual heap */ -#else +#elif defined(__x86_64__) { (void *)0x000000010000, 0x00100000 }, /* DOS area */ { (void *)0x000000110000, 0x67ef0000 }, /* low memory area */ { (void *)0x00007ff00000, 0x000f0000 }, /* shared user data */ { (void *)0x7ffffe000000, 0x01ff0000 }, /* top-down allocations + virtual heap */ +#elif defined(__aarch64__) + { (void *)0x000000010000, 0x00100000 }, /* DOS area */ + { (void *)0x000000600000, 0x67ef0000 }, /* low memory area */ + { (void *)0x00007ff00000, 0x000f0000 }, /* shared user data */ + { (void *)0x7ffffe000000, 0x01ff0000 }, /* top-down allocations + virtual heap */ +#else +#error preloader not implemented for this CPU #endif { 0, 0 }, /* PE exe range set with WINEPRELOADRESERVE */ { 0, 0 } /* end of list */
André Hentschel nerv@dawncrow.de writes:
@@ -113,11 +113,18 @@ static struct wine_preload_info preload_info[] = { (void *)0x00010000, 0x00100000 }, /* DOS area */ { (void *)0x00110000, 0x67ef0000 }, /* low memory area */ { (void *)0x7f000000, 0x03000000 }, /* top-down allocations + shared heap + virtual heap */ -#else +#elif defined(__x86_64__) { (void *)0x000000010000, 0x00100000 }, /* DOS area */ { (void *)0x000000110000, 0x67ef0000 }, /* low memory area */ { (void *)0x00007ff00000, 0x000f0000 }, /* shared user data */ { (void *)0x7ffffe000000, 0x01ff0000 }, /* top-down allocations + virtual heap */ +#elif defined(__aarch64__)
- { (void *)0x000000010000, 0x00100000 }, /* DOS area */
- { (void *)0x000000600000, 0x67ef0000 }, /* low memory area */
- { (void *)0x00007ff00000, 0x000f0000 }, /* shared user data */
- { (void *)0x7ffffe000000, 0x01ff0000 }, /* top-down allocations + virtual heap */
This seems to defeat most of the purpose of the preloader. Why is the heap allocation broken?