aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYury Norov <ynorov@caviumnetworks.com>2016-12-09 21:47:58 +0530
committerYury Norov <ynorov@caviumnetworks.com>2016-12-21 17:56:03 +0530
commit3145b997151d2815065b5c880c1b0d63905d7630 (patch)
treebbb8a144c7100c3b8385be8408971c599747e711
parent4e25adb3956f880efc28bfebabe79be7338b413f (diff)
downloadfsf-binutils-gdb-3145b997151d2815065b5c880c1b0d63905d7630.zip
fsf-binutils-gdb-3145b997151d2815065b5c880c1b0d63905d7630.tar.gz
fsf-binutils-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/ChangeLog7
-rw-r--r--bfd/cpu-aarch64.c8
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)