Configure support for --enable-stack-protector [BZ #7065]
[platform/upstream/glibc.git] / config.h.in
1 #if !defined IS_IN_build && !defined __ASSEMBLER__ && !defined _ISOMAC \
2     && !defined __OPTIMIZE__
3 # error "glibc cannot be compiled without optimization"
4 #endif
5
6 /* Another evil option when it comes to compiling the C library is
7    --ffast-math since it alters the ABI.  */
8 #if defined __FAST_MATH__ && !defined TEST_FAST_MATH
9 # error "glibc must not be compiled with -ffast-math"
10 #endif
11
12 /* Define if building with SELinux support.  Set by --with-selinux.  */
13 #undef  HAVE_SELINUX
14
15 /* Defined if building with SELinux support & audit libs are detected. */
16 #undef  HAVE_LIBAUDIT
17
18 /* Defined if building with SELinux support & libcap libs are detected.  */
19 #undef  HAVE_LIBCAP
20
21 /* Define to the assembler line separator character for multiple
22    assembler instructions per line.  Default is `;'  */
23 #undef ASM_LINE_SEP
24
25 /* Define if __attribute__((section("foo"))) puts quotes around foo.  */
26 #undef  HAVE_SECTION_QUOTES
27
28 /* Define if the assembler supports the `.set' directive.  */
29 #undef  HAVE_ASM_SET_DIRECTIVE
30
31 /* On powerpc64, use overlapping .opd entries.  */
32 #undef  USE_PPC64_OVERLAPPING_OPD
33
34 /* Define if _Unwind_Find_FDE should be exported from glibc.  */
35 #undef  EXPORT_UNWIND_FIND_FDE
36
37 /* Define if static NSS modules are wanted.  */
38 #undef  DO_STATIC_NSS
39
40 /* Assume that the compiler supports __builtin_expect.
41    This macro is necessary for proper compilation of code
42    shared between GNU libc and GNU gettext projects.  */
43 #define HAVE_BUILTIN_EXPECT 1
44
45 /* Define if the compiler supports __builtin_memset.  */
46 #undef  HAVE_BUILTIN_MEMSET
47
48 /* Define if compiler accepts -ftree-loop-distribute-patterns.  */
49 #undef  HAVE_CC_INHIBIT_LOOP_TO_LIBCALL
50
51 /* The level of stack protection in use for glibc as a whole.
52    May be overridden on a file-by-file basis.  */
53 #ifndef STACK_PROTECTOR_LEVEL
54 #undef  STACK_PROTECTOR_LEVEL
55 #endif
56
57 /* Define if the regparm attribute shall be used for local functions
58    (gcc on ix86 only).  */
59 #undef  USE_REGPARMS
60
61 /* Defined on SPARC if GCC emits GOTDATA relocations.  */
62 #undef  HAVE_GCC_GOTDATA
63
64 /* Define on SPARC if AS supports VIS3 instructions.  */
65 #undef  HAVE_AS_VIS3_SUPPORT
66
67 /* Define if the linker supports the -z combreloc option.  */
68 #undef  HAVE_Z_COMBRELOC
69
70 /* Define if _rtld_local structure should be forced into .sdata section.  */
71 #undef  HAVE_SDATA_SECTION
72
73 /* Define if compiler supports AVX512.  */
74 #undef  HAVE_AVX512_SUPPORT
75
76 /* Define if assembler supports AVX512DQ.  */
77 #undef  HAVE_AVX512DQ_ASM_SUPPORT
78
79 /* Define if assembler supports z196 zarch instructions as default on S390.  */
80 #undef  HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
81
82 /* Define if assembler supports vector instructions on S390.  */
83 #undef  HAVE_S390_VX_ASM_SUPPORT
84
85 /* Define if gcc supports vector registers as clobbers in inline assembly
86    on S390.  */
87 #undef  HAVE_S390_VX_GCC_SUPPORT
88
89 /* Define if assembler supports Intel MPX.  */
90 #undef  HAVE_MPX_SUPPORT
91
92 /* Define if the compiler\'s exception support is based on libunwind.  */
93 #undef  HAVE_CC_WITH_LIBUNWIND
94
95 /* Define if the access to static and hidden variables is position independent
96    and does not need relocations.  */
97 #undef  PI_STATIC_AND_HIDDEN
98
99 /* Define this to disable the 'hidden_proto' et al macros in
100    include/libc-symbols.h that avoid PLT slots in the shared objects.  */
101 #undef  NO_HIDDEN
102
103 /* Define this to disable lazy relocations in DSOs.  */
104 #undef  BIND_NOW
105
106 /* AArch64 big endian ABI */
107 #undef HAVE_AARCH64_BE
108
109
110 /* Defined to some form of __attribute__ ((...)) if the compiler supports
111    a different, more efficient calling convention.  */
112 #if defined USE_REGPARMS && !defined PROF
113 # define internal_function __attribute__ ((regparm (3), stdcall))
114 #endif
115
116 /* Linux specific: minimum supported kernel version.  */
117 #undef  __LINUX_KERNEL_VERSION
118
119 /* Override abi-tags ABI version if necessary.  */
120 #undef  __ABI_TAG_VERSION
121
122 /* bash 2.0 introduced the _XXX_GNU_nonoption_argv_flags_ variable to help
123    getopt determine whether a parameter is a flag or not.  This features
124    was disabled later since it caused trouble.  We are by default therefore
125    disabling the support as well.  */
126 #undef USE_NONOPTION_FLAGS
127
128 /* Mach/Hurd specific: define if mig supports the `retcode' keyword.  */
129 #undef  HAVE_MIG_RETCODE
130
131 /* Mach specific: define if the `host_page_size' RPC is available.  */
132 #undef  HAVE_HOST_PAGE_SIZE
133
134 /* Mach/i386 specific: define if the `i386_io_perm_*' RPCs are available.  */
135 #undef  HAVE_I386_IO_PERM_MODIFY
136
137 /* Mach/i386 specific: define if the `i386_set_gdt' RPC is available.  */
138 #undef  HAVE_I386_SET_GDT
139
140 /* Defined of libidn is available.  */
141 #undef HAVE_LIBIDN
142
143 /* Define if inlined system calls are available.  */
144 #undef HAVE_INLINED_SYSCALLS
145
146 /* Define if your compiler defaults to -msecure-plt mode on ppc.  */
147 #undef HAVE_PPC_SECURE_PLT
148
149 /* Define if __stack_chk_guard canary should be randomized at program startup.  */
150 #undef ENABLE_STACKGUARD_RANDOMIZE
151
152 /* Define if lock elision should be enabled by default.  */
153 #undef ENABLE_LOCK_ELISION
154
155 /* Package description.  */
156 #undef PKGVERSION
157
158 /* Bug reporting address.  */
159 #undef REPORT_BUGS_TO
160
161 /* Define if multi-arch DSOs should be generated.  */
162 #undef USE_MULTIARCH
163
164 /* Define if `.ctors' and `.dtors' sections shouldn't be used.  */
165 #undef  NO_CTORS_DTORS_SECTIONS
166
167 /* Define if obsolete RPC code should be made available for user-level code
168    to link against.  */
169 #undef LINK_OBSOLETE_RPC
170
171 /* Define if Systemtap <sys/sdt.h> probes should be defined.  */
172 #undef USE_STAP_PROBE
173
174 /* Define if library functions should try to contact the nscd daemon.  */
175 #undef USE_NSCD
176
177 /* Define if the dynamic linker should consult an ld.so.cache file.  */
178 #undef USE_LDCONFIG
179
180 /* Define to 1 if STT_GNU_IFUNC support actually works.  */
181 #define HAVE_IFUNC 0
182
183 /* Define if gcc supports attribute ifunc.  */
184 #undef HAVE_GCC_IFUNC
185
186 /* Define if the linker defines __ehdr_start.  */
187 #undef HAVE_EHDR_START
188
189 /*
190 \f */
191
192 #ifndef _LIBC
193
194 /* These symbols might be defined by some sysdeps configures.
195    They are used only in miscellaneous generator programs, not
196    in compiling libc itself.   */
197
198 /* sysdeps/generic/configure.ac */
199 #undef  HAVE_PSIGNAL
200
201 /* sysdeps/unix/configure.ac */
202 #undef  HAVE_STRERROR
203
204 /* sysdeps/unix/common/configure.ac */
205 #undef  HAVE_SYS_SIGLIST
206 #undef  HAVE__SYS_SIGLIST
207 #undef  HAVE__CTYPE_
208 #undef  HAVE___CTYPE_
209 #undef  HAVE___CTYPE
210 #undef  HAVE__CTYPE__
211 #undef  HAVE__CTYPE
212 #undef  HAVE__LOCP
213
214 #endif
215
216 /*
217 \f */
218
219 #ifdef  _LIBC
220
221 /* The zic and zdump programs need these definitions.  */
222
223 #define HAVE_STRERROR   1
224
225 /* The locale code needs these definitions.  */
226
227 #define HAVE_REGEX 1
228
229 /* The ARM hard-float ABI is being used.  */
230 #undef HAVE_ARM_PCS_VFP
231
232 /* The ARM movw/movt instructions using PC-relative relocs work right.  */
233 #define ARM_PCREL_MOVW_OK 0
234
235 /* The pt_chown binary is being built and used by grantpt.  */
236 #define HAVE_PT_CHOWN 0
237
238 /* Define if the compiler supports __builtin_trap without
239    any external dependencies such as making a function call.  */
240 #define HAVE_BUILTIN_TRAP 0
241
242 /* ports/sysdeps/mips/configure.in  */
243 /* Define if using the IEEE 754-2008 NaN encoding on the MIPS target.  */
244 #undef HAVE_MIPS_NAN2008
245
246 /* The PowerPC64 ELFv2 ABI is being used.  */
247 #undef HAVE_ELFV2_ABI
248
249 /* PowerPC32 uses fcfid for integer to floating point conversions.  */
250 #define HAVE_PPC_FCFID 0
251
252 /* PowerPC32 uses fctidz for floating point to long long conversions.  */
253 #define HAVE_PPC_FCTIDZ 0
254
255 #endif