mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-06 14:49:38 +08:00
* config/powerpc/linux.mt (DEPRECATED_TM_FILE): Set to tm-ppc-eabi.h.
* config/powerpc/tm-linux.h: Delete file. * config/powerpc/tm-ppc-eabi.h: Do not include "rs6000/tm-rs6000.h". (PROCESS_LINENUMBER_HOOK): Do not undefine. (TEXT_SEGMENT_BASE): Do not redefine. * config/rs6000/nm-rs6000.h (CHILD_SPECIAL_WAITSTATUS): Move here from config/rs6000/tm-rs6000.h. (TARGET_CREATE_INFERIOR_HOOK, rs6000_create_inferior): Likewise. * config/rs6000/tm-rs6000.h (struct frame_info): Remove declaration. (TEXT_SEGMENT_BASE): Remove. (IN_SOLIB_RETURN_TRAMPOLINE): Remove. (rs6000_in_solib_return_trampoline): Remove. (SKIP_TRAMPOLINE_CODE): Remove. (rs6000_skip_trampoline_code): Remove. (CHILD_SPECIAL_WAITSTATUS): Move to config/rs6000/nm-rs6000.h. (TARGET_CREATE_INFERIOR_HOOK, rs6000_create_inferior): Likewise. (FP0_REGNUM): Remove. (rs6000_find_toc_address_hook): Move to rs6000-tdep.h. (rs6000_set_host_arch_hook): Remove. * Makefile.in (rs6000-nat.o): Add dependency on $(rs6000_tdep_h). (rs6000-aix-tdep.o): Add dependency on $(ppc_tdep_h). * ppc-tdep.h (struct gdbarch_tdep): Add field text_segment_base. * rs6000-aix-tdep.c: Include "ppc-tdep.h". (rs6000_aix_init_osabi): Set text_segment_base tdep field. * rs6000-nat.c: Include "rs6000-tdep.h". (exec_one_dummy_insn): Replace TEXT_SEGMENT_BASE by tdep field. (set_host_arch): Rename to ... (rs6000_create_inferior): ... this. Make public. (_initialize_core_rs6000): Do not set rs6000_set_host_arch_hook. * rs6000-tdep.c (rs6000_set_host_arch_hook): Remove. (rs6000_create_inferior): Remove. (branch_dest): Replace TEXT_SEGMENT_BASE by tdep field. (rs6000_gdbarch_init): Call set_gdbarch_fp0_regnum, set_gdbarch_in_solib_return_trampoline, and set_gdbarch_skip_trampoline_code. * rs6000-tdep.h (rs6000_find_toc_address_hook): Move here from config/rs6000/tm-rs6000.h.
This commit is contained in:
@ -1,7 +1,7 @@
|
||||
# Target: Motorola PPC on Linux
|
||||
TDEPFILES= rs6000-tdep.o ppc-linux-tdep.o ppc-sysv-tdep.o solib.o \
|
||||
solib-svr4.o solib-legacy.o corelow.o symfile-mem.o
|
||||
DEPRECATED_TM_FILE= tm-linux.h
|
||||
DEPRECATED_TM_FILE= tm-ppc-eabi.h
|
||||
|
||||
SIM_OBS = remote-sim.o
|
||||
SIM = ../sim/ppc/libsim.a
|
||||
|
@ -1,45 +0,0 @@
|
||||
/* Definitions to target GDB to GNU/Linux on PowerPC.
|
||||
|
||||
Copyright 1992, 1993, 2000, 2002, 2007 Free Software Foundation, Inc.
|
||||
|
||||
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 2 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef TM_LINUX_H
|
||||
#define TM_LINUX_H
|
||||
|
||||
#include "powerpc/tm-ppc-eabi.h"
|
||||
|
||||
/* We've multi-arched these. */
|
||||
#undef SKIP_TRAMPOLINE_CODE
|
||||
|
||||
/* Make sure nexti gets the help it needs for debugging assembly code
|
||||
without symbols */
|
||||
|
||||
extern int ppc_linux_in_sigtramp (CORE_ADDR pc, char *func_name);
|
||||
#undef DEPRECATED_IN_SIGTRAMP
|
||||
#define DEPRECATED_IN_SIGTRAMP(pc,func_name) ppc_linux_in_sigtramp (pc,func_name)
|
||||
|
||||
#if 0
|
||||
#define CANNOT_FETCH_REGISTER(regno) ((regno) >= MQ_REGNUM)
|
||||
#define CANNOT_STORE_REGISTER(regno) ((regno) >= MQ_REGNUM)
|
||||
#endif
|
||||
|
||||
/* N_FUN symbols in shared libaries have 0 for their values and need
|
||||
to be relocated. */
|
||||
#define SOFUN_ADDRESS_MAYBE_MISSING
|
||||
|
||||
#endif /* #ifndef TM_LINUX_H */
|
@ -22,14 +22,6 @@
|
||||
#ifndef TM_PPC_EABI_H
|
||||
#define TM_PPC_EABI_H
|
||||
|
||||
/* Use generic RS6000 definitions. */
|
||||
#include "rs6000/tm-rs6000.h"
|
||||
|
||||
#undef PROCESS_LINENUMBER_HOOK
|
||||
|
||||
#undef TEXT_SEGMENT_BASE
|
||||
#define TEXT_SEGMENT_BASE 1
|
||||
|
||||
/* The value of symbols of type N_SO and N_FUN maybe null when
|
||||
it shouldn't be. */
|
||||
#define SOFUN_ADDRESS_MAYBE_MISSING
|
||||
|
@ -63,3 +63,22 @@ extern int kernel_u_size (void);
|
||||
|
||||
/* Flag for machine-specific stuff in shared files. FIXME */
|
||||
#define DEPRECATED_IBM6000_TARGET
|
||||
|
||||
/* AIX has a couple of strange returns from wait(). */
|
||||
|
||||
#define CHILD_SPECIAL_WAITSTATUS(ourstatus, hoststatus) ( \
|
||||
/* "stop after load" status. */ \
|
||||
(hoststatus) == 0x57c ? (ourstatus)->kind = TARGET_WAITKIND_LOADED, 1 : \
|
||||
\
|
||||
/* signal 0. I have no idea why wait(2) returns with this status word. */ \
|
||||
/* It looks harmless. */ \
|
||||
(hoststatus) == 0x7f ? (ourstatus)->kind = TARGET_WAITKIND_SPURIOUS, 1 : \
|
||||
\
|
||||
/* A normal waitstatus. Let the usual macros deal with it. */ \
|
||||
0)
|
||||
|
||||
/* Notice when a new child process is started. */
|
||||
|
||||
#define TARGET_CREATE_INFERIOR_HOOK rs6000_create_inferior
|
||||
extern void rs6000_create_inferior (int);
|
||||
|
||||
|
@ -22,38 +22,6 @@
|
||||
Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
struct frame_info;
|
||||
|
||||
/* Minimum possible text address in AIX */
|
||||
|
||||
#define TEXT_SEGMENT_BASE 0x10000000
|
||||
|
||||
/* Return whether PC in function NAME is in code that should be skipped when
|
||||
single-stepping. */
|
||||
|
||||
#define IN_SOLIB_RETURN_TRAMPOLINE(pc, name) \
|
||||
rs6000_in_solib_return_trampoline (pc, name)
|
||||
extern int rs6000_in_solib_return_trampoline (CORE_ADDR, char *);
|
||||
|
||||
/* If PC is in some function-call trampoline code, return the PC
|
||||
where the function itself actually starts. If not, return NULL. */
|
||||
|
||||
#define SKIP_TRAMPOLINE_CODE(pc) rs6000_skip_trampoline_code (pc)
|
||||
extern CORE_ADDR rs6000_skip_trampoline_code (CORE_ADDR);
|
||||
|
||||
/* AIX has a couple of strange returns from wait(). */
|
||||
|
||||
#define CHILD_SPECIAL_WAITSTATUS(ourstatus, hoststatus) ( \
|
||||
/* "stop after load" status. */ \
|
||||
(hoststatus) == 0x57c ? (ourstatus)->kind = TARGET_WAITKIND_LOADED, 1 : \
|
||||
\
|
||||
/* signal 0. I have no idea why wait(2) returns with this status word. */ \
|
||||
/* It looks harmless. */ \
|
||||
(hoststatus) == 0x7f ? (ourstatus)->kind = TARGET_WAITKIND_SPURIOUS, 1 : \
|
||||
\
|
||||
/* A normal waitstatus. Let the usual macros deal with it. */ \
|
||||
0)
|
||||
|
||||
/* In xcoff, we cannot process line numbers when we see them. This is
|
||||
mainly because we don't know the boundaries of the include files. So,
|
||||
we postpone that, and then enter and sort(?) the whole line table at
|
||||
@ -62,31 +30,3 @@ extern CORE_ADDR rs6000_skip_trampoline_code (CORE_ADDR);
|
||||
#define PROCESS_LINENUMBER_HOOK() aix_process_linenos ()
|
||||
extern void aix_process_linenos (void);
|
||||
|
||||
/* Register numbers of various important registers.
|
||||
Note that some of these values are "real" register numbers,
|
||||
and correspond to the general registers of the machine,
|
||||
and some are "phony" register numbers which are too large
|
||||
to be actual register numbers as far as the user is concerned
|
||||
but do serve to get the desired values when passed to read_register. */
|
||||
|
||||
/* Don't use this in code specific to the RS6000 and its descendants;
|
||||
use tdep->ppc_fp0_regnum instead. FP0_REGNUM will be deprecated
|
||||
soon, but we still need to define it here for the uses in
|
||||
architecture-independent code. */
|
||||
#define FP0_REGNUM 32 /* Floating point register 0 */
|
||||
|
||||
/* Notice when a new child process is started. */
|
||||
|
||||
#define TARGET_CREATE_INFERIOR_HOOK rs6000_create_inferior
|
||||
extern void rs6000_create_inferior (int);
|
||||
|
||||
/* Hook in rs6000-tdep.c for determining the TOC address when
|
||||
calling functions in the inferior. */
|
||||
|
||||
extern CORE_ADDR (*rs6000_find_toc_address_hook) (CORE_ADDR);
|
||||
|
||||
/* Hook in rs6000-tdep.c to set the current architecture when starting a
|
||||
child process. */
|
||||
|
||||
extern void (*rs6000_set_host_arch_hook) (int);
|
||||
|
||||
|
Reference in New Issue
Block a user