This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Community source repository for glibc add-on ports branch, master, updated. glibc-2.15-313-g7d1feb5


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 "Community source repository for glibc add-on ports".

The branch, master has been updated
       via  7d1feb5693be7e606104cc2b6657c746a93e5926 (commit)
       via  0ff73bfcb06a02f318850333f315dee587151d00 (commit)
      from  d97b8a3d218fc43ce0b345a81b283bc0d439b1ea (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-ports.git;a=commitdiff;h=7d1feb5693be7e606104cc2b6657c746a93e5926

commit 7d1feb5693be7e606104cc2b6657c746a93e5926
Author: Richard Henderson <rth@twiddle.net>
Date:   Tue Jun 5 08:12:03 2012 -0700

    alpha: Use .cfi_signal_frame in rt_sigaction

diff --git a/ChangeLog.alpha b/ChangeLog.alpha
index 77e6de1..705a020 100644
--- a/ChangeLog.alpha
+++ b/ChangeLog.alpha
@@ -1,5 +1,8 @@
 2012-06-05  Richard Henderson  <rth@twiddle.net>
 
+	* sysdeps/unix/sysv/linux/alpha/rt_sigaction.S: Use .cfi_signal_frame
+	instead of a hack using extra nops.
+
 	* sysdeps/unxi/alpha/getppid.S: New file.
 	* sysdeps/unxi/alpha/getegid.S: New file.
 	* sysdeps/unxi/alpha/geteuid.S: New file.
diff --git a/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S b/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
index 96069c7..42062b0 100644
--- a/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
+++ b/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson <rth@cygnus.com>, 1998
 
@@ -28,7 +28,7 @@
 	.text
 
 ENTRY(__syscall_rt_sigaction)
-	.frame	sp,0,ra,0
+	cfi_startproc
 	ldgp	gp,0(pv)
 #ifdef PROF
 	.set noat
@@ -39,18 +39,12 @@ ENTRY(__syscall_rt_sigaction)
 	.prologue 1
 
 	beq	a1, 0f
-	ldl	t0, 8(a1)			# sa_flags
-
-	/* The unwinder will subtract one from the return address when
-	   attempting to find the call instruction that led us here.
-	   Since we didn't get here via a normal call, if we do nothing
-	   we would pick up the wrong symbol and the wrong FDE.  Account
-	   for this by adding a nop to the start of the function and 
-	   then skipping it here by adding 4.  */
-	ldah	a4, __syscall_sigreturn+4(gp)		!gprelhigh
-	ldah	t1, __syscall_rt_sigreturn+4(gp)	!gprelhigh
-	lda	a4, __syscall_sigreturn+4(a4)		!gprellow
-	lda	t1, __syscall_rt_sigreturn+4(t1)	!gprellow
+	ldl	t0, 8(a1)				# sa_flags
+
+	ldah	a4, __syscall_sigreturn(gp)		!gprelhigh
+	ldah	t1, __syscall_rt_sigreturn(gp)		!gprelhigh
+	lda	a4, __syscall_sigreturn(a4)		!gprellow
+	lda	t1, __syscall_rt_sigreturn(t1)		!gprellow
 	and	t0, 0x40, t0				# SA_SIGINFO
 	cmovne	t0, t1, a4
 
@@ -58,7 +52,7 @@ ENTRY(__syscall_rt_sigaction)
 	callsys
 	bne	a3, SYSCALL_ERROR_LABEL
 	ret
-
+	cfi_endproc
 PSEUDO_END(__syscall_rt_sigaction)
 
 /* To enable unwinding through the signal frame without special hackery
@@ -90,26 +84,23 @@ PSEUDO_END(__syscall_rt_sigaction)
 	.endm
 
 	.align	4
-	nop
-	nop
-	nop
 
 	cfi_startproc
 	cfi_return_column (64)
+	.cfi_signal_frame
 	SIGCONTEXT_REGS -648
 
 	cfi_def_cfa_offset (648)
 __syscall_sigreturn:
-	nop
 	mov	sp, a0
 	ldi	v0, __NR_sigreturn
 	callsys
 	.size	__syscall_sigreturn, .-__syscall_sigreturn
 	.type	__syscall_sigreturn, @function
 
+	.align 4
 	cfi_def_cfa_offset (176 + 648)
 __syscall_rt_sigreturn:
-	nop
 	mov	sp,a0
 	ldi	v0,__NR_rt_sigreturn
 	callsys

http://sources.redhat.com/git/gitweb.cgi?p=glibc-ports.git;a=commitdiff;h=0ff73bfcb06a02f318850333f315dee587151d00

commit 0ff73bfcb06a02f318850333f315dee587151d00
Author: Richard Henderson <rth@twiddle.net>
Date:   Tue Jun 5 08:08:25 2012 -0700

    alpha: Resurrect getppid, getegid, geteuid.
    
    The sysdeps/unix files deleted in the main tree weren't unused.
    Resurrect them in sysdeps/unix/alpha, and using the real syscall names.

diff --git a/ChangeLog.alpha b/ChangeLog.alpha
index 1d3e6bd..77e6de1 100644
--- a/ChangeLog.alpha
+++ b/ChangeLog.alpha
@@ -1,3 +1,9 @@
+2012-06-05  Richard Henderson  <rth@twiddle.net>
+
+	* sysdeps/unxi/alpha/getppid.S: New file.
+	* sysdeps/unxi/alpha/getegid.S: New file.
+	* sysdeps/unxi/alpha/geteuid.S: New file.
+
 2012-06-01  Richard Henderson  <rth@twiddle.net>
 
 	* sysdeps/alpha/Makefile (CFLAGS-test-misc.c): Set -mieee-with-inexact.
diff --git a/sysdeps/unix/alpha/getegid.S b/sysdeps/unix/alpha/getegid.S
new file mode 100644
index 0000000..a564f6c
--- /dev/null
+++ b/sysdeps/unix/alpha/getegid.S
@@ -0,0 +1,26 @@
+/* Copyright (C) 1991-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
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <sysdep.h>
+
+
+PSEUDO (__getegid, getxgid, 0)
+	MOVE (r1, r0)
+	ret
+PSEUDO_END (__getegid)
+
+weak_alias (__getegid, getegid)
diff --git a/sysdeps/unix/alpha/geteuid.S b/sysdeps/unix/alpha/geteuid.S
new file mode 100644
index 0000000..289acbd
--- /dev/null
+++ b/sysdeps/unix/alpha/geteuid.S
@@ -0,0 +1,26 @@
+/* Copyright (C) 1991-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
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <sysdep.h>
+
+
+PSEUDO (__geteuid, getxuid, 0)
+	MOVE (r1, r0)
+	ret
+PSEUDO_END (__geteuid)
+
+weak_alias (__geteuid, geteuid)
diff --git a/sysdeps/unix/alpha/getppid.S b/sysdeps/unix/alpha/getppid.S
new file mode 100644
index 0000000..8f7e774
--- /dev/null
+++ b/sysdeps/unix/alpha/getppid.S
@@ -0,0 +1,26 @@
+/* Copyright (C) 1991-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
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <sysdep.h>
+
+
+PSEUDO (__getppid, getxpid, 0)
+	MOVE (r1, r0)
+	ret
+PSEUDO_END (__getppid)
+
+weak_alias (__getppid, getppid)

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog.alpha                                    |    9 ++++++
 .../aeabi_localeconv.c => unix/alpha/getegid.S}    |   16 ++++++----
 .../aeabi_localeconv.c => unix/alpha/geteuid.S}    |   16 ++++++----
 .../aeabi_localeconv.c => unix/alpha/getppid.S}    |   16 ++++++----
 sysdeps/unix/sysv/linux/alpha/rt_sigaction.S       |   31 +++++++-------------
 5 files changed, 47 insertions(+), 41 deletions(-)
 copy sysdeps/{arm/aeabi_localeconv.c => unix/alpha/getegid.S} (79%)
 copy sysdeps/{arm/aeabi_localeconv.c => unix/alpha/geteuid.S} (79%)
 copy sysdeps/{arm/aeabi_localeconv.c => unix/alpha/getppid.S} (79%)


hooks/post-receive
-- 
Community source repository for glibc add-on ports


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]