Commit Graph

35 Commits

Author SHA1 Message Date
jmc 66e9f52056 Start on adding support for -f flags as ldd did for a.out. PR#17786.
First, parse arguments correctly so -f isn't taken as a file name. For ELF
don't do anything yet, but for a.out compat, pass formats along when
exec'ing binary.
2003-12-19 19:56:56 +00:00
skrll d900731978 Resolve dlsym(3) and friends directly so that dlsym(RTLD_NEXT,...) works.
Previously dlsym resolved to the version in crt0.o or libc which would
mean that the caller's shared object couldn't be determined correctly
using __builtin_return_address(0).

Mainly from FreeBSD, but adapted by me. Benefits of this solutions are:

	- backward comptibility maintained
	- existing broken binaries are fixed with a new ld.elf_so
	- __mainprog_obj can be removed from crt0.o
	- we do the same thing as FreeBSD

Fixes PR 22067.

OKed by Jason and Christos.
2003-08-12 09:18:38 +00:00
dsl b5a44ece1f Look at mode of program being run, not of ldd when deciding whether to
use LD_LIBRARY_PATH.
2003-05-28 20:45:39 +00:00
mycroft e7a1f4e518 Catch up with ld.elf_so. 2003-04-23 21:39:08 +00:00
fvdl 3e5d4ebe28 Get stat info and pass it to the object map function. 2003-02-06 12:40:21 +00:00
junyoung d293fed282 Remove KNF from TODO list. 2002-12-02 14:08:17 +00:00
junyoung 2b65911602 KNF. 2002-12-02 14:05:11 +00:00
nathanw 83be8543f2 Add a _rtld_dlerror() function, since it it now needed by search.c,
and otherwise make the error routines look more like what's currently
in rtld.c (so *this* is where _rtld_error_message was hiding...).
2002-11-15 22:39:17 +00:00
nathanw d9b9596c8d Pass _rtld_map_object a heap-allocated path, since it will free the
path on failure. Prevents calling free() on a stack address if you run
ldd on an unrecognized file format.
2002-10-09 15:43:34 +00:00
junyoung 578b2b0e36 Make use of _rtld_pagesz. 2002-09-24 09:58:03 +00:00
lukem 5d4973fe97 makefile delint. use NETBSDSRCDIR as appropriate 2002-09-18 14:00:33 +00:00
tron 57a909560e Adapt to changes in "rtld.h". 2002-09-13 08:40:05 +00:00
lukem ed401558f2 Implement MKDYNAMICROOT, which currently defaults to "no", but will
be changed in the future to "yes".

If MKDYNAMICROOT == "no", there is no change from existing behaviour
of a static /bin and /sbin (and a few programs in elsewhere).

If MKDYNAMICROOT == "yes", the following changes occur:
    in <bsd.own.mk>:
	SHLIBDIR?=     /lib
	SHLINKDIR?=	/lib
    in various Makefiles, the following entry is DISABLED.
	LDSTATIC?=-static
This results in all programs (except those "standalone" programs built
in sys/arch/*/stand) are linked dynamically, the shared linker is moved
from /usr/libexec to /lib (with a compat symlink), and the shared
libraries used by /bin and /sbin programs are moved from /usr/lib to
/lib (with compat symlinks).
2002-08-27 14:46:11 +00:00
thorpej 7e8a4549fd Update ELFSIZE and VARPSZ arch lists. 2002-01-23 01:38:57 +00:00
matt 5f1585220e arm is variable page size. 2001-07-13 17:00:35 +00:00
simonb 36636551b6 Lift the internals of the a.out ldd, and try that if _rtld_map_object()
can't map the target as an ELF file.  Tested in hp300 and i386.
2000-12-12 11:16:02 +00:00
mycroft 0581ae5bad Make ldd(1) build again. 2000-11-10 23:53:04 +00:00
mycroft 8401b85a70 Unmap from mapbase, not relocbase. 2000-07-26 19:39:07 +00:00
eeh 6697064b0d Make this compile on sparc64. 2000-07-10 22:45:25 +00:00
mycroft 15f8483562 Use LDSTATIC, not LDFLAGS. 2000-02-20 07:14:13 +00:00
christos 51d639caed Enable hints processing so that we can see the mappings. 1999-12-13 09:10:16 +00:00
mycroft 411b41e76c Update for ld.elf_so changes. 1999-11-07 00:30:18 +00:00
kleink 1cc052ce00 Rearrange the shared library search path precedences to LD_LIBRARY_PATH >
runpath > built-in default; this is the behaviour of the SVR4 shared loader,
and gives users the opportunity to override the runpath.  (Addresses a report
on current-users by John Kohl.)
1999-08-01 19:47:07 +00:00
thorpej 0ecdd58add Define _RTLD_SOURCE so this builds again. PR 7927, itojun@itojun.org. 1999-07-06 08:04:31 +00:00
hannken 3ca44ccb68 Handle variable page size on sparc. See libexec/ld.elf_so/rtld.h rev 1.13. 1999-06-26 11:28:26 +00:00
kleink 34e8af912a Remove a comment copied directly from ld.elf_so that really shouldn't be here. 1999-05-31 14:56:00 +00:00
kleink ac412c9213 Avoid free(3)'ing a commandline argument; from Mark Brinicombe in PR bin/7246. 1999-04-09 14:24:21 +00:00
pk 0f75831fad _rtld_add_paths() takes an extra argument 1999-02-25 16:26:51 +00:00
thorpej d78de2f0ad Build ldd.1, and make it work with the extra directory depth. 1998-12-17 22:34:55 +00:00
lukem ca15d8c056 don't define WARNS=1 here 1997-10-19 03:44:21 +00:00
christos 06a0ab2d5f CFLAGS->CPPFLAGS, and general cleanup; add WARNS 1997-10-11 19:13:39 +00:00
gwr 10e180cc49 Back out the .PATH.c changes. The .depend problem (and others)
will be fixed using the new .NOPATH make feature instead.
1997-05-08 21:11:01 +00:00
gwr 012e528f2e Use .PATH.c: ... 1997-05-06 20:44:56 +00:00
jonathan 20d6ace077 Mipsel changes to ELF ldd/ld.so:
* don't abort() on NetBSD/pmax 1.1 elf binaries;
  * Assume 32-bit elf unless compiling for Alpha;
  * note bugs in ldd's README.
1996-12-17 03:42:44 +00:00
cgd 033e366657 First cut at an elf-aware ldd. Originally from John Polstra's FreeBSD elf
kit, then hacked on by Matt Thomas <matt@3am-software.com>, then by me.
This runs, but it's in serious need of cleaning and/or a fair bit of
reworking.  See the README file for more information, and a list of things
to do.
1996-12-16 19:59:55 +00:00