summaryrefslogtreecommitdiff
path: root/libexec/ld.so/resolve.c
diff options
context:
space:
mode:
authorPhilip Guenther <guenther@cvs.openbsd.org>2013-05-08 20:55:16 +0000
committerPhilip Guenther <guenther@cvs.openbsd.org>2013-05-08 20:55:16 +0000
commit35485e4cec2e872efd51189781427d610c1e3323 (patch)
tree8b0326fe8e024e1c98601bec23cbe837f1a66d6b /libexec/ld.so/resolve.c
parent2b2ce0877dff0ffb0f8ebc8c28b18bae5e9836a3 (diff)
Implement symbol caching and RELACOUNT/RELCOUNT optimizations.
Much assistance and testing by miod ok miod@
Diffstat (limited to 'libexec/ld.so/resolve.c')
-rw-r--r--libexec/ld.so/resolve.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/libexec/ld.so/resolve.c b/libexec/ld.so/resolve.c
index 8a232c88a32..c6f551f9406 100644
--- a/libexec/ld.so/resolve.c
+++ b/libexec/ld.so/resolve.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: resolve.c,v 1.61 2013/04/05 12:58:03 kurt Exp $ */
+/* $OpenBSD: resolve.c,v 1.62 2013/05/08 20:55:14 guenther Exp $ */
/*
* Copyright (c) 1998 Per Fogelstrom, Opsycon AB
@@ -264,6 +264,10 @@ _dl_finalize_object(const char *objname, Elf_Dyn *dynp, Elf_Phdr *phdrp,
object->obj_flags |= DF_1_NOW;
if (dynp->d_tag == DT_FLAGS_1)
object->obj_flags |= dynp->d_un.d_val;
+ if (dynp->d_tag == DT_RELACOUNT)
+ object->relacount = dynp->d_un.d_val;
+ if (dynp->d_tag == DT_RELCOUNT)
+ object->relcount = dynp->d_un.d_val;
dynp++;
}
DL_DEB((" flags %s = 0x%x\n", objname, object->obj_flags ));