localedata: su_ID: make lang_name agree with CLDR
[glibc.git] / sysdeps / x86 / Makefile
blob5c8ab64c4d655cbc2acfe31009b1ef583fc4a5ef
1 ifeq ($(subdir),csu)
2 gen-as-const-headers += cpu-features-offsets.sym
3 endif
5 ifeq ($(subdir),elf)
6 sysdep_routines += get-cpuid-feature-leaf
7 sysdep-dl-routines += dl-get-cpu-features
8 sysdep_headers += sys/platform/x86.h bits/platform/x86.h
10 CFLAGS-dl-get-cpu-features.os += $(rtld-early-cflags)
11 CFLAGS-get-cpuid-feature-leaf.o += $(no-stack-protector)
13 tests += \
14 tst-get-cpu-features \
15 tst-get-cpu-features-static \
16 tst-cpu-features-cpuinfo \
17 tst-cpu-features-cpuinfo-static \
18 tst-cpu-features-supports \
19 tst-cpu-features-supports-static \
20 tst-hwcap-tunables \
21 # tests
22 tests-static += \
23 tst-get-cpu-features-static \
24 tst-cpu-features-cpuinfo-static \
25 tst-cpu-features-supports-static \
26 # tests-static
27 ifeq (yes,$(have-ifunc))
28 ifeq (yes,$(have-gcc-ifunc))
29 tests += \
30 tst-ifunc-isa-1 \
31 tst-ifunc-isa-1-static \
32 # tests
33 tests-static += \
34 tst-ifunc-isa-1-static \
35 # tests-static
36 test-xfail-tst-ifunc-isa-1 = $(with-lld)
37 test-xfail-tst-ifunc-isa-1-static = $(with-lld)
38 tests += \
39 tst-ifunc-isa-2 \
40 tst-ifunc-isa-2-static \
41 # tests
42 tests-static += \
43 tst-ifunc-isa-2-static \
44 # tests-static
45 test-xfail-tst-ifunc-isa-2 = $(with-lld)
46 test-xfail-tst-ifunc-isa-2-static = $(with-lld)
47 endif
48 endif
49 ifeq (yes,$(enable-x86-isa-level))
50 tests += \
51 tst-isa-level-1 \
52 # tests
53 modules-names += \
54 tst-isa-level-mod-1-baseline \
55 tst-isa-level-mod-1-v2 \
56 tst-isa-level-mod-1-v3 \
57 tst-isa-level-mod-1-v4 \
58 # modules-names
60 # X86 ISA level baseline
61 CFLAGS-tst-isa-level-mod-1-baseline.c += -DINCLUDE_X86_ISA_LEVEL \
62 -DISA_LEVEL=0x1 \
63 -march=x86-64
64 # X86 ISA level v2
65 CFLAGS-tst-isa-level-mod-1-v2.c += -DINCLUDE_X86_ISA_LEVEL \
66 -DISA_LEVEL=0x3 \
67 -march=x86-64
68 # X86 ISA level v3
69 CFLAGS-tst-isa-level-mod-1-v3.c += -DINCLUDE_X86_ISA_LEVEL \
70 -DISA_LEVEL=0x7 \
71 -march=x86-64
72 # X86 ISA level v4
73 CFLAGS-tst-isa-level-mod-1-v4.c += -DINCLUDE_X86_ISA_LEVEL \
74 -DISA_LEVEL=0xf \
75 -march=x86-64
77 $(objpfx)tst-isa-level-1.out: $(objpfx)tst-isa-level-mod-1-baseline.so \
78 $(objpfx)tst-isa-level-mod-1-v2.so \
79 $(objpfx)tst-isa-level-mod-1-v3.so \
80 $(objpfx)tst-isa-level-mod-1-v4.so
81 endif
82 tst-ifunc-isa-2-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=-SSE4_2,-AVX,-AVX2,-AVX512F
83 tst-ifunc-isa-2-static-ENV = $(tst-ifunc-isa-2-ENV)
84 tst-hwcap-tunables-ARGS = -- $(host-test-program-cmd)
85 endif
87 ifeq ($(subdir),math)
88 tests += \
89 tst-ldbl-nonnormal-printf \
90 # tests
91 endif # $(subdir) == math
93 ifeq ($(subdir),setjmp)
94 gen-as-const-headers += jmp_buf-ssp.sym
95 sysdep_routines += __longjmp_cancel
96 ifneq ($(enable-cet),no)
97 tests += \
98 tst-setjmp-cet \
99 # tests
100 tst-setjmp-cet-ENV = GLIBC_TUNABLES=glibc.cpu.x86_ibt=on:glibc.cpu.x86_shstk=on
101 endif
102 endif
104 ifeq ($(subdir),string)
105 sysdep_routines += cacheinfo
107 tests += \
108 tst-memchr-rtm \
109 tst-memcmp-rtm \
110 tst-memmove-rtm \
111 tst-memrchr-rtm \
112 tst-memset-rtm \
113 tst-strcasecmp-rtm \
114 tst-strchr-rtm \
115 tst-strcmp-rtm \
116 tst-strcpy-rtm \
117 tst-strlen-rtm \
118 tst-strncasecmp-rtm \
119 tst-strncmp-rtm \
120 tst-strrchr-rtm \
121 tst-wcscmp-rtm \
122 tst-wcsncmp-rtm \
123 # tests
125 CFLAGS-tst-memchr-rtm.c += -mrtm
126 CFLAGS-tst-memcmp-rtm.c += -mrtm
127 CFLAGS-tst-memmove-rtm.c += -mrtm
128 CFLAGS-tst-memrchr-rtm.c += -mrtm
129 CFLAGS-tst-memset-rtm.c += -mrtm
130 CFLAGS-tst-strcasecmp-rtm.c += -mrtm
131 CFLAGS-tst-strchr-rtm.c += -mrtm
132 CFLAGS-tst-strcmp-rtm.c += -mrtm
133 CFLAGS-tst-strcpy-rtm.c += -mrtm
134 CFLAGS-tst-strlen-rtm.c += -mrtm
135 CFLAGS-tst-strncasecmp-rtm.c += -mrtm -Wno-error
136 CFLAGS-tst-strncmp-rtm.c += -mrtm -Wno-error
137 CFLAGS-tst-strrchr-rtm.c += -mrtm
138 CFLAGS-tst-wcscmp-rtm.c += -mrtm
139 CFLAGS-tst-wcsncmp-rtm.c += -mrtm -Wno-error
140 endif
142 ifneq ($(enable-cet),no)
143 ifeq ($(subdir),elf)
144 sysdep-dl-routines += dl-cet
146 tests += \
147 tst-cet-legacy-1 \
148 tst-cet-legacy-1a \
149 tst-cet-legacy-2 \
150 tst-cet-legacy-2a \
151 tst-cet-legacy-3 \
152 tst-cet-legacy-4 \
153 tst-cet-legacy-5a \
154 tst-cet-legacy-6a \
155 tst-cet-legacy-7 \
156 tst-cet-legacy-8 \
157 tst-cet-legacy-9 \
158 tst-cet-legacy-9-static \
159 tst-cet-legacy-10 \
160 tst-cet-legacy-10-static \
161 tst-cet-legacy-10a \
162 tst-cet-legacy-10a-static \
163 # tests
164 tests-static += \
165 tst-cet-legacy-9-static \
166 tst-cet-legacy-10-static \
167 tst-cet-legacy-10a-static \
168 # tests-static
169 tst-cet-legacy-1a-ARGS = -- $(host-test-program-cmd)
171 tests += \
172 tst-shstk-legacy-1a \
173 tst-shstk-legacy-1a-static \
174 tst-shstk-legacy-1b \
175 tst-shstk-legacy-1b-static \
176 tst-shstk-legacy-1c \
177 tst-shstk-legacy-1c-static \
178 tst-shstk-legacy-1d \
179 tst-shstk-legacy-1d-static \
180 tst-shstk-legacy-1e \
181 tst-shstk-legacy-1e-static \
182 tst-shstk-legacy-1f \
183 tst-shstk-legacy-1g \
184 # tests
185 modules-names += \
186 tst-shstk-legacy-mod-1 \
187 # modules-names
188 tests-static += \
189 tst-shstk-legacy-1a-static \
190 tst-shstk-legacy-1b-static \
191 tst-shstk-legacy-1c-static \
192 tst-shstk-legacy-1d-static \
193 tst-shstk-legacy-1e-static \
194 # tests-static
195 extra-objs += \
196 tst-shstk-legacy-1-extra.o \
197 # extra-objs
199 tests += \
200 tst-cet-legacy-4a \
201 tst-cet-legacy-4b \
202 tst-cet-legacy-4c \
203 tst-cet-legacy-5b \
204 tst-cet-legacy-6b \
205 # tests
206 modules-names += \
207 tst-cet-legacy-mod-1 \
208 tst-cet-legacy-mod-2 \
209 tst-cet-legacy-mod-4 \
210 tst-cet-legacy-mod-5a \
211 tst-cet-legacy-mod-5b \
212 tst-cet-legacy-mod-5c \
213 tst-cet-legacy-mod-6a \
214 tst-cet-legacy-mod-6b \
215 tst-cet-legacy-mod-6c \
216 # modules-names
218 CFLAGS-tst-cet-legacy-2.c += -fcf-protection=none -fcf-protection=branch
219 CFLAGS-tst-cet-legacy-2a.c += -fcf-protection
220 CFLAGS-tst-cet-legacy-mod-1.c += -fcf-protection=none
221 CFLAGS-tst-cet-legacy-mod-2.c += -fcf-protection=none
222 CFLAGS-tst-cet-legacy-3.c += -fcf-protection=none
223 CFLAGS-tst-cet-legacy-4.c += -fcf-protection=none -fcf-protection=branch
224 CPPFLAGS-tst-cet-legacy-4a.c += -DCET_IS_PERMISSIVE=1
225 CFLAGS-tst-cet-legacy-4a.c += -fcf-protection
226 CFLAGS-tst-cet-legacy-4b.c += -fcf-protection
227 CFLAGS-tst-cet-legacy-mod-4.c += -fcf-protection=none
228 CFLAGS-tst-cet-legacy-5a.c += -fcf-protection -mshstk
229 ifeq ($(enable-cet),permissive)
230 CPPFLAGS-tst-cet-legacy-5a.c += -DCET_IS_PERMISSIVE=1
231 endif
232 CFLAGS-tst-cet-legacy-5b.c += -fcf-protection -mshstk
233 CPPFLAGS-tst-cet-legacy-5b.c += -DCET_DISABLED_BY_ENV=1
234 CFLAGS-tst-cet-legacy-mod-5a.c += -fcf-protection=none -fcf-protection=branch
235 CFLAGS-tst-cet-legacy-mod-5b.c += -fcf-protection
236 CFLAGS-tst-cet-legacy-mod-5c.c += -fcf-protection
237 CFLAGS-tst-cet-legacy-6a.c += -fcf-protection -mshstk
238 ifeq ($(enable-cet),permissive)
239 CPPFLAGS-tst-cet-legacy-6a.c += -DCET_IS_PERMISSIVE=1
240 endif
241 CFLAGS-tst-cet-legacy-6b.c += -fcf-protection -mshstk
242 CPPFLAGS-tst-cet-legacy-6b.c += -DCET_DISABLED_BY_ENV=1
243 CFLAGS-tst-cet-legacy-mod-6a.c += -fcf-protection=none -fcf-protection=branch
244 CFLAGS-tst-cet-legacy-mod-6b.c += -fcf-protection
245 CFLAGS-tst-cet-legacy-mod-6c.c += -fcf-protection
246 CFLAGS-tst-cet-legacy-7.c += -fcf-protection=none
247 CFLAGS-tst-cet-legacy-10.c += -mshstk
248 CFLAGS-tst-cet-legacy-10-static.c += -mshstk
249 CFLAGS-tst-cet-legacy-10a.c += -fcf-protection=none
250 CFLAGS-tst-cet-legacy-10a-static.c += -fcf-protection=none
252 tst-cet-legacy-4-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=SHSTK
253 tst-cet-legacy-6-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=SHSTK
254 tst-cet-legacy-10-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=SHSTK
255 tst-cet-legacy-10-static-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=SHSTK
256 tst-cet-legacy-10a-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=SHSTK
257 tst-cet-legacy-10a-static-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=SHSTK
259 CFLAGS-tst-shstk-legacy-1a.c += -fcf-protection=none
260 CFLAGS-tst-shstk-legacy-1a-static.c += -fcf-protection=none
261 CFLAGS-tst-shstk-legacy-1d.c += -fcf-protection=none
262 CFLAGS-tst-shstk-legacy-1d-static.c += -fcf-protection=none
263 CFLAGS-tst-shstk-legacy-1f.c += -fcf-protection=none
265 $(objpfx)tst-cet-legacy-1: $(objpfx)tst-cet-legacy-mod-1.so \
266 $(objpfx)tst-cet-legacy-mod-2.so
267 $(objpfx)tst-cet-legacy-1a: $(objpfx)tst-cet-legacy-mod-1.so \
268 $(objpfx)tst-cet-legacy-mod-2.so
269 $(objpfx)tst-cet-legacy-2: $(objpfx)tst-cet-legacy-mod-2.so
270 $(objpfx)tst-cet-legacy-2.out: $(objpfx)tst-cet-legacy-mod-1.so
271 $(objpfx)tst-cet-legacy-2a: $(objpfx)tst-cet-legacy-mod-2.so
272 $(objpfx)tst-cet-legacy-2a.out: $(objpfx)tst-cet-legacy-mod-1.so
273 $(objpfx)tst-cet-legacy-4.out: $(objpfx)tst-cet-legacy-mod-4.so
274 $(objpfx)tst-cet-legacy-5a.out: $(objpfx)tst-cet-legacy-mod-5a.so \
275 $(objpfx)tst-cet-legacy-mod-5b.so
276 $(objpfx)tst-cet-legacy-mod-5a.so: $(objpfx)tst-cet-legacy-mod-5c.so
277 $(objpfx)tst-cet-legacy-mod-5b.so: $(objpfx)tst-cet-legacy-mod-5c.so
278 $(objpfx)tst-cet-legacy-6a.out: $(objpfx)tst-cet-legacy-mod-6a.so \
279 $(objpfx)tst-cet-legacy-mod-6b.so
280 $(objpfx)tst-cet-legacy-mod-6a.so: $(objpfx)tst-cet-legacy-mod-6c.so
281 $(objpfx)tst-cet-legacy-mod-6b.so: $(objpfx)tst-cet-legacy-mod-6c.so
282 LDFLAGS-tst-cet-legacy-mod-6c.so = -Wl,--enable-new-dtags,-z,nodelete
283 $(objpfx)tst-cet-legacy-4a.out: $(objpfx)tst-cet-legacy-mod-4.so
284 tst-cet-legacy-4a-ENV = GLIBC_TUNABLES=glibc.cpu.x86_shstk=permissive
285 $(objpfx)tst-cet-legacy-4b.out: $(objpfx)tst-cet-legacy-mod-4.so
286 tst-cet-legacy-4b-ENV = GLIBC_TUNABLES=glibc.cpu.x86_shstk=on
287 $(objpfx)tst-cet-legacy-4c.out: $(objpfx)tst-cet-legacy-mod-4.so
288 tst-cet-legacy-4c-ENV = GLIBC_TUNABLES=glibc.cpu.x86_shstk=off
289 $(objpfx)tst-cet-legacy-5b.out: $(objpfx)tst-cet-legacy-mod-5a.so \
290 $(objpfx)tst-cet-legacy-mod-5b.so
291 tst-cet-legacy-5b-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=-IBT,-SHSTK
292 $(objpfx)tst-cet-legacy-6b.out: $(objpfx)tst-cet-legacy-mod-6a.so \
293 $(objpfx)tst-cet-legacy-mod-6b.so
294 tst-cet-legacy-6b-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=-IBT,-SHSTK
295 tst-cet-legacy-9-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=-IBT,-SHSTK
296 tst-cet-legacy-9-static-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=-IBT,-SHSTK
298 tst-shstk-legacy-1a-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=SHSTK
299 tst-shstk-legacy-1a-static-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=SHSTK
300 $(objpfx)tst-shstk-legacy-1a: $(objpfx)tst-shstk-legacy-1-extra.o
301 $(objpfx)tst-shstk-legacy-1a-static: $(objpfx)tst-shstk-legacy-1-extra.o
302 tst-shstk-legacy-1b-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=SHSTK
303 tst-shstk-legacy-1b-static-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=SHSTK
304 $(objpfx)tst-shstk-legacy-1b: $(objpfx)tst-shstk-legacy-1-extra.o
305 $(objpfx)tst-shstk-legacy-1b-static: $(objpfx)tst-shstk-legacy-1-extra.o
306 tst-shstk-legacy-1c-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=-SHSTK
307 tst-shstk-legacy-1c-static-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=-SHSTK
308 $(objpfx)tst-shstk-legacy-1c: $(objpfx)tst-shstk-legacy-1-extra.o
309 $(objpfx)tst-shstk-legacy-1c-static: $(objpfx)tst-shstk-legacy-1-extra.o
310 tst-shstk-legacy-1d-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=SHSTK
311 tst-shstk-legacy-1d-static-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=SHSTK
312 $(objpfx)tst-shstk-legacy-1d: $(objpfx)tst-shstk-legacy-1-extra.o
313 $(objpfx)tst-shstk-legacy-1d-static: $(objpfx)tst-shstk-legacy-1-extra.o
314 $(objpfx)tst-shstk-legacy-1e: $(objpfx)tst-shstk-legacy-1-extra.o
315 $(objpfx)tst-shstk-legacy-1e-static: $(objpfx)tst-shstk-legacy-1-extra.o
316 $(objpfx)tst-shstk-legacy-1e.out: \
317 $(..)/sysdeps/x86/tst-shstk-legacy-1e.sh $(objpfx)tst-shstk-legacy-1e
318 $(SHELL) $< $(common-objpfx) '$(test-program-prefix)' 2> $@; \
319 $(evaluate-test)
320 $(objpfx)tst-shstk-legacy-1e-static.out: \
321 $(..)/sysdeps/x86/tst-shstk-legacy-1e-static.sh \
322 $(objpfx)tst-shstk-legacy-1e-static
323 $(SHELL) $< $(common-objpfx) 2> $@; \
324 $(evaluate-test)
325 tst-shstk-legacy-1f-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=SHSTK
326 $(objpfx)tst-shstk-legacy-1f: $(objpfx)tst-shstk-legacy-mod-1.so
327 $(objpfx)tst-shstk-legacy-mod-1.so: \
328 $(objpfx)tst-shstk-legacy-mod-1.os \
329 $(objpfx)tst-shstk-legacy-1-extra.os
330 $(objpfx)tst-shstk-legacy-1g: $(objpfx)tst-shstk-legacy-mod-1.so
331 $(objpfx)tst-shstk-legacy-1g.out: \
332 $(..)/sysdeps/x86/tst-shstk-legacy-1g.sh $(objpfx)tst-shstk-legacy-1g
333 $(SHELL) $< $(common-objpfx) '$(test-program-prefix)' 2> $@; \
334 $(evaluate-test)
335 endif
337 # Add -fcf-protection to CFLAGS when CET is enabled.
338 CFLAGS-.o += -fcf-protection
339 CFLAGS-.os += -fcf-protection
340 CFLAGS-.op += -fcf-protection
341 CFLAGS-.oS += -fcf-protection
343 # Compile assembly codes with <cet.h> when CET is enabled.
344 asm-CPPFLAGS += -fcf-protection -include cet.h
346 ifeq ($(subdir),elf)
347 ifeq (yes,$(build-shared))
348 tests-special += $(objpfx)check-cet.out
349 endif
351 # FIXME: Can't use all-built-dso in elf/Makefile since this file is
352 # processed before elf/Makefile. Duplicate it here.
353 cet-built-dso := $(common-objpfx)elf/ld.so $(common-objpfx)libc.so \
354 $(filter-out $(common-objpfx)linkobj/libc.so, \
355 $(sort $(wildcard $(addprefix $(common-objpfx), \
356 */lib*.so \
357 iconvdata/*.so))))
359 $(cet-built-dso:=.note): %.note: %
360 @rm -f $@T
361 LC_ALL=C $(READELF) -n $< > $@T
362 test -s $@T
363 mv -f $@T $@
364 common-generated += $(cet-built-dso:$(common-objpfx)%=%.note)
366 $(objpfx)check-cet.out: $(..)sysdeps/x86/check-cet.awk \
367 $(cet-built-dso:=.note)
368 LC_ALL=C $(AWK) -f $^ > $@; \
369 $(evaluate-test)
370 generated += check-cet.out
371 endif
372 endif
374 ifeq ($(subdir),posix)
375 tests += \
376 tst-sysconf-cache-linesize \
377 tst-sysconf-cache-linesize-static \
378 # tests
379 tests-static += \
380 tst-sysconf-cache-linesize-static \
381 # tests-static
382 endif