This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Remove divide from _ELF_DYNAMIC_DO_RELOC
- From: "Carlos O'Donell" <carlos at redhat dot com>
- To: Chung-Lin Tang <chunglin_tang at mentor dot com>, libc-alpha at sourceware dot org
- Cc: David Miller <davem at davemloft dot net>, "Joseph S. Myers" <joseph at codesourcery dot com>, OndÅej BÃlka <neleai at seznam dot cz>
- Date: Fri, 23 May 2014 09:59:07 -0400
- Subject: Re: [PATCH] Remove divide from _ELF_DYNAMIC_DO_RELOC
- Authentication-results: sourceware.org; auth=none
- References: <5347B7EE dot 6020507 at mentor dot com>
On 04/11/2014 05:37 AM, Chung-Lin Tang wrote:
> 2014-04-11 Chung-Lin Tang <cltang@codesourcery.com>
>
> * elf/dynamic-link.h (_ELF_DYNAMIC_DO_RELOC): Remove MIN() and
> assign raw DT_REL[A]COUNT value to ranges[0].nrelative.
OK with changes.
> diff --git a/elf/dynamic-link.h b/elf/dynamic-link.h
> index 7b3e295..34ef88a 100644
> --- a/elf/dynamic-link.h
> +++ b/elf/dynamic-link.h
> @@ -122,8 +122,7 @@ elf_machine_lazy_rel (struct link_map *map,
> ranges[0].size = (map)->l_info[DT_##RELOC##SZ]->d_un.d_val; \
> if (map->l_info[VERSYMIDX (DT_##RELOC##COUNT)] != NULL) \
> ranges[0].nrelative \
> - = MIN (map->l_info[VERSYMIDX (DT_##RELOC##COUNT)]->d_un.d_val, \
> - ranges[0].size / sizeof (ElfW(reloc))); \
> + = map->l_info[VERSYMIDX (DT_##RELOC##COUNT)]->d_un.d_val; \
> } \
> if ((map)->l_info[DT_PLTREL] \
> && (!test_rel || (map)->l_info[DT_PLTREL]->d_un.d_val == DT_##RELOC)) \
Please add a top-level comment saying that 'COUNT', when present, overrides the
use of 'SZ' to compute the size of the range.
OK with that.
Should we assert if SZ/sizeof(ElfW(reloc)) != COUNT?
Cheers,
Carlos.