This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] 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

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]