/
githubmirror
/
glibc
Обзор
Документация
Войти
/
githubmirror
/
glibc
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
sysdeps/aarch64/Makefile
212 строк
6 KB
Adhemerval Zanella
aarch64: Add LD_AUDIT tests for BTI handling
14 янв 2026, 20:33
14 янв 2026, 20:33
cc098e6
Код
Авторство
О чём код?
long-double-fcts = yes ifeq ($(subdir),elf) sysdep-dl-routines += \ dl-bti \ dl-gcs \ # sysdep-dl-routines tests += \ tst-audit26 \ tst-audit27 \ # tests modules-names += \ tst-audit26mod \ tst-audit27mod \ tst-auditmod26 \ tst-auditmod27 \ # modules-names $(objpfx)tst-audit26: $(objpfx)tst-audit26mod.so \ $(objpfx)tst-auditmod26.so LDFLAGS-tst-audit26 += -Wl,-z,lazy tst-audit26-ENV = LD_AUDIT=$(objpfx)tst-auditmod26.so $(objpfx)tst-audit27: $(objpfx)tst-audit27mod.so \ $(objpfx)tst-auditmod27.so $(objpfx)tst-audit27mod.so: $(libsupport) LDFLAGS-tst-audit27 += -Wl,-z,lazy tst-audit27-ENV = LD_AUDIT=$(objpfx)tst-auditmod27.so endif ifeq ($(subdir),elf) sysdep-rtld-routines += dl-start sysdep-dl-routines += tlsdesc dl-tlsdesc gen-as-const-headers += \ dl-link.sym \ rtld-global-offsets.sym tests-internal += \ tst-ifunc-arg-1 \ tst-ifunc-arg-2 \ tst-ifunc-arg-3 \ tst-ifunc-arg-4 \ # tests-internal tests += tst-vpcs modules-names += tst-vpcs-mod LDFLAGS-tst-vpcs-mod.so = -Wl,-z,lazy $(objpfx)tst-vpcs: $(objpfx)tst-vpcs-mod.so endif ifeq ($(subdir),csu) gen-as-const-headers += \ tlsdesc.sym \ rtld-global-offsets.sym endif ifeq ($(subdir),gmon) CFLAGS-mcount.c += -mgeneral-regs-only endif ifeq ($(subdir),math) CPPFLAGS += -I../soft-fp endif ifeq ($(subdir),misc) sysdep_headers += sys/ifunc.h sysdep_routines += \ __mtag_tag_zero_region \ __mtag_tag_region \ __arm_za_disable \ __alloc_gcs tests += \ tst-sme-jmp \ tst-sme-signal \ tst-sme-za-state \ # tests tests-internal += \ tst-sme-clone \ tst-sme-clone3 \ tst-sme-fork \ tst-sme-vfork \ # tests-internal $(objpfx)tst-sme-clone3: $(objpfx)clone3.o $(objpfx)__arm_za_disable.o ifeq (yes,$(have-test-bti)) tests += \ tst-bti-abort-imm \ tst-bti-abort-static \ tst-bti-abort-transitive \ tst-bti-abort-unprot \ tst-bti-abort-unprot-preload \ tst-bti-dep-prot \ tst-bti-dep-prot-preload \ tst-bti-dlopen-imm \ tst-bti-dlopen-prot \ tst-bti-dlopen-transitive \ tst-bti-ld-debug-both \ tst-bti-ld-debug-dlopen \ tst-bti-ld-debug-exe \ tst-bti-ld-debug-shared \ tst-bti-permissive-audit \ tst-bti-permissive-dlopen \ tst-bti-permissive-imm \ tst-bti-permissive-preload \ tst-bti-permissive-transitive \ tst-bti-prot-audit \ tst-bti-unprot-audit \ # tests modules-names += \ tst-bti-mod \ tst-bti-mod-prot \ tst-bti-mod-prot-audit \ tst-bti-mod-prot-preload \ tst-bti-mod-unprot \ tst-bti-mod-unprot-audit \ tst-bti-mod-unprot-preload \ # modules-names $(objpfx)tst-bti-abort-imm: $(objpfx)tst-bti-mod-unprot.so $(objpfx)tst-bti-abort-transitive: $(objpfx)tst-bti-mod.so $(objpfx)tst-bti-abort-unprot: $(objpfx)tst-bti-mod-prot.so $(objpfx)tst-bti-dep-prot: $(objpfx)tst-bti-mod-prot.so $(objpfx)tst-bti-mod.so: $(objpfx)tst-bti-mod-unprot.so $(objpfx)tst-bti-permissive-imm: $(objpfx)tst-bti-mod-unprot.so $(objpfx)tst-bti-permissive-transitive: $(objpfx)tst-bti-mod.so $(objpfx)tst-bti-ld-debug-shared: $(objpfx)tst-bti-mod.so $(objpfx)tst-bti-ld-debug-both: $(objpfx)tst-bti-mod-unprot.so $(objpfx)tst-bti-abort-unprot-preload.out: $(objpfx)tst-bti-mod-unprot-preload.so tst-bti-abort-unprot-preload-ENV = \ GLIBC_TUNABLES=glibc.cpu.aarch64_bti=1 \ LD_PRELOAD=$(objpfx)tst-bti-mod-unprot-preload.so $(objpfx)tst-bti-dep-prot-preload.out: $(objpfx)tst-bti-mod-prot-preload.so # The 'fun' function will be provided by the preload library LDFLAGS-tst-bti-dep-prot-preload = -Wl,--unresolved-symbols=ignore-all tst-bti-dep-prot-preload-ENV = \ GLIBC_TUNABLES=glibc.cpu.aarch64_bti=0 \ LD_PRELOAD=$(objpfx)tst-bti-mod-prot-preload.so $(objpfx)tst-bti-permissive-preload.out: $(objpfx)tst-bti-mod-unprot-preload.so tst-bti-permissive-preload-ENV = \ GLIBC_TUNABLES=glibc.cpu.aarch64_bti=0 \ LD_PRELOAD=$(objpfx)tst-bti-mod-unprot-preload.so CFLAGS-tst-bti-abort-unprot.o += -mbranch-protection=none CFLAGS-tst-bti-ld-debug-exe.o += -mbranch-protection=none CFLAGS-tst-bti-ld-debug-both.o += -mbranch-protection=none CFLAGS-tst-bti-mod-unprot.os += -mbranch-protection=none CFLAGS-tst-bti-mod-unprot-preload.os += -mbranch-protection=none CFLAGS-tst-bti-mod-unprot-audit.os += -mbranch-protection=none tst-bti-abort-imm-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_bti=1 tst-bti-abort-transitive-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_bti=1 tst-bti-abort-unprot-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_bti=1 tst-bti-dep-prot-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_bti=1 tst-bti-dlopen-imm-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_bti=1 tst-bti-dlopen-prot-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_bti=1 tst-bti-dlopen-transitive-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_bti=1 tst-bti-permissive-imm-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_bti=0 tst-bti-permissive-transitive-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_bti=0 tst-bti-permissive-dlopen-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_bti=0 $(objpfx)tst-bti-unprot-audit.out: $(objpfx)tst-bti-mod-unprot-audit.so tst-bti-unprot-audit-ARGS = -- $(host-test-program-cmd) $(objpfx)tst-bti-prot-audit.out: $(objpfx)tst-bti-mod-prot-audit.so $(objpfx)tst-bti-prot-audit: $(objpfx)tst-bti-mod-prot.so tst-bti-prot-audit-ARGS = -- $(host-test-program-cmd) tst-bti-permissive-audit-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_bti=0 $(objpfx)tst-bti-permissive-audit.out: $(objpfx)tst-bti-mod-unprot-audit.so $(objpfx)tst-bti-permissive-audit: $(objpfx)tst-bti-mod.so tst-bti-permissive-audit-ARGS = -- $(host-test-program-cmd) define run-bti-abort-test $(test-wrapper-env) $(run-program-env) \ $(tst-bti-abort-$*-ENV) $(host-test-program-cmd) endef $(objpfx)tst-bti-abort-%.out: $(..)sysdeps/aarch64/tst-bti-abort.sh \ $(objpfx)tst-bti-abort-% $(SHELL) $< $(common-objpfx) $(test-name) '$(run-bti-abort-test)'; \ $(evaluate-test) tests-static += \ tst-bti-abort-static \ # tests-static tst-bti-abort-static-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_bti=1 CFLAGS-tst-bti-abort-static.o += -mbranch-protection=none $(objpfx)tst-bti-ld-debug-%.out: $(..)elf/tst-dl-debug-protect.sh $(objpfx)tst-bti-ld-debug-% $(SHELL) $< $(objpfx) '$(test-wrapper-env)' '$(rtld-prefix)' \ '$(run-program-env) GLIBC_TUNABLES=glibc.cpu.aarch64_bti=0' \ 'security: not compatible with AArch64 BTI: $(objpfx)' \ $(objpfx)tst-bti-ld-debug-$* > $@; $(evaluate-test) endif # ifeq (yes,$(have-test-bti)) endif ifeq ($(subdir),malloc) sysdep_malloc_debug_routines = __mtag_tag_zero_region __mtag_tag_region endif # malloc directory