2 gen-as-const-headers
+= cpu-features-offsets.sym
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
)
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 \
23 tst-get-cpu-features-static \
24 tst-cpu-features-cpuinfo-static \
25 tst-cpu-features-supports-static \
27 ifeq (yes
,$(have-ifunc
))
28 ifeq (yes
,$(have-gcc-ifunc
))
31 tst-ifunc-isa-1-static \
34 tst-ifunc-isa-1-static \
36 test-xfail-tst-ifunc-isa-1
= $(with-lld
)
37 test-xfail-tst-ifunc-isa-1-static
= $(with-lld
)
40 tst-ifunc-isa-2-static \
43 tst-ifunc-isa-2-static \
45 test-xfail-tst-ifunc-isa-2
= $(with-lld
)
46 test-xfail-tst-ifunc-isa-2-static
= $(with-lld
)
49 ifeq (yes
,$(enable-x86-isa-level
))
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 \
60 # X86 ISA level baseline
61 CFLAGS-tst-isa-level-mod-1-baseline.c
+= -DINCLUDE_X86_ISA_LEVEL \
65 CFLAGS-tst-isa-level-mod-1-v2.c
+= -DINCLUDE_X86_ISA_LEVEL \
69 CFLAGS-tst-isa-level-mod-1-v3.c
+= -DINCLUDE_X86_ISA_LEVEL \
73 CFLAGS-tst-isa-level-mod-1-v4.c
+= -DINCLUDE_X86_ISA_LEVEL \
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
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
)
89 tst-ldbl-nonnormal-printf \
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
)
100 tst-setjmp-cet-ENV
= GLIBC_TUNABLES
=glibc.cpu.x86_ibt
=on
:glibc.cpu.x86_shstk
=on
104 ifeq ($(subdir
),string
)
105 sysdep_routines
+= cacheinfo
118 tst-strncasecmp-rtm \
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
142 ifneq ($(enable-cet
),no
)
144 sysdep-dl-routines
+= dl-cet
158 tst-cet-legacy-9-static \
160 tst-cet-legacy-10-static \
162 tst-cet-legacy-10a-static \
165 tst-cet-legacy-9-static \
166 tst-cet-legacy-10-static \
167 tst-cet-legacy-10a-static \
169 tst-cet-legacy-1a-ARGS
= -- $(host-test-program-cmd
)
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 \
186 tst-shstk-legacy-mod-1 \
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 \
196 tst-shstk-legacy-1-extra.o \
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 \
218 CFLAGS-tst-cet-legacy-2.c
+= -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
=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
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
=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
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
=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 CFLAGS-tst-shstk-legacy-1a.c
+= -fcf-protection
=none
253 CFLAGS-tst-shstk-legacy-1a-static.c
+= -fcf-protection
=none
254 CFLAGS-tst-shstk-legacy-1d.c
+= -fcf-protection
=none
255 CFLAGS-tst-shstk-legacy-1d-static.c
+= -fcf-protection
=none
256 CFLAGS-tst-shstk-legacy-1f.c
+= -fcf-protection
=none
258 $(objpfx
)tst-cet-legacy-1
: $(objpfx
)tst-cet-legacy-mod-1.so \
259 $(objpfx
)tst-cet-legacy-mod-2.so
260 $(objpfx
)tst-cet-legacy-1a
: $(objpfx
)tst-cet-legacy-mod-1.so \
261 $(objpfx
)tst-cet-legacy-mod-2.so
262 $(objpfx
)tst-cet-legacy-2
: $(objpfx
)tst-cet-legacy-mod-2.so
263 $(objpfx
)tst-cet-legacy-2.out
: $(objpfx
)tst-cet-legacy-mod-1.so
264 $(objpfx
)tst-cet-legacy-2a
: $(objpfx
)tst-cet-legacy-mod-2.so
265 $(objpfx
)tst-cet-legacy-2a.out
: $(objpfx
)tst-cet-legacy-mod-1.so
266 $(objpfx
)tst-cet-legacy-4.out
: $(objpfx
)tst-cet-legacy-mod-4.so
267 $(objpfx
)tst-cet-legacy-5a.out
: $(objpfx
)tst-cet-legacy-mod-5a.so \
268 $(objpfx
)tst-cet-legacy-mod-5b.so
269 $(objpfx
)tst-cet-legacy-mod-5a.so
: $(objpfx
)tst-cet-legacy-mod-5c.so
270 $(objpfx
)tst-cet-legacy-mod-5b.so
: $(objpfx
)tst-cet-legacy-mod-5c.so
271 $(objpfx
)tst-cet-legacy-6a.out
: $(objpfx
)tst-cet-legacy-mod-6a.so \
272 $(objpfx
)tst-cet-legacy-mod-6b.so
273 $(objpfx
)tst-cet-legacy-mod-6a.so
: $(objpfx
)tst-cet-legacy-mod-6c.so
274 $(objpfx
)tst-cet-legacy-mod-6b.so
: $(objpfx
)tst-cet-legacy-mod-6c.so
275 LDFLAGS-tst-cet-legacy-mod-6c.so
= -Wl
,--enable-new-dtags
,-z
,nodelete
276 $(objpfx
)tst-cet-legacy-4a.out
: $(objpfx
)tst-cet-legacy-mod-4.so
277 tst-cet-legacy-4a-ENV
= GLIBC_TUNABLES
=glibc.cpu.x86_shstk
=permissive
278 $(objpfx
)tst-cet-legacy-4b.out
: $(objpfx
)tst-cet-legacy-mod-4.so
279 tst-cet-legacy-4b-ENV
= GLIBC_TUNABLES
=glibc.cpu.x86_shstk
=on
280 $(objpfx
)tst-cet-legacy-4c.out
: $(objpfx
)tst-cet-legacy-mod-4.so
281 tst-cet-legacy-4c-ENV
= GLIBC_TUNABLES
=glibc.cpu.x86_shstk
=off
282 $(objpfx
)tst-cet-legacy-5b.out
: $(objpfx
)tst-cet-legacy-mod-5a.so \
283 $(objpfx
)tst-cet-legacy-mod-5b.so
284 tst-cet-legacy-5b-ENV
= GLIBC_TUNABLES
=glibc.cpu.hwcaps
=-IBT
,-SHSTK
285 $(objpfx
)tst-cet-legacy-6b.out
: $(objpfx
)tst-cet-legacy-mod-6a.so \
286 $(objpfx
)tst-cet-legacy-mod-6b.so
287 tst-cet-legacy-6b-ENV
= GLIBC_TUNABLES
=glibc.cpu.hwcaps
=-IBT
,-SHSTK
288 tst-cet-legacy-9-ENV
= GLIBC_TUNABLES
=glibc.cpu.hwcaps
=-IBT
,-SHSTK
289 tst-cet-legacy-9-static-ENV
= GLIBC_TUNABLES
=glibc.cpu.hwcaps
=-IBT
,-SHSTK
291 $(objpfx
)tst-shstk-legacy-1a
: $(objpfx
)tst-shstk-legacy-1-extra.o
292 $(objpfx
)tst-shstk-legacy-1a-static
: $(objpfx
)tst-shstk-legacy-1-extra.o
293 $(objpfx
)tst-shstk-legacy-1b
: $(objpfx
)tst-shstk-legacy-1-extra.o
294 $(objpfx
)tst-shstk-legacy-1b-static
: $(objpfx
)tst-shstk-legacy-1-extra.o
295 tst-shstk-legacy-1c-ENV
= GLIBC_TUNABLES
=glibc.cpu.hwcaps
=-SHSTK
296 tst-shstk-legacy-1c-static-ENV
= GLIBC_TUNABLES
=glibc.cpu.hwcaps
=-SHSTK
297 $(objpfx
)tst-shstk-legacy-1c
: $(objpfx
)tst-shstk-legacy-1-extra.o
298 $(objpfx
)tst-shstk-legacy-1c-static
: $(objpfx
)tst-shstk-legacy-1-extra.o
299 $(objpfx
)tst-shstk-legacy-1d
: $(objpfx
)tst-shstk-legacy-1-extra.o
300 $(objpfx
)tst-shstk-legacy-1d-static
: $(objpfx
)tst-shstk-legacy-1-extra.o
301 $(objpfx
)tst-shstk-legacy-1e
: $(objpfx
)tst-shstk-legacy-1-extra.o
302 $(objpfx
)tst-shstk-legacy-1e-static
: $(objpfx
)tst-shstk-legacy-1-extra.o
303 $(objpfx
)tst-shstk-legacy-1e.out
: \
304 $(..
)/sysdeps
/x86
/tst-shstk-legacy-1e.sh
$(objpfx
)tst-shstk-legacy-1e
305 $(SHELL
) $< $(common-objpfx
) '$(test-program-prefix)' 2> $@
; \
307 $(objpfx
)tst-shstk-legacy-1e-static.out
: \
308 $(..
)/sysdeps
/x86
/tst-shstk-legacy-1e-static.sh \
309 $(objpfx
)tst-shstk-legacy-1e-static
310 $(SHELL
) $< $(common-objpfx
) 2> $@
; \
312 $(objpfx
)tst-shstk-legacy-1f
: $(objpfx
)tst-shstk-legacy-mod-1.so
313 $(objpfx
)tst-shstk-legacy-mod-1.so
: \
314 $(objpfx
)tst-shstk-legacy-mod-1.os \
315 $(objpfx
)tst-shstk-legacy-1-extra.os
316 $(objpfx
)tst-shstk-legacy-1g
: $(objpfx
)tst-shstk-legacy-mod-1.so
317 $(objpfx
)tst-shstk-legacy-1g.out
: \
318 $(..
)/sysdeps
/x86
/tst-shstk-legacy-1g.sh
$(objpfx
)tst-shstk-legacy-1g
319 $(SHELL
) $< $(common-objpfx
) '$(test-program-prefix)' 2> $@
; \
323 # Add -fcf-protection to CFLAGS when CET is enabled.
324 CFLAGS-.o
+= -fcf-protection
325 CFLAGS-.os
+= -fcf-protection
326 CFLAGS-.op
+= -fcf-protection
327 CFLAGS-.oS
+= -fcf-protection
329 # Compile assembly codes with <cet.h> when CET is enabled.
330 asm-CPPFLAGS
+= -fcf-protection
-include cet.h
333 ifeq (yes
,$(build-shared
))
334 tests-special
+= $(objpfx
)check-cet.out
337 # FIXME: Can't use all-built-dso in elf/Makefile since this file is
338 # processed before elf/Makefile. Duplicate it here.
339 cet-built-dso
:= $(common-objpfx
)elf
/ld.so
$(common-objpfx
)libc.so \
340 $(filter-out $(common-objpfx
)linkobj
/libc.so
, \
341 $(sort $(wildcard $(addprefix $(common-objpfx
), \
345 $(cet-built-dso
:=.note
): %.note
: %
347 LC_ALL
=C
$(READELF
) -n
$< > $@T
350 common-generated
+= $(cet-built-dso
:$(common-objpfx
)%=%.note
)
352 $(objpfx
)check-cet.out
: $(..
)sysdeps
/x86
/check-cet.awk \
353 $(cet-built-dso
:=.note
)
354 LC_ALL
=C
$(AWK
) -f
$^
> $@
; \
356 generated
+= check-cet.out
360 ifeq ($(subdir
),posix
)
362 tst-sysconf-cache-linesize \
363 tst-sysconf-cache-linesize-static \
366 tst-sysconf-cache-linesize-static \