consistently use hidden visibility for cancellable syscall internals

in a few places, non-hidden symbols were referenced from asm in ways
that assumed ld-time binding. while these is no semantic reason these
symbols need to be hidden, fixing the references without making them
hidden was going to be ugly, and hidden reduces some bloat anyway.

in the asm files, .global/.hidden directives have been moved to the
top to unclutter the actual code.
This commit is contained in:
Rich Felker
2015-04-14 11:18:59 -04:00
parent bc081f628b
commit cbc02ba23c
12 changed files with 103 additions and 30 deletions

View File

@ -1,11 +1,18 @@
.global __cp_begin
.hidden __cp_begin
.global __cp_end
.hidden __cp_end
.global __cp_cancel
.hidden __cp_cancel
.hidden __cancel
.global __syscall_cp_asm
.hidden __syscall_cp_asm
.type __syscall_cp_asm,@function
__syscall_cp_asm:
.global __cp_begin
__cp_begin:
l.lwz r3, 0(r3)
l.sfeqi r3, 0
l.bnf plt(__cancel)
l.bnf __cancel
l.ori r11, r4, 0
l.ori r3, r5, 0
l.ori r4, r6, 0
@ -14,7 +21,6 @@ __cp_begin:
l.lwz r7, 0(r1)
l.lwz r8, 4(r1)
l.sys 1
.global __cp_end
__cp_end:
l.jr r9
l.nop