Commit Graph

259 Commits

Author SHA1 Message Date
pk 4162cf6459 Simplify update of r_addend field in relocation record if `-r' is on.
The old quirky code did strange things.
1995-12-28 18:04:59 +00:00
pk 2bb60e32ec Make dlopen() search for libraries if given a name of the form
`lib<name>.so[.xx[.yy]]' (per Erik M. Theisen; PR#1763; patch from PR
used in simplified form).
1995-12-28 17:57:32 +00:00
pk 35c8aad7b3 Flush after diddling text, so we get predictable results on machines
with separate I & D caches.
1995-11-28 19:29:45 +00:00
ragge 6ac54c7a78 Vax support for ld, so we (at least) can link static binaries. 1995-10-19 13:10:17 +00:00
pk d04fcadcc2 Fix typo. 1995-10-09 09:24:59 +00:00
pk 9d43c41208 New style RCS IDs. 1995-10-09 00:09:39 +00:00
pk b74b1d6456 Allow customized trace output, so ldd(1) can be more conveniently used
as a filter.

Rearrange cascading stuff: remove two-level limit.
1995-10-08 23:43:28 +00:00
pk b19a7d87e2 Pass on return value. 1995-09-23 22:48:18 +00:00
pk d4fe561742 Interface version 4:
implement dlexit() (per Doug Rabson)
	get actual rtld path from crt0
	pass ld_entry back to crt0 in a better place
1995-09-23 22:46:24 +00:00
pk fa6e06725c Define `dlexit()' in crt<=>rtld interface (active in v4). 1995-09-23 22:26:15 +00:00
pk 1a9159c7ba Check for zero sized BSS to avoid a big no-op syscall (per Mike Hibler). 1995-08-31 22:07:25 +00:00
pk f6797ed4f1 Install the manual page. 1995-08-25 10:08:45 +00:00
pk 72acb4fe30 Handle object code with the "large" model PIC (eg. gcc's `-fPIC' option). 1995-08-04 21:32:15 +00:00
pk f42537952b man page for the run-time linker 1995-06-30 12:23:10 +00:00
pk 45359beaf4 Initialise after malloc (fixes PR#1149).
Also, correct comparison when looking in `prefered' paths.
1995-06-20 23:07:03 +00:00
pk d680ed6b95 #include <dlfcn.h> 1995-06-05 00:08:38 +00:00
pk 878392000d Put dlopen() et.al. declarations in separate header file for compatibility. 1995-06-05 00:08:07 +00:00
pk fdd7092874 Cache two more environment variable values. 1995-06-04 23:21:35 +00:00
pk fe9497fd8c Revive library search paths. 1995-06-04 21:57:18 +00:00
pk ad760ce3d6 Implement compiled-in library search paths: any `-L' argument encountered
while `dynamic link-mode' is on, is recorded in the executable. The
run-time linker will search these paths after $LD_LIBRARY_PATH but
before the default set and those currently in the hints file.
The feature is disabled whenever for set[ug]id programs.
1995-06-04 21:56:22 +00:00
phil 46466fb2d7 Correct copyright. 1995-05-29 18:11:35 +00:00
briggs ad2b81e4f0 jbsr takes one argument, not two. Apparently the assembler quietly
ignores the second...
Pointed out by uhenric@mcl.ucsb.edu (Henric Jungheim).
1995-05-07 13:22:12 +00:00
pk 28dba22b40 Fix bogosities in cascade stuff. 1995-04-01 20:56:55 +00:00
pk b6340cabe2 Burn LD_RUN_PATH; I didn't read the SVR5 man-pages carefully enough. 1995-03-06 22:59:10 +00:00
pk 64edf8f86f Code from Matthew Green to do DL cascading "in the first degree".
Two `fprintf(stderr, ..)' => `warnx(..)'.
1995-03-06 20:51:24 +00:00
mycroft ae92c26c4c Several consistency nits, and fix a byte order problem in md_swapout_reloc(). 1995-01-17 06:44:38 +00:00
mycroft 2c64d3be89 Several consistency nits, and don't define the get_*() macros twice. 1995-01-17 06:41:43 +00:00
pk da34da6096 Put a reserved field into use (weak symbol support). 1994-12-23 20:16:59 +00:00
pk e46ed32748 Bummer! Undo mmap() changes in rev. 1.26; they royally screw up the
kernel's pmap address preference mechanism.
1994-12-19 12:21:21 +00:00
pk e2025017e0 Handle "/dev/zero" stuff more globally. 1994-12-18 16:05:49 +00:00
pk b8937d605d Re-arrange mmap() calls, per Charles' suggestion. 1994-12-18 15:38:55 +00:00
pk 524e00b29b Ensure contiguous chunks for all of an object's address space (text+data+bss). 1994-12-07 20:30:53 +00:00
mycroft 9ea7c211d9 Fix some other broken comments. 1994-12-04 08:26:22 +00:00
mycroft ffadc8821a Remove silly comment that was causing `make depend' to barf. 1994-12-04 07:42:44 +00:00
pk 7df5d3ecf2 Another md macro to initialize a home-made struct reloc needed
for N_SET* type relocations in shared objects.
1994-11-30 18:24:56 +00:00
phil 0a13ae3ba2 patches from Matthias
new RCS id format
1994-11-30 06:20:42 +00:00
mycroft 15cea8b764 Don't close the hints file while it's mapped, but unmap and close it after
loading.
1994-10-26 20:21:42 +00:00
mycroft e23e2b1219 Remove two unused functions. 1994-10-26 20:03:31 +00:00
mycroft c1a45e7763 Clean this up a bit, and use the trap gate to enter the kernel. 1994-10-26 19:41:13 +00:00
cgd 4d2cbfce0a new RCS ID format. 1994-10-26 00:55:40 +00:00
deraadt 43965575ed NBPG --> getpagesize() 1994-09-19 16:58:18 +00:00
mycroft 72e34bc0d4 Shrink ld.so by 12k. 1994-09-19 04:49:02 +00:00
pk 41671de8e6 Define Global Offset Table range. 1994-08-21 15:15:43 +00:00
phil 7297407d7b fix from Matthias Pfaller. 1994-08-16 23:18:20 +00:00
pk 233cc208f0 Re-add `LD_WARN_NON_PURE_CODE' that went missing. 1994-08-12 08:11:16 +00:00
pk 867591e7cb Relax minor version number checking somewhat; issue warning if minor
version is less than expected.
1994-08-07 10:34:40 +00:00
pk 9e0ddbbe6f Remove some unnecessary code. 1994-08-03 15:57:58 +00:00
chopps b6d669a07c binder_entry() must save all scratch registers to make the process
of binding functions completely transparent.
1994-08-03 15:57:54 +00:00
cgd 775b690718 fix typo; from phil 1994-07-04 19:46:37 +00:00
pk 1cf6a27eef error => warnx 1994-06-29 11:15:34 +00:00
pk 009be1653a strdup() doesn't grok NULL pointers 1994-06-24 13:31:34 +00:00
chopps 6a0e2061ce some changes for new style cachectl. remains compat for <= 030 1994-06-13 05:28:39 +00:00
pk a43fd7b3a2 Conversion to err()/warn() for error reports. 1994-06-10 15:16:32 +00:00
pk a6bf4f8176 Conversion to err()/warn() for error reports.
Minor bug fixes:
	a case of free()ing in the wrong order. (from Rick Murphey).
	processing alias symbol twice (sometimes).
Some miscellaneous cleanup.
1994-06-10 15:16:04 +00:00
pk ca0065ab75 Another move to .data to please gdb. 1994-05-25 10:14:37 +00:00
pk 4369371ef0 Enable dl*() prototypes. 1994-05-24 10:47:48 +00:00
pk f28b14e8b3 Force some string constants into the data segment (for core-dump reading).
Rename internal dl_*() functions.
Do run-time symbol alias processing.
1994-05-24 10:44:06 +00:00
pk f8af116033 dlopen() should make a copy of argument (Thomas Eberhardt). 1994-04-07 19:46:30 +00:00
pk a426b2b937 ns32k support by Matthias Pfaller. 1994-04-07 19:44:46 +00:00
pk afc89926d8 Use machine architecture when examining object files for compatibility. 1994-04-07 19:43:37 +00:00
cgd 95d6a185be no more MAP_FILE 1994-03-28 02:07:04 +00:00
chopps 8e6af40327 oops 1994-03-08 23:50:14 +00:00
chopps 3fcebc3096 flush instruction cache. 1994-03-08 06:52:33 +00:00
pk 1bb4f06e2a Libraries which are in the hints file but not in one's LD_LIBRARY_PATH (if
set) were not found.
1994-02-15 22:51:23 +00:00
pk 9b345fd6e5 Define an adjustment for {TEXT,DAT}_ADDRs.
Hide some things from rtld with #ifdef RTLD.
1994-02-10 21:21:27 +00:00
jtc fc1d8f3bac Fix spelling error in Copyright notice 1994-01-29 01:54:01 +00:00
pk bc9bb1a343 Like others, allow for SunOS .o files. 1994-01-28 21:02:21 +00:00
pk d27581fb4b Use somewhat customized version of malloc, in stead of relying on a
crummy sbrk() backend; proper aligment must be guaranteed on all archs.
Drafting dlopen, dlsym, et.al.
1994-01-28 21:01:20 +00:00
pk 90cfba21cb Use `.type' directives generated by gcc.
Numerous internal changes & bug fixes.
NOTE: must re-compile & re-link shared libraries before used to link programs.
1994-01-28 20:56:09 +00:00
pk ad127b0a0a Redone from scratch, but maintain SunOS compatibility. 1994-01-28 20:26:52 +00:00
pk 954ef13a90 Fill in gdb hook. 1994-01-12 19:19:09 +00:00
pk 0cc050772f Hooks for for shared C++ objects with static contructors/destructors. 1993-12-20 22:44:35 +00:00
mycroft a09abb4d2b Minor cleanup. 1993-12-10 05:10:22 +00:00
mycroft 8363f8736d Use MACHINE_ARCH. 1993-12-08 11:47:17 +00:00
pk fb781361ed Small nits. 1993-12-08 10:28:56 +00:00
pk a711901191 Parcelled out the heap allocator into separate file.
Changes prototype for findshlib() (corrected library search order for ld).
1993-12-08 10:28:05 +00:00
pk fa099af1f6 Many internal changes, most notably in the symbol counting stuff.
`ld -r -x'  now supported on all object files.
Support for long archive member names (AR_EFMT1 format),
	thanks to Bill Sommerfeld/Mark Eichin
Do the right(?) thing with symbol aliases (N_INDR) for POSIX lover, especially
when equiping shared libraries with these (this was *not* fun).
Handle silly archives (.sa) for people who needs them; turn on by `-Bsilly'.
1993-12-08 10:13:47 +00:00
mycroft e331ce34d0 #include ctype.h, since we use isdigit(). 1993-12-07 03:04:28 +00:00
cgd 1bd5116d82 MACHINE_ARCH support 1993-12-05 00:55:26 +00:00
paulus 5b59119fbb Machine-dependent part of ld for the m68k architecture,
allowing ld to support shared libraries on m68k-based machines.
1993-11-25 00:57:35 +00:00
mycroft e9e6f64ef6 Add /usr/X386/lib to the standard list of library paths. 1993-11-21 21:01:08 +00:00
pk 4a64975120 Make `-Z' actually do something different again (old style ZMAGICs). 1993-11-14 16:51:17 +00:00
pk c6cb826f23 Call breakpoint `BPT' in stead of `TRAP'. 1993-11-13 11:20:17 +00:00
pk a2d3040ffb Added function `md_set_breakpoint()'.
Define for TRAP. NOTE: THIS IS DEFINED AS `ta 1'!. This may need to be
changed for NetBSD.
1993-11-10 21:46:03 +00:00
pk 47aca600bd Added function `md_set_breakpoint()'. 1993-11-10 21:40:50 +00:00
pk 2d6241585d Do the debugger hooks.
Revised algorithm for finding symbols using `nz_other' (auxialiary type info).
1993-11-10 21:37:39 +00:00
pk 168c91b813 Use strsep() in stead of strtok() and restore colons in eg. env. vars. 1993-11-08 13:20:39 +00:00
pk 9446d24503 md_init_header: our exec header differs from SunOS's. 1993-11-06 19:15:31 +00:00
pk 6e2bed1cac Print symbol name in "undefined" error msg. 1993-11-03 21:35:54 +00:00
mycroft 25d572fb12 This warning is fucking annoying, and ld already told us about it when we
linked the executable.  Make it #ifdef DEBUG.
1993-11-03 04:58:57 +00:00
pk abbf20b6e1 use SHAREABLE in init_header() in stead of `entry_symbol'. 1993-10-27 00:56:17 +00:00
pk b817714018 -Bshareable added to CFLAGS. 1993-10-27 00:55:24 +00:00
pk 762354917d use SHAREABLE in init_header() in stead of `entry_symbol'. 1993-10-27 00:54:58 +00:00
pk 8ea3d67031 Search for top-of-stack blew up if program had no environment strings. 1993-10-26 19:30:13 +00:00
pk ecd08c7591 Make that #ifdef NetBSD, not __NetBSD__ 1993-10-24 00:52:40 +00:00
pk f385d97564 Use MID_MACHINE.
#ifdef NetBSD in stead of #ifdef sun
1993-10-24 00:48:20 +00:00
pk 0d1097aaf9 Use MID_MACHINE in stead of MID_I386 1993-10-24 00:47:05 +00:00
pk a0aae738e7 Changed prototype and internals of std_search_dir(). 1993-10-23 00:34:22 +00:00
pk 843df2403a Support for `ld.so.hints'.
Handle set[ug]id programs.
No longer use the `lm_lob' field to access parent objects, add private
link map `parent' field in stead (SUN_COMPAT weirdness).
1993-10-22 21:18:58 +00:00
pk 8846fa47e1 Some definitions for the `ld.so.hints' file. 1993-10-22 21:04:19 +00:00
pk 69af39d0a8 No rounding of bss size to page boundary in ZMAGIC a.out's, the kernel
chokes on it.
Some other minor changes.
1993-10-21 00:52:52 +00:00
pk 7f6cef25a6 Renamed confusingly named macro.
Fixed bug that was the result of said confusion.
1993-10-21 00:00:09 +00:00
pk 01f65b81e3 Make better distinction between SunOS and BSD. 1993-10-19 21:42:38 +00:00
pk 1dff6d7850 Define our copy of `errno', as it is no longer defined in libc. 1993-10-17 15:40:11 +00:00
pk 2dfde2bc39 Moved <link.h> here from usr.bin/ld as it is needed by other modules
and utilities (eg. crt0, libc, nm).
1993-10-17 00:51:30 +00:00
pk 0aebf1d941 A linker supporting shared libraries (sparc dependent code). 1993-10-16 21:54:33 +00:00
pk 3d68d0acae A linker supporting shared libraries (run-time part). 1993-10-16 21:54:08 +00:00
pk 34f24bf837 A linker supporting shared libraries (x86 dependent code). 1993-10-16 21:53:13 +00:00
pk 97ca10e374 A linker supporting shared libraries. 1993-10-16 21:52:27 +00:00