mirror of
git://git.musl-libc.org/musl
synced 2024-12-14 10:45:54 +00:00
fix breakage in x32 dynamic linker due to mismatching register size
the jmp instruction requires a 64-bit register, so cast the desired PC address up to uint64_t, going through uintptr_t to ensure that it's zero-extended rather than possibly sign-extended.
This commit is contained in:
parent
60ed988fd6
commit
4bf10ebf66
@ -23,4 +23,4 @@
|
||||
#define REL_TPOFF R_X86_64_TPOFF64
|
||||
|
||||
#define CRTJMP(pc,sp) __asm__ __volatile__( \
|
||||
"mov %1,%%esp ; jmp *%0" : : "r"(pc), "r"(sp) : "memory" )
|
||||
"mov %1,%%esp ; jmp *%0" : : "r"((uint64_t)(uintptr_t)pc), "r"(sp) : "memory" )
|
||||
|
Loading…
Reference in New Issue
Block a user