This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch, master, updated. glibc-2.15-1208-g1518f58
- From: tschwinge at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 23 Jun 2012 10:09:05 -0000
- Subject: GNU C Library master sources branch, master, updated. glibc-2.15-1208-g1518f58
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via 1518f58b6120289e69aeba9426eca9234cd9a200 (commit)
from db9b505976a9448911e728c01885e71ad6e9461f (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=1518f58b6120289e69aeba9426eca9234cd9a200
commit 1518f58b6120289e69aeba9426eca9234cd9a200
Author: Thomas Schwinge <thomas@codesourcery.com>
Date: Sat Jun 23 12:07:04 2012 +0200
SH: Optimize assembler code in context of call to __fortify_fail.
__fortify_fail has »__attribute__ ((__noreturn__))«.
diff --git a/ChangeLog b/ChangeLog
index 0653538..649b656 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2012-06-23 Thomas Schwinge <thomas@codesourcery.com>
+ * sysdeps/sh/____longjmp_chk.S (CALL_FAIL): Don't plan for the call to
+ __fortify_fail returning.
+ * sysdeps/unix/sysv/linux/sh/____longjmp_chk.S (CALL_FAIL): Likewise.
+
* sysdeps/unix/sysv/linux/sh/____longjmp_chk.S: New file, based on
sysdeps/sh/____longjmp_chk.S.
* sysdeps/unix/sysv/linux/sh/sigaltstack-offsets.sym: New file, based
diff --git a/sysdeps/sh/____longjmp_chk.S b/sysdeps/sh/____longjmp_chk.S
index 5d17f3a..e8d5f68 100644
--- a/sysdeps/sh/____longjmp_chk.S
+++ b/sysdeps/sh/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2012 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
@@ -33,31 +33,27 @@ longjmp_msg:
add r0, r12; \
bsrf r1; \
add r12, r4; \
+ /* Unreachable. */ \
.Lfail0: \
- bra 0f; \
- nop; \
.align 2; \
.Lgot: \
.long _GLOBAL_OFFSET_TABLE_; \
.Lstr: \
.long longjmp_msg@GOTOFF; \
.Lfail: \
- .long __GI___fortify_fail@PLT-(.Lfail0-.); \
-0:
+ .long __GI___fortify_fail@PLT-(.Lfail0-.);
#else
# define CALL_FAIL \
mov.l .Lfail, r1; \
mov.l .Lstr, r4; \
jsr @r1; \
nop; \
- bra 0f; \
- nop; \
+ /* Unreachable. */ \
.align 2; \
.Lstr: \
.long longjmp_msg; \
.Lfail: \
- .long __fortify_fail; \
-0:
+ .long __fortify_fail;
#endif
#define CHECK_SP(reg) \
diff --git a/sysdeps/unix/sysv/linux/sh/____longjmp_chk.S b/sysdeps/unix/sysv/linux/sh/____longjmp_chk.S
index d034afc..bcf828b 100644
--- a/sysdeps/unix/sysv/linux/sh/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/sh/____longjmp_chk.S
@@ -38,30 +38,26 @@ longjmp_msg:
bsrf r1; \
add r12, r4; \
.Lfail0: \
- bra 0f; \
- nop; \
+ /* Unreachable. */ \
.align 2; \
.Lgot: \
.long _GLOBAL_OFFSET_TABLE_; \
.Lstr: \
.long longjmp_msg@GOTOFF; \
.Lfail: \
- .long __GI___fortify_fail@PLT-(.Lfail0-.); \
-0:
+ .long __GI___fortify_fail@PLT-(.Lfail0-.);
#else
# define CALL_FAIL \
mov.l .Lfail, r1; \
mov.l .Lstr, r4; \
jsr @r1; \
nop; \
- bra 0f; \
- nop; \
+ /* Unreachable. */ \
.align 2; \
.Lstr: \
.long longjmp_msg; \
.Lfail: \
- .long __fortify_fail; \
-0:
+ .long __fortify_fail;
#endif
#define CHECK_SP(reg) \
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 4 ++++
sysdeps/sh/____longjmp_chk.S | 14 +++++---------
sysdeps/unix/sysv/linux/sh/____longjmp_chk.S | 12 ++++--------
3 files changed, 13 insertions(+), 17 deletions(-)
hooks/post-receive
--
GNU C Library master sources