Subject: Re: CVS commit: basesrc/libexec/ld.elf_so
To: Charles M. Hannum <mycroft@netbsd.org>
From: Bang Jun-Young <junyoung@mogua.com>
List: tech-toolchain
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>