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