diff options
author | Ricard Wanderlof <ricard@sourceware.org> | 2013-09-06 10:50:10 +0000 |
---|---|---|
committer | Ricard Wanderlof <ricard@sourceware.org> | 2013-09-06 10:50:10 +0000 |
commit | 749c8b38fa890781f09f237e0ac2c4b00b666557 (patch) | |
tree | a43bf731d8ab9608c5306b93444217eade74c7bc /gdb/cris-linux-tdep.c | |
parent | 43df09d9373b3e235948e67093ad93f417e3b02b (diff) | |
download | fsf-binutils-gdb-749c8b38fa890781f09f237e0ac2c4b00b666557.zip fsf-binutils-gdb-749c8b38fa890781f09f237e0ac2c4b00b666557.tar.gz fsf-binutils-gdb-749c8b38fa890781f09f237e0ac2c4b00b666557.tar.bz2 |
Extract Linux-specific portitions of cris-tdep.c to a new file.
This brings in some standard functionality hitherdo missing from
the CRIS/CRISv32 port thanks to the new call to gdbarch_init_osabi,
as well as clearly showing that there is Linux support for this
platform by virtue of the existence of a cris-linux-tdep.c file.
2013-09-06 Ricard Wanderlof <ricardw@axis.com>
* Makefile.in (ALL_TARGET_OBS): Add cris-linux-tdep.o.
* configure.tgt: Add cris-linux-tdep.o and linux-tdep.o to
gdb_target_obs for cris target.
* cris-tdep.c (struct gdbarch_tdep): Move to cris-tdep.h.
(cris_gdbarch_init): Move calls to
set_gdbarch_fetch_tls_load_module_address and
set_solib_svr4_fetch_link_map_offsets to cris-linux-tdep.c.
Add call to gdbarch_init_osabi.
* cris-linux-tdep.c: New file.
* cris-tdep.h: New file.
Diffstat (limited to 'gdb/cris-linux-tdep.c')
-rw-r--r-- | gdb/cris-linux-tdep.c | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/gdb/cris-linux-tdep.c b/gdb/cris-linux-tdep.c new file mode 100644 index 0000000..ea6e2f0 --- /dev/null +++ b/gdb/cris-linux-tdep.c @@ -0,0 +1,57 @@ +/* Target-dependent code for GNU/Linux on CRIS processors, for GDB. + + Copyright (C) 2001-2013 Free Software Foundation, Inc. + + Contributed by Axis Communications AB. + Written by Hendrik Ruijter, Stefan Andersson, Orjan Friberg, + Edgar Iglesias and Ricard Wanderlof. + + 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 "osabi.h" +#include "linux-tdep.h" +#include "solib-svr4.h" +#include "symtab.h" + +#include "cris-tdep.h" + +static void +cris_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) +{ + struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); + + linux_init_abi (info, gdbarch); + + if (tdep->cris_version == 32) + /* Threaded debugging is only supported on CRISv32 for now. */ + set_gdbarch_fetch_tls_load_module_address (gdbarch, + svr4_fetch_objfile_link_map); + + set_solib_svr4_fetch_link_map_offsets (gdbarch, + svr4_ilp32_fetch_link_map_offsets); + +} + +/* Provide a prototype to silence -Wmissing-prototypes. */ +extern initialize_file_ftype _initialize_cris_linux_tdep; + +void +_initialize_cris_linux_tdep (void) +{ + gdbarch_register_osabi (bfd_arch_cris, 0, GDB_OSABI_LINUX, + cris_linux_init_abi); +} |