From 2b1c0eeae3100fc8dc64909a80ea34b2be49bf88 Mon Sep 17 00:00:00 2001 From: Andreas Jaeger Date: Fri, 30 May 2003 16:12:18 +0000 Subject: Update. 2003-05-30 Andreas Jaeger * 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. --- sysdeps/unix/sysv/linux/x86_64/sigaction.c | 5 +++-- sysdeps/unix/sysv/linux/x86_64/sysdep.h | 4 +++- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'sysdeps/unix') 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); -- cgit v1.2.3-70-g09d2