[PATCH] bfd: aarch64: fix word and arrdess size declaration in ilp32 mode
Yury Norov
ynorov@caviumnetworks.com
Mon Dec 12 14:09:00 GMT 2016
Ping?
On Fri, Dec 09, 2016 at 09:47:58PM +0530, Yury Norov wrote:
> ILP32 has 32-bit word and address, but currently they declared as 64-bit in
> bfd_aarch64_arch_ilp32, which breaks further logic of bfd. This patch fixes it.
>
> Glibc testsuite build with patched binutils shows that next tests stop to fail:
> iconvdata/mtrace-tst-loading
> iconvdata/tst-loading
> iconvdata/tst-tables
> localedata/mtrace-tst-leaks
> localedata/tst-leaks
> posix/tst-getaddrinfo4
> posix/tst-getaddrinfo5
> posix/tst-regex2
>
> I discovered this issue at the same time with Andreas Schwab, so if patch is OK
> to pull, it would be fair to add also his name as an author in changelog.
>
> 2016-12-09: Yury Norov <ynorov@caviumnetworks.com>
> Andreas Schwab <schwab@suse.de>
> * bfd/cpu-aarch64.c: Fix word and address size declaration in ilp32 mode
> in bfd_arch_info_type bfd_aarch64_arch_ilp32 structure.
>
> Signed-off-by: Yury Norov <ynorov@caviumnetworks.com>
> ---
> bfd/cpu-aarch64.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/bfd/cpu-aarch64.c b/bfd/cpu-aarch64.c
> index 596d241..1adc670 100644
> --- a/bfd/cpu-aarch64.c
> +++ b/bfd/cpu-aarch64.c
> @@ -100,16 +100,16 @@ scan (const struct bfd_arch_info *info, const char *string)
> return FALSE;
> }
>
> -#define N(NUMBER, PRINT, DEFAULT, NEXT) \
> - { 64, 64, 8, bfd_arch_aarch64, NUMBER, \
> +#define N(NUMBER, PRINT, WORDSIZE, DEFAULT, NEXT) \
> + { WORDSIZE, WORDSIZE, 8, bfd_arch_aarch64, NUMBER, \
> "aarch64", PRINT, 4, DEFAULT, compatible, scan, \
> bfd_arch_default_fill, NEXT }
>
> static const bfd_arch_info_type bfd_aarch64_arch_ilp32 =
> - N (bfd_mach_aarch64_ilp32, "aarch64:ilp32", FALSE, NULL);
> + N (bfd_mach_aarch64_ilp32, "aarch64:ilp32", 32, FALSE, NULL);
>
> const bfd_arch_info_type bfd_aarch64_arch =
> - N (0, "aarch64", TRUE, &bfd_aarch64_arch_ilp32);
> + N (0, "aarch64", 64, TRUE, &bfd_aarch64_arch_ilp32);
>
> bfd_boolean
> bfd_is_aarch64_special_symbol_name (const char *name, int type)
> --
> 2.7.4
More information about the Binutils
mailing list