thorpej
23abd45cd4
Add RCS ID.
2001-12-13 20:31:31 +00:00
thorpej
bbb7ad0534
* Add a linker script which provides a _GOT_END_ symbol that we can
...
use to find the end of the GOT, rather than relying on _DYNAMIC
to immediately follow the GOT. (A change in current binutils
moved _DYNAMIC, and thus would have broken our Alpha ld.elf_so).
* Add #ifdef'd out code to deal with the new PLT format.
2001-12-13 20:30:48 +00:00
rafal
24ed46ea21
Fix bug found by Izumi Tsutsui -- if _rtld_find_symdef returned NULL, the
...
runtime linker would crash. Restore behavior similar to version 1.3, where
the runtime linker continues on, ignoring the symbol.
2001-11-24 18:07:04 +00:00
skrll
aabfabf3e7
Allow both space and colon as a separator in LD_PRELOAD. Document this and
...
the fact that space may be retired in the future.
Closes misc/11961
Reviewed by christos
2001-11-02 15:28:36 +00:00
wiz
27bebba05c
Sort SEE ALSO, drop some unnecessary .Pp's, whitespace and misc fixes.
2001-11-01 01:10:59 +00:00
skrll
0a9eeb6303
Add a man page for ld.elf_so.
2001-10-31 18:26:23 +00:00
rafal
2576af45bb
Fix how underfined weak symbols are treated -- before, ld.so would do nothing
...
with them, rather than defaulting them to zero. This caused breakage with
the drawf EH stuff and init/fini code when they weren't used by the caller
(and hence the appropriate handlers were left undefined). Also fix an un-
initialized variable in symbol.c that only MIPS MD code tripped over.
2001-10-14 23:13:21 +00:00
mycroft
cf4aca11b5
In the `I can't believe it's been broken all this time' department:
...
_rtld_bind_start must save and restore the condition codes. Varargs functions
(like, say, printf()) depend on the state of cr1 to determine whether they need
to store floating point registers in the save area. Without this, the first
call to any particular varargs function will fail if floating point values were
passed.
2001-09-26 04:06:43 +00:00
mycroft
7ff3aa31e8
Reorganize PowerPC cold a little. The return value from _rtld_bind_pltgot()
...
was ambiguous in the case of a weak symbol that was not defined. This caused
RTLD_NOW to fail badly with shared libraries linked against the new crtbegin.o.
2001-09-10 06:09:41 +00:00
eeh
192ea0d41e
Correct some comments.
2001-08-14 22:17:48 +00:00
eeh
c9550f39ed
Workaround for binutils 2.11 behavior.
2001-08-14 20:17:25 +00:00
eeh
2e3cc27a62
Get rid of some debug code that should no longer be needed.
2001-08-14 20:16:38 +00:00
eeh
f4edff94e1
Pointers are NULL. Characters are '\0'.
2001-08-14 20:13:56 +00:00
matt
ee534ba09d
Fix ABS32 ARM reloc case. ELF shared libs on ARM now work!
2001-07-16 05:40:53 +00:00
matt
85d99cf46c
Fix binder routine to not use a volatile register.
2001-07-15 23:19:59 +00:00
matt
2285430c7e
Bugfix for _rtld_start. Enable common plt processing code for arm
2001-07-15 17:31:02 +00:00
matt
1c2ce68f11
Enable arm if OBJECT_FMT is ELF. Initialize first few GOT entries for ARM.
2001-07-15 03:09:22 +00:00
matt
a61a40997d
Initial support for dynamic ELF support on ARM.
2001-07-15 03:08:33 +00:00
matt
00f7d1ea67
Add support for ARM ELF dynamic relocs.
2001-07-15 01:44:10 +00:00
fvdl
b13cc91d31
Get stack layout right.
2001-06-20 17:58:16 +00:00
fvdl
e55b167011
Remove mistaken casts of PLT relocations to 32 bit values.
2001-06-20 17:58:05 +00:00
fvdl
315360cfd2
Adapt for an actually correct sys/exec_elf.h
2001-06-19 12:07:50 +00:00
fvdl
a904f36474
Don't use multi-line string literals.
2001-06-19 12:07:21 +00:00
fvdl
d1d73371a6
Preliminary x86-64 support. Not fully functional yet (toolchain bugs).
2001-06-19 01:11:03 +00:00
nathanw
ed485c7ad5
Correct spelling in a comment.
2001-05-28 06:10:20 +00:00
christos
7ddeec7d69
s/warn/xwarnx/ cuts down size by 50% by not pulling in stdio.
2001-05-27 23:26:47 +00:00
christos
21d58e7713
Provide compatibility for the NetBSD-1.5 branch. Note that I used
...
__NetBSD_Version__ instead of checking if the macro was not already
defined.
2001-05-24 17:42:48 +00:00
christos
cb12da02ff
Don't include <uvm/uvm_param.h>. It does not appear to be needed by anything.
...
<uvm/uvm_param.h> does not exist under 1.5. Tested on i386 and sparc.
Anyway, if it is indeed needed by other platforms then we'll put it back,
but I don't see how since it does not define any types.
2001-05-24 17:41:42 +00:00
christos
f8ad0818e5
Unloading objects, can cause other objects whose reference count becomes
...
0 to be unloaded. Make sure that when we unload those objects we remove
any references to them from the globals list... This fixes SIGSEGV with
apache+mod_php+mysql.
XXX: This fix should be pulled up.
christos
2001-05-10 20:19:25 +00:00
kleink
63ccd3db5b
Sync with <sys/exec_elf.h> rev. 1.45: ElfNN_RelA -> ElfNN_Rela.
2001-04-25 12:24:50 +00:00
christos
fc18ea2931
avoid nested extern
2001-02-04 22:11:12 +00:00
pk
38fd9b8f99
Avoid the use of a `switch(){}' statement before _rtld_init() is called.
...
`switch()' code may be translated using a jump table approach which causes
it to reference the equivalent of a global variable, something that must
be avoided before _rtld_init() has run.
2001-02-03 13:25:00 +00:00
christos
5d6793c06c
back out previous commit; I found a better way of handling the missing
...
dependencies.
2001-01-14 09:39:26 +00:00
christos
61944ce838
Don't use ${OBJS} in the dependency line, cause it is not defined yet.
...
Also add a .NOTMAIN for good measure.
2001-01-14 09:16:47 +00:00
scw
b37a02f8c1
Define VARPSZ so dynamic binaries work on both 4K and 8K page size machines.
2000-12-21 09:12:54 +00:00
mycroft
48b362e14c
More cruft.
2000-12-15 06:49:19 +00:00
mycroft
a19119777a
Clean up cruft in here.
2000-12-15 06:46:22 +00:00
mycroft
6ec13b9d73
Return an error when there are too many segments rather than abort()ing.
...
This way `ldd /usr/libexec/ld.elf_so' doesn't core dump.
2000-11-26 05:22:15 +00:00
mycroft
0581ae5bad
Make ldd(1) build again.
2000-11-10 23:53:04 +00:00
mycroft
2d376bed2b
When dlopen()ing with RTLD_GLOBAL, also make dependent libraries RTLD_GLOBAL.
2000-11-10 21:31:30 +00:00
simonb
ae2c9c22f1
Fix linked-list botch with sysctl-based library selection that meant
...
only the last line was used. Allow more than one white space character
between fields.
Reviewed by Christos Zoulas.
2000-11-10 18:19:06 +00:00
simonb
6e63b39fc6
Only need to include <sys/sysctl.h> once.
2000-11-09 23:14:21 +00:00
dan
d173359000
format warning fixes from he, after testing on 64-bit elf (alpha)
2000-10-11 20:46:07 +00:00
is
48052d04a3
Format string cleanups by sommerfeld.
2000-10-10 19:54:37 +00:00
eeh
45de780533
Wrong register in machine code description.
2000-09-16 14:04:30 +00:00
scottb
b5de616825
copy the real object filename to the rtld object path so that the
...
Dl_info structure can be properly filled by dladdr().
2000-08-28 04:15:54 +00:00
matt
1ed7963458
Simplify some stuff.
2000-08-07 01:47:04 +00:00
kleink
fb21fd7a91
Adjust a comment after the Great Renaming.
2000-07-27 10:44:39 +00:00
mycroft
94581370f5
The ELF ABI declares that argc must fill an `argument slot'. Make it so.
...
For __sparc_v9__ only, do a hack to make executables work temporarily before
and after the kernel is switched.
2000-07-26 15:40:07 +00:00
mycroft
43cfeb27a9
Catch up with type changes. Also:
...
* Apply DT_PLTRELSZ to (one of) pltrel or pltrela *after* we've finished
parsing the headers, so we know which one.
* Fix sparc64 bogons. (It works now!)
2000-07-26 02:07:34 +00:00
thorpej
a8248dcc27
Make it build on non-VARPSZ again.
2000-07-19 15:01:16 +00:00
eeh
55c1b7fb0d
Fix some issues with SPARC V9 ELF binaries.
2000-07-18 22:33:55 +00:00
matt
824a084272
More VAX ELF changes.
2000-07-17 02:55:52 +00:00
matt
63465d3193
No need for RELOCATE_SELF since the VAX does real PIC. Rewrite the bind
...
routine to deal with JMP .vs. CALLx differences.
2000-07-14 22:03:02 +00:00
matt
9118b9fe90
Split DEBUG into two lines to make it easier to enable each separately.
2000-07-14 22:01:09 +00:00
matt
72ed915502
Update to reflect VAX ELF reality.
2000-07-14 22:00:33 +00:00
matt
cc5d6b2a4d
Initialize ld.elf_so's textsize.
2000-07-14 21:59:58 +00:00
eeh
3cf5c2adbf
Added support for the SPARC v9 ABI.
2000-07-13 23:14:17 +00:00
christos
910cd9b309
fix non-portable bit-fields
2000-07-06 03:16:51 +00:00
matt
23bca583f4
shut gcc up about a bogus possibly used before initialized.
2000-07-03 03:33:52 +00:00
matt
c72bbb2c51
Treat short and byte print formats as and cast to the right size.
2000-07-03 03:32:57 +00:00
matt
86d15d820b
Update to current <machine/asm.h>
2000-07-03 03:31:47 +00:00
matt
5aa9ca0144
If OBJECT_FMT is ELF and MACHINE_ARCH = vax, build ld.elf_so
2000-07-03 03:30:52 +00:00
mrg
ad91bba6a6
we now need <uvm/uvm_param.h>
2000-06-26 15:37:26 +00:00
christos
baeb94e0b1
Also set __mainprog_obj so .ini sections can call dlopen()
2000-06-16 19:51:05 +00:00
cgd
db755e7c76
sweep of my licenses (userland files w/o only my copyright) for
...
consistency. (no functional changes)
2000-06-14 17:24:02 +00:00
cgd
d220ca5ba3
fix up NetBSD RCS Ids to match the standard, and the leading comment as
...
to match as well. No functional changes.
2000-06-14 06:48:47 +00:00
jdolecek
06d16ede1e
slighly move the assert() added in last commit, so that it's
...
actually useful
2000-06-03 06:51:57 +00:00
jdolecek
2a05365bbb
_rtld_unref_dag(): needed->obj might be null if the unreffed object has
...
some unsatisfied references (most often when compiled without necessary
-Wl,-R), so check for that instead of causing null-dereference;
this way the code has a chance to cleanup after itself and report
the error to caller
Thanks to Jason Thorpe for helping fix this!
2000-06-02 22:52:28 +00:00
matt
0189702cee
minor fix now that i've defined the plt0 entry.
2000-05-22 19:17:04 +00:00
bjh21
6c97e2bd78
Initial commit of arm26 port
2000-05-09 21:55:44 +00:00
kleink
e425e0a706
PowerPC: support ADDR16_LO, ADDR16_HI and ADDR16_HA relocations.
2000-05-01 11:41:08 +00:00
erh
a497b0d8ab
Cause ld.elf_so to find the symbols for __progname and environ and set them. If we wait until crt0 gets around to doing it it's too late for any library init functions.
2000-04-15 05:41:46 +00:00
christos
46d52e1ec5
re-indent sanely _rtld_dlsym() [no functional change]
2000-04-15 05:27:49 +00:00
soren
0b24ff5b31
Also print a newline after the error in the xwarnx case.
2000-04-02 23:04:32 +00:00
mycroft
3d5dc334de
Don't try to get libc_pic from the libc compile directory. If we're doing a
...
build, libc has already been installed.
2000-03-26 21:55:55 +00:00
chs
871e0c1533
switch back to using a file mapping for the initial mapping of a new object.
...
this allows the kernel to use PMAP_PREFER() to give us better alignment on
platforms that care.
2000-02-13 04:28:09 +00:00
scottb
076e309d3e
change first argument of dladdr to const.
2000-02-08 16:22:59 +00:00
scottb
c0cf420b69
add hooks to support the dladdr function.
2000-02-07 21:40:40 +00:00
kleink
65b8f3b2eb
Change _rtld_dlclose() to unload the object via _rtld_unload_object() rather
...
than by itself. Besides being duplicated code the open-coded version
also did not take care of cleaning up after the object's DAG(!).
Fixes PR bin/8905.
2000-02-07 19:02:49 +00:00
christos
3bc3e6f774
use xwarnx instead of warnx
2000-01-15 01:03:45 +00:00
christos
3856850e36
don't stutter when printing error messages.
1999-12-27 15:36:36 +00:00
christos
b360d70cb7
PR/9031: Scott Ellis: Ignore empty sysctl directive lines.
1999-12-20 02:43:58 +00:00
christos
4374b52ab0
make a debugging formatting statement work portably
1999-12-15 20:13:31 +00:00
christos
f0e72d450d
Do what the people want. Support full sysctl names.
1999-12-15 05:22:37 +00:00
christos
75bdf8c379
indent properly a debugging statement and fix grammar.
1999-12-13 10:47:38 +00:00
christos
aa594cf123
For the benefit of ldd and debuggers, append more Needed_Entry elements
...
if the library transformation attached more than one element.
1999-12-13 09:22:52 +00:00
christos
ea816c78b2
Enable parsing and mapping of hardware dependent libraries in ld.so.conf
...
To be documented in the man page.
1999-12-13 09:09:34 +00:00
itohy
69c745c3d5
Use "addend" for R_68K_GOT32, R_68K_PC32, and R_68K_32 relocations.
...
I'm not sure whether R_68K_GOT32 relocations appear in shared
objects, though....
Example:
lea %pc@(got+0x1234@GOTPC),%a0 | R_68K_GOT32
bsrl foo+0x5678 | R_68K_PC32
lea bar+0x9abc,%a1 | R_68K_32
1999-12-08 08:47:10 +00:00
fredb
d37aed91fb
More CL* fallout.
1999-12-05 18:36:25 +00:00
thorpej
3bf43967ff
Name consistencty nit: curmark -> _rtld_curmark
1999-11-10 18:48:19 +00:00
thorpej
70e2953dac
Some slight cosmetic cleanup.
1999-11-10 18:34:49 +00:00
mycroft
bbe4b07983
Make this more likely to compile with ld.elf_so changes. (But this is
...
untested.)
1999-11-07 08:08:15 +00:00
mycroft
4bbb8dc9fb
Make this more likely to compile with ld.elf_so changes. (But this is
...
untested.)
1999-11-07 08:01:51 +00:00
mycroft
7ea23adf34
More fallout.
1999-11-07 06:48:21 +00:00
mycroft
4b9f2ff9e0
Fix fallout from MD ld.elf_so changes.
1999-11-07 06:41:49 +00:00
mycroft
305c949781
Changes from msaitoh to fix local/global symbol confusion, and to fix weak
...
symbol support -- updated by me for elf.h changes.
1999-11-07 00:21:12 +00:00
erh
6752f572d8
Remove ELFNAME defines since they are defined in sys/exec_elf.h
1999-11-04 02:00:17 +00:00
simonb
d10f49f606
More SVR4-style ELF cleanups.
1999-10-28 23:58:21 +00:00
tsubai
64ac9d7bdb
Revert to rev. 1.4. This file didn't need to change.
1999-10-28 09:50:07 +00:00
kleink
522cbf0248
Update to match new SVR4-style definition names in <sys/exec_elf.h>.
1999-10-25 13:55:06 +00:00
hannken
222397ee58
Undo last change. While these macros are defined in exec_elf.h, they are
...
enclosed by `#ifdef _KERNEL'.
1999-10-22 10:39:16 +00:00
hannken
db05621dec
Undo last change. While these macros are defined in exec_elf.h, they are
...
enclosed by `#ifdef _KERNEL'.
1999-10-22 10:30:08 +00:00
erh
b11baa5513
Remove ELFNAME macros which are already defines in exec_elf.h
1999-10-21 21:15:04 +00:00
itohy
6fa7d72ce5
Make __SVR4_ABI__ optional.
1999-10-18 03:26:53 +00:00
kleink
83265a56f2
Bump text alignments to 4 bytes.
1999-08-23 09:13:25 +00:00
matt
741f18b695
Initial VAX ELF32 support (mostly untested). It's checked primarily for
...
testing and archival for now. I don't expect anyone to work with it
since the binutils and gas changes are still pending. But you got to
crawl before you walk.
1999-08-21 19:26:18 +00:00
christos
46cd6f2aad
reflect reality
1999-08-20 21:12:47 +00:00
christos
2f37f42366
fix typo
1999-08-20 21:10:27 +00:00
christos
fb292d7f02
enable /etc/ld.so.conf processing
...
[reviewed by thorpej]
1999-08-19 23:42:15 +00:00
thorpej
5c5817ee4a
When allocating the entire address space of an object, map an anonymous
...
region first (using the data/bss protection) covering it, then overlay
the text and data regions at the appropriate offsets within the region,
and then unmap any gap between the text and data.
The previous method of maping the entire address space with the actual
file object itself is incorrect, as it may extend past the end of the
file if the section alignment is large enough.
This bug was the source of the libposix failure on the SPARC and another
similar failure (with libc!) on the Alpha (failure was accompanied by
a "uvn_io: size check fired" message on the console).
1999-08-06 22:33:49 +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
4d256c199f
When dlopen()'ing a shared object without an absolute pathname, search
...
for it in the rpath of the main program as well as the path specified
in LD_LIBRARY_PATH.
1999-07-22 00:18:19 +00:00
thorpej
206408b533
Protect certain definitions from view by crt0, by wrapping them in
...
#ifdef _RTLD_SOURCE.
Should fix the "variable page size" build error of crt0 on the SPARC.
1999-07-05 17:55:34 +00:00
christos
00e5621847
We need to compile with -DVARPSZ, because the sparc has a variable page
...
size depending on arch. Make it an error to compile without it. This
caused -lposix linked programs to fail.
1999-06-22 16:28:22 +00:00
thorpej
3787c5c3d8
MAP_COPY -> MAP_PRIVATE
1999-06-17 21:09:47 +00:00
kleink
8788923e6a
Turn bool, true and false into an enumeration and enumeration constants to
...
avoid integer promotion warnings.
1999-06-16 15:41:24 +00:00
kleink
571aef82d9
Don't include the ident .note assembly when linting.
1999-06-15 15:54:28 +00:00
castor
c195474580
This should use MACHINE_ARCH and test on "mipseb" instead of MACHINE and
...
"newsmips"
1999-06-07 18:04:31 +00:00
kleink
4a61873f68
Update for m68k.
1999-05-31 14:52:11 +00:00
kleink
8b74e6d78e
Implement LD_PRELOAD support.
1999-05-31 14:48:16 +00:00
tsubai
c47f82d209
syncicache is needed...
1999-05-21 08:00:11 +00:00
thorpej
adadf5ecc7
Don't even make depend if we're not going to build ld.elf_so. this is
...
especially important if the assembler syntax is different.
1999-05-07 22:04:27 +00:00
kleink
4b749d888f
Always use ${MACHINE_ARCH} rather than ${MACHINE}, and reorder architectures
...
a bit.
1999-04-29 15:31:05 +00:00
kleink
75030fa2ee
Add m68k code.
1999-04-29 15:06:41 +00:00
thorpej
44672d5287
Simplify _rtld_start() a little, and shave some cycles. Spefically, there's
...
no need to save the stack pointer. Just push the space for the cleanup
and obj_main pointers before calling _rtld(), and pop it after loading those
pointers into the appropriate argument registers for the program entry point.
1999-04-19 00:05:00 +00:00
thorpej
80deb5d223
Tidy this up a little.
1999-04-18 23:12:59 +00:00
ws
bf9c27b80b
Add code to use the kernel provided page size.
...
Enable this on the powerpc only for now.
1999-04-18 19:40:06 +00:00
ws
5423093850
Modify syncicache on PowerPC from an inline to a real function.
...
Support different cache line sizes with the same object code in userland.
While here, move the function to implementation name space.
1999-04-17 21:16:45 +00:00
simonb
8400044681
Remove the ld.so link for ld.elf_so - the compat13 package takes care
...
of this.
1999-04-16 15:49:20 +00:00
simonb
14fe5254b3
Don't include <machine/regdef.h>.
1999-03-28 11:56:51 +00:00
thorpej
e278587d62
Move the link.h files for the different shlib formats via repository copy,
...
and rename them to match the executable format. Introduce a new link.h
file which automatically picks the correct header based on the target of
the toolchain.
1999-03-19 22:06:36 +00:00
kleink
34729a4b4f
Remove /usr/local/lib from RTLD_DEFAULT_LIBRARY_PATH; c.f. PR bin/7146.
1999-03-19 18:25:57 +00:00
christos
3456da383e
Fix i386 problem, when we are relocating ourselves... We cannot depend
...
on the address of GOT or _DYNAMIC.
1999-03-13 20:00:14 +00:00
kleink
3b03384405
Update an i386-ismed comment.
1999-03-08 10:44:25 +00:00
drochner
90218b7032
make the mipse[lb]->mips translation really work,
...
thanks Izumi Tsutsui
1999-03-05 11:57:54 +00:00
tsubai
c2d83dc354
Make this compile.
1999-03-05 04:50:28 +00:00
christos
ec2edc19fd
Make this compile without -DRTLD_LOADER and fix printf format problems on
...
the alpha.
1999-03-03 21:18:00 +00:00
jonathan
1988441027
Not all ports use 'tmp'.
1999-03-03 12:20:00 +00:00
jonathan
3eeb52dee0
Makefile ${MACHINE_ARCH} changes for mips{eb,el}, as suggested by
...
Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
1999-03-03 12:00:18 +00:00
christos
c346a6827a
fix rdbg macro args.
1999-03-01 18:59:31 +00:00
christos
26475619ed
KNF
1999-03-01 16:40:07 +00:00
christos
bc97a25328
Reality check.
1999-03-01 16:33:21 +00:00
christos
77aa6b2a64
- Use c style comments.
...
- & -> and
- align 4 in both functions for consistency.
1999-03-01 14:40:32 +00:00
kim
62b98a9670
Make mkdep succeed (use matching quotes in comment).
1999-03-01 03:39:39 +00:00
scottr
2b90737599
Replace local xva_arg() inline function with macros similar to those in
...
the stdio vfprintf() function. Fixes compilation errors on powerpc due
to differences in how va_list is implemented.
1999-02-27 21:52:23 +00:00
scottr
b69760be08
Fix typo introduced in rev 1.11
1999-02-27 21:38:04 +00:00
pk
e81b9ed433
* Make changing the PLT slot entry (lazy function binding) thread-safe.
...
* Insert `iflush' instructions for the patched words in PLT entries.
1999-02-27 17:12:13 +00:00
pk
4e7849055a
Add comment on the necessity of having to look at implicit memory addends
...
even though the sparc architecture uses `Elf_Rela' structures exclusively.
1999-02-27 11:36:02 +00:00
pk
1c13c70bab
Introduce pre-preocessor symbol RTLD_INHIBIT_COPY_RELOCS.
...
Currently, only mips does not include COPY_RELOCs code.
1999-02-27 10:44:26 +00:00
pk
a32bf0c1c2
Just initialize the stack-based temporary `rtld self' object.
1999-02-27 10:35:16 +00:00
pk
5c519e8777
Target bitmask for RELOC_RELATIVE should be a full word.
...
Also for RELOC_RELATIVEs, add in the memory contents in addition to r_addend.
1999-02-27 10:24:52 +00:00
christos
ddadb71e4e
Relative relocations should use addend.
1999-02-26 22:50:03 +00:00
pk
22001aee9c
Take care of `load address relative' relocations.
...
Ignore JMP_SLOTs in non-plt relocations.
1999-02-26 22:13:49 +00:00
pk
f6a359f27f
Completely construct the first PLT entry and correctly compute the
...
PC relative offset in the call insn.
1999-02-26 22:07:47 +00:00
pk
801d8e5b9d
Implement rtld_bind() stub.
...
Fix startup code.
1999-02-26 22:01:31 +00:00
tv
7255b47042
Partial fix for Alpha breakage. s/tmp_value/tmp/ in two places, and don't
...
try to check _rtld_objself when doing R_TYPE(RELATIVE) relocs, as the
Alpha ld.elf_so contains them!
I'm not sure the logic for the RELATIVE fix is quite right; it happens to
Work on alpha, but do we actually need to make sure we aren't relocating
ld.elf_so there?
XXX: I am working on making use of RTLD_RELOCATE_SELF on alpha, which may
make this hack of a fix moot.
1999-02-25 21:49:04 +00:00
christos
84cb65780e
Cleanup global variable access so rtld can be self relocating. Also KNF
...
reloc.c and move md sparc parts to arch/sparc/mdreloc.c
Now we don't need to load at address 0 on the i386 and the mips should be
trivial to fix.
1999-02-24 18:31:00 +00:00
christos
62926e7ee2
Work in progress (does not work yet).
1999-02-24 18:25:40 +00:00
pk
4b4b099e87
Fix glitch in previous.
1999-02-24 12:20:30 +00:00
pk
4c7fbbb5c8
Add an approximation of the necessary sparc bits in here.
...
I've not followed the trend in this file by trying to wrench the MD
code into individual functions. Rather I,ve replaced several functions
wholesale. Anyway, this whole file needs to be re-done.
1999-02-22 17:06:11 +00:00
kleink
8e718db8de
Replace home-grown header file installation with INCS/INCSDIR; from Erik
...
Bertelsen in PR bin/6869.
1999-02-21 18:10:24 +00:00
christos
98619fe771
Remove unneeded args for rtld (kleink)
1999-02-19 10:22:14 +00:00
christos
abbd7cf487
tv is right; we don't need to specialcase the i386.
1999-02-13 16:35:14 +00:00
lukem
dcab0210a0
convert from NOxxx= to MKxxx=no.
...
include <bsd.own.mk> if testing a MKxxx variable.
1999-02-13 02:54:17 +00:00
tv
9209c9b03a
On everything but the i386, don't write new values into the GOT that are
...
not pointing to the PLT in _rtld_relocate_plt_object(). I'm not quite
sure why the i386 added the extra relocations, but it removed the `return
0' needed for other arches.
THIS DOES NOT YET FIX BUILDING LD.ELF_SO ON ALPHA. There are some other
binutils 2.9.1 related issues, but this does return build ability to
2.8.1 based as and ld. Will do more investigation later.
1999-02-12 17:52:07 +00:00
christos
580ca245fd
Be consistant about the .rtld_start and _rtld_start
1999-02-12 17:15:52 +00:00
christos
73917056ff
Fixed for i386/elf.
1999-02-07 17:24:05 +00:00
christos
fed6586383
Support for {h,l,q,ll} modifiers and %p
1999-02-07 17:23:40 +00:00
christos
246b3960cd
Add -DRTLD_DEBUG_RELOC commented out.
1999-02-07 17:23:03 +00:00
castor
82bc6ffe05
Avoid confusing various C preprocessors by avoiding # [0-9]
1999-01-18 06:49:57 +00:00
christos
d86bec83ec
PR/6824: Erik Bertelsen: Missed arch directory in recent move.
1999-01-16 14:59:03 +00:00
thorpej
f821bc6d6b
Fixup some printf format argFixup some printf format argFixup some printf format argFixup some printf format argFixup some printf format argFixup some printf format argFixup some printf format argFixup some printf format argFixup some printf format args.
1999-01-11 23:12:16 +00:00
christos
9f77dc2e81
Add a few comments about the i386 and others.
1999-01-11 11:05:29 +00:00
christos
14d2402e4b
Add i386 bits. Only works with -fpic or -fPIC compiled binaries since
...
COPY relocations don't work.
1999-01-10 18:21:24 +00:00
christos
d72f81978d
Add i386 bits
1999-01-10 18:18:56 +00:00
christos
afb18a5077
Moved via repository copy to arch/powerpc
1999-01-10 17:34:42 +00:00
christos
86ef105de2
Moved via repository copy to arch/mips
1999-01-10 17:33:59 +00:00
christos
a12e7c4c86
Moved via repository copy to arch/alpha
1999-01-10 17:33:11 +00:00
christos
ab951f38e0
Add __attribute__ for printf like commands.
1999-01-10 17:19:01 +00:00
castor
dc6b4c42a3
Restore missing variable declaration with -DRTLD_DEBUG
1999-01-09 18:10:19 +00:00
tsubai
775e7035f4
Add powerpc support.
1998-11-24 11:34:30 +00:00
jonathan
fd7cb41920
gdb's shared-lib mapping code in solib.c has #ifdef dependencies on
...
DT_MIPS_RLD_MAP being defined on mips targets with shared libs. Since
netbsd's gdb config.h defines HAVE_LINK_H, link.h is expected to
provide it. So #include <machine/elf_machdep.h> to make it so.
1998-10-30 05:43:40 +00:00
ross
b899771419
Rewrite AuxInfo handling to track AuxID changes in sys/exec_elf.h.
1998-10-07 02:53:27 +00:00
thorpej
3d5ce01bb7
At least make the comments accurate.
1998-09-13 05:53:34 +00:00
mrg
c0ea06b21f
remove MD asm as(1) comments from sysident.h, placing them in a comment
...
above the asm() block. now we can share sysident.h across all ports..
change ld.elf_so to be for $MACHINE == sparc64 not sparc (yet!).
1998-09-13 03:50:31 +00:00
tv
65b8da28f5
Use -L for libc's objdir in case NOPICINSTALL is set in mk.conf.
1998-08-27 01:55:16 +00:00
christos
e8902c2d7c
Don't install the ELF link.h in a.out systems!@#$#@
1998-08-13 18:16:43 +00:00
tv
55267a7623
Use NOPIC to mean "no shared libraries", not NOSHLIB.
1998-08-04 17:02:16 +00:00
tv
3ecc6b044e
Some local changes accidentally made it into the last commit; back that
...
part out (noticed by mycroft; thanks!)
1998-07-15 11:26:28 +00:00
tv
77a275d732
Change ld.so default behavior to RTLD_LOCAL, and make RTLD_LOCAL into a
...
new flag bit. Keep RTLD_GLOBAL as an actual flag bit so it won't be
re-used, or may be used for something later. Mask the dlopen() mode bits
in ld.elf_so so a comparison against RTLD_NOW works. (RTLD_{LOCAL,GLOBAL}
needs to be implemented for ld.elf_so.)
1998-07-14 22:18:36 +00:00
tv
d643a3384e
Allow PAGESIZE to be set via a -D option to cc (CLBYTES not a constant on
...
sparc; it is defined in terms of the kernel variable "nbpg")
1998-07-01 20:42:47 +00:00
mhitch
c01fadd882
Don't forget to update _rtld_objtail when _rtld_dlclose() removes the
...
current tail entry.
1998-06-16 03:24:13 +00:00
mhitch
e8c1659e9a
${DESTDIR} isn't needed - which isn't what the example in
...
/usr/share/mk/bsd.README seems to indicate.
1998-05-11 19:30:15 +00:00
mhitch
f00af7b07c
Oops - when assembled with PIC, the jal gets expanded, so what used to be
...
in the branch delay slot was no longer getting executed at the proper time.
This resulted in a corrupt ps_strings pointer and caused programs trying to
use ps_strings to fail.
1998-04-09 04:45:08 +00:00
thorpej
c506364411
Make this work with objdirs.
1998-03-26 07:36:30 +00:00
mhitch
082edecc20
Add support for mips.
1998-03-25 04:12:32 +00:00
jonathan
5e0e8cec39
More table-driven changes for different toolchains:
...
* new bsd.own.mk variable OBJECT_FMT with values "a.out" or "ELF".
* use OBJECT_FMT in Makefile tests that depend on toolchain.
* Add new bsd.own.mk variable NOSHLIB that, if set indicates a given
port doesnt yet do shared libraries. Set on powerpc.
* Document new feature-test variables in src/share/mk/bsd.README.
Tested on i386, mips, fakedup Alpha environment.
1998-02-23 10:09:31 +00:00
mycroft
4462053ab3
Fill in missing (default) mmap(2) flags.
1998-02-20 09:27:18 +00:00
cjs
3dd557ba9c
Link with the stuff we compiled, rather that whatever random stuff happens
...
to be installed on the system we're compiling on.
1997-10-25 06:18:27 +00:00
jonathan
faca0ea24c
Install our ELF-aware link.h into /usr/include on mips hosts.
1997-10-23 19:27:28 +00:00
lukem
dc3678728d
use CPPFLAGS instead of CFLAGS
1997-10-22 05:45:08 +00:00
mrg
896c1cce87
WARNS?=1
1997-10-08 08:55:35 +00:00
mrg
0553741950
move man pages into share/man.
1997-06-23 04:51:16 +00:00
cjs
7a66732d34
Back out BUILDDIR and NOINSTALL changes.
1997-05-31 21:21:13 +00:00
cjs
5fd7ce7066
These updates to the build allow building against include files
...
and libs in the object tree, if you use a separate object tree,
while maintaining backward compatability with other build methods.
See the notes in src/share/mk/bsd.README for full details. Note
that the `make includes' target now only installs the include files
in the build directory (if you use one--otherwise they go in DESTDIR
just like before); `make install' will install include files in
DESTDIR.
1997-05-26 03:55:19 +00:00
thorpej
cb232ac37b
STRIP -> STRIPFLAG (sign, I guess I forgot to check this one in last night)
1997-04-17 22:17:27 +00:00
cgd
7631ac43fd
make sure that ld.elf_so's path is in the data segment
1997-04-15 07:15:46 +00:00
cgd
aee2cfeaa1
pull in arch-specific Makefile.inc only if it exists
1997-04-10 17:39:20 +00:00
christos
d59123b39b
- Makefile cleanups
1997-03-24 22:15:37 +00:00
cgd
fbf6ff628e
put in two identifying notes, which new binutils snapshots will turn
...
into PT_NOTE sections so they can be examined by execve() to figure
out whether this is a native binary, what emulation it's to be run under,
etc.
1997-03-21 05:39:42 +00:00
cgd
1948031343
use 'normal' ELF library lookup rules
1997-02-17 19:32:05 +00:00
cgd
e513f97a8b
don't include members of Struct_Obj_Entry conditionally.
1997-02-14 22:30:25 +00:00
cgd
f87e04ac68
that which thou openest, thou shalt close.
1997-02-03 19:45:02 +00:00
cgd
0b2b5475a4
nclude dlfcn.h, and pull RLTD_LAZY in from there. Assume that RTLD_NOW is
...
RLTD_LAZY + 1 (for now), if it's not defined. RTLD_NOW should be defined
in dlfcn.h, since some code (e.g. X11) wants it and assumes that it has
the value currently used by our RTLD_LAZY.
1996-12-18 22:27:29 +00:00
cgd
df19e8aaf2
remove /usr/localelf/lib from default library path
1996-12-17 05:04:10 +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
41fe218b25
First cut at an ELF shared loader. Originally from John Polstra's FreeBSD elf
...
kit, then hacked on by Matt Thomas <matt@3am-software.com>, then by me (to
make it work with new versions of the toolchain, etc.). 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 20:37:55 +00:00