summaryrefslogtreecommitdiff
path: root/libexec/ld.so/loader.c
diff options
context:
space:
mode:
authorDale Rahn <drahn@cvs.openbsd.org>2010-07-01 19:25:45 +0000
committerDale Rahn <drahn@cvs.openbsd.org>2010-07-01 19:25:45 +0000
commit5c18e9dfe10ac1d1ea0983ddea83330dd0d14041 (patch)
treeca2491ef38df06955329c0a88c1c1621792f4e1a /libexec/ld.so/loader.c
parent49984b2fd4aaec1b1f239db0b01cbc3fd1a66109 (diff)
When generating grpsym lists, avoid duplicates without searching the
already generated list. Speeds up startup on deeply nested dlopen binaries. ok guenther@, tested by ckuethe@ and ajacoutot@
Diffstat (limited to 'libexec/ld.so/loader.c')
-rw-r--r--libexec/ld.so/loader.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/libexec/ld.so/loader.c b/libexec/ld.so/loader.c
index 1b577effa47..2fa77a8804a 100644
--- a/libexec/ld.so/loader.c
+++ b/libexec/ld.so/loader.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: loader.c,v 1.118 2010/01/02 12:16:35 kettenis Exp $ */
+/* $OpenBSD: loader.c,v 1.119 2010/07/01 19:25:44 drahn Exp $ */
/*
* Copyright (c) 1998 Per Fogelstrom, Opsycon AB
@@ -337,8 +337,8 @@ _dl_load_dep_libs(elf_object_t *object, int flags, int booting)
}
/* add first object manually */
- _dl_link_grpsym(object);
- _dl_cache_grpsym_list(object);
+ _dl_link_grpsym(object, 1);
+ _dl_cache_grpsym_list_setup(object);
return(0);
}
@@ -498,7 +498,7 @@ _dl_boot(const char **argv, char **envp, const long dyn_loff, long *dl_data)
_dl_add_object(dyn_obj);
dyn_obj->refcount++;
- _dl_link_grpsym(dyn_obj);
+ _dl_link_grpsym(dyn_obj, 1);
dyn_obj->status |= STAT_RELOC_DONE;