diff options
| -rw-r--r-- | elf/tst-dl_find_object.c | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/elf/tst-dl_find_object.c b/elf/tst-dl_find_object.c index 855d0fc735..6d2a2ffd1c 100644 --- a/elf/tst-dl_find_object.c +++ b/elf/tst-dl_find_object.c @@ -71,19 +71,24 @@ check (void *address, __FILE__, line, address, actual.dlfo_flags, expected->dlfo_flags); } - if (actual.dlfo_flags != expected->dlfo_flags) + if (expected->dlfo_link_map->l_contiguous) { - support_record_failure (); - printf ("%s:%d: error: %p: map start is %p, expected %p\n", - __FILE__, line, - address, actual.dlfo_map_start, expected->dlfo_map_start); - } - if (actual.dlfo_map_end != expected->dlfo_map_end) - { - support_record_failure (); - printf ("%s:%d: error: %p: map end is %p, expected %p\n", - __FILE__, line, - address, actual.dlfo_map_end, expected->dlfo_map_end); + /* If the mappings are not contiguous, the actual and execpted + mappings may differ, so this subtest will not work. */ + if (actual.dlfo_flags != expected->dlfo_flags) + { + support_record_failure (); + printf ("%s:%d: error: %p: map start is %p, expected %p\n", + __FILE__, line, + address, actual.dlfo_map_start, expected->dlfo_map_start); + } + if (actual.dlfo_map_end != expected->dlfo_map_end) + { + support_record_failure (); + printf ("%s:%d: error: %p: map end is %p, expected %p\n", + __FILE__, line, + address, actual.dlfo_map_end, expected->dlfo_map_end); + } } if (actual.dlfo_link_map != expected->dlfo_link_map) { |
