summary refs log tree commit diff
path: root/elf/dynamic-link.h
diff options
context:
space:
mode:
Diffstat (limited to 'elf/dynamic-link.h')
-rw-r--r--elf/dynamic-link.h14
1 files changed, 8 insertions, 6 deletions
diff --git a/elf/dynamic-link.h b/elf/dynamic-link.h
index 8d428e20d3..d7cff482d4 100644
--- a/elf/dynamic-link.h
+++ b/elf/dynamic-link.h
@@ -135,16 +135,18 @@ elf_machine_lazy_rel (struct link_map *map,
 									      \
 	if (ranges[0].start + ranges[0].size == (start + size))		      \
 	  ranges[0].size -= size;					      \
-	if (! ELF_DURING_STARTUP && ((do_lazy) || ranges[0].size == 0))	      \
+	if (ELF_DURING_STARTUP						      \
+	    || (!(do_lazy)						      \
+		&& (ranges[0].start + ranges[0].size) == start))	      \
 	  {								      \
-	    ranges[1].start = start;					      \
-	    ranges[1].size = size;					      \
-	    ranges[1].lazy = (do_lazy);					      \
+	    /* Combine processing the sections.  */			      \
+	    ranges[0].size += size;					      \
 	  }								      \
 	else								      \
 	  {								      \
-	    /* Combine processing the sections.  */			      \
-	    ranges[0].size += size;					      \
+	    ranges[1].start = start;					      \
+	    ranges[1].size = size;					      \
+	    ranges[1].lazy = (do_lazy);					      \
 	  }								      \
       }									      \
 									      \