[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[commits] r8606 - in /fsf/trunk/libc: ChangeLog sysdeps/powerpc/powerpc32/____longjmp_chk.S
- To: commits@xxxxxxxxxx
- Subject: [commits] r8606 - in /fsf/trunk/libc: ChangeLog sysdeps/powerpc/powerpc32/____longjmp_chk.S
- From: eglibc@xxxxxxxxxx
- Date: Fri, 26 Jun 2009 07:07:40 -0000
Author: eglibc
Date: Fri Jun 26 00:07:40 2009
New Revision: 8606
Log:
Import glibc-mainline for 2009-06-26
Modified:
fsf/trunk/libc/ChangeLog
fsf/trunk/libc/sysdeps/powerpc/powerpc32/____longjmp_chk.S
Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Fri Jun 26 00:07:40 2009
@@ -1,3 +1,8 @@
+2009-06-25 Andreas Schwab <aschwab@xxxxxxxxxx>
+
+ * sysdeps/powerpc/powerpc32/____longjmp_chk.S (LOAD_ARG): Define.
+ (CHECK_SP): Use it.
+
2009-06-24 Andreas Schwab <aschwab@xxxxxxxxxx>
* sysdeps/powerpc/powerpc32/power4/fpu/w_sqrtf.S: Fix cfa offset
Modified: fsf/trunk/libc/sysdeps/powerpc/powerpc32/____longjmp_chk.S
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc32/____longjmp_chk.S (original)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc32/____longjmp_chk.S Fri Jun 26 00:07:40 2009
@@ -26,11 +26,30 @@
#define __longjmp ____longjmp_chk
+#ifdef PIC
+# ifdef HAVE_ASM_PPC_REL16
+# define LOAD_ARG \
+ bcl 20,31,1f; \
+1: mflr r3; \
+ addis r3,r3,_GLOBAL_OFFSET_TABLE_-1b@ha; \
+ addi r3,r3,_GLOBAL_OFFSET_TABLE_-1b@l; \
+ lwz r3,.LC0@got(r3)
+# else
+# define LOAD_ARG \
+ bl _GLOBAL_OFFSET_TABLE_-4@local; \
+ mflr r3; \
+ lwz r3,.LC0@got(r3)
+# endif
+#else
+# define LOAD_ARG \
+ lis r3,.LC0@ha; \
+ la r3,.LC0@l(r3)
+#endif
+
#define CHECK_SP(reg) \
cmplw reg, r1; \
bge+ .Lok; \
- lis r3,.LC0@ha; \
- la r3,.LC0@l(r3); \
+ LOAD_ARG; \
bl HIDDEN_JUMPTARGET (__fortify_fail); \
.Lok: