nptl_db: disable DT_RELR on libthread_db.so
[glibc.git] / sysdeps / x86 / ldsodefs.h
blob471a56fe1226dc8e324c23a7f3e235bcae6a3094
1 /* Run-time dynamic linker data structures for loaded ELF shared objects.
2 X86 version.
3 Copyright (C) 1995-2022 Free Software Foundation, Inc.
4 This file is part of the GNU C Library.
6 The GNU C Library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.
11 The GNU C Library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
16 You should have received a copy of the GNU Lesser General Public
17 License along with the GNU C Library; if not, see
18 <https://www.gnu.org/licenses/>. */
20 #ifndef _X86_LDSODEFS_H
21 #define _X86_LDSODEFS_H 1
23 #include <elf.h>
24 #include <cpu-features.h>
26 struct La_i86_regs;
27 struct La_i86_retval;
28 struct La_x86_64_regs;
29 struct La_x86_64_retval;
30 struct La_x32_regs;
31 struct La_x32_retval;
33 #define ARCH_PLTENTER_MEMBERS \
34 Elf32_Addr (*i86_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *, \
35 uintptr_t *, struct La_i86_regs *, \
36 unsigned int *, const char *name, \
37 long int *framesizep); \
38 Elf64_Addr (*x86_64_gnu_pltenter) (Elf64_Sym *, unsigned int, \
39 uintptr_t *, \
40 uintptr_t *, struct La_x86_64_regs *, \
41 unsigned int *, const char *name, \
42 long int *framesizep); \
43 Elf32_Addr (*x32_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *, \
44 uintptr_t *, struct La_x32_regs *, \
45 unsigned int *, const char *name, \
46 long int *framesizep)
48 #define ARCH_PLTEXIT_MEMBERS \
49 unsigned int (*i86_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *, \
50 uintptr_t *, const struct La_i86_regs *, \
51 struct La_i86_retval *, const char *); \
52 unsigned int (*x86_64_gnu_pltexit) (Elf64_Sym *, unsigned int, \
53 uintptr_t *, \
54 uintptr_t *, \
55 const struct La_x86_64_regs *, \
56 struct La_x86_64_retval *, \
57 const char *); \
58 unsigned int (*x32_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *, \
59 uintptr_t *, \
60 const struct La_x32_regs *, \
61 struct La_x86_64_retval *, \
62 const char *)
64 #include <cet-control.h>
65 #include_next <ldsodefs.h>
67 #endif