Commit Graph

64 Commits

Author SHA1 Message Date
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
wiz 64ef7a20ff Sort sections, sort SEE ALSO, bump date for last. 2003-04-24 12:06:56 +00:00
mycroft e7a1f4e518 Catch up with ld.elf_so. 2003-04-23 21:39:08 +00:00
christos ec5141c96b PR/3046: Chris G. Demetriou: ldd actually runs target programs.
This is the case only with a.out programs, and the manual page has been
changed to reflect that in the BUGS section. Since most our architectures
have been converted to elf, this is not an issue anymore.
2003-04-19 23:45:44 +00:00
perry 6c607318b5 depedencies->dependencies (Igor Sobrado, PR misc/19700) + recognised->recognized 2003-03-31 01:57:39 +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
thorpej 892294e9f7 xref ld.elf_so(1) 2001-12-20 06:43:00 +00:00
matt 5f1585220e arm is variable page size. 2001-07-13 17:00:35 +00:00
cgd a8ec668ddf convert to use getprogname() 2001-02-19 23:03:42 +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
garbled 9e44e9b578 More and more .Os cleanups. .Os is defined in the tmac.doc-common file,
so we shouldn't override it with versions in the manpages.  Many more to
come.
1999-03-22 18:16:34 +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
thorpej f6895d1c2d Get ldd.1 from the previous level. 1998-12-17 22:34:09 +00:00
thorpej 27518b942e Move the manual page up one level via repository copy. 1998-12-17 22:33:46 +00:00
thorpej e4cbfbfb44 getopt() returns -1, not EOF. 1998-12-16 23:14:02 +00:00
thorpej 2e04232a96 Prototypes. 1998-12-16 23:13:02 +00:00
pk 21e1fe821f Move a.out version of ldd(1) to the usr.bin tree; elf and a.out
reside in separate subdirectories (various source moved by
repository copying). Adapt Makefiles to new situation.
1998-12-15 22:07:11 +00:00
pk 0a97faa040 Assign my copyrights to TNF. 1998-09-05 13:08:38 +00:00
fair c46ab392dc Principally, change foo(N) to .Xr foo N
Also, do some other mdoc tagging.
1998-04-28 04:07:04 +00:00
cgd 10cc9f3b70 RCS Id police 1998-01-05 22:00:34 +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
mrg 586ed80911 install all man pages. 1997-06-23 13:25:41 +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
thorpej ec67ea7102 When checking the entry point of an executable, use N_PAGSIZ() rather
than __LDPGSZ directly.
1996-09-07 22:07:15 +00:00