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>