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]

GNU C Library master sources branch master updated. glibc-2.20-186-g20ed0d2


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  20ed0d266f2c04f5612e2cedf02ede0d0c152e73 (commit)
       via  53244a4e12797f10c028d2cf0e091330854c44e7 (commit)
       via  47df8251e8df7570d9581806113723aeb07dc35d (commit)
       via  618cebeff82ae775308eb29d7891e22861411e21 (commit)
      from  c6aab2cb524a9c54613f0a4f8310fc1ab48658a8 (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://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=20ed0d266f2c04f5612e2cedf02ede0d0c152e73

commit 20ed0d266f2c04f5612e2cedf02ede0d0c152e73
Author: Stefan Liebler <stli@linux.vnet.ibm.com>
Date:   Thu Nov 13 10:45:28 2014 +0100

    S/390: dl-machine.h: Use numbered labels in inline assembly.

diff --git a/ChangeLog b/ChangeLog
index aeabc76..91f8746 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2014-11-13  Stefan Liebler  <stli@linux.vnet.ibm.com>
 
+	* sysdeps/s390/s390-32/dl-machine.h (RTLD_START):
+	Use numbered labels in inline assembly.
+
+2014-11-13  Stefan Liebler  <stli@linux.vnet.ibm.com>
+
 	* sysdeps/s390/s390-32/setjmp.S (__sigsetjmp):
 	Add setjmp LIBC_PROBE.
 	* sysdeps/s390/s390-64/setjmp.S (__sigsetjmp):
diff --git a/sysdeps/s390/s390-32/dl-machine.h b/sysdeps/s390/s390-32/dl-machine.h
index 47f5874..6780405 100644
--- a/sysdeps/s390/s390-32/dl-machine.h
+++ b/sysdeps/s390/s390-32/dl-machine.h
@@ -148,7 +148,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
 .globl _dl_start_user\n\
 _start:\n\
 	basr  %r13,0\n\
-.L0:    ahi   %r13,.Llit-.L0\n\
+0:      ahi   %r13,.Llit-0b\n\
 	lr    %r2,%r15\n\
 	# Alloc stack frame\n\
 	ahi   %r15,-96\n\
@@ -168,7 +168,7 @@ _dl_start_user:\n\
 	l     %r1,_dl_skip_args@GOT(%r12)\n\
 	l     %r1,0(%r1)	# load _dl_skip_args\n\
 	ltr   %r1,%r1\n\
-	je    .L4		# Skip the arg adjustment if there were none.\n\
+	je    4f		# Skip the arg adjustment if there were none.\n\
 	# Get the original argument count.\n\
 	l     %r0,96(%r15)\n\
 	# Subtract _dl_skip_args from it.\n\
@@ -183,28 +183,28 @@ _dl_start_user:\n\
 	sll   %r0,2\n		# Number of skipped bytes.\n\
 	ar    %r5,%r0		# Source pointer = Dest + Skipped args.\n\
 	# argv copy loop:\n\
-.L1:	l     %r7,0(%r5)	# Load a word from the source.\n\
+1:	l     %r7,0(%r5)	# Load a word from the source.\n\
 	st    %r7,0(%r6)	# Store the word in the destination.\n\
 	ahi   %r5,4\n\
 	ahi   %r6,4\n\
 	ltr   %r7,%r7\n\
-	jne   .L1		# Stop after copying the NULL.\n\
+	jne   1b		# Stop after copying the NULL.\n\
 	# envp copy loop:\n\
-.L2:	l     %r7,0(%r5)	# Load a word from the source.\n\
+2:	l     %r7,0(%r5)	# Load a word from the source.\n\
 	st    %r7,0(%r6)	# Store the word in the destination.\n\
 	ahi   %r5,4\n\
 	ahi   %r6,4\n\
 	ltr   %r7,%r7\n\
-	jne   .L2		# Stop after copying the NULL.\n\
+	jne   2b		# Stop after copying the NULL.\n\
 	# Now we have to zero out the envp entries after NULL to allow\n\
 	# start.S to properly find auxv by skipping zeroes.\n\
 	# zero out loop:\n\
 	lhi   %r7,0\n\
-.L3:	st    %r7,0(%r6)	# Store zero.\n\
+3:	st    %r7,0(%r6)	# Store zero.\n\
 	ahi   %r6,4		# Advance dest pointer.\n\
 	ahi   %r1,-1		# Subtract one from the word count.\n\
 	ltr   %r1,%r1\n\
-	jne    .L3		# Keep copying if the word count is non-zero.\n\
+	jne    3b		# Keep copying if the word count is non-zero.\n\
 	# Adjust _dl_argv\n\
 	la    %r6,100(%r15)\n\
 	l     %r1,_dl_argv@GOT(%r12)\n\
@@ -216,7 +216,7 @@ _dl_start_user:\n\
 	# Call the function to run the initializers.\n\
 	# Load the parameters:\n\
 	# (%r2, %r3, %r4, %r5) = (_dl_loaded, argc, argv, envp)\n\
-.L4:	l     %r2,_rtld_local@GOT(%r12)\n\
+4:	l     %r2,_rtld_local@GOT(%r12)\n\
 	l     %r2,0(%r2)\n\
 	l     %r3,96(%r15)\n\
 	la    %r4,100(%r15)\n\

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=53244a4e12797f10c028d2cf0e091330854c44e7

commit 53244a4e12797f10c028d2cf0e091330854c44e7
Author: Stefan Liebler <stli@linux.vnet.ibm.com>
Date:   Thu Nov 13 10:44:42 2014 +0100

    S/390: Add SystemTap probes to longjmp and setjmp.

diff --git a/ChangeLog b/ChangeLog
index 6648967..aeabc76 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
 2014-11-13  Stefan Liebler  <stli@linux.vnet.ibm.com>
 
+	* sysdeps/s390/s390-32/setjmp.S (__sigsetjmp):
+	Add setjmp LIBC_PROBE.
+	* sysdeps/s390/s390-64/setjmp.S (__sigsetjmp):
+	Likewise.
+	* sysdeps/s390/s390-32/__longjmp.c (__longjmp):
+	Add longjmp, longjmp_target LIBC_PROBE.
+	* sysdeps/s390/s390-64/__longjmp.c (__longjmp):
+	Likewise.
+
+2014-11-13  Stefan Liebler  <stli@linux.vnet.ibm.com>
+
 	* sysdeps/s390/s390-64/dl-machine.h (elf_machine_rela):
 	Gate the definition of refsym additionally with !RTLD_BOOTSTRAP
 	to get rid of unused variable warning.
diff --git a/sysdeps/s390/s390-32/__longjmp.c b/sysdeps/s390/s390-32/__longjmp.c
index 5d46e21..54e5915 100644
--- a/sysdeps/s390/s390-32/__longjmp.c
+++ b/sysdeps/s390/s390-32/__longjmp.c
@@ -22,6 +22,7 @@
 #include <bits/setjmp.h>
 #include <stdlib.h>
 #include <unistd.h>
+#include <stap-probe.h>
 
 /* Jump to the position specified by ENV, causing the
    setjmp call there to return VAL, or 1 if VAL is 0.  */
@@ -42,17 +43,31 @@ __longjmp (__jmp_buf env, int val)
   register void *r1 __asm ("%r1") = (void *) env;
 #endif
   /* Restore registers and jump back.  */
-  asm volatile ("ld   %%f6,48(%1)\n\t"
-		"ld   %%f4,40(%1)\n\t"
+  asm volatile (
+		/* longjmp probe expects longjmp first argument, second
+		   argument and target address.  */
 #ifdef PTR_DEMANGLE
-		"lm   %%r6,%%r13,0(%1)\n\t"
 		"lm   %%r4,%%r5,32(%1)\n\t"
 		"xr   %%r4,%2\n\t"
 		"xr   %%r5,%2\n\t"
+		LIBC_PROBE_ASM (longjmp, 4@%1 -4@%0 4@%%r4)
+#else
+		LIBC_PROBE_ASM (longjmp, 4@%1 -4@%0 4@%%r14)
+#endif
+
+		/* restore fpregs  */
+		"ld   %%f6,48(%1)\n\t"
+		"ld   %%f4,40(%1)\n\t"
+
+		/* restore gregs and return to jmp_buf target  */
+#ifdef PTR_DEMANGLE
+		"lm   %%r6,%%r13,0(%1)\n\t"
 		"lr   %%r15,%%r5\n\t"
+		LIBC_PROBE_ASM (longjmp_target, 4@%1 -4@%0 4@%%r4)
 		"br   %%r4"
 #else
 		"lm   %%r6,%%r15,0(%1)\n\t"
+		LIBC_PROBE_ASM (longjmp_target, 4@%1 -4@%0 4@%%r14)
 		"br   %%r14"
 #endif
 		: : "r" (r2),
diff --git a/sysdeps/s390/s390-32/setjmp.S b/sysdeps/s390/s390-32/setjmp.S
index c0cf3ab..f601f25 100644
--- a/sysdeps/s390/s390-32/setjmp.S
+++ b/sysdeps/s390/s390-32/setjmp.S
@@ -22,6 +22,7 @@
 #define _SETJMP_H
 #include <bits/setjmp.h>
 #include <shlib-compat.h>
+#include <stap-probe.h>
 
 #if !defined IS_IN_rtld
 # if defined SHARED &&  SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20)
@@ -53,6 +54,9 @@ END (__setjmp)
 
 ENTRY(__sigsetjmp)
 .Linternal_sigsetjmp:
+	/* setjmp probe expects sig/setjmp first argument (4@%r2), second
+	   argument (-4@%r3) and target address (4@%r14).  */
+	LIBC_PROBE (setjmp, 3, 4@%r2, -4@%r3, 4@%r14)
 #ifdef PTR_MANGLE
 	stm    %r6,%r13,0(%r2)      /* store registers in jmp_buf */
 	lr     %r4,%r14
diff --git a/sysdeps/s390/s390-64/__longjmp.c b/sysdeps/s390/s390-64/__longjmp.c
index 168ebf5..e2b13f8 100644
--- a/sysdeps/s390/s390-64/__longjmp.c
+++ b/sysdeps/s390/s390-64/__longjmp.c
@@ -22,6 +22,7 @@
 #include <bits/setjmp.h>
 #include <stdlib.h>
 #include <unistd.h>
+#include <stap-probe.h>
 
 /* Jump to the position specified by ENV, causing the
    setjmp call there to return VAL, or 1 if VAL is 0.  */
@@ -42,7 +43,20 @@ __longjmp (__jmp_buf env, int val)
   register void *r1 __asm ("%r1") = (void *) env;
 #endif
   /* Restore registers and jump back.  */
-  asm volatile ("ld    %%f8,80(%1)\n\t"
+  asm volatile (
+		/* longjmp probe expects longjmp first argument, second
+		   argument and target address.  */
+#ifdef PTR_DEMANGLE
+		"lmg  %%r4,%%r5,64(%1)\n\t"
+		"xgr  %%r4,%2\n\t"
+		"xgr  %%r5,%2\n\t"
+		LIBC_PROBE_ASM (longjmp, 8@%1 -4@%0 8@%%r4)
+#else
+		LIBC_PROBE_ASM (longjmp, 8@%1 -4@%0 8@%%r14)
+#endif
+
+		/* restore fpregs  */
+		"ld    %%f8,80(%1)\n\t"
 		"ld    %%f9,88(%1)\n\t"
 		"ld    %%f10,96(%1)\n\t"
 		"ld    %%f11,104(%1)\n\t"
@@ -50,15 +64,16 @@ __longjmp (__jmp_buf env, int val)
 		"ld    %%f13,120(%1)\n\t"
 		"ld    %%f14,128(%1)\n\t"
 		"ld    %%f15,136(%1)\n\t"
+
+		/* restore gregs and return to jmp_buf target  */
 #ifdef PTR_DEMANGLE
 		"lmg  %%r6,%%r13,0(%1)\n\t"
-		"lmg  %%r4,%%r5,64(%1)\n\t"
-		"xgr  %%r4,%2\n\t"
-		"xgr  %%r5,%2\n\t"
 		"lgr  %%r15,%%r5\n\t"
+		LIBC_PROBE_ASM (longjmp_target, 8@%1 -4@%0 8@%%r4)
 		"br   %%r4"
 #else
 		"lmg  %%r6,%%r15,0(%1)\n\t"
+		LIBC_PROBE_ASM (longjmp_target, 8@%1 -4@%0 8@%%r14)
 		"br   %%r14"
 #endif
 		: : "r" (r2),
diff --git a/sysdeps/s390/s390-64/setjmp.S b/sysdeps/s390/s390-64/setjmp.S
index faa2784..03de2bf 100644
--- a/sysdeps/s390/s390-64/setjmp.S
+++ b/sysdeps/s390/s390-64/setjmp.S
@@ -22,6 +22,7 @@
 #define _SETJMP_H
 #include <bits/setjmp.h>
 #include <shlib-compat.h>
+#include <stap-probe.h>
 
 #if !defined IS_IN_rtld
 # if defined SHARED &&  SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20)
@@ -53,6 +54,9 @@ END (__setjmp)
 
 ENTRY(__sigsetjmp)
 .Linternal_sigsetjmp:
+	/* setjmp probe expects sig/setjmp first argument (8@%r2), second
+	   argument (-8@%r3) and target address (8@%r14).  */
+	LIBC_PROBE (setjmp, 3, 8@%r2, -4@%r3, 8@%r14)
 #ifdef PTR_MANGLE
 	stmg   %r6,%r13,0(%r2)      /* Store registers in jmp_buf.  */
 	lgr    %r4,%r14

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=47df8251e8df7570d9581806113723aeb07dc35d

commit 47df8251e8df7570d9581806113723aeb07dc35d
Author: Stefan Liebler <stli@linux.vnet.ibm.com>
Date:   Thu Nov 13 10:44:11 2014 +0100

    S/390: Get rid of warning unused variable in dl-machine.h.

diff --git a/ChangeLog b/ChangeLog
index a6711e1..6648967 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2014-11-13  Stefan Liebler  <stli@linux.vnet.ibm.com>
 
+	* sysdeps/s390/s390-64/dl-machine.h (elf_machine_rela):
+	Gate the definition of refsym additionally with !RTLD_BOOTSTRAP
+	to get rid of unused variable warning.
+
+2014-11-13  Stefan Liebler  <stli@linux.vnet.ibm.com>
+
 	* sysdeps/s390/s390-32/backtrace.c (__backtrace):
 	Check for unwind_backtrace ==  NULL only in SHARED case.
 	(__backchain_backtrace): Compile only in SHARED case.
diff --git a/sysdeps/s390/s390-64/dl-machine.h b/sysdeps/s390/s390-64/dl-machine.h
index 463021c..01c0d33 100644
--- a/sysdeps/s390/s390-64/dl-machine.h
+++ b/sysdeps/s390/s390-64/dl-machine.h
@@ -278,7 +278,8 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
     return;
   else
     {
-#ifndef RESOLVE_CONFLICT_FIND_MAP
+#if !defined RTLD_BOOTSTRAP && !defined RESOLVE_CONFLICT_FIND_MAP
+      /* Only needed for R_390_COPY below.  */
       const Elf64_Sym *const refsym = sym;
 #endif
       struct link_map *sym_map = RESOLVE_MAP (&sym, version, r_type);

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=618cebeff82ae775308eb29d7891e22861411e21

commit 618cebeff82ae775308eb29d7891e22861411e21
Author: Stefan Liebler <stli@linux.vnet.ibm.com>
Date:   Thu Nov 13 10:42:31 2014 +0100

    S/390: Get rid of warning: the comparision will always evaluate as false.

diff --git a/ChangeLog b/ChangeLog
index f6fe1fa..a6711e1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2014-11-13  Stefan Liebler  <stli@linux.vnet.ibm.com>
+
+	* sysdeps/s390/s390-32/backtrace.c (__backtrace):
+	Check for unwind_backtrace ==  NULL only in SHARED case.
+	(__backchain_backtrace): Compile only in SHARED case.
+	* sysdeps/s390/s390-64/backtrace.c (__backtrace):
+	Likewise.
+	(__backchain_backtrace): Declare as static.
+
 2014-11-12  Roland McGrath  <roland@hack.frob.com>
 
 	* nptl/createthread.c [!TLS_MULTIPLE_THREADS_IN_TCB]
diff --git a/sysdeps/s390/s390-32/backtrace.c b/sysdeps/s390/s390-32/backtrace.c
index 3ade10c..e3122cf 100644
--- a/sysdeps/s390/s390-32/backtrace.c
+++ b/sysdeps/s390/s390-32/backtrace.c
@@ -77,10 +77,6 @@ init (void)
   if (unwind_getip == NULL)
     unwind_backtrace = NULL;
 }
-#else
-# define unwind_backtrace _Unwind_Backtrace
-# define unwind_getip _Unwind_GetIP
-#endif
 
 static int
 __backchain_backtrace (void **array, int size)
@@ -107,6 +103,10 @@ __backchain_backtrace (void **array, int size)
 
   return cnt;
 }
+#else
+# define unwind_backtrace _Unwind_Backtrace
+# define unwind_getip _Unwind_GetIP
+#endif
 
 static _Unwind_Reason_Code
 backtrace_helper (struct _Unwind_Context *ctx, void *a)
@@ -130,9 +130,10 @@ __backtrace (void **array, int size)
   __libc_once_define (static, once);
 
   __libc_once (once, init);
-#endif
+
   if (unwind_backtrace == NULL)
     return __backchain_backtrace (array, size);
+#endif
 
   if (size >= 1)
     unwind_backtrace (backtrace_helper, &arg);
diff --git a/sysdeps/s390/s390-64/backtrace.c b/sysdeps/s390/s390-64/backtrace.c
index 39a15e0..74b5581 100644
--- a/sysdeps/s390/s390-64/backtrace.c
+++ b/sysdeps/s390/s390-64/backtrace.c
@@ -76,12 +76,8 @@ init (void)
   if (unwind_getip == NULL)
     unwind_backtrace = NULL;
 }
-#else
-# define unwind_backtrace _Unwind_Backtrace
-# define unwind_getip _Unwind_GetIP
-#endif
 
-int
+static int
 __backchain_backtrace (void **array, int size)
 {
   /* We assume that all the code is generated with frame pointers set.  */
@@ -106,6 +102,10 @@ __backchain_backtrace (void **array, int size)
 
   return cnt;
 }
+#else
+# define unwind_backtrace _Unwind_Backtrace
+# define unwind_getip _Unwind_GetIP
+#endif
 
 static _Unwind_Reason_Code
 backtrace_helper (struct _Unwind_Context *ctx, void *a)
@@ -129,9 +129,10 @@ __backtrace (void **array, int size)
   __libc_once_define (static, once);
 
   __libc_once (once, init);
-#endif
+
   if (unwind_backtrace == NULL)
     return __backchain_backtrace (array, size);
+#endif
 
   if (size >= 1)
     unwind_backtrace (backtrace_helper, &arg);

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

Summary of changes:
 ChangeLog                         |   31 +++++++++++++++++++++++++++++++
 sysdeps/s390/s390-32/__longjmp.c  |   21 ++++++++++++++++++---
 sysdeps/s390/s390-32/backtrace.c  |   11 ++++++-----
 sysdeps/s390/s390-32/dl-machine.h |   18 +++++++++---------
 sysdeps/s390/s390-32/setjmp.S     |    4 ++++
 sysdeps/s390/s390-64/__longjmp.c  |   23 +++++++++++++++++++----
 sysdeps/s390/s390-64/backtrace.c  |   13 +++++++------
 sysdeps/s390/s390-64/dl-machine.h |    3 ++-
 sysdeps/s390/s390-64/setjmp.S     |    4 ++++
 9 files changed, 100 insertions(+), 28 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


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