aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2025-07-22 12:55:52 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2025-07-24 15:51:58 -0300
commit158e939aef55017f76c93d4be1b262de6cc2378f (patch)
tree222627d7781b639371cfe8fa17d1991c9f678ab9
parent072b5a9922ee6711c00c7c38dec96873dd7b9916 (diff)
downloadglibc-158e939aef55017f76c93d4be1b262de6cc2378f.zip
glibc-158e939aef55017f76c93d4be1b262de6cc2378f.tar.gz
glibc-158e939aef55017f76c93d4be1b262de6cc2378f.tar.bz2
elf: Check SFrame on tst-dl_find_object.c
If SFrame is enable check if DLFO_FLAG_SFRAME is set (since sframe support is added by default) and if dlfo_sframe has the expected value. Checked on aarch64-linux-gnu and x86_64-linux-gnu. Reviewed-by: Sam James <sam@gentoo.org>
-rw-r--r--elf/tst-dl_find_object.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/elf/tst-dl_find_object.c b/elf/tst-dl_find_object.c
index 96ec591..d85eb21 100644
--- a/elf/tst-dl_find_object.c
+++ b/elf/tst-dl_find_object.c
@@ -122,6 +122,14 @@ check (void *address,
address, actual.dlfo_eh_count, expected->dlfo_eh_count);
}
#endif
+ if (actual.dlfo_flags & DLFO_FLAG_SFRAME
+ && actual.dlfo_sframe != expected->dlfo_sframe)
+ {
+ support_record_failure ();
+ printf ("%s:%d: error: %p: sframe is %p, expected %p\n",
+ __FILE__, line,
+ address, actual.dlfo_sframe, expected->dlfo_sframe);
+ }
}
/* Check that unwind data for the main executable and the dynamic
@@ -180,6 +188,12 @@ do_test (void)
dlfo.dlfo_eh_frame, ret);
TEST_COMPARE (ret, 0);
TEST_VERIFY (dlfo.dlfo_eh_frame != NULL);
+#if ENABLE_SFRAME
+ TEST_VERIFY ((dlfo.dlfo_flags & DLFO_FLAG_SFRAME) == DLFO_FLAG_SFRAME);
+ TEST_VERIFY (dlfo.dlfo_sframe != NULL);
+#else
+ TEST_VERIFY ((dlfo.dlfo_flags & DLFO_FLAG_SFRAME) != DLFO_FLAG_SFRAME);
+#endif
}
check_initial ();