Subject: CVS commit: basesrc/libexec/ld.elf_so
To: None <source-changes@netbsd.org>
From: Charles M. Hannum <mycroft@netbsd.org>
List: source-changes
Date: 09/06/2002 06:05:38
Module Name: basesrc
Committed By: mycroft
Date: Fri Sep 6 03:05:38 UTC 2002
Modified Files:
basesrc/libexec/ld.elf_so: reloc.c rtld.h
basesrc/libexec/ld.elf_so/arch/alpha: alpha_reloc.c
basesrc/libexec/ld.elf_so/arch/arm: mdreloc.c
basesrc/libexec/ld.elf_so/arch/hppa: hppa_reloc.c
basesrc/libexec/ld.elf_so/arch/i386: mdreloc.c
basesrc/libexec/ld.elf_so/arch/m68k: mdreloc.c
basesrc/libexec/ld.elf_so/arch/mips: mips_reloc.c
basesrc/libexec/ld.elf_so/arch/powerpc: ppc_reloc.c
basesrc/libexec/ld.elf_so/arch/sh3: mdreloc.c
basesrc/libexec/ld.elf_so/arch/sparc: mdreloc.c
basesrc/libexec/ld.elf_so/arch/sparc64: mdreloc.c
basesrc/libexec/ld.elf_so/arch/vax: mdreloc.c
basesrc/libexec/ld.elf_so/arch/x86_64: mdreloc.c
Log Message:
Split _rtld_relocate_plt_object() into two MD functions:
* _rtld_relocate_plt_lazy() fixes up all the relocs pointing to the PLT. (On
most platforms it just does a simple base-relative fixup; on SPARC it does
nothing.)
* _rtld_relocate_plt_object() does immediate binding for a PLT entry.
The basic gist is that this saves a bit of time on SPARC (where the iteration
through the pltrela table was gratuitous), and a little less time on all other
platforms. A whole lot of #ifdef'ed crap is moved out of reloc.c, too.
NOT tested on: hppa sh x86_64
To generate a diff of this commit:
cvs rdiff -r1.61 -r1.62 basesrc/libexec/ld.elf_so/reloc.c
cvs rdiff -r1.40 -r1.41 basesrc/libexec/ld.elf_so/rtld.h
cvs rdiff -r1.9 -r1.10 basesrc/libexec/ld.elf_so/arch/alpha/alpha_reloc.c
cvs rdiff -r1.5 -r1.6 basesrc/libexec/ld.elf_so/arch/arm/mdreloc.c
cvs rdiff -r1.7 -r1.8 basesrc/libexec/ld.elf_so/arch/hppa/hppa_reloc.c
cvs rdiff -r1.5 -r1.6 basesrc/libexec/ld.elf_so/arch/i386/mdreloc.c
cvs rdiff -r1.5 -r1.6 basesrc/libexec/ld.elf_so/arch/m68k/mdreloc.c
cvs rdiff -r1.11 -r1.12 basesrc/libexec/ld.elf_so/arch/mips/mips_reloc.c
cvs rdiff -r1.16 -r1.17 basesrc/libexec/ld.elf_so/arch/powerpc/ppc_reloc.c
cvs rdiff -r1.5 -r1.6 basesrc/libexec/ld.elf_so/arch/sh3/mdreloc.c
cvs rdiff -r1.17 -r1.18 basesrc/libexec/ld.elf_so/arch/sparc/mdreloc.c
cvs rdiff -r1.12 -r1.13 basesrc/libexec/ld.elf_so/arch/sparc64/mdreloc.c
cvs rdiff -r1.5 -r1.6 basesrc/libexec/ld.elf_so/arch/vax/mdreloc.c
cvs rdiff -r1.11 -r1.12 basesrc/libexec/ld.elf_so/arch/x86_64/mdreloc.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.