summaryrefslogtreecommitdiff
path: root/libc/elf
diff options
context:
space:
mode:
authorjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2012-03-21 20:25:11 +0000
committerjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2012-03-21 20:25:11 +0000
commit11e8a843c1be2bfbacb427ca25282e6979ebb48f (patch)
tree3358bff2de223bb79aa10ff35c4273cb94dc04e8 /libc/elf
parent21983719922788c86799322b2b4cd68830712137 (diff)
Merge changes between r17530 and r17700 from /fsf/trunk.
git-svn-id: svn://svn.eglibc.org/trunk@17701 7b3dc134-2b1b-0410-93df-9e9f96275f8d
Diffstat (limited to 'libc/elf')
-rw-r--r--libc/elf/cache.c4
-rw-r--r--libc/elf/dl-cache.c2
-rw-r--r--libc/elf/dl-minimal.c2
-rw-r--r--libc/elf/dl-misc.c2
-rw-r--r--libc/elf/dl-sysdep.c2
-rw-r--r--libc/elf/dl-version.c2
-rw-r--r--libc/elf/rtld.c2
-rw-r--r--libc/elf/sotruss-lib.c58
8 files changed, 66 insertions, 8 deletions
diff --git a/libc/elf/cache.c b/libc/elf/cache.c
index dadab9132..db8b9fa2f 100644
--- a/libc/elf/cache.c
+++ b/libc/elf/cache.c
@@ -90,6 +90,10 @@ print_entry (const char *lib, int flag, unsigned int osversion,
break;
case FLAG_MIPS64_LIBN64:
fputs (",64bit", stdout);
+ break;
+ case FLAG_X8664_LIBX32:
+ fputs (",x32", stdout);
+ break;
case 0:
break;
default:
diff --git a/libc/elf/dl-cache.c b/libc/elf/dl-cache.c
index b57a60028..c1bd1356f 100644
--- a/libc/elf/dl-cache.c
+++ b/libc/elf/dl-cache.c
@@ -24,7 +24,7 @@
#include <dl-cache.h>
#include <dl-procinfo.h>
-#include <stdio-common/_itoa.h>
+#include <_itoa.h>
#ifndef _DL_PLATFORMS_COUNT
# define _DL_PLATFORMS_COUNT 0
diff --git a/libc/elf/dl-minimal.c b/libc/elf/dl-minimal.c
index 3a984afb1..316de99b8 100644
--- a/libc/elf/dl-minimal.c
+++ b/libc/elf/dl-minimal.c
@@ -26,7 +26,7 @@
#include <sys/param.h>
#include <sys/types.h>
#include <ldsodefs.h>
-#include <stdio-common/_itoa.h>
+#include <_itoa.h>
#include <assert.h>
diff --git a/libc/elf/dl-misc.c b/libc/elf/dl-misc.c
index 9bf642daa..22fbba38d 100644
--- a/libc/elf/dl-misc.c
+++ b/libc/elf/dl-misc.c
@@ -30,7 +30,7 @@
#include <sys/stat.h>
#include <sys/uio.h>
#include <sysdep.h>
-#include <stdio-common/_itoa.h>
+#include <_itoa.h>
#include <bits/libc-lock.h>
/* Read the whole contents of FILE into new mmap'd space with given
diff --git a/libc/elf/dl-sysdep.c b/libc/elf/dl-sysdep.c
index 0920cc155..1cb4460a0 100644
--- a/libc/elf/dl-sysdep.c
+++ b/libc/elf/dl-sysdep.c
@@ -29,7 +29,7 @@
#include <sys/stat.h>
#include <sys/mman.h>
#include <ldsodefs.h>
-#include <stdio-common/_itoa.h>
+#include <_itoa.h>
#include <fpu_control.h>
#include <entry.h>
diff --git a/libc/elf/dl-version.c b/libc/elf/dl-version.c
index 3b1297545..047db2f82 100644
--- a/libc/elf/dl-version.c
+++ b/libc/elf/dl-version.c
@@ -23,7 +23,7 @@
#include <stdlib.h>
#include <string.h>
#include <ldsodefs.h>
-#include <stdio-common/_itoa.h>
+#include <_itoa.h>
#include <assert.h>
diff --git a/libc/elf/rtld.c b/libc/elf/rtld.c
index 8fbeaf661..7fb5dc615 100644
--- a/libc/elf/rtld.c
+++ b/libc/elf/rtld.c
@@ -28,7 +28,7 @@
#include <sys/param.h>
#include <sys/stat.h>
#include <ldsodefs.h>
-#include <stdio-common/_itoa.h>
+#include <_itoa.h>
#include <entry.h>
#include <fpu_control.h>
#include <hp-timing.h>
diff --git a/libc/elf/sotruss-lib.c b/libc/elf/sotruss-lib.c
index 542672692..c2ab7330d 100644
--- a/libc/elf/sotruss-lib.c
+++ b/libc/elf/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Trace calls through PLTs and show caller, callee, and parameters.
- Copyright (C) 2011 Free Software Foundation, Inc.
+ Copyright (C) 2011, 2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
@@ -288,6 +288,40 @@ la_x86_64_gnu_pltenter (Elf64_Sym *sym __attribute__ ((unused)),
return sym->st_value;
}
+#elif defined __sparc__ && !defined __arch64__
+Elf32_Addr
+la_sparc32_gnu_pltenter (Elf32_Sym *sym __attribute__ ((unused)),
+ unsigned int ndx __attribute__ ((unused)),
+ uintptr_t *refcook, uintptr_t *defcook,
+ La_sparc32_regs *regs, unsigned int *flags,
+ const char *symname, long int *framesizep)
+{
+ print_enter (refcook, defcook, symname,
+ regs->lr_reg[0], regs->lr_reg[1], regs->lr_reg[2],
+ *flags);
+
+ /* No need to copy anything, we will not need the parameters in any case. */
+ *framesizep = 0;
+
+ return sym->st_value;
+}
+#elif defined __sparc__ && defined __arch64__
+Elf64_Addr
+la_sparc64_gnu_pltenter (Elf64_Sym *sym __attribute__ ((unused)),
+ unsigned int ndx __attribute__ ((unused)),
+ uintptr_t *refcook, uintptr_t *defcook,
+ La_sparc64_regs *regs, unsigned int *flags,
+ const char *symname, long int *framesizep)
+{
+ print_enter (refcook, defcook, symname,
+ regs->lr_reg[0], regs->lr_reg[1], regs->lr_reg[2],
+ *flags);
+
+ /* No need to copy anything, we will not need the parameters in any case. */
+ *framesizep = 0;
+
+ return sym->st_value;
+}
#elif !defined HAVE_ARCH_PLTENTER
# warning "pltenter for architecture not supported"
#endif
@@ -302,7 +336,7 @@ print_exit (uintptr_t *refcook, uintptr_t *defcook, const char *symname,
if (print_pid)
snprintf (buf, sizeof (buf), "%5ld: ", (long int) getpid ());
- fprintf (out_file, "%s%15s -> %-15s:%s%s - 0x%lu\n",
+ fprintf (out_file, "%s%15s -> %-15s:%s%s - 0x%lx\n",
buf, (char *) *refcook, (char *) *defcook, " ", symname, reg);
}
@@ -327,6 +361,26 @@ la_x86_64_gnu_pltexit (Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,
return 0;
}
+#elif defined __sparc__ && !defined __arch64__
+unsigned int
+la_sparc32_gnu_pltexit (Elf32_Sym *sym, unsigned int ndx, uintptr_t *refcook,
+ uintptr_t *defcook, const struct La_sparc32_regs *inregs,
+ struct La_sparc32_retval *outregs, const char *symname)
+{
+ print_exit (refcook, defcook, symname, outregs->lrv_reg[0]);
+
+ return 0;
+}
+#elif defined __sparc__ && defined __arch64__
+unsigned int
+la_sparc64_gnu_pltexit (Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,
+ uintptr_t *defcook, const struct La_sparc64_regs *inregs,
+ struct La_sparc64_retval *outregs, const char *symname)
+{
+ print_exit (refcook, defcook, symname, outregs->lrv_reg[0]);
+
+ return 0;
+}
#elif !defined HAVE_ARCH_PLTEXIT
# warning "pltexit for architecture not supported"
#endif