Commit Graph

271 Commits

Author SHA1 Message Date
pk c51687391d Actually set the RTLD_DL flag in dlopen'ed shared objects, per PR#2791. 1996-10-06 19:03:32 +00:00
thorpej 7d468e4a0c Iff __m68k__, use a `slight hack' to determine the magic of the executable
we're doing a dynamic link for, and change the page size used for offset
and size calculations if necessary.  Allows the same ld.so to be used with
mixed m68k4k and m68k8k executables and libraries.

Thanks a million to Gordon Ross for the help in making this work!
1996-09-10 22:17:51 +00:00
mark 48d30b1294 Fixed NetBSD tag. 1996-08-21 18:43:29 +00:00
phil cc13fe98cb Fix for dynamically linked functions returning structs. PR#2586/Pfaller 1996-07-31 06:22:41 +00:00
thorpej 648aed921f RCS id police. 1996-07-03 03:28:09 +00:00
pk 721a11bff8 Use DESTDIR to point at libraries like bsd.prog.mk does (PR#2524). 1996-06-08 22:22:26 +00:00
mark 060e1bc8f1 Initial commit of arm32 machine dependant code for ld.
Currently only supports static linking.
1996-05-17 21:51:07 +00:00
pk 05105a9150 Define RELOC_INIT_SEGMENT_RELOC for the ns32k (Matthias Pfaller; PR#2103). 1996-02-22 00:19:57 +00:00
pk 55d51fbb95 Relax checking of minor version number in `findhint()'. Also use the
directories from the hints (v.2) file for directory traversing.
This should take care of PR#1146.
1996-01-14 00:35:17 +00:00
pk ccc1c895ef Deal with v.2 hint files (hint srch dirs not yet used). 1996-01-09 00:02:28 +00:00
pk d98240030c Define LD_HINTS_VERSION_2:
- no longer hash on minor version number in hints file.
	- add list of ldconfig(8) search directories.
1996-01-09 00:00:11 +00:00
thorpej 2e1dc487c5 Add -fno-function-cse to PICFLAGS. Without it, Very Bad Things happen
when ld.so is compiled with gcc 2.7.2 on the m68k.  From
Niklas Hallqvist <niklas@appli.se> in PR #1557.  (Thanks, Nik, for reminding
me about this PR...)
1996-01-02 08:54:28 +00:00
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