You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.1 KiB
35 lines
1.1 KiB
commit b893410be304ddcea0bd43f537a13e8b18d37cf2 |
|
Author: Florian Weimer <fweimer@redhat.com> |
|
Date: Mon Nov 27 11:28:07 2023 +0100 |
|
|
|
elf: In _dl_relocate_object, skip processing if object is relocated |
|
|
|
This is just a minor optimization. It also makes it more obvious that |
|
_dl_relocate_object can be called multiple times. |
|
|
|
Reviewed-by: Carlos O'Donell <carlos@redhat.com> |
|
|
|
diff --git a/elf/dl-reloc.c b/elf/dl-reloc.c |
|
index be3e09e36835ed23..0254e589c06fbf4c 100644 |
|
--- a/elf/dl-reloc.c |
|
+++ b/elf/dl-reloc.c |
|
@@ -192,6 +192,9 @@ void |
|
_dl_relocate_object (struct link_map *l, struct r_scope_elem *scope[], |
|
int reloc_mode, int consider_profiling) |
|
{ |
|
+ if (l->l_relocated) |
|
+ return; |
|
+ |
|
struct textrels |
|
{ |
|
caddr_t start; |
|
@@ -229,9 +232,6 @@ _dl_relocate_object (struct link_map *l, struct r_scope_elem *scope[], |
|
# define consider_symbind 0 |
|
#endif |
|
|
|
- if (l->l_relocated) |
|
- return; |
|
- |
|
/* If DT_BIND_NOW is set relocate all references in this object. We |
|
do not do this if we are profiling, of course. */ |
|
// XXX Correct for auditing?
|
|
|