[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[commits] r13417 - in /fsf/trunk/libc: ChangeLog sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
- To: commits@xxxxxxxxxx
- Subject: [commits] r13417 - in /fsf/trunk/libc: ChangeLog sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
- From: eglibc@xxxxxxxxxx
- Date: Fri, 08 Apr 2011 07:03:07 -0000
Author: eglibc
Date: Fri Apr 8 00:03:05 2011
New Revision: 13417
Log:
Import glibc-mainline for 2011-04-08
Modified:
fsf/trunk/libc/ChangeLog
fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Fri Apr 8 00:03:05 2011
@@ -1,3 +1,9 @@
+2011-04-07 Andreas Schwab <schwab@xxxxxxxxxx>
+
+ * sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S (CALL_FAIL):
+ Maintain aligned stack.
+ (CHECK_RSP): Remove unused macro.
+
2011-04-03 Ulrich Drepper <drepper@xxxxxxxxx>
* sysdeps/x86_64/cacheinfo.c (intel_02_known): Fix typo in table.
Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S Fri Apr 8 00:03:05 2011
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001,2004,2005,2006,2009,2010 Free Software Foundation, Inc.
+/* Copyright (C) 2001,2004,2005,2006,2009,2010,2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -30,18 +30,22 @@
//#define __longjmp ____longjmp_chk
#ifdef PIC
-# define CALL_FAIL leaq longjmp_msg(%rip), %rdi; \
- call __GI___fortify_fail
+# define CALL_FAIL subq $8, %rsp; \
+ cfi_remember_state; \
+ cfi_def_cfa_offset(16); \
+ leaq longjmp_msg(%rip), %rdi; \
+ call __GI___fortify_fail; \
+ nop; \
+ cfi_restore_state
#else
-# define CALL_FAIL movq $longjmp_msg, %rdi; \
- call __fortify_fail
+# define CALL_FAIL subq $8, %rsp; \
+ cfi_remember_state; \
+ cfi_def_cfa_offset(16); \
+ movq $longjmp_msg, %rdi; \
+ call __fortify_fail; \
+ nop; \
+ cfi_restore_state
#endif
-
-#define CHECK_RSP(reg) \
- cmpq reg, %rsp; \
- jbe .Lok; \
- CALL_FAIL; \
-.Lok:
/* Jump to the position specified by ENV, causing the
setjmp call there to return VAL, or 1 if VAL is 0.