about summary refs log tree commit diff
path: root/elf/tst-dl_find_object.c
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2022-01-17 09:57:19 +0100
committerFlorian Weimer <fweimer@redhat.com>2022-01-17 09:58:27 +0100
commit06200aac9bec34dbcac28b8c60e49a77e7851c1f (patch)
tree30bd63a33805249199a7501972d64c06f2868145 /elf/tst-dl_find_object.c
parent8eb2510d38226ce10a3a15109be948f052585106 (diff)
downloadglibc-06200aac9bec34dbcac28b8c60e49a77e7851c1f.tar.gz
glibc-06200aac9bec34dbcac28b8c60e49a77e7851c1f.tar.xz
glibc-06200aac9bec34dbcac28b8c60e49a77e7851c1f.zip
elf/tst-dl_find_object: Disable subtests for non-contiguous maps (bug 28732)
Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
Diffstat (limited to 'elf/tst-dl_find_object.c')
-rw-r--r--elf/tst-dl_find_object.c29
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)
     {