diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2025-07-22 12:55:52 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2025-07-24 15:51:58 -0300 |
commit | 158e939aef55017f76c93d4be1b262de6cc2378f (patch) | |
tree | 222627d7781b639371cfe8fa17d1991c9f678ab9 | |
parent | 072b5a9922ee6711c00c7c38dec96873dd7b9916 (diff) | |
download | glibc-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.c | 14 |
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 (); |