[PATCH v3 0/1] MR8902: loader: Make thread_ldt reference position independent
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=58666 -- v3: loader: Make thread_ldt references position independent https://gitlab.winehq.org/wine/wine/-/merge_requests/8902
From: Alfred Agrell <floating(a)muncher.se> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=58666 --- loader/preloader.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/loader/preloader.c b/loader/preloader.c index d0551bae63a..d6833d8010c 100644 --- a/loader/preloader.c +++ b/loader/preloader.c @@ -208,11 +208,15 @@ extern char _end[]; __ASM_GLOBAL_FUNC(_start, __ASM_CFI("\t.cfi_undefined %eip\n") "\tmovl $243,%eax\n" /* SYS_set_thread_area */ - "\tmovl $thread_ldt,%ebx\n" + "\tcall 1f\n" + "1:\tpop %ebx\n" + "\taddl $thread_ldt-1b,%ebx\n" "\tint $0x80\n" /* allocate gs segment */ "\torl %eax,%eax\n" "\tjl 1f\n" - "\tmovl thread_ldt,%eax\n" /* thread_ldt.entry_number */ + "\tcall 2f\n" + "2:\tpop %ebx\n" + "\tmovl thread_ldt-2b(%ebx),%eax\n" /* thread_ldt.entry_number */ "\tshl $3,%eax\n" "\torl $3,%eax\n" "\tmov %ax,%gs\n" -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/8902
participants (2)
-
Alfred Agrell -
Alfred Agrell (@Alcaro)