diff options
Diffstat (limited to 'libc/sysdeps')
-rw-r--r-- | libc/sysdeps/linux/alpha/brk.S | 2 | ||||
-rw-r--r-- | libc/sysdeps/linux/ia64/brk.S | 10 | ||||
-rw-r--r-- | libc/sysdeps/linux/powerpc/brk.S | 8 |
3 files changed, 9 insertions, 11 deletions
diff --git a/libc/sysdeps/linux/alpha/brk.S b/libc/sysdeps/linux/alpha/brk.S index 05c3b2c43..a108c0d36 100644 --- a/libc/sysdeps/linux/alpha/brk.S +++ b/libc/sysdeps/linux/alpha/brk.S @@ -68,7 +68,7 @@ brk: /* Update __curbrk and return cleanly. */ mov $31, $0 -$ok: stq $16, __curbrk +$ok: stq $16, HIDDEN_JUMPTARGET(__curbrk) addq $30, 8, $30 ret diff --git a/libc/sysdeps/linux/ia64/brk.S b/libc/sysdeps/linux/ia64/brk.S index 6d146a579..35547b74b 100644 --- a/libc/sysdeps/linux/ia64/brk.S +++ b/libc/sysdeps/linux/ia64/brk.S @@ -31,14 +31,15 @@ .align 8 __curbrk: data8 0 +libc_hidden_data_def(__curbrk) weak_alias (__curbrk, ___brk_addr) -LEAF(__brk) +LEAF(brk) .regstk 1, 0, 0, 0 DO_CALL(__NR_brk) cmp.ltu p6, p0 = ret0, in0 - addl r9 = @ltoff(__curbrk), gp + addl r9 = @ltoff(HIDDEN_JUMPTARGET(__curbrk)), gp ;; ld8 r9 = [r9] (p6) mov ret0 = ENOMEM @@ -47,6 +48,5 @@ LEAF(__brk) st8 [r9] = ret0 mov ret0 = 0 ret -END(__brk) - -weak_alias (__brk, brk) +END(brk) +libc_hidden_def(brk) diff --git a/libc/sysdeps/linux/powerpc/brk.S b/libc/sysdeps/linux/powerpc/brk.S index 2fd8e5518..95b4dfd0d 100644 --- a/libc/sysdeps/linux/powerpc/brk.S +++ b/libc/sysdeps/linux/powerpc/brk.S @@ -52,12 +52,12 @@ brk: mflr r4 bl _GLOBAL_OFFSET_TABLE_@local-4 mflr r5 - lwz r5,__curbrk@got(r5) + lwz r5,HIDDEN_JUMPTARGET(__curbrk)@got(r5) mtlr r4 stw r3,0(r5) #else - lis r4,__curbrk@ha - stw r3,__curbrk@l(r4) + lis r4,HIDDEN_JUMPTARGET(__curbrk)@ha + stw r3,HIDDEN_JUMPTARGET(__curbrk)@l(r4) #endif cmplw r6,r3 addi r1,r1,16 @@ -70,6 +70,4 @@ brk: .size brk,.-brk libc_hidden_def(brk) -/* won't help too much, HIDDEN_JUMPTARGET should be used here as well, now the reloc remains */ -libc_hidden_data_def(__curbrk) #endif |