diff options
-rw-r--r-- | gdb/ChangeLog | 13 | ||||
-rw-r--r-- | gdb/Makefile.in | 4 | ||||
-rw-r--r-- | gdb/aarch64-newlib-tdep.c | 47 | ||||
-rw-r--r-- | gdb/configure.tgt | 2 | ||||
-rw-r--r-- | gdb/defs.h | 1 | ||||
-rw-r--r-- | gdb/osabi.c | 1 |
6 files changed, 65 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 032ac1d..475c671 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -3,6 +3,19 @@ Nigel Stephens <nigel.stephens@arm.com> Yufeng Zhang <yufeng.zhang@arm.com> + * aarch64-newlib-tdep.c: New file. + * configure.tgt: Add aarch64-newlib-tdep.o to gdb_target_obs of + aarch64*-*-elf. + * defs.h (enum gdb_osabi): Add GDB_OSABI_NEWLIB. + * Makefile.in (ALL_64_TARGET_OBS): Add aarch64-newlib-tdep.o. + (ALLDEPFILES): Add aarch64-newlib-tdep.c. + * osabi.c (gdb_osabi_names): Add "Newlib". + +2013-02-04 Jim MacArthur <jim.macarthur@arm.com> + Marcus Shawcroft <marcus.shawcroft@arm.com> + Nigel Stephens <nigel.stephens@arm.com> + Yufeng Zhang <yufeng.zhang@arm.com> + * Makefile.in (ALL_64_TARGET_OBS): Add aarch64-linux-tdep.o. (ALLDEPFILES): Add aarch64-linux-tdep.c. * aarch64-linux-tdep.c: New file. diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 2a0e4ac..0d834ac 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -521,7 +521,7 @@ TARGET_OBS = @TARGET_OBS@ # All target-dependent objects files that require 64-bit CORE_ADDR # (used with --enable-targets=all --enable-64-bit-bfd). ALL_64_TARGET_OBS = \ - aarch64-tdep.o aarch64-linux-tdep.o \ + aarch64-tdep.o aarch64-linux-tdep.o aarch64-newlib-tdep.o \ alphabsd-tdep.o alphafbsd-tdep.o alpha-linux-tdep.o alpha-mdebug-tdep.o \ alphanbsd-tdep.o alphaobsd-tdep.o alpha-osf1-tdep.o alpha-tdep.o \ amd64fbsd-tdep.o amd64-darwin-tdep.o amd64-dicos-tdep.o \ @@ -1421,7 +1421,7 @@ force_update: MAKEOVERRIDES= ALLDEPFILES = \ - aarch64-tdep.c aarch64-linux-tdep.c \ + aarch64-tdep.c aarch64-linux-tdep.c aarch64-newlib-tdep.c \ aix-thread.c \ alpha-nat.c alphabsd-nat.c alpha-linux-nat.c \ alpha-tdep.c alpha-mdebug-tdep.c \ diff --git a/gdb/aarch64-newlib-tdep.c b/gdb/aarch64-newlib-tdep.c new file mode 100644 index 0000000..47ce687 --- /dev/null +++ b/gdb/aarch64-newlib-tdep.c @@ -0,0 +1,47 @@ +/* Target-dependent code for Newlib AArch64. + + Copyright (C) 2011-2013 Free Software Foundation, Inc. + Contributed by ARM Ltd. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include "defs.h" + +#include "gdbarch.h" +#include "aarch64-tdep.h" +#include "osabi.h" + +/* Implement the 'init_osabi' method of struct gdb_osabi_handler. */ + +static void +aarch64_newlib_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) +{ + struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); + + /* Jump buffer - support for longjmp. + Offset of original PC in jump buffer (in registers). */ + tdep->jb_pc = 11; +} + +/* Provide a prototype to silence -Wmissing-prototypes. */ +extern initialize_file_ftype _initialize_aarch64_newlib_tdep; + +void +_initialize_aarch64_newlib_tdep (void) +{ + gdbarch_register_osabi (bfd_arch_aarch64, 0, GDB_OSABI_NEWLIB, + aarch64_newlib_init_abi); +} diff --git a/gdb/configure.tgt b/gdb/configure.tgt index 92514ff..12baeba 100644 --- a/gdb/configure.tgt +++ b/gdb/configure.tgt @@ -33,7 +33,7 @@ esac case "${targ}" in aarch64*-*-elf) # Target: AArch64 embedded system - gdb_target_obs="aarch64-tdep.o" + gdb_target_obs="aarch64-tdep.o aarch64-newlib-tdep.o" ;; aarch64*-*-linux*) @@ -595,6 +595,7 @@ enum gdb_osabi GDB_OSABI_SYMBIAN, GDB_OSABI_OPENVMS, GDB_OSABI_LYNXOS178, + GDB_OSABI_NEWLIB, GDB_OSABI_INVALID /* keep this last */ }; diff --git a/gdb/osabi.c b/gdb/osabi.c index 54300d6..a123ea0 100644 --- a/gdb/osabi.c +++ b/gdb/osabi.c @@ -74,6 +74,7 @@ static const char * const gdb_osabi_names[] = "Symbian", "OpenVMS", "LynxOS178", + "Newlib", "<invalid>" }; |