]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
Handle ILP32 AARCH64 correctly for gdbserver users/apinski/gdb-ilp32-gdbserver
authorAndrew Pinski <apinski@cavium.com>
Fri, 26 Aug 2016 23:31:29 +0000 (16:31 -0700)
committerAndrew Pinski <apinski@cavium.com>
Wed, 31 Aug 2016 20:27:54 +0000 (13:27 -0700)
commitf90ea4f29afe8c017405e38fb21b8d5f7cb3a6f2
treeb08419e6e342e9286682d1e296720cd7bbd8e112
parent65f976c1b18dd337f9ca5cc122bcc295cbd96298
Handle ILP32 AARCH64 correctly for gdbserver

In gdbserver, we need to send over 32bit registers
for pc/sp instead of 64bit as we do right now.
So we need another XML file for ILP32.

Tested using gdbserver with an ILP32 program and even
tested using gdbserver as an ILP32 program.

OK?

Thanks,
Andrew Pinski

ChangeLog:
* aarch64-tdep.c: Include "features/aarch64_ilp32.c".
(aarch64_gdbarch_init): Handle ilp32 correctly.
(_initialize_aarch64_tdep): Call initialize_tdesc_aarch64_ilp32
too.
* features/Makefile (WHICH): Add aarch64_ilp32.
(aarch64_ilp32-expedite): Set.
(XMLTOC): Add aarch64_ilp32.xml.
(features/aarch64_ilp32-core.xml): New file.
(features/aarch64_ilp32.xml): New file.
(features/aarch64_ilp32.c): Generate.
(regformats/aarch64_ilp32.dat): Generate.

gdbserver/ChangeLog:
* Makefile.in (clean): Remove aarch64_ilp32.c also.
(aarch64_ilp32-ipa.o): New target.
(aarch64_ilp32.c): New target.
* configure.srv (aarch64*-*-linux*): Add ilp32 files
to srv_regobj, srv_xmlfiles and ipa_obj.
* linux-aarch64-ipa.c (init_registers_aarch64_ilp32):
Declare.
(tdesc_aarch64_ilp32): Likewise.
(get_ipa_tdesc): Return tdesc_aarch64_ilp32 for ILP32.
(initialize_low_tracepoint): Call init_registers_aarch64_ilp32
for ILP32.
* linux-aarch64-low.c (init_registers_aarch64_ilp32): Declare.
(tdesc_aarch64_ilp32): Likewise.
(aarch64_linux_read_description): Return tdesc_aarch64_ilp32
for ILP32 executables.
(initialize_low_arch): Call init_registers_aarch64_ilp32.

Signed-off-by: Andrew Pinski <apinski@cavium.com>
12 files changed:
gdb/ChangeLog
gdb/aarch64-tdep.c
gdb/features/Makefile
gdb/features/aarch64_ilp32-core.xml [new file with mode: 0644]
gdb/features/aarch64_ilp32.c [new file with mode: 0644]
gdb/features/aarch64_ilp32.xml [new file with mode: 0644]
gdb/gdbserver/ChangeLog
gdb/gdbserver/Makefile.in
gdb/gdbserver/configure.srv
gdb/gdbserver/linux-aarch64-ipa.c
gdb/gdbserver/linux-aarch64-low.c
gdb/regformats/aarch64_ilp32.dat [new file with mode: 0644]