Move ldsodefs.h audit definitions to sysdeps directories.

This commit is contained in:
Joseph Myers 2012-07-25 16:03:02 +00:00
parent 77b32274e9
commit 56e49b714e
8 changed files with 332 additions and 108 deletions

View File

@ -1,3 +1,34 @@
2012-07-25 Joseph Myers <joseph@codesourcery.com>
* sysdeps/generic/ldsodefs.h (struct La_i86_regs): Remove.
(struct La_i86_retval): Likewise.
(struct La_x86_64_regs): Likewise.
(struct La_x86_64_retval): Likewise.
(struct La_x32_regs): Likewise.
(struct La_x32_retval): Likewise.
(struct La_ppc32_regs): Likewise.
(struct La_ppc32_retval): Likewise.
(struct La_ppc64_regs): Likewise.
(struct La_ppc64_retval): Likewise.
(struct La_sh_regs): Likewise.
(struct La_sh_retval): Likewise.
(struct La_s390_32_regs): Likewise.
(struct La_s390_32_retval): Likewise.
(struct La_s390_64_regs): Likewise.
(struct La_s390_64_retval): Likewise.
(struct La_sparc32_regs): Likewise.
(struct La_sparc32_retval): Likewise.
(struct La_sparc64_regs): Likewise.
(struct La_sparc64_retval): Likewise.
(struct audit_ifaces): Remove architecture-specific pltenter and
pltexit members.
* sysdeps/i386/ldsodefs.h: New file.
* sysdeps/powerpc/ldsodefs.h: Likewise.
* sysdeps/s390/ldsodefs.h: Likewise.
* sysdeps/sh/ldsodefs.h: Likewise.
* sysdeps/sparc/ldsodefs.h: Likewise.
* sysdeps/x86_64/ldsodefs.h: Likewise.
2012-07-25 Marek Polacek <polacek@redhat.com>
[BZ #6808]

View File

@ -182,28 +182,6 @@ enum allowmask
};
/* Type for list of auditing interfaces. */
struct La_i86_regs;
struct La_i86_retval;
struct La_x86_64_regs;
struct La_x86_64_retval;
struct La_x32_regs;
struct La_x32_retval;
struct La_ppc32_regs;
struct La_ppc32_retval;
struct La_ppc64_regs;
struct La_ppc64_retval;
struct La_sh_regs;
struct La_sh_retval;
struct La_s390_32_regs;
struct La_s390_32_retval;
struct La_s390_64_regs;
struct La_s390_64_retval;
struct La_sparc32_regs;
struct La_sparc32_retval;
struct La_sparc64_regs;
struct La_sparc64_retval;
struct audit_ifaces
{
void (*activity) (uintptr_t *, unsigned int);
@ -219,98 +197,12 @@ struct audit_ifaces
};
union
{
Elf32_Addr (*i86_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *,
uintptr_t *, struct La_i86_regs *,
unsigned int *, const char *name,
long int *framesizep);
Elf64_Addr (*x86_64_gnu_pltenter) (Elf64_Sym *, unsigned int, uintptr_t *,
uintptr_t *, struct La_x86_64_regs *,
unsigned int *, const char *name,
long int *framesizep);
Elf32_Addr (*x32_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *,
uintptr_t *, struct La_x32_regs *,
unsigned int *, const char *name,
long int *framesizep);
Elf32_Addr (*ppc32_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *,
uintptr_t *, struct La_ppc32_regs *,
unsigned int *, const char *name,
long int *framesizep);
Elf64_Addr (*ppc64_gnu_pltenter) (Elf64_Sym *, unsigned int, uintptr_t *,
uintptr_t *, struct La_ppc64_regs *,
unsigned int *, const char *name,
long int *framesizep);
uintptr_t (*sh_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *,
uintptr_t *, const struct La_sh_regs *,
unsigned int *, const char *name,
long int *framesizep);
Elf32_Addr (*s390_32_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *,
uintptr_t *, struct La_s390_32_regs *,
unsigned int *, const char *name,
long int *framesizep);
Elf64_Addr (*s390_64_gnu_pltenter) (Elf64_Sym *, unsigned int, uintptr_t *,
uintptr_t *, struct La_s390_64_regs *,
unsigned int *, const char *name,
long int *framesizep);
Elf32_Addr (*sparc32_gnu_pltenter) (Elf32_Sym *, unsigned int,
uintptr_t *, uintptr_t *,
const struct La_sparc32_regs *,
unsigned int *, const char *name,
long int *framesizep);
Elf64_Addr (*sparc64_gnu_pltenter) (Elf64_Sym *, unsigned int,
uintptr_t *, uintptr_t *,
const struct La_sparc64_regs *,
unsigned int *, const char *name,
long int *framesizep);
#ifdef ARCH_PLTENTER_MEMBERS
ARCH_PLTENTER_MEMBERS;
#endif
};
union
{
unsigned int (*i86_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *,
uintptr_t *, const struct La_i86_regs *,
struct La_i86_retval *, const char *);
unsigned int (*x86_64_gnu_pltexit) (Elf64_Sym *, unsigned int, uintptr_t *,
uintptr_t *,
const struct La_x86_64_regs *,
struct La_x86_64_retval *,
const char *);
unsigned int (*x32_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *,
uintptr_t *,
const struct La_x32_regs *,
struct La_x86_64_retval *,
const char *);
unsigned int (*ppc32_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *,
uintptr_t *,
const struct La_ppc32_regs *,
struct La_ppc32_retval *, const char *);
unsigned int (*ppc64_gnu_pltexit) (Elf64_Sym *, unsigned int, uintptr_t *,
uintptr_t *,
const struct La_ppc64_regs *,
struct La_ppc64_retval *, const char *);
unsigned int (*sh_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *,
uintptr_t *, const struct La_sh_regs *,
struct La_sh_retval *, const char *);
unsigned int (*s390_32_gnu_pltexit) (Elf32_Sym *, unsigned int,
uintptr_t *, uintptr_t *,
const struct La_s390_32_regs *,
struct La_s390_32_retval *,
const char *);
unsigned int (*s390_64_gnu_pltexit) (Elf64_Sym *, unsigned int,
uintptr_t *, uintptr_t *,
const struct La_s390_64_regs *,
struct La_s390_64_retval *,
const char *);
unsigned int (*sparc32_gnu_pltexit) (Elf32_Sym *, unsigned int,
uintptr_t *, uintptr_t *,
const struct La_sparc32_regs *,
struct La_sparc32_retval *,
const char *);
unsigned int (*sparc64_gnu_pltexit) (Elf64_Sym *, unsigned int,
uintptr_t *, uintptr_t *,
const struct La_sparc32_regs *,
struct La_sparc32_retval *,
const char *);
#ifdef ARCH_PLTEXIT_MEMBERS
ARCH_PLTEXIT_MEMBERS;
#endif

40
sysdeps/i386/ldsodefs.h Normal file
View File

@ -0,0 +1,40 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
Copyright (C) 1995-2012 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/>. */
#ifndef _I386_LDSODEFS_H
#define _I386_LDSODEFS_H 1
#include <elf.h>
struct La_i86_regs;
struct La_i86_retval;
#define ARCH_PLTENTER_MEMBERS \
Elf32_Addr (*i86_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *, \
uintptr_t *, struct La_i86_regs *, \
unsigned int *, const char *name, \
long int *framesizep)
#define ARCH_PLTEXIT_MEMBERS \
unsigned int (*i86_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *, \
uintptr_t *, const struct La_i86_regs *, \
struct La_i86_retval *, const char *)
#include_next <ldsodefs.h>
#endif

View File

@ -0,0 +1,54 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
Copyright (C) 1995-2012 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/>. */
#ifndef _POWERPC_LDSODEFS_H
#define _POWERPC_LDSODEFS_H 1
#include <elf.h>
struct La_ppc32_regs;
struct La_ppc32_retval;
struct La_ppc64_regs;
struct La_ppc64_retval;
#define ARCH_PLTENTER_MEMBERS \
Elf32_Addr (*ppc32_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *, \
uintptr_t *, struct La_ppc32_regs *, \
unsigned int *, const char *name, \
long int *framesizep); \
Elf64_Addr (*ppc64_gnu_pltenter) (Elf64_Sym *, unsigned int, uintptr_t *, \
uintptr_t *, struct La_ppc64_regs *, \
unsigned int *, const char *name, \
long int *framesizep)
#define ARCH_PLTEXIT_MEMBERS \
unsigned int (*ppc32_gnu_pltexit) (Elf32_Sym *, unsigned int, \
uintptr_t *, \
uintptr_t *, \
const struct La_ppc32_regs *, \
struct La_ppc32_retval *, \
const char *); \
unsigned int (*ppc64_gnu_pltexit) (Elf64_Sym *, unsigned int, \
uintptr_t *, \
uintptr_t *, \
const struct La_ppc64_regs *, \
struct La_ppc64_retval *, const char *)
#include_next <ldsodefs.h>
#endif

57
sysdeps/s390/ldsodefs.h Normal file
View File

@ -0,0 +1,57 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
Copyright (C) 1995-2012 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/>. */
#ifndef _S390_LDSODEFS_H
#define _S390_LDSODEFS_H 1
#include <elf.h>
struct La_s390_32_regs;
struct La_s390_32_retval;
struct La_s390_64_regs;
struct La_s390_64_retval;
#define ARCH_PLTENTER_MEMBERS \
Elf32_Addr (*s390_32_gnu_pltenter) (Elf32_Sym *, unsigned int, \
uintptr_t *, \
uintptr_t *, \
struct La_s390_32_regs *, \
unsigned int *, const char *name, \
long int *framesizep); \
Elf64_Addr (*s390_64_gnu_pltenter) (Elf64_Sym *, unsigned int, \
uintptr_t *, \
uintptr_t *, \
struct La_s390_64_regs *, \
unsigned int *, const char *name, \
long int *framesizep)
#define ARCH_PLTEXIT_MEMBERS \
unsigned int (*s390_32_gnu_pltexit) (Elf32_Sym *, unsigned int, \
uintptr_t *, uintptr_t *, \
const struct La_s390_32_regs *, \
struct La_s390_32_retval *, \
const char *); \
unsigned int (*s390_64_gnu_pltexit) (Elf64_Sym *, unsigned int, \
uintptr_t *, uintptr_t *, \
const struct La_s390_64_regs *, \
struct La_s390_64_retval *, \
const char *)
#include_next <ldsodefs.h>
#endif

40
sysdeps/sh/ldsodefs.h Normal file
View File

@ -0,0 +1,40 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
Copyright (C) 1995-2012 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/>. */
#ifndef _SH_LDSODEFS_H
#define _SH_LDSODEFS_H 1
#include <elf.h>
struct La_sh_regs;
struct La_sh_retval;
#define ARCH_PLTENTER_MEMBERS \
uintptr_t (*sh_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *, \
uintptr_t *, const struct La_sh_regs *, \
unsigned int *, const char *name, \
long int *framesizep)
#define ARCH_PLTEXIT_MEMBERS \
unsigned int (*sh_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *, \
uintptr_t *, const struct La_sh_regs *, \
struct La_sh_retval *, const char *)
#include_next <ldsodefs.h>
#endif

55
sysdeps/sparc/ldsodefs.h Normal file
View File

@ -0,0 +1,55 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
Copyright (C) 1995-2012 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/>. */
#ifndef _SPARC_LDSODEFS_H
#define _SPARC_LDSODEFS_H 1
#include <elf.h>
struct La_sparc32_regs;
struct La_sparc32_retval;
struct La_sparc64_regs;
struct La_sparc64_retval;
#define ARCH_PLTENTER_MEMBERS \
Elf32_Addr (*sparc32_gnu_pltenter) (Elf32_Sym *, unsigned int, \
uintptr_t *, uintptr_t *, \
const struct La_sparc32_regs *, \
unsigned int *, const char *name, \
long int *framesizep); \
Elf64_Addr (*sparc64_gnu_pltenter) (Elf64_Sym *, unsigned int, \
uintptr_t *, uintptr_t *, \
const struct La_sparc64_regs *, \
unsigned int *, const char *name, \
long int *framesizep)
#define ARCH_PLTEXIT_MEMBERS \
unsigned int (*sparc32_gnu_pltexit) (Elf32_Sym *, unsigned int, \
uintptr_t *, uintptr_t *, \
const struct La_sparc32_regs *, \
struct La_sparc32_retval *, \
const char *); \
unsigned int (*sparc64_gnu_pltexit) (Elf64_Sym *, unsigned int, \
uintptr_t *, uintptr_t *, \
const struct La_sparc32_regs *, \
struct La_sparc32_retval *, \
const char *)
#include_next <ldsodefs.h>
#endif

55
sysdeps/x86_64/ldsodefs.h Normal file
View File

@ -0,0 +1,55 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
Copyright (C) 1995-2012 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/>. */
#ifndef _X86_64_LDSODEFS_H
#define _X86_64_LDSODEFS_H 1
#include <elf.h>
struct La_x86_64_regs;
struct La_x86_64_retval;
struct La_x32_regs;
struct La_x32_retval;
#define ARCH_PLTENTER_MEMBERS \
Elf64_Addr (*x86_64_gnu_pltenter) (Elf64_Sym *, unsigned int, \
uintptr_t *, \
uintptr_t *, struct La_x86_64_regs *, \
unsigned int *, const char *name, \
long int *framesizep); \
Elf32_Addr (*x32_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *, \
uintptr_t *, struct La_x32_regs *, \
unsigned int *, const char *name, \
long int *framesizep)
#define ARCH_PLTEXIT_MEMBERS \
unsigned int (*x86_64_gnu_pltexit) (Elf64_Sym *, unsigned int, \
uintptr_t *, \
uintptr_t *, \
const struct La_x86_64_regs *, \
struct La_x86_64_retval *, \
const char *); \
unsigned int (*x32_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *, \
uintptr_t *, \
const struct La_x32_regs *, \
struct La_x86_64_retval *, \
const char *)
#include_next <ldsodefs.h>
#endif