]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Use HIDDEN_JUMPTARGET rather than spelling out its effects, for ____longjmp_chk imple...
authorRoland McGrath <mcgrathr@chromium.org>
Thu, 15 Sep 2011 19:26:08 +0000 (12:26 -0700)
committerRoland McGrath <mcgrathr@chromium.org>
Thu, 15 Sep 2011 19:26:08 +0000 (12:26 -0700)
ChangeLog
sysdeps/unix/sysv/linux/i386/____longjmp_chk.S
sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S
sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S

index fa117e94d7e7f6b8707a6e47d319963389939865..5ddbdabdaf4266329059654338c2573cd05b488f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2011-09-15  Roland McGrath  <roland@hack.frob.com>
+
+       * sysdeps/unix/sysv/linux/i386/____longjmp_chk.S
+       (CALL_FAIL): Use HIDDEN_JUMPTARGET for __fortify_fail.
+       * sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
+       (CALL_FAIL): Likewise.
+       * sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S (CHECK_RSP): Likewise.
+       (CALL_FAIL): Macro removed.
+       Patch mostly by Mike Frysinger <vapier@gentoo.org>.
+
 2011-09-15  Ulrich Drepper  <drepper@gmail.com>
 
        * sysdeps/x86_64/fpu/bits/mathinline.h: Add fmax and fmin optimizations
index a07e6c8edf13890744f03cd8b6efa312e4572b95..cd3c66a42e4715cf8a1965c10f9400471784783a 100644 (file)
@@ -33,10 +33,10 @@ longjmp_msg:
                        cfi_register(%ebx,%ecx);                              \
                        LOAD_PIC_REG (bx);                                    \
                        leal    longjmp_msg@GOTOFF(%ebx), %eax;               \
-                       call    __GI___fortify_fail@PLT
+                       call    HIDDEN_JUMPTARGET(__fortify_fail)
 #else
 # define CALL_FAIL     movl    $longjmp_msg, %eax;                           \
-                       call    __fortify_fail
+                       call    HIDDEN_JUMPTARGET(__fortify_fail)
 #endif
 
 
index e097c2288ea1a4f05f4f05fd4ea801cea826e062..fa87f67ebc748f87f92501149e11668e51b59a5c 100644 (file)
@@ -30,19 +30,13 @@ longjmp_msg:
 
 #define __longjmp ____longjmp_chk
 
-#ifdef PIC
-#  define CALL_FAIL    __GI___fortify_fail
-#else
-#  define CALL_FAIL    __fortify_fail
-#endif
-
 #define CHECK_RSP(reg) \
        cmp.ltu p0, p8 = reg, r12;                              \
 (p8)   br.cond.dpnt .Lok;;                                     \
        addl r28 = @ltoffx(longjmp_msg#), r1;;                  \
        ld8.mov r28 = [r28], longjmp_msg#;;                     \
        ld8 out0 = [r28];                                       \
-       br.call.sptk.many b0 = CALL_FAIL#;;                     \
+       br.call.sptk.many b0 = HIDDEN_JUMPTARGET(__fortify_fail)#;; \
 .Lok:
 
 #include "__longjmp.S"
index 3881082cfffcbe92dd8e4ffd92fae55610ec77bf..d8cbe06841d441711598fbd56475d9b410b4832d 100644 (file)
@@ -34,7 +34,7 @@ longjmp_msg:
                        cfi_remember_state;                                   \
                        cfi_def_cfa_offset(16);                               \
                        leaq    longjmp_msg(%rip), %rdi;                      \
-                       call    __GI___fortify_fail;                          \
+                       call    HIDDEN_JUMPTARGET(__fortify_fail);            \
                        nop;                                                  \
                        cfi_restore_state
 #else
@@ -42,7 +42,7 @@ longjmp_msg:
                        cfi_remember_state;                                   \
                        cfi_def_cfa_offset(16);                               \
                        movq    $longjmp_msg, %rdi;                           \
-                       call    __fortify_fail;                               \
+                       call    HIDDEN_JUMPTARGET(__fortify_fail);            \
                        nop;                                                  \
                        cfi_restore_state
 #endif