Subject: Re: CVS commit: basesrc/libexec/ld.elf_so
To: Charles M. Hannum <mycroft@netbsd.org>
From: Bang Jun-Young <junyoung@mogua.com>
List: source-changes
Date: 09/08/2002 00:30:15
On Fri, Sep 06, 2002 at 06:05:38AM +0300, Charles M. Hannum wrote:
>
> 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.)
I think '_lazy' is unnecessary here.
> * _rtld_relocate_plt_object() does immediate binding for a PLT entry.
This doesn't look right to me. With this change our ld.elf_so does
no longer immediate binding properly. Look at:
#if 0
if (bind_now)
if (_rtld_relocate_plt_object(obj, dodebug) < 0)
ok = 0;
#endif
If bind_now is set, it should perform immediate binding for _all_
PLT entries. I guess you already know that - you commented it out.
Jun-Young
--
Bang Jun-Young <junyoung@mogua.com>