aboutsummaryrefslogtreecommitdiff
path: root/elf
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2019-10-31 13:28:49 +0100
committerFlorian Weimer <fweimer@redhat.com>2019-11-21 13:31:29 +0100
commitfcb04b9aed26a737159ef7be9c5a6ad0994437dc (patch)
tree8bbf75877c3ecff0326737f46c0f5406528ef863 /elf
parentd5dfad4326fc683c813df1e37bbf5cf920591c8e (diff)
downloadglibc-fcb04b9aed26a737159ef7be9c5a6ad0994437dc.zip
glibc-fcb04b9aed26a737159ef7be9c5a6ad0994437dc.tar.gz
glibc-fcb04b9aed26a737159ef7be9c5a6ad0994437dc.tar.bz2
Introduce DL_LOOKUP_FOR_RELOCATE flag for _dl_lookup_symbol_x
This will allow changes in dependency processing during non-lazy binding, for more precise processing of NODELETE objects: During initial relocation in dlopen, the fate of NODELETE objects is still unclear, so objects which are depended upon by NODELETE objects cannot immediately be marked as NODELETE. Change-Id: Ic7b94a3f7c4719a00ca8e6018088567824da0658
Diffstat (limited to 'elf')
-rw-r--r--elf/dl-reloc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/elf/dl-reloc.c b/elf/dl-reloc.c
index 725a074..7f201fe 100644
--- a/elf/dl-reloc.c
+++ b/elf/dl-reloc.c
@@ -244,7 +244,8 @@ _dl_relocate_object (struct link_map *l, struct r_scope_elem *scope[],
v = (version); \
_lr = _dl_lookup_symbol_x (strtab + (*ref)->st_name, l, (ref), \
scope, v, _tc, \
- DL_LOOKUP_ADD_DEPENDENCY, NULL); \
+ DL_LOOKUP_ADD_DEPENDENCY \
+ | DL_LOOKUP_FOR_RELOCATE, NULL); \
l->l_lookup_cache.ret = (*ref); \
l->l_lookup_cache.value = _lr; })) \
: l)