summaryrefslogtreecommitdiff
path: root/gdb/config/powerpc/tm-ppc64linux.h
blob: 4b30c18c76516c146c94d419211905049184dafe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#ifndef TM_PPC64LINUX_H
#define TM_PPC64LINUX_H

#include "rs6000/tm-rs6000.h"

/* Avoid warning from redefinition in tm-sysv4.h (included from tm-linux.h) */
#undef SKIP_TRAMPOLINE_CODE
#include "tm-linux.h"

#include "gdbarch.h"
/* Reset these back to the default.  Should really fix this for other
   powerpc tm.h so it can be chosen at runtime  */
#undef SOFTWARE_SINGLE_STEP_P
#define SOFTWARE_SINGLE_STEP_P() (gdbarch_software_single_step_p (current_gdbarch))
#undef SOFTWARE_SINGLE_STEP
#define SOFTWARE_SINGLE_STEP(sig, insert_breakpoints_p) (gdbarch_software_single_step (current_gdbarch, sig, insert_breakpoints_p))

#ifdef DEAD_CODE
/* FIXME: tm-linux defines this which a dead interface, as far as I
   can tell. The macro is unused and there is no definition for the
   function the macro calls. It is here so we know to get rid of it
   there. */
/* Make sure nexti gets the help it needs for debugging assembly code
   without symbols */

#define AT_SUBROUTINE_CALL_INSTRUCTION_TARGET(prevpc,stoppc) \
   at_subroutine_call_instruction_target(prevpc,stoppc)
extern int at_subroutine_call_instruction_target();
#endif /* DEAD_CODE */

/* We _want_ the SVR4 section offset calculations (see syms_from_objfile()
   in symfile.c) */
#undef IBM6000_TARGET

/* Default offset from SP where the LR is stored */
#undef DEFAULT_LR_SAVE
#define	DEFAULT_LR_SAVE 16

/* Say that we're using ELF, not XCOFF.  */
#define ELF_OBJECT_FORMAT 1

/* Say that we're using ELF64 since ABI is closer to XCOFF64. */
#define ELF64_OBJECT_FORMAT 1

#undef PROCESS_LINENUMBER_HOOK

#undef TEXT_SEGMENT_BASE
#define TEXT_SEGMENT_BASE 1

/* don't think it is but it can't hurt (can it?) */
#define TARGET_BYTE_ORDER_SELECTABLE_P 1

/* The value of symbols of type N_SO and N_FUN maybe null when 
   it shouldn't be. */
#define SOFUN_ADDRESS_MAYBE_MISSING

#undef CHILD_SPECIAL_WAITSTATUS

/* Use generic shared library machinery.  */
#include "solib.h"

/* function entrypoints have a '.' prepended to them (elfread.c) */
#define DROP_TEXT_NAME_PREFIX_CHAR '.'
/* skip data symbols if they are from the .opd section (elfread.c) */
#define SKIP_DATA_IN_OPD

/* define our own child_xfer_memory() ppc-linux-nat.c */
#define CHILD_XFER_MEMORY

#undef bfd_get_start_address
#define bfd_get_start_address(abfd) ppc64_bfd_get_start_address (abfd)
extern  CORE_ADDR ppc64_bfd_get_start_address (bfd *);
struct link_map_offsets *ppc64_linux_svr4_fetch_link_map_offsets (void);
extern CORE_ADDR ppc64_linux_convert_from_func_ptr_addr (CORE_ADDR addr);

/* define additional name for solib functions (solib-svr4.c) to hinge on. */
#define SOLIB_BREAK_NAME "._dl_debug_state"


#endif  /* #ifndef TM_PPC64LINUX_H */