diff options
| author | mycroft <mycroft@NetBSD.org> | 2000-10-29 13:11:38 +0000 |
|---|---|---|
| committer | mycroft <mycroft@NetBSD.org> | 2000-10-29 13:11:38 +0000 |
| commit | 9ee3432bb96f2edbb97c1811e4f4d86a6a8961bc (patch) | |
| tree | d02078a6bf2b76af1745d124b20c0c0ef7353eea /libexec | |
| parent | 90ac46632de7bb2900c58f37ff2f3e33c8e872ea (diff) | |
In dlopen(), use the main program's library search path, to match semantics of
other systems (and our ELF).
Diffstat (limited to 'libexec')
| -rw-r--r-- | libexec/ld.aout_so/rtld.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/libexec/ld.aout_so/rtld.c b/libexec/ld.aout_so/rtld.c index bb5f13fabfc..6119f2690a8 100644 --- a/libexec/ld.aout_so/rtld.c +++ b/libexec/ld.aout_so/rtld.c @@ -1,4 +1,4 @@ -/* $NetBSD: rtld.c,v 1.76 2000/02/11 00:07:36 thorpej Exp $ */ +/* $NetBSD: rtld.c,v 1.77 2000/10/29 13:11:38 mycroft Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -358,6 +358,7 @@ rtld(version, crtp, dp) (caddr_t)0, 0, crtp->crt_dp); LM_PRIVATE(smp)->spd_refcount++; LM_PRIVATE(smp)->spd_flags |= _RTLD_MAIN | _RTLD_GLOBAL; + main_map = smp; smp = alloc_link_map(us, (struct sod *)0, (struct so_map *)0, (caddr_t)crtp->crt_ba, 0, dp); @@ -586,8 +587,6 @@ alloc_link_map(path, sodp, parent, addr, size, dp) if (dp == NULL) return (smp); -/*XXX*/ if (addr == 0) main_map = smp; - #ifdef SUN_COMPAT smpp->spd_offset = (addr==0 && dp->d_version==LD_VERSION_SUN) ? PAGSIZ : 0; @@ -1737,7 +1736,7 @@ __dlopen(name, mode) build_sod(name, sodp); - if ((smp = map_object(sodp, 0)) == NULL) { + if ((smp = map_object(sodp, main_map)) == NULL) { #ifdef DEBUG xprintf("%s: %s\n", name, strerror(errno)); #endif |
