"Steven J. Hill" 1e811cd2c0 Fixed MIPS dynamic linker by removing link order dependency bug. 22 tahun lalu
..
README 4a5a81ac16 Patch from Steven J. Hill <sjhill@realitydiluted.com>: 22 tahun lalu
boot1_arch.h 1e811cd2c0 Fixed MIPS dynamic linker by removing link order dependency bug. 22 tahun lalu
dl-startup.h 1e811cd2c0 Fixed MIPS dynamic linker by removing link order dependency bug. 22 tahun lalu
dl-syscalls.h 96749a7682 Steven J. Hill's latest mips dynamic loader updates 22 tahun lalu
dl-sysdep.h 1e811cd2c0 Fixed MIPS dynamic linker by removing link order dependency bug. 22 tahun lalu
elfinterp.c 1e811cd2c0 Fixed MIPS dynamic linker by removing link order dependency bug. 22 tahun lalu
ld_syscalls.h 96749a7682 Steven J. Hill's latest mips dynamic loader updates 22 tahun lalu
ld_sysdep.h 1e811cd2c0 Fixed MIPS dynamic linker by removing link order dependency bug. 22 tahun lalu
resolve.S 4a6cfe3180 Another mips patch from Steven J. Hill: 22 tahun lalu

README

Almost all of the code present in these source files was taken
from GLIBC. In the descriptions below, all files mentioned are
with respect to the top level GLIBC source directory accept for
code taken from the Linux kernel.

boot1_arch.h
------------
Contains code to fix up the stack pointer so that the dynamic
linker can find argc, argv and Auxillary Vector Table (AVT).
The code is taken from the function 'RTLD_START' in the file
'sysdeps/mips/dl-machine.h'.

elfinterp.c
-----------
Contains the runtime resolver code taken from the function
'__dl_runtime_resolve' in 'sysdeps/mips/dl-machine.h'. Also
contains the function to perform relocations for objects
other than the linker itself. The code was taken from the
function 'elf_machine_rel' in 'sysdeps/mips/dl-machine.h'.

ld_syscalls.h
-------------
Contains all the macro functions for the system calls as well
as the list of system calls supported. The functions were taken
from the Linux kernel source 2.4.17 and can be found in the
file 'include/asm-mips/unistd.h'.

ld_sysdep.h
-----------
Contains bootstrap code for the dynamic linker, magic numbers
for detecting MIPS target types and some macros. The macro
function 'PERFORM_BOOTSTRAP_GOT' is used to relocate the dynamic
linker's GOT so that function calls can be made. The code is
taken from the function 'ELF_MACHINE_BEFORE_RTLD_RELOC' in the
file 'sysdeps/mips/dl-machine.h'. The other macro function
'PERFORM_BOOTSTRAP_RELOC' is used to do the relocations for
the dynamic loader. The code is taken from the function
'elf_machine_rel' in the file 'sysdeps/mips/dl-machine.h'. The
final macro function is 'INIT_GOT' which initializes the GOT
for the application being dynamically linked and loaded. The
code is taken from the functions 'elf_machine_runtime_setup'
and 'elf_machine_got_rel' in 'sysdeps/mips/dl-machine.h'.

resolve.S
---------
Contains the low-level assembly code for the dynamic runtime
resolver. The code is taken from the assembly code function
'_dl_runtime_resolve' in the file 'sysdeps/mips/dl-machine.h'.
The code looks a bit different since we only need to pass the
symbol index and the old GP register.