This is the mail archive of the
binutils-cvs@sourceware.org
mailing list for the binutils project.
[binutils-gdb] bfd: aarch64: fix word and arrdess size declaration in ilp32 mode
- From: Yury Norov <norov at sourceware dot org>
- To: bfd-cvs at sourceware dot org
- Date: 21 Dec 2016 12:29:36 -0000
- Subject: [binutils-gdb] bfd: aarch64: fix word and arrdess size declaration in ilp32 mode
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=3145b997151d2815065b5c880c1b0d63905d7630
commit 3145b997151d2815065b5c880c1b0d63905d7630
Author: Yury Norov <ynorov@caviumnetworks.com>
Date: Fri Dec 9 21:47:58 2016 +0530
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:
---
bfd/ChangeLog | 7 +++++++
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)