From b35c4c475bea3c8f938d8e9696d1138eabb54a89 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Sat, 18 Apr 2015 21:18:23 -0400 Subject: [PATCH] remove potentially PIC-incompatible relocations from x86_64 and x32 asm analogous to commit 8ed66ecbcba1dd0f899f22b534aac92a282f42d5 for i386. --- src/math/x32/expl.s | 2 +- src/math/x86_64/expl.s | 2 +- src/signal/x32/sigsetjmp.s | 4 ++-- src/signal/x86_64/sigsetjmp.s | 4 ++-- src/string/x86_64/memcpy.s | 3 +++ src/string/x86_64/memmove.s | 3 ++- 6 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/math/x32/expl.s b/src/math/x32/expl.s index aabea45e..369f7bd2 100644 --- a/src/math/x32/expl.s +++ b/src/math/x32/expl.s @@ -37,7 +37,7 @@ expl: fstpt (%esp) fstpt 16(%esp) fstpt 32(%esp) - call exp2l + call exp2l@PLT # if 2^hi == inf return 2^hi fld %st(0) fstpt (%esp) diff --git a/src/math/x86_64/expl.s b/src/math/x86_64/expl.s index 3add810d..798261d2 100644 --- a/src/math/x86_64/expl.s +++ b/src/math/x86_64/expl.s @@ -37,7 +37,7 @@ expl: fstpt (%rsp) fstpt 16(%rsp) fstpt 32(%rsp) - call exp2l + call exp2l@PLT # if 2^hi == inf return 2^hi fld %st(0) fstpt (%rsp) diff --git a/src/signal/x32/sigsetjmp.s b/src/signal/x32/sigsetjmp.s index d354d680..9a7695f9 100644 --- a/src/signal/x32/sigsetjmp.s +++ b/src/signal/x32/sigsetjmp.s @@ -11,7 +11,7 @@ __sigsetjmp: mov %rbx,72+8(%rdi) mov %rdi,%rbx - call setjmp + call setjmp@PLT pushq 64(%rbx) mov %rbx,%rdi @@ -21,4 +21,4 @@ __sigsetjmp: .hidden __sigsetjmp_tail jmp __sigsetjmp_tail -1: jmp setjmp +1: jmp setjmp@PLT diff --git a/src/signal/x86_64/sigsetjmp.s b/src/signal/x86_64/sigsetjmp.s index d354d680..9a7695f9 100644 --- a/src/signal/x86_64/sigsetjmp.s +++ b/src/signal/x86_64/sigsetjmp.s @@ -11,7 +11,7 @@ __sigsetjmp: mov %rbx,72+8(%rdi) mov %rdi,%rbx - call setjmp + call setjmp@PLT pushq 64(%rbx) mov %rbx,%rdi @@ -21,4 +21,4 @@ __sigsetjmp: .hidden __sigsetjmp_tail jmp __sigsetjmp_tail -1: jmp setjmp +1: jmp setjmp@PLT diff --git a/src/string/x86_64/memcpy.s b/src/string/x86_64/memcpy.s index 1282dc3b..3d960efa 100644 --- a/src/string/x86_64/memcpy.s +++ b/src/string/x86_64/memcpy.s @@ -1,6 +1,9 @@ .global memcpy +.global __memcpy_fwd +.hidden __memcpy_fwd .type memcpy,@function memcpy: +__memcpy_fwd: mov %rdi,%rax cmp $8,%rdx jc 1f diff --git a/src/string/x86_64/memmove.s b/src/string/x86_64/memmove.s index 247f0ac3..172c0252 100644 --- a/src/string/x86_64/memmove.s +++ b/src/string/x86_64/memmove.s @@ -4,7 +4,8 @@ memmove: mov %rdi,%rax sub %rsi,%rax cmp %rdx,%rax - jae memcpy +.hidden __memcpy_fwd + jae __memcpy_fwd mov %rdx,%rcx lea -1(%rdi,%rdx),%rdi lea -1(%rsi,%rdx),%rsi -- 2.25.1