From: Yury Norov Date: Fri, 9 Dec 2016 16:17:58 +0000 (+0530) Subject: bfd: aarch64: fix word and arrdess size declaration in ilp32 mode X-Git-Url: http://git.efficios.com/?a=commitdiff_plain;h=3145b997151d2815065b5c880c1b0d63905d7630;p=deliverable%2Fbinutils-gdb.git bfd: aarch64: fix word and arrdess size declaration in ilp32 mode 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 --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 259825de7a..fefad352f0 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2016-12-21: Yury Norov + Andreas Schwab + + * cpu-aarch64.c: Fix word and address size declaration in + ilp32 mode in bfd_arch_info_type bfd_aarch64_arch_ilp32 + structure. + 2016-12-20 Andrew Waterman * elfnn-riscv.c (_bfd_riscv_elf_merge_private_bfd_data): Use diff --git a/bfd/cpu-aarch64.c b/bfd/cpu-aarch64.c index 596d24190b..1adc670176 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)