From 867700cb74293e99c5b91155aa4254c50fd4a6ce Mon Sep 17 00:00:00 2001 From: Daniel Jacobowitz Date: Wed, 5 Oct 2005 20:13:03 +0000 Subject: [PATCH] * sysdeps/arm/dl-machine.h (ARCH_LA_PLTENTER, ARCH_LA_PLTEXIT): Define. * sysdeps/arm/ldsodefs.h, sysdeps/arm/tst-audit.h: New files. --- ChangeLog.arm | 6 ++++++ sysdeps/arm/dl-machine.h | 4 ++++ sysdeps/arm/ldsodefs.h | 41 ++++++++++++++++++++++++++++++++++++++++ sysdeps/arm/tst-audit.h | 26 +++++++++++++++++++++++++ 4 files changed, 77 insertions(+) create mode 100644 sysdeps/arm/ldsodefs.h create mode 100644 sysdeps/arm/tst-audit.h diff --git a/ChangeLog.arm b/ChangeLog.arm index 1148fae44e..e7b6b2435d 100644 --- a/ChangeLog.arm +++ b/ChangeLog.arm @@ -1,3 +1,9 @@ +2005-10-05 Daniel Jacobowitz + + * sysdeps/arm/dl-machine.h (ARCH_LA_PLTENTER, + ARCH_LA_PLTEXIT): Define. + * sysdeps/arm/ldsodefs.h, sysdeps/arm/tst-audit.h: New files. + 2005-06-13 Philip Blundell Patch from addsub@eyou.com: diff --git a/sysdeps/arm/dl-machine.h b/sysdeps/arm/dl-machine.h index abff153cb3..be03e7be31 100644 --- a/sysdeps/arm/dl-machine.h +++ b/sysdeps/arm/dl-machine.h @@ -243,6 +243,10 @@ elf_machine_plt_value (struct link_map *map, const Elf32_Rel *reloc, Prelinked libraries may use Elf32_Rela though. */ #define ELF_MACHINE_NO_RELA defined RTLD_BOOTSTRAP +/* Names of the architecture-specific auditing callback functions. */ +#define ARCH_LA_PLTENTER arm_gnu_pltenter +#define ARCH_LA_PLTEXIT arm_gnu_pltexit + #ifdef RESOLVE_MAP /* Deal with an out-of-range PC24 reloc. */ diff --git a/sysdeps/arm/ldsodefs.h b/sysdeps/arm/ldsodefs.h new file mode 100644 index 0000000000..d700e220c3 --- /dev/null +++ b/sysdeps/arm/ldsodefs.h @@ -0,0 +1,41 @@ +/* Run-time dynamic linker data structures for loaded ELF shared objects. + Copyright (C) 2005 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, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#ifndef _ARM_LDSODEFS_H +#define _ARM_LDSODEFS_H 1 + +#include + +struct La_arm_regs; +struct La_arm_retval; + +#define ARCH_PLTENTER_MEMBERS \ + Elf32_Addr (*arm_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *, \ + uintptr_t *, struct La_arm_regs *, \ + unsigned int *, const char *, \ + long int *) + +#define ARCH_PLTEXIT_MEMBERS \ + Elf32_Addr (*arm_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *, \ + uintptr_t *, struct La_arm_regs *, \ + struct La_arm_retval *, const char *) + +#include_next + +#endif diff --git a/sysdeps/arm/tst-audit.h b/sysdeps/arm/tst-audit.h new file mode 100644 index 0000000000..bec743cffa --- /dev/null +++ b/sysdeps/arm/tst-audit.h @@ -0,0 +1,26 @@ +/* Definitions for testing PLT entry/exit auditing. ARM version. + + Copyright (C) 2005 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, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#define pltenter la_arm_gnu_pltenter +#define pltexit la_arm_gnu_pltexit +#define La_regs La_arm_regs +#define La_retval La_arm_retval +#define int_retval lrv_reg[0]