diff options
author | Andreas Jaeger <aj@suse.de> | 2003-05-30 16:12:18 +0000 |
---|---|---|
committer | Andreas Jaeger <aj@suse.de> | 2003-05-30 16:12:18 +0000 |
commit | 2b1c0eeae3100fc8dc64909a80ea34b2be49bf88 (patch) | |
tree | b9d025fa6452dc0eaf5e43a52b82081f4a628934 /sysdeps/unix/sysv | |
parent | b34f9a90b100fa55a64cc9c52be9787608f6d1a0 (diff) | |
download | glibc-2b1c0eeae3100fc8dc64909a80ea34b2be49bf88.tar.gz glibc-2b1c0eeae3100fc8dc64909a80ea34b2be49bf88.tar.xz glibc-2b1c0eeae3100fc8dc64909a80ea34b2be49bf88.zip |
Update.
2003-05-30 Andreas Jaeger <aj@suse.de> * sysdeps/x86_64/dl-machine.h (ELF_MACHINE_RUNTIME_TRAMPOLINE): Add CFI directives. * sysdeps/unix/sysv/linux/x86_64/sigaction.c (RESTORE2): Add CFI directives. * sysdeps/generic/sysdep.h: Add CFI_* macros for C files. * sysdeps/unix/sysv/linux/x86_64/sysdep.h (SYSCALL_ERROR_HANDLER): Add CFI directives.
Diffstat (limited to 'sysdeps/unix/sysv')
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/sigaction.c | 5 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/sysdep.h | 4 |
2 files changed, 6 insertions, 3 deletions
diff --git a/sysdeps/unix/sysv/linux/x86_64/sigaction.c b/sysdeps/unix/sysv/linux/x86_64/sigaction.c index 1d8ef6f34f..48cb447859 100644 --- a/sysdeps/unix/sysv/linux/x86_64/sigaction.c +++ b/sysdeps/unix/sysv/linux/x86_64/sigaction.c @@ -97,14 +97,15 @@ weak_alias (__libc_sigaction, sigaction) appropriate GDB maintainer. */ #define RESTORE(name, syscall) RESTORE2 (name, syscall) -#define RESTORE2(name, syscall) \ +# define RESTORE2(name, syscall) \ asm \ ( \ ".align 16\n" \ + CFI_STARTPROC "\n" \ "__" #name ":\n" \ " movq $" #syscall ", %rax\n" \ " syscall\n" \ + CFI_ENDPROC "\n" \ ); - /* The return code for realtime-signals. */ RESTORE (restore_rt, __NR_rt_sigreturn) diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/sysdep.h index e88c48a9e4..430ec86a5d 100644 --- a/sysdeps/unix/sysv/linux/x86_64/sysdep.h +++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.h @@ -132,11 +132,13 @@ 0: \ xorq %rdx, %rdx; \ subq %rax, %rdx; \ - pushq %rdx \ + pushq %rdx; \ + cfi_adjust_cfa_offset(8); \ PUSH_ERRNO_LOCATION_RETURN; \ call BP_SYM (__errno_location)@PLT; \ POP_ERRNO_LOCATION_RETURN; \ popq %rdx; \ + cfi_adjust_cfa_offset(-8); \ movl %edx, (%rax); \ orq $-1, %rax; \ jmp L(pseudo_end); |