about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sigaction.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index ffffeb2481..e164a1614b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2006-12-01  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* sysdeps/unix/sysv/linux/x86_64/sigaction.c: Fix compatibility with
+	libgcc not supporting `rflags' unwinding (register # >= 17).
+
 2006-11-30  Jakub Jelinek  <jakub@redhat.com>
 
 	* sunrpc/svc_run.c (svc_run): Set my_pollfd to new_pollfd if realloc
diff --git a/sysdeps/unix/sysv/linux/x86_64/sigaction.c b/sysdeps/unix/sysv/linux/x86_64/sigaction.c
index 0d56364ab7..ab10123858 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sigaction.c
+++ b/sysdeps/unix/sysv/linux/x86_64/sigaction.c
@@ -174,7 +174,8 @@ asm									\
    do_expr (2 /* rcx */, oRCX)						\
    do_expr (7 /* rsp */, oRSP)						\
    do_expr (16 /* rip */, oRIP)						\
-   do_expr (49 /* rflags */, oEFL)					\
+   /* libgcc-4.1.1 has only `DWARF_FRAME_REGISTERS == 17'.  */		\
+   /* do_expr (49 |* rflags *|, oEFL) */				\
    /* `cs'/`ds'/`fs' are unaligned and a different size.  */		\
    /* gas: Error: register save offset not a multiple of 8  */		\
    "	.align 8\n"							\