Commit Graph

119 Commits

Author SHA1 Message Date
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
2e3cc27a62 Get rid of some debug code that should no longer be needed. 2001-08-14 20:16:38 +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
a61a40997d Initial support for dynamic ELF support on ARM. 2001-07-15 03:08:33 +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
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
kleink
63ccd3db5b Sync with <sys/exec_elf.h> rev. 1.45: ElfNN_RelA -> ElfNN_Rela. 2001-04-25 12:24:50 +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
eeh
45de780533 Wrong register in machine code description. 2000-09-16 14:04:30 +00:00
matt
1ed7963458 Simplify some stuff. 2000-08-07 01:47:04 +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
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
eeh
3cf5c2adbf Added support for the SPARC v9 ABI. 2000-07-13 23:14:17 +00:00
matt
86d15d820b Update to current <machine/asm.h> 2000-07-03 03:31:47 +00:00
matt
0189702cee minor fix now that i've defined the plt0 entry. 2000-05-22 19:17:04 +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
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
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
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
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
castor
c195474580 This should use MACHINE_ARCH and test on "mipseb" instead of MACHINE and
"newsmips"
1999-06-07 18:04:31 +00:00
tsubai
c47f82d209 syncicache is needed... 1999-05-21 08:00:11 +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
tsubai
c2d83dc354 Make this compile. 1999-03-05 04:50:28 +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
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
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
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
801d8e5b9d Implement rtld_bind() stub.
Fix startup code.
1999-02-26 22:01:31 +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
christos
98619fe771 Remove unneeded args for rtld (kleink) 1999-02-19 10:22:14 +00:00
christos
580ca245fd Be consistant about the .rtld_start and _rtld_start 1999-02-12 17:15:52 +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
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
tsubai
775e7035f4 Add powerpc support. 1998-11-24 11:34:30 +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
lukem
dc3678728d use CPPFLAGS instead of CFLAGS 1997-10-22 05:45:08 +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