1991-11-12 15:50:47 +00:00
|
|
|
/* Parameters for hosting on an RS6000, for GDB, the GNU debugger.
|
|
|
|
Copyright (C) 1986, 1987, 1989, 1991 Free Software Foundation, Inc.
|
|
|
|
Contributed by IBM Corporation.
|
|
|
|
|
|
|
|
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., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|
|
|
|
1992-08-19 17:26:47 +00:00
|
|
|
#include <sys/select.h>
|
RS/6000 portability changes (for hosting cross-debuggers).
* breakpoint.c (fixup_breakpoints): Re-kludge to IBM6000_TARGET.
* buildsym.c, rs6000-xdep.c, rs6000-tdep.c, tm-rs6000.h,
xcoffexec.c, xcoffread.c: Rename aixcoff to xcoff everywhere.
* printcmd.c (print_frame_args): Remove an RS/6000 dependency.
* stabsread.c (define_symbol): Remove RS/6000 dependencies.
* tm-rs6000.h (ATTACH_DETACH): Remove: host-dependent.
(PTRACE_ATTACH, PTRACE_DETACH): Remove: host-dep.
(NO_SINGLE_STEP): Add, target-dependent.
(loadinfotextindex): Lowercase, remove "aix_".
* xm-rs6000.h: Add <sys/ptrace.h> for infptrace.c.
(NO_SINGLE_STEP): Remove, target-dependent.
* xcoffexec.c (vmap_symtab): Cleanup #if 0'd code.
* xcoffread.c: Only build file if RS/6000 native GDB.
(build_function_symbol): Remove #if 0'd code.
* rs6000-tdep.c: Cleanup. Add static fn protos.
Use CORE_ADDR for addresses throughout. Make void fns void.
(pop_dummy_frame): Add FIXME about bogosity of design here.
(rs6000_struct_return_address): Ditto.
(frameless_function_invocation, frame_get_cache_fsr,
frame_initial_stack_address, xcoff_relocate_symtab,
xcoff_init_loadinfo, free_loadinfo, xcoff_add_toc_to_loadinfo,
add_text_to_loadinfo, find_toc_address): Move from xdep file.
Use CORE_ADDRs. Change identifiers to lowercase.
* rs6000-xdep.c: Make whole file conditional on native RS/6000,
supplying dummy routines if non-native. Add prototype for
static exec_one_dummy_insn. Move a mess of functions to
rs6000-tdep.c (as above). Remove #if 0'd code.
* config/rs6000.mh (XDEPFILES): Move xcoffexec.o to target side.
(XM_CLIBS): Add -lm to circumvent AIX 3.2 libc ldexp bug.
* config/rs6000.mt (TDEPFILES): Adopt xcoffexec.o.
1992-08-29 00:32:58 +00:00
|
|
|
#include <sys/ptrace.h>
|
1992-08-19 17:26:47 +00:00
|
|
|
|
1991-11-12 15:50:47 +00:00
|
|
|
/* Big end is at the low address */
|
|
|
|
|
|
|
|
#define HOST_BYTE_ORDER BIG_ENDIAN
|
|
|
|
|
|
|
|
#define HAVE_TERMIO 1
|
|
|
|
#define USG 1
|
|
|
|
#define HAVE_SIGSETMASK 1
|
|
|
|
|
1992-07-04 14:17:13 +00:00
|
|
|
/* AIX declares the mem functions */
|
|
|
|
|
|
|
|
#undef MEM_FNS_DECLARED
|
|
|
|
#define MEM_FNS_DECLARED 1
|
|
|
|
|
1991-11-12 15:50:47 +00:00
|
|
|
/* This system requires that we open a terminal with O_NOCTTY for it to
|
|
|
|
not become our controlling terminal. */
|
|
|
|
|
|
|
|
#define USE_O_NOCTTY
|
|
|
|
|
|
|
|
/* Get rid of any system-imposed stack limit if possible. */
|
|
|
|
|
|
|
|
#define SET_STACK_LIMIT_HUGE
|
|
|
|
|
|
|
|
/* Brain death inherited from PC's pervades. */
|
|
|
|
#undef NULL
|
|
|
|
#define NULL 0
|
|
|
|
|
|
|
|
/* The IBM compiler requires this in order to properly compile alloca(). */
|
|
|
|
#pragma alloca
|
|
|
|
|
RS/6000 portability changes (for hosting cross-debuggers).
* breakpoint.c (fixup_breakpoints): Re-kludge to IBM6000_TARGET.
* buildsym.c, rs6000-xdep.c, rs6000-tdep.c, tm-rs6000.h,
xcoffexec.c, xcoffread.c: Rename aixcoff to xcoff everywhere.
* printcmd.c (print_frame_args): Remove an RS/6000 dependency.
* stabsread.c (define_symbol): Remove RS/6000 dependencies.
* tm-rs6000.h (ATTACH_DETACH): Remove: host-dependent.
(PTRACE_ATTACH, PTRACE_DETACH): Remove: host-dep.
(NO_SINGLE_STEP): Add, target-dependent.
(loadinfotextindex): Lowercase, remove "aix_".
* xm-rs6000.h: Add <sys/ptrace.h> for infptrace.c.
(NO_SINGLE_STEP): Remove, target-dependent.
* xcoffexec.c (vmap_symtab): Cleanup #if 0'd code.
* xcoffread.c: Only build file if RS/6000 native GDB.
(build_function_symbol): Remove #if 0'd code.
* rs6000-tdep.c: Cleanup. Add static fn protos.
Use CORE_ADDR for addresses throughout. Make void fns void.
(pop_dummy_frame): Add FIXME about bogosity of design here.
(rs6000_struct_return_address): Ditto.
(frameless_function_invocation, frame_get_cache_fsr,
frame_initial_stack_address, xcoff_relocate_symtab,
xcoff_init_loadinfo, free_loadinfo, xcoff_add_toc_to_loadinfo,
add_text_to_loadinfo, find_toc_address): Move from xdep file.
Use CORE_ADDRs. Change identifiers to lowercase.
* rs6000-xdep.c: Make whole file conditional on native RS/6000,
supplying dummy routines if non-native. Add prototype for
static exec_one_dummy_insn. Move a mess of functions to
rs6000-tdep.c (as above). Remove #if 0'd code.
* config/rs6000.mh (XDEPFILES): Move xcoffexec.o to target side.
(XM_CLIBS): Add -lm to circumvent AIX 3.2 libc ldexp bug.
* config/rs6000.mt (TDEPFILES): Adopt xcoffexec.o.
1992-08-29 00:32:58 +00:00
|
|
|
/* There is no vfork. */
|
|
|
|
|
1991-11-12 15:50:47 +00:00
|
|
|
#define vfork fork
|
|
|
|
|
|
|
|
/* Do implement the attach and detach commands. */
|
|
|
|
|
|
|
|
#define ATTACH_DETACH
|
|
|
|
|
|
|
|
/* Override copies of {fetch,store}_inferior_registers in infptrace.c. */
|
|
|
|
|
|
|
|
#define FETCH_INFERIOR_REGISTERS
|
|
|
|
|
|
|
|
/* Setpgrp() takes arguments, unlike ordinary Sys V's. */
|
|
|
|
|
1992-02-29 06:03:43 +00:00
|
|
|
#define SETPGRP_ARGS 1
|
1991-11-12 15:50:47 +00:00
|
|
|
|
1992-02-29 06:03:43 +00:00
|
|
|
/* Flag for machine-specific stuff in shared files. FIXME */
|
1992-03-29 22:33:35 +00:00
|
|
|
#define IBM6000_HOST
|
1992-03-02 01:55:31 +00:00
|
|
|
|
|
|
|
/* /usr/include/stdlib.h always uses void* and void,
|
|
|
|
even when __STDC__ isn't defined. */
|
|
|
|
#define MALLOC_INCOMPATIBLE
|
1992-06-19 22:39:44 +00:00
|
|
|
extern void *malloc PARAMS ((size_t size));
|
|
|
|
extern void *realloc PARAMS ((void *ptr, size_t size));
|
|
|
|
extern void free PARAMS ((void *));
|
1992-03-02 01:55:31 +00:00
|
|
|
|
1992-06-19 22:39:44 +00:00
|
|
|
/* AIX doesn't have strdup, so we need to declare it for libiberty */
|
|
|
|
extern char *strdup PARAMS ((char *));
|