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.18-800-g7a02cfa


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  7a02cfade80b2b6ed2562e74105bebfee90a87ec (commit)
      from  0daf33f7d5c370968aca47a2bf75068c93432d5c (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=7a02cfade80b2b6ed2562e74105bebfee90a87ec

commit 7a02cfade80b2b6ed2562e74105bebfee90a87ec
Author: Mike Frysinger <vapier@gentoo.org>
Date:   Tue Dec 24 04:31:22 2013 -0500

    s390: implement sotruss support
    
    See commit 41b1792698a335d3a85381921a84a16e9635f36a for testcase.
    
    Note: while this works on s390x, the s390 code hangs when using -e.
    But it hangs regardless of this code (the hang seems to occur before
    the exit func is even called).  I didn't look too closely at it as
    it seems to be an issue external to this file, so this code shouldn't
    make the situation any worse.
    
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>
    Signed-off-by: Mike Frysinger <vapier@gentoo.org>

diff --git a/ChangeLog b/ChangeLog
index 9f766c1..77b8e74 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2014-01-16  Mike Frysinger  <vapier@gentoo.org>
+
+	* sysdeps/s390/sotruss-lib.c: New file.
+
 2014-01-16  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
 
 	[BZ#16430]
diff --git a/sysdeps/s390/sotruss-lib.c b/sysdeps/s390/sotruss-lib.c
new file mode 100644
index 0000000..ded98db
--- /dev/null
+++ b/sysdeps/s390/sotruss-lib.c
@@ -0,0 +1,62 @@
+/* Override generic sotruss-lib.c to define actual functions for s390.
+   Copyright (C) 2012-2014 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/>.  */
+
+#define HAVE_ARCH_PLTENTER
+#define HAVE_ARCH_PLTEXIT
+
+#include <elf/sotruss-lib.c>
+
+#if __ELF_NATIVE_CLASS == 32
+# define la_s390_gnu_pltenter	la_s390_32_gnu_pltenter
+# define la_s390_gnu_pltexit	la_s390_32_gnu_pltexit
+# define La_s390_regs		La_s390_32_regs
+# define La_s390_retval		La_s390_32_retval
+#else
+# define la_s390_gnu_pltenter	la_s390_64_gnu_pltenter
+# define la_s390_gnu_pltexit	la_s390_64_gnu_pltexit
+# define La_s390_regs		La_s390_64_regs
+# define La_s390_retval		La_s390_64_retval
+#endif
+
+ElfW(Addr)
+la_s390_gnu_pltenter (ElfW(Sym) *sym,
+		      unsigned int ndx __attribute__ ((unused)),
+		      uintptr_t *refcook, uintptr_t *defcook,
+		      La_s390_regs *regs, unsigned int *flags,
+		      const char *symname, long int *framesizep)
+{
+  print_enter (refcook, defcook, symname,
+	       regs->lr_r2, regs->lr_r3, regs->lr_r4, *flags);
+
+  /* No need to copy anything, we will not need the parameters in any case.  */
+  *framesizep = 0;
+
+  return sym->st_value;
+}
+
+unsigned int
+la_s390_gnu_pltexit (ElfW(Sym) *sym, unsigned int ndx, uintptr_t *refcook,
+		     uintptr_t *defcook,
+		     const struct La_s390_regs *inregs,
+		     struct La_s390_retval *outregs, const char *symname)
+{
+  print_exit (refcook, defcook, symname, outregs->lrv_r2);
+
+  return 0;
+}

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

Summary of changes:
 ChangeLog                                          |    4 +++
 {ports/sysdeps/ia64 => sysdeps/s390}/sotruss-lib.c |   28 ++++++++++++++-----
 2 files changed, 24 insertions(+), 8 deletions(-)
 copy {ports/sysdeps/ia64 => sysdeps/s390}/sotruss-lib.c (62%)


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]