Subject: Re: Bogus variable in ld.elf_so
To: Bang Jun-Young <junyoung@mogua.com>
From: Jason R Thorpe <thorpej@wasabisystems.com>
List: tech-toolchain
Date: 09/05/2002 10:45:29
On Fri, Sep 06, 2002 at 01:47:06AM +0900, Bang Jun-Young wrote:

 > I don't understand this in ld.elf_so:
 > 
 > 		tmp = (Elf_Addr)(defobj->relocbase + def->st_value);
 > 		if (*where != tmp)
 > 			*where = tmp;
 > 
 > If *where is not same as tmp, value of tmp is assigned to *where and
 > they have same value. If *where is same as tmp, they are still same.
 > I can see there lots of unnecessary operations like above. Wouldn't
 > it be made simpler like
 > 
 > 		*where = (Elf_Addr)(defobj->relocbase + def->st_value);

I think it's to avoid having to take a COW fault in some situations,
though it's not clear to me that it's really necessary.

-- 
        -- Jason R. Thorpe <thorpej@wasabisystems.com>