Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=58666
-- v2: loader: Make thread_ldt reference position independent
From: Alfred Agrell floating@muncher.se
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=58666 --- loader/preloader.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/loader/preloader.c b/loader/preloader.c index d0551bae63a..40fa3a2e4d1 100644 --- a/loader/preloader.c +++ b/loader/preloader.c @@ -208,7 +208,9 @@ 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"