elf: Add ELF_DYNAMIC_AFTER_RELOC to rewrite PLT
[platform/upstream/glibc.git] / sysdeps / x86 / dl-procruntime.c
1 /* Data for processor runtime information.  x86 version.
2    Copyright (C) 2018-2024 Free Software Foundation, Inc.
3    This file is part of the GNU C Library.
4
5    The GNU C Library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Lesser General Public
7    License as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
9
10    The GNU C Library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Lesser General Public License for more details.
14
15    You should have received a copy of the GNU Lesser General Public
16    License along with the GNU C Library; if not, see
17    <https://www.gnu.org/licenses/>.  */
18
19 /* This information must be kept in sync with the _DL_HWCAP_COUNT,
20    HWCAP_PLATFORMS_START and HWCAP_PLATFORMS_COUNT definitions in
21    dl-hwcap.h.
22
23    If anything should be added here check whether the size of each string
24    is still ok with the given array size.
25
26    All the #ifdefs in the definitions are quite irritating but
27    necessary if we want to avoid duplicating the information.  There
28    are three different modes:
29
30    - PROCINFO_DECL is defined.  This means we are only interested in
31      declarations.
32
33    - PROCINFO_DECL is not defined:
34
35      + if SHARED is defined the file is included in an array
36        initializer.  The .element = { ... } syntax is needed.
37
38      + if SHARED is not defined a normal array initialization is
39        needed.
40   */
41
42 #ifndef PROCINFO_CLASS
43 # define PROCINFO_CLASS
44 #endif
45
46 #if !IS_IN (ldconfig)
47 # if !defined PROCINFO_DECL && defined SHARED
48   ._dl_x86_feature_1
49 # else
50 PROCINFO_CLASS unsigned int _dl_x86_feature_1
51 # endif
52 # ifndef PROCINFO_DECL
53 = 0
54 # endif
55 # if !defined SHARED || defined PROCINFO_DECL
56 ;
57 # else
58 ,
59 # endif
60
61 # if !defined PROCINFO_DECL && defined SHARED
62   ._dl_x86_feature_control
63 # else
64 PROCINFO_CLASS struct dl_x86_feature_control _dl_x86_feature_control
65 # endif
66 # ifndef PROCINFO_DECL
67 = {
68     .ibt = DEFAULT_DL_X86_CET_CONTROL,
69     .shstk = DEFAULT_DL_X86_CET_CONTROL,
70     .plt_rewrite = plt_rewrite_none,
71   }
72 # endif
73 # if !defined SHARED || defined PROCINFO_DECL
74 ;
75 # else
76 ,
77 # endif
78 #endif