]>
Commit | Line | Data |
---|---|---|
e2e4f560 | 1 | ifeq ($(subdir),csu) |
2a1f15b1 | 2 | gen-as-const-headers += cpu-features-offsets.sym |
e2e4f560 L |
3 | endif |
4 | ||
5 | ifeq ($(subdir),elf) | |
6 | sysdep-dl-routines += dl-get-cpu-features | |
7 | ||
c92a00d8 | 8 | tests += tst-get-cpu-features tst-get-cpu-features-static |
e2e4f560 L |
9 | tests-static += tst-get-cpu-features-static |
10 | endif | |
d6cc1829 L |
11 | |
12 | ifeq ($(subdir),setjmp) | |
faaee1f0 | 13 | gen-as-const-headers += jmp_buf-ssp.sym |
d6cc1829 | 14 | sysdep_routines += __longjmp_cancel |
420ade1f L |
15 | ifneq ($(enable-cet),no) |
16 | ifneq ($(have-tunables),no) | |
17 | tests += tst-setjmp-cet | |
18 | tst-setjmp-cet-ENV = GLIBC_TUNABLES=glibc.cpu.x86_ibt=on:glibc.cpu.x86_shstk=on | |
19 | endif | |
20 | endif | |
d6cc1829 | 21 | endif |
f753fa7d L |
22 | |
23 | ifeq ($(enable-cet),yes) | |
24 | ifeq ($(subdir),elf) | |
25 | sysdep-dl-routines += dl-cet | |
fddcd003 | 26 | |
c089fd80 | 27 | tests += tst-cet-legacy-1 tst-cet-legacy-1a tst-cet-legacy-2 \ |
5e1548a6 L |
28 | tst-cet-legacy-2a tst-cet-legacy-3 tst-cet-legacy-4 \ |
29 | tst-cet-legacy-5a tst-cet-legacy-6a | |
c089fd80 | 30 | tst-cet-legacy-1a-ARGS = -- $(host-test-program-cmd) |
fddcd003 | 31 | ifneq (no,$(have-tunables)) |
5e1548a6 L |
32 | tests += tst-cet-legacy-4a tst-cet-legacy-4b tst-cet-legacy-4c \ |
33 | tst-cet-legacy-5b tst-cet-legacy-6b | |
fddcd003 L |
34 | endif |
35 | modules-names += tst-cet-legacy-mod-1 tst-cet-legacy-mod-2 \ | |
5e1548a6 L |
36 | tst-cet-legacy-mod-4 tst-cet-legacy-mod-5a \ |
37 | tst-cet-legacy-mod-5b tst-cet-legacy-mod-5c \ | |
38 | tst-cet-legacy-mod-6a tst-cet-legacy-mod-6b \ | |
39 | tst-cet-legacy-mod-6c | |
fddcd003 L |
40 | |
41 | CFLAGS-tst-cet-legacy-2.c += -fcf-protection=branch | |
42 | CFLAGS-tst-cet-legacy-2a.c += -fcf-protection | |
43 | CFLAGS-tst-cet-legacy-mod-1.c += -fcf-protection=none | |
44 | CFLAGS-tst-cet-legacy-mod-2.c += -fcf-protection=none | |
45 | CFLAGS-tst-cet-legacy-3.c += -fcf-protection=none | |
46 | CFLAGS-tst-cet-legacy-4.c += -fcf-protection=branch | |
47 | CFLAGS-tst-cet-legacy-4a.c += -fcf-protection | |
48 | CFLAGS-tst-cet-legacy-4b.c += -fcf-protection | |
49 | CFLAGS-tst-cet-legacy-mod-4.c += -fcf-protection=none | |
5e1548a6 L |
50 | CFLAGS-tst-cet-legacy-5a.c += -fcf-protection |
51 | CFLAGS-tst-cet-legacy-5b.c += -fcf-protection | |
52 | CFLAGS-tst-cet-legacy-mod-5a.c += -fcf-protection=none | |
53 | CFLAGS-tst-cet-legacy-mod-5b.c += -fcf-protection | |
54 | CFLAGS-tst-cet-legacy-mod-5c.c += -fcf-protection | |
55 | CFLAGS-tst-cet-legacy-6a.c += -fcf-protection | |
56 | CFLAGS-tst-cet-legacy-6b.c += -fcf-protection | |
57 | CFLAGS-tst-cet-legacy-mod-6a.c += -fcf-protection=none | |
58 | CFLAGS-tst-cet-legacy-mod-6b.c += -fcf-protection | |
59 | CFLAGS-tst-cet-legacy-mod-6c.c += -fcf-protection | |
fddcd003 L |
60 | |
61 | $(objpfx)tst-cet-legacy-1: $(objpfx)tst-cet-legacy-mod-1.so \ | |
c089fd80 L |
62 | $(objpfx)tst-cet-legacy-mod-2.so |
63 | $(objpfx)tst-cet-legacy-1a: $(objpfx)tst-cet-legacy-mod-1.so \ | |
fddcd003 L |
64 | $(objpfx)tst-cet-legacy-mod-2.so |
65 | $(objpfx)tst-cet-legacy-2: $(objpfx)tst-cet-legacy-mod-2.so $(libdl) | |
66 | $(objpfx)tst-cet-legacy-2.out: $(objpfx)tst-cet-legacy-mod-1.so | |
67 | $(objpfx)tst-cet-legacy-2a: $(objpfx)tst-cet-legacy-mod-2.so $(libdl) | |
68 | $(objpfx)tst-cet-legacy-2a.out: $(objpfx)tst-cet-legacy-mod-1.so | |
69 | $(objpfx)tst-cet-legacy-4: $(libdl) | |
70 | $(objpfx)tst-cet-legacy-4.out: $(objpfx)tst-cet-legacy-mod-4.so | |
5e1548a6 L |
71 | $(objpfx)tst-cet-legacy-5a: $(libdl) |
72 | $(objpfx)tst-cet-legacy-5a.out: $(objpfx)tst-cet-legacy-mod-5a.so \ | |
73 | $(objpfx)tst-cet-legacy-mod-5b.so | |
74 | $(objpfx)tst-cet-legacy-mod-5a.so: $(objpfx)tst-cet-legacy-mod-5c.so | |
75 | $(objpfx)tst-cet-legacy-mod-5b.so: $(objpfx)tst-cet-legacy-mod-5c.so | |
76 | $(objpfx)tst-cet-legacy-6a: $(libdl) | |
77 | $(objpfx)tst-cet-legacy-6a.out: $(objpfx)tst-cet-legacy-mod-6a.so \ | |
78 | $(objpfx)tst-cet-legacy-mod-6b.so | |
79 | $(objpfx)tst-cet-legacy-mod-6a.so: $(objpfx)tst-cet-legacy-mod-6c.so | |
80 | $(objpfx)tst-cet-legacy-mod-6b.so: $(objpfx)tst-cet-legacy-mod-6c.so | |
81 | LDFLAGS-tst-cet-legacy-mod-6c.so = -Wl,--enable-new-dtags,-z,nodelete | |
fddcd003 L |
82 | ifneq (no,$(have-tunables)) |
83 | $(objpfx)tst-cet-legacy-4a: $(libdl) | |
84 | $(objpfx)tst-cet-legacy-4a.out: $(objpfx)tst-cet-legacy-mod-4.so | |
dce452dc | 85 | tst-cet-legacy-4a-ENV = GLIBC_TUNABLES=glibc.cpu.x86_shstk=permissive |
fddcd003 L |
86 | $(objpfx)tst-cet-legacy-4b: $(libdl) |
87 | $(objpfx)tst-cet-legacy-4b.out: $(objpfx)tst-cet-legacy-mod-4.so | |
dce452dc | 88 | tst-cet-legacy-4b-ENV = GLIBC_TUNABLES=glibc.cpu.x86_shstk=on |
fddcd003 L |
89 | $(objpfx)tst-cet-legacy-4c: $(libdl) |
90 | $(objpfx)tst-cet-legacy-4c.out: $(objpfx)tst-cet-legacy-mod-4.so | |
dce452dc | 91 | tst-cet-legacy-4c-ENV = GLIBC_TUNABLES=glibc.cpu.x86_shstk=off |
5e1548a6 L |
92 | $(objpfx)tst-cet-legacy-5b: $(libdl) |
93 | $(objpfx)tst-cet-legacy-5b.out: $(objpfx)tst-cet-legacy-mod-5a.so \ | |
94 | $(objpfx)tst-cet-legacy-mod-5b.so | |
95 | tst-cet-legacy-5b-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=-IBT,-SHSTK | |
96 | $(objpfx)tst-cet-legacy-6b: $(libdl) | |
97 | $(objpfx)tst-cet-legacy-6b.out: $(objpfx)tst-cet-legacy-mod-6a.so \ | |
98 | $(objpfx)tst-cet-legacy-mod-6b.so | |
99 | tst-cet-legacy-6b-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=-IBT,-SHSTK | |
fddcd003 | 100 | endif |
f753fa7d L |
101 | endif |
102 | ||
103 | # Add -fcf-protection to CFLAGS when CET is enabled. | |
104 | CFLAGS-.o += -fcf-protection | |
105 | CFLAGS-.os += -fcf-protection | |
106 | CFLAGS-.op += -fcf-protection | |
107 | CFLAGS-.oS += -fcf-protection | |
108 | ||
109 | # Compile assembly codes with <cet.h> when CET is enabled. | |
110 | asm-CPPFLAGS += -fcf-protection -include cet.h | |
111 | ||
112 | ifeq ($(subdir),elf) | |
113 | ifeq (yes,$(build-shared)) | |
114 | tests-special += $(objpfx)check-cet.out | |
115 | endif | |
116 | ||
117 | # FIXME: Can't use all-built-dso in elf/Makefile since this file is | |
118 | # processed before elf/Makefile. Duplicate it here. | |
119 | cet-built-dso := $(common-objpfx)elf/ld.so $(common-objpfx)libc.so \ | |
120 | $(filter-out $(common-objpfx)linkobj/libc.so, \ | |
121 | $(sort $(wildcard $(addprefix $(common-objpfx), \ | |
122 | */lib*.so \ | |
123 | iconvdata/*.so)))) | |
124 | ||
125 | $(cet-built-dso:=.note): %.note: % | |
126 | @rm -f $@T | |
127 | LC_ALL=C $(READELF) -n $< > $@T | |
128 | test -s $@T | |
129 | mv -f $@T $@ | |
130 | common-generated += $(cet-built-dso:$(common-objpfx)%=%.note) | |
131 | ||
132 | $(objpfx)check-cet.out: $(..)sysdeps/x86/check-cet.awk \ | |
133 | $(cet-built-dso:=.note) | |
134 | LC_ALL=C $(AWK) -f $^ > $@; \ | |
135 | $(evaluate-test) | |
136 | generated += check-cet.out | |
137 | endif | |
138 | endif |