diff options
author | Philip Guenther <guenther@cvs.openbsd.org> | 2013-05-08 20:55:16 +0000 |
---|---|---|
committer | Philip Guenther <guenther@cvs.openbsd.org> | 2013-05-08 20:55:16 +0000 |
commit | 35485e4cec2e872efd51189781427d610c1e3323 (patch) | |
tree | 8b0326fe8e024e1c98601bec23cbe837f1a66d6b /libexec/ld.so/resolve.c | |
parent | 2b2ce0877dff0ffb0f8ebc8c28b18bae5e9836a3 (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.c | 6 |
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 )); |