This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH 2/3] Add ILP32 support to gdb.
- From: Andreas Schwab <schwab at suse dot de>
- To: Andrew Pinski <pinskia at gmail dot com>
- Cc: Andrew Pinski <apinski at cavium dot com>, "gdb-patches\@sourceware.org" <gdb-patches at sourceware dot org>, binutils <binutils at sourceware dot org>
- Date: Thu, 01 Sep 2016 09:40:56 +0200
- Subject: Re: [PATCH 2/3] Add ILP32 support to gdb.
- Authentication-results: sourceware.org; auth=none
- References: <1472516750-30743-1-git-send-email-apinski@cavium.com> <1472516750-30743-3-git-send-email-apinski@cavium.com> <mvminuiln0a.fsf@hawking.suse.de> <CA+=Sn1nVghgmfwfkxhMpkwUSNac9TCFxkEPCwB=OPv4Jztisww@mail.gmail.com>
On Sep 01 2016, Andrew Pinski <pinskia@gmail.com> wrote:
> On Tue, Aug 30, 2016 at 12:44 AM, Andreas Schwab <schwab@suse.de> wrote:
>> On Aug 30 2016, Andrew Pinski <apinski@cavium.com> wrote:
>>
>>> @@ -2695,6 +2696,11 @@ aarch64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
>>> return NULL;
>>> }
>>>
>>> + if (info.abfd
>>> + && bfd_get_flavour (info.abfd) == bfd_target_elf_flavour
>>> + && elf_elfheader (info.abfd)->e_ident[EI_CLASS] == ELFCLASS32)
>>> + ilp32 = TRUE;
>>> +
>>
>> Shouldn't this use bfd_arch_bits_per_address?
>
> That does not work as bfd_arch_bits_per_address is set to 64 still.
Actually I meant bfd_get_arch_size.
Does this fix the bits_per_address issue?
* cpu-aarch64.c (N): Add argument ADDRSIZE.
(bfd_aarch64_arch_ilp32): Pass 32 here.
(bfd_aarch64_arch): Pass 64 here.
---
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 6fb9133..ae0c8a9 100644
--- a/bfd/cpu-aarch64.c
+++ b/bfd/cpu-aarch64.c
@@ -78,16 +78,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, ADDRSIZE, DEFAULT, NEXT) \
+ { 64, ADDRSIZE, 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.9.3
Andreas.
--
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."