12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- 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-trampoline.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'.
- dl-syscalls.h
- -------------
- Used to contain all the macro functions for the system calls
- as well as the list of system calls supported. We now include
- <sys/syscall.h> but with the __set_errno macro defined empty
- so we can use the same file for the linker as well as userspace.
- Original code was taken from the Linux kernel source 2.4.17 and
- can be found in the file 'include/asm-mips/unistd.h'.
- dl-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-trampoline.h'.
- The code looks a bit different since we only need to pass the
- symbol index and the old GP register.
|