This is the mail archive of the libc-alpha@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] |
On Tuesday 24 December 2013 04:33:27 Mike Frysinger wrote: > 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. > > Signed-off-by: Mike Frysinger <vapier@gentoo.org> > > 2013-12-24 Mike Frysinger <vapier@gentoo.org> > > * sysdeps/s390/sotruss-lib.c: New file. > --- > sysdeps/s390/sotruss-lib.c | 62 > ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 > insertions(+) > create mode 100644 sysdeps/s390/sotruss-lib.c > > diff --git a/sysdeps/s390/sotruss-lib.c b/sysdeps/s390/sotruss-lib.c > new file mode 100644 > index 0000000..bd7f456 > --- /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-2013 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; > +}
Attachment:
signature.asc
Description: This is a digitally signed message part.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |