SFrame: Add tests that uses DWARF backtracer

When SFrame is enabled, we need to tests DW backtracer as well. Do
this by executing the same backtrace tests with .sframe section
stripped.

Signed-off-by: Claudiu Zissulescu <claudiu.zissulescu-ianculescu@oracle.com>
Reviewed-by: DJ Delorie <dj@redhat.com>
This commit is contained in:
Claudiu Zissulescu 2025-07-14 12:43:31 +03:00 committed by Sam James
parent 3d780a44eb
commit e85dbd8604
No known key found for this signature in database
GPG Key ID: 738409F520DF9190
1 changed files with 28 additions and 0 deletions

View File

@ -278,6 +278,34 @@ LDFLAGS-tst-backtrace4 = -rdynamic
LDFLAGS-tst-backtrace5 = -rdynamic
LDFLAGS-tst-backtrace6 = -rdynamic
# When SFrame is enabled, make sure the dwarf unwinder is also exercised.
ifeq ($(enable-gsframe),yes)
dw_unwind_pair := \
tst-backtrace7:tst-backtrace2 \
tst-backtrace8:tst-backtrace3 \
tst-backtrace9:tst-backtrace4 \
tst-backtrace10:tst-backtrace5 \
tst-backtrace11:tst-backtrace6
first_column = $(foreach pair,$(dw_unwind_pair),$(word 1,$(subst :, ,$(pair))))
tests-dw-unwind = $(patsubst %,$(objpfx)%.out,$(first_column))
tests-special += $(tests-dw-unwind)
endif
define make-strip-rule
$(objpfx)$(word 1,$(subst :, ,$(1))): $(objpfx)$(word 2,$(subst :, ,$(1)))
strip --remove-section=.sframe $$< -o $$@
endef
$(foreach pair,$(dw_unwind_pair),$(eval $(call make-strip-rule,$(pair))))
define make-run-rule
$(objpfx)$(word 1,$(subst :, ,$(1))).out: /dev/null $(objpfx)$(word 1,$(subst :, ,$(1)))
$$(make-test-out) > $$@; $$(evaluate-test)
endef
$(foreach pair,$(dw_unwind_pair),$(eval $(call make-run-rule,$(pair))))
CFLAGS-tst-ssp-1.c += -fstack-protector-all
# Disable compiler optimizations around vsprintf (the function under test).