mirror of git://git.musl-libc.org/musl
apply hidden visibility to sigreturn code fragments
these were overlooked in the declarations overhaul work because they are not properly declared, and the current framework even allows their declared types to vary by arch. at some point this should be cleaned up, but I'm not sure what the right way would be.
This commit is contained in:
parent
50fea6c75f
commit
b6e59cd925
|
@ -1,3 +1,5 @@
|
|||
#include <features.h>
|
||||
|
||||
struct k_sigaction {
|
||||
unsigned flags;
|
||||
void (*handler)(int);
|
||||
|
@ -8,4 +10,4 @@ struct k_sigaction {
|
|||
void (*restorer)();
|
||||
};
|
||||
|
||||
void __restore(), __restore_rt();
|
||||
hidden void __restore(), __restore_rt();
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
#include <features.h>
|
||||
|
||||
struct k_sigaction {
|
||||
unsigned flags;
|
||||
void (*handler)(int);
|
||||
|
@ -5,4 +7,4 @@ struct k_sigaction {
|
|||
void (*restorer)();
|
||||
};
|
||||
|
||||
void __restore(), __restore_rt();
|
||||
hidden void __restore(), __restore_rt();
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
#include <features.h>
|
||||
|
||||
struct k_sigaction {
|
||||
unsigned flags;
|
||||
void (*handler)(int);
|
||||
|
@ -5,4 +7,4 @@ struct k_sigaction {
|
|||
void (*restorer)();
|
||||
};
|
||||
|
||||
void __restore(), __restore_rt();
|
||||
hidden void __restore(), __restore_rt();
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
#include <features.h>
|
||||
|
||||
struct k_sigaction {
|
||||
void (*handler)(int);
|
||||
unsigned long flags;
|
||||
|
@ -5,4 +7,4 @@ struct k_sigaction {
|
|||
unsigned mask[2];
|
||||
};
|
||||
|
||||
extern unsigned char __restore[], __restore_rt[];
|
||||
extern hidden unsigned char __restore[], __restore_rt[];
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
#include <features.h>
|
||||
|
||||
struct k_sigaction {
|
||||
void (*handler)(int);
|
||||
unsigned long flags;
|
||||
|
@ -5,5 +7,5 @@ struct k_sigaction {
|
|||
unsigned mask[2];
|
||||
};
|
||||
|
||||
void __restore_rt();
|
||||
hidden void __restore_rt();
|
||||
#define __restore __restore_rt
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
#include <features.h>
|
||||
|
||||
struct k_sigaction {
|
||||
void (*handler)(int);
|
||||
unsigned long flags;
|
||||
|
@ -5,5 +7,5 @@ struct k_sigaction {
|
|||
unsigned mask[2];
|
||||
};
|
||||
|
||||
void __restore_rt();
|
||||
hidden void __restore_rt();
|
||||
#define __restore __restore_rt
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
#include <features.h>
|
||||
|
||||
/* This is the structure used for the rt_sigaction syscall on most archs,
|
||||
* but it can be overridden by a file with the same name in the top-level
|
||||
* arch dir for a given arch, if necessary. */
|
||||
|
@ -8,4 +10,4 @@ struct k_sigaction {
|
|||
unsigned mask[2];
|
||||
};
|
||||
|
||||
void __restore(), __restore_rt();
|
||||
hidden void __restore(), __restore_rt();
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
.global __restore
|
||||
.hidden __restore
|
||||
.type __restore,%function
|
||||
__restore:
|
||||
.global __restore_rt
|
||||
.hidden __restore_rt
|
||||
.type __restore_rt,%function
|
||||
__restore_rt:
|
||||
mov x8,#139 // SYS_rt_sigreturn
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
.syntax unified
|
||||
|
||||
.global __restore
|
||||
.hidden __restore
|
||||
.type __restore,%function
|
||||
__restore:
|
||||
mov r7,#119
|
||||
swi 0x0
|
||||
|
||||
.global __restore_rt
|
||||
.hidden __restore_rt
|
||||
.type __restore_rt,%function
|
||||
__restore_rt:
|
||||
mov r7,#173
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
.global __restore
|
||||
.hidden __restore
|
||||
.type __restore,@function
|
||||
__restore:
|
||||
popl %eax
|
||||
|
@ -6,6 +7,7 @@ __restore:
|
|||
int $0x80
|
||||
|
||||
.global __restore_rt
|
||||
.hidden __restore_rt
|
||||
.type __restore_rt,@function
|
||||
__restore_rt:
|
||||
movl $173, %eax
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
.global __restore
|
||||
.hidden __restore
|
||||
.type __restore,@function
|
||||
__restore:
|
||||
ori r12, r0, 119
|
||||
brki r14, 0x8
|
||||
|
||||
.global __restore_rt
|
||||
.hidden __restore_rt
|
||||
.type __restore_rt,@function
|
||||
__restore_rt:
|
||||
ori r12, r0, 173
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
.set noreorder
|
||||
|
||||
.global __restore_rt
|
||||
.hidden __restore_rt
|
||||
.type __restore_rt,@function
|
||||
__restore_rt:
|
||||
li $2, 4193
|
||||
syscall
|
||||
|
||||
.global __restore
|
||||
.hidden __restore
|
||||
.type __restore,@function
|
||||
__restore:
|
||||
li $2, 4119
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
.set noreorder
|
||||
.global __restore_rt
|
||||
.global __restore
|
||||
.hidden __restore_rt
|
||||
.hidden __restore
|
||||
.type __restore_rt,@function
|
||||
.type __restore,@function
|
||||
__restore_rt:
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
.set noreorder
|
||||
.global __restore_rt
|
||||
.global __restore
|
||||
.hidden __restore_rt
|
||||
.hidden __restore
|
||||
.type __restore_rt,@function
|
||||
.type __restore,@function
|
||||
__restore_rt:
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
.global __restore
|
||||
.hidden __restore
|
||||
.type __restore,%function
|
||||
__restore:
|
||||
li 0, 119 #__NR_sigreturn
|
||||
sc
|
||||
|
||||
.global __restore_rt
|
||||
.hidden __restore_rt
|
||||
.type __restore_rt,%function
|
||||
__restore_rt:
|
||||
li 0, 172 # __NR_rt_sigreturn
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
.global __restore
|
||||
.hidden __restore
|
||||
.type __restore,%function
|
||||
__restore:
|
||||
li 0, 119 #__NR_sigreturn
|
||||
sc
|
||||
|
||||
.global __restore_rt
|
||||
.hidden __restore_rt
|
||||
.type __restore_rt,%function
|
||||
__restore_rt:
|
||||
li 0, 172 # __NR_rt_sigreturn
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
#include <features.h>
|
||||
|
||||
/* These functions will not work, but suffice for targets where the
|
||||
* kernel sigaction structure does not actually use sa_restorer. */
|
||||
|
||||
void __restore()
|
||||
hidden void __restore()
|
||||
{
|
||||
}
|
||||
|
||||
void __restore_rt()
|
||||
hidden void __restore_rt()
|
||||
{
|
||||
}
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
.global __restore
|
||||
.hidden __restore
|
||||
.type __restore,%function
|
||||
__restore:
|
||||
svc 119 #__NR_sigreturn
|
||||
|
||||
.global __restore_rt
|
||||
.hidden __restore_rt
|
||||
.type __restore_rt,%function
|
||||
__restore_rt:
|
||||
svc 173 # __NR_rt_sigreturn
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
.global __restore
|
||||
.hidden __restore
|
||||
__restore:
|
||||
mov #119, r3 !__NR_sigreturn
|
||||
trapa #31
|
||||
|
@ -10,6 +11,7 @@ __restore:
|
|||
or r0, r0
|
||||
|
||||
.global __restore_rt
|
||||
.hidden __restore_rt
|
||||
__restore_rt:
|
||||
mov #100, r3 !__NR_rt_sigreturn
|
||||
add #73, r3
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
nop
|
||||
.global __restore_rt
|
||||
.hidden __restore_rt
|
||||
.type __restore_rt,@function
|
||||
__restore_rt:
|
||||
mov $0x40000201, %rax /* SYS_rt_sigreturn */
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
nop
|
||||
.global __restore_rt
|
||||
.hidden __restore_rt
|
||||
.type __restore_rt,@function
|
||||
__restore_rt:
|
||||
mov $15, %rax
|
||||
|
|
Loading…
Reference in New Issue