diff options
| author | mycroft <mycroft@NetBSD.org> | 2002-09-23 23:56:46 +0000 |
|---|---|---|
| committer | mycroft <mycroft@NetBSD.org> | 2002-09-23 23:56:46 +0000 |
| commit | 86103e2f0e5a78e147746c5e783109a6cbc49482 (patch) | |
| tree | 42b6f449b4db2e3afd4ad43ad302f70cc267e333 /sys/dev/raidframe | |
| parent | f0efca630ab198c29a1b32717803b01cfc7d13a3 (diff) | |
Several small changes that shave 7-8% off the simple-exec-loop test:
* Rename _rtld_find_library() to _rtld_load_library(). It now calls
_rtld_load_object() if necessary to actually load the object, rather
than having the caller do it. To do this, it also takes the `mode'
argument that gets passed to _rtld_load_object().
* On a related note, remove _rtld_check_library(), and instead call
_rtld_load_object() to instead try actually loading the object. We
save two extra namei's and a bunch of redundant work (almost
literally the same code) this way.
* In _rtld_map_object(), mmap(2) the first page read-only, rather than
read(2)ing it.
* In _rtld_symlook_obj(), compare the *second* character of the symbol
name before calling strcmp(). (This first character is too
frequently `_', and turns out to not be helpful, in libc.)
* Also in _rtld_symlook_obj(), remove the bogus STT_FUNC special case
-- this also allows removing the `in_plt' argument to
_rtld_symlook_list() and _rtld_symlook_obj().
Also:
* In _rtld_obj_from_addr(), rather than trying to look up `_end' in
the each object, instead use obj->mapsize as the upper bound.
Diffstat (limited to 'sys/dev/raidframe')
0 files changed, 0 insertions, 0 deletions
