diff options
author | Yury Norov <ynorov@caviumnetworks.com> | 2016-12-09 21:47:58 +0530 |
---|---|---|
committer | Yury Norov <ynorov@caviumnetworks.com> | 2016-12-21 17:56:03 +0530 |
commit | 3145b997151d2815065b5c880c1b0d63905d7630 (patch) | |
tree | bbb8a144c7100c3b8385be8408971c599747e711 | |
parent | 4e25adb3956f880efc28bfebabe79be7338b413f (diff) | |
download | gdb-3145b997151d2815065b5c880c1b0d63905d7630.zip gdb-3145b997151d2815065b5c880c1b0d63905d7630.tar.gz gdb-3145b997151d2815065b5c880c1b0d63905d7630.tar.bz2 |
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
-rw-r--r-- | bfd/ChangeLog | 7 | ||||
-rw-r--r-- | bfd/cpu-aarch64.c | 8 |
2 files changed, 11 insertions, 4 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 259825d..fefad35 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2016-12-21: Yury Norov <ynorov@caviumnetworks.com> + Andreas Schwab <schwab@suse.de> + + * 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 <andrew@sifive.com> * elfnn-riscv.c (_bfd_riscv_elf_merge_private_bfd_data): Use 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) |