binutils-gdb/gdb/cris-linux-tdep.c
Ricard Wanderlof 749c8b38fa 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.
2013-09-06 10:50:10 +00:00

58 lines
1.8 KiB
C

/* 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);
}