support. Incorporate most of tm-rs6000.h.
(find_toc_address_hook): Rename to rs6000_find_toc_address_hook.
(rs6000_set_host_arch_hook): Declare.
(read_memory_addr): Define.
(pop_frame): Rename to rs6000_pop_frame.
(rs6000_pop_frame, rs6000_fix_call_dummy, rs6000_push_arguments,
rs6000_frame_saved_pc, rs6000_frame_chain): Remove non-generic
dummy frame handling.
(branch_dest, rs6000_pop_frame, rs6000_skip_trampoline_code,
rs6000_frame_saved_pc, frame_get_saved_regs,
frame_initial_stack_address, rs6000_frame_chain,
rs6000_convert_from_func_ptr_addr): Call read_memory_addr instead
of read_memory_integer.
(branch_dest, rs6000_pop_frame, rs6000_push_arguments,
rs6000_skip_trampoline_code, rs6000_frame_saved_pc,
frame_get_saved_regs, frame_initial_stack_address,
rs6000_frame_chain): Replace 4 with TDEP->wordsize.
(skip_prologue): Recognize some 64-bit stack adjustments.
(push_dummy_frame, pop_dummy_frame, set_processor,
show_processor): Delete.
(frame_get_saved_regs): Manipulate saved register addresses using
CORE_ADDR instead of int.
(rs6000_create_inferior): New function.
(register_names_*[]): Change to struct reg registers_*[].
(variants[]): Assimilate into multi-arch approach.
(register_names_*[], variants[]): Refer to pre-PowerPC
architectures as POWER instead of RS6000.
* rs6000-nat.c: Ubiquitous changes for 64-bit support.
(vmap_secs, xcoff_relocate_symtab): Cast addresses
to unsigned long to avoid sign-extension errors.
(set_host_arch): New function.
(xcoff_relocate_symtab): Try disabling usleep(36000) workaround.
(rs6000_core_fns): Use new bfd_target_xcoff_flavour.
(_initialize_core_rs6000): Initialize rs6000_set_host_arch_hook.
* symfile.c (find_sym_fns): Remove special xcoff kludge.
* xcoffread.c (secnum_to_bfd_section): Initialize args.objfile.
(process_linenos): Query line struct size from coff
backend instead of using compile-time constant.
(enter_line_range): Likewise.
(read_xcoff_symtab): Pass "XCOFF64" instead of "XCOFF" to
record_debugformat() if appropriate.
(process_xcoff_symbol): Access symbol addresses using
SYMBOL_VALUE_ADDRESS instead of SYMBOL_VALUE.
(read_symbol_lineno): Retrieve XCOFF64 symbol names from strtbl.
(scan_xcoff_symtab): Likewise. Query syment struct size from
coff backend instead of using compile-time constant.
(xcoff_sym_fns): Set flavour to bfd_target_xcoff_flavour.
* Makefile.in (INTERNAL_LDFLAGS): Add $(MH_LDFLAGS) to list of flags
that this Makefile variable get set to. (From Kevin Buettner.)
* config/powerpc/aix.mh (MH_LDFLAGS): Add linker flags so that
the TOC doesn't overflow. (From Kevin Buettner.)
* config/powerpc/tm-ppc-aix.h: Move config decisions to
multi-arched rs6000-tdep.c.
* config/rs6000/tm-rs6000.h: Likewise.
(GDB_MULTI_ARCH): Define.
(skip_trampoline_code): Rename to rs6000_skip_trampoline_code.
(is_magic_function_pointer): Replace with
rs6000_convert_from_func_ptr_addr.
(TARGET_CREATE_INFERIOR_HOOK): Define.
(find_toc_address_hook): Rename to rs6000_find_toc_address_hook.
(rs6000_set_host_arch_hook): Declare.
* config/rs6000/nm-rs6000.h (CHILD_XFER_MEMORY): Define.
at run-time. At the moment, the only thing this affects is the
set of registers visible.
* config/rs6000/tm-rs6000.h (REGISTER_NAME): Define this as a call
to the function rs6000_register_name.
(rs6000_register_name): Include extern decl.
(NUM_REGS): Bump to 183. What's the right way to do this?
(FIRST_UISA_SP_REGNUM, LAST_UISA_SP_REGNUM): Renamed from
FIRST_SP_REGNUM, LAST_SP_REGNUM.
(REGISTER_BYTES): Recompute this.
* rs6000-tdep.c: Renamed all uses of FIRST_SP_REGNUM and
LAST_SP_REGNUM to FIRST_UISA_SP_REGNUM and LAST_UISA_SP_REGNUM, with
some concomitant formatting changes.
#include "gdbcmd.h", so we can define commands here.
(struct variant): New structure.
(COMMON_UISA_REG_NAMES, PPC_UISA_SPR_NAMES, PPC_SEGMENT_REG_NAMES,
PPC_32_OEA_SPR_NAMES, num_registers): New macros.
(register_names_rs6000, register_names_uisa, register_names_403,
register_names_403GC, register_names_505, register_names_860,
register_names_601, register_names_602, register_names_603,
register_names_604, register_names_750, variants): New variables.
(rs6000_register_name, install_variant, find_variant_by_name,
install_variant_by_name, list_variants, show_current_variant,
set_processor, show_processor): New functions.
(_initialize_rs6000_tdep): Define new commands `set processor' and
`show processor', and call install_variant_by_name to set the
default variant.
* rs6000-nat.c: Renamed all uses of FIRST_SP_REGNUM and
LAST_SP_REGNUM to FIRST_UISA_SP_REGNUM and LAST_UISA_SP_REGNUM, with
some concomitant formatting changes.
* configure.in: Accept the `--with-cpu' flag, to specify a default
processor variant.
* acconfig.h: Provide a blurb for TARGET_CPU_DEFAULT, which is set
by configure's `--with-cpu' flag.
* config.in, configure: Regenerated.
fstat on ldinfo_fd fails. Use objfile->obfd instead of vp->bfd
to check for reference to the same file.
* target.c (target_read_string): Handle string transfers at the
end of a memory section gracefully.
newly loaded objects upon a TARGET_WAITKIND_LOADED event.
Rewrite code which determines the TOC address for calling functions
in the inferior under AIX.
* rs6000-nat.c (find_toc_address): New function to determine
the required TOC address from a function address.
(_initialize_core_rs6000): Set up find_toc_address_hook to point
to find_toc_address.
(xcoff_relocate_symtab, xcoff_relocate_core): Remove
add_text_to_loadinfo calls.
(exec_one_dummy_insn): Change pid and status to int to get rid of
compiler warnings.
(xcoff_relocate_symtab): Cast ldi to `int *' when passing it to
ptrace to get rid of compiler warnings.
* rs6000-tdep.c: Add definition for find_toc_address_hook.
(rs6000_fix_call_dummy): If find_toc_address_hook is non zero,
patch TOC address load code in the call dummy with the value
returned from find_toc_address_hook.
(struct loadinfo, loadinfo, loadinfolen,
loadinfotextindex, xcoff_init_loadinfo, free_loadinfo,
xcoff_add_toc_to_loadinfo, add_text_to_loadinfo, find_toc_address):
Remove.
(_initialize_rs6000_tdep): Remove initialization of
coff_add_toc_to_loadinfo_hook and xcoff_init_loadinfo_hook.
* xcoffread.c (coff_add_toc_to_loadinfo_hook,
xcoff_init_loadinfo_hook): Remove.
(struct coff_symfile_info): Add toc_offset field.
(scan_xcoff_symtab): Record toc_offset value in toc_offset field
instead of calling xcoff_add_toc_to_loadinfo_hook.
(get_toc_offset): New function to return the value of the
toc_offset field for an object file.
(xcoff_initial_scan): Remove call of xcoff_init_loadinfo_hook.
* xcoffsolib.h (add_text_to_loadinfo): Remove declaration.
* config/rs6000/tm-rs6000.h: Add declarations for
find_toc_address_hook and get_toc_offset.
(DONT_RELOCATE_SYMFILE_OBJFILE): Removed.
* xcoffsolib.h (struct vmap): Add new members tvma, toffs and dvma,
remove tadj.
* exec.c (bfdsec_to_vmap): Initialize new vmap members, initialize
tstart and dstart with section VMA.
* rs6000-nat.c (vmap_symtab): Relocate relative to the VMA in the
object file.
(vmap_ldinfo, xcoff_relocate_core): Adjust tstart by section offset
of the text section, remove DONT_RELOCATE_SYMFILE_OBJFILE hack.
(vmap_exec): Relocate relative to the VMA in the object file,
relocate .bss section as well.
(xcoff_relocate_core): No longer adjust section addresses by VMA.
* rs6000-tdep.c (find_toc_address): Change type of tocbase
to CORE_ADDR.
* xcoffread.c (secnum_to_bfd_section): New routine to get
BFD section from CS section number.
(scan_xcoff_symtab): Make toc_offset section relative.
* symtab.c (total_number_of_methods): Avoid core dump if
baseclass type is still undefined.
* config/rs6000/rs6000.mh (NATDEPFILES): Move xcoffread.o ...
* config/rs6000/rs6000.mt (TDEPFILES): ... to here
* xcoffsolib.c (xcoff_relocate_symtab_hook): Define and initialize.
(solib_info): Call xcoff_relocate_symtab via the hook.
(sharedlibrary_command): Ditto.
* xcoffread.c: Remove all FAKING_RS6000 comments and defines.
(xcoff_add_toc_to_loadinfo_hook): Define and initialize here.
(xcoff_init_loadinfo_hook): Define and initialize here.
(scan_xcoff_symtab): Call xcoff_add_toc_to_loadinfo via the hook.
(xcoff_initial_scan): Call xcoff_init_loadinfo via the hook.
* xcoffsolib.h (xcoff_relocate_symtab_hook): Declare extern func.
* rs6000-tdep.c (_initialize_rs6000_tdep): Add initializations
of xcoff_add_toc_to_loadinfo_hook and xcoff_init_loadinfo_hook.
* rs6000-nat.c (_initialize_core_rs6000): Add initialization
of xcoff_relocate_symtab_hook.
that use ptrace(). This is not as useful as doing a full dump in a
human readable format, but is better than nothing when you are trying
to verify what is actually in the user struct.
* infptrace.c (udot_info): New function.
(PT_*): Define each individually if that one is not defined.
Update copyright to 1996.
* rs6000-nat.c (kernel_u_size): New function
Include <sys/user.h> for "struct user"
Update copyright to 1996.
* alpha-nat.c (kernel_u_size): New function.
Include <sys/user.h> for "struct user"
Update copyright to 1996.
* sparc-nat.c (kernel_u_size): New function.
Include <sys/user.h> for "struct user"
Update copyright to 1996.
* i386b-nat.c (kernel_u_size): New function.
Update copyright to 1996.
* i386v-nat.c (kernel_u_size): New function.
Update copyright to 1996.
* config/i386/nm-fbsd.h (KERNEL_U_SIZE): Define.
(kernel_u_size): Declare.
Update copyright to 1996.
* config/i386/nm-linux.h (KERNEL_U_SIZE): Define.
(kernel_u_size): Declare.
Update copyright to 1996.
* config/sparc/nm-sun4os4.h (KERNEL_U_SIZE): Define.
(kernel_u_size): Declare.
Update copyright to 1996.
* config/alpha/nm-osf2.h (KERNEL_U_SIZE): Define.
(kernel_u_size): Declare.
Update copyright to 1996.
* config/rs6000/nm-rs6000.h (KERNEL_U_SIZE): Define.
(kernel_u_size): Declare.
Update copyright to 1996.
Do not set saved registers from heuristics for a sigtramp frame.
* dwarfread.c (enum_type): Determine signedness of enum type
from enumerators.
* mips-tdep.c: Include gdb_string.h, gcc -Wall lint.
* rs6000-nat.c (xcoff_relocate_core): Fix typo.
* valops.c (value_repeat): Fix length of memory transfer to
match recent allocate_repeat_value change.
and dependencies_used after finishing the partial symbol table.
* rs6000-nat.c (xcoff_relocate_core): Don't relocate data
addresses for the main objfile if DONT_RELOCATE_SYMFILE_OBJFILE
is defined.
* xcoffread.c: gcc -Wall lint. Remove traceback table reading
code. The existing code tried to add parameter information for
functions compiled without -g, which cannot be done properly
for optimized code and produced misleading parameter displays.
(ef_complaint, eb_complaint): Make a local static copy to avoid
dependency on coffread.c.
(read_xcoff_symtab, process_xcoff_symbol, scan_xcoff_symtab):
Enter C_EXT/C_HIDEXT symbols into the minimal symbol table only.
(read_xcoff_symtab): Ignore C_STAT section auxiliary entry
symbols. Complain about unmatched .ef and .eb symbols instead of
segfaulting.
(process_xcoff_symbol): Determine value of C_GSYM symbols via
the global_sym_chain mechanism in stabsread.c.
(xcoff_new_init): Call stabsread_new_init and buildsym_new_init.
(init_string_tab): Initialize length field bytes in the strtbl.
(scan_xcoff_symtab): Skip symbols that start with `$' or `.$'.
Set first_fun_line_offset for symbols with two auxents only.
and target.
(powerpc-*-eabi*): Don't set configdirs.
(powerpcle-*-eabi*0: Likewise.
* configure: Updated.
* rs6000-nat.c (vmap_ldinfo): Don't relocate data addresses
for the main objfile if DONT_RELOCATE_SYMFILE_OBJFILE is
defined.
* config/powerpc/{aix.mh,aix.mh}: Host and target makefile fragments
for powerpc running aix4.
* config/powerpc/{nm-aix.h, tm-ppc-aix.h, xm-aix.h}: Native, target
and host include files for powerpc running aix4.
More of Mike's powerpc work + minor changes.
* xcoffsolib.c (sharedlibrary_command): New command.
* xcoffsolib.c (solib_info): Call xcoff_relocate_symtab.
* xcoffsolib.c: Miscellaneous cleanups.
* partial-stab.h: Ignore symbol descriptor '-' (for local
variables with negative type numbers) without complaint.
* rs6000-nat.c (vmap_ldinfo): Use bfd_stat rather than our own
local emulation thereof. Remove unused variable ostart.
consistency with error_begin. Also print warning_pre_print.
Document it better.
* utils.c (warning): Use it.
* utils.c (error_begin): Doc fix.
* rs6000-nat.c (vmap_ldinfo): If symfile_objfile is not part of
any vmap, nuke it.
pass current_target to SOLIB_ADD. The Sep 10 change failed
if SOLIB_ADD errored out, or if SOLIB_ADD was trying to access
target memory.
* corelow.c (core_open): After reading the shared libraries,
copy the modified to_sections vector from current_target to
core_ops, so that core_close can free it later.
* config/rs6000/nm-rs6000.h, rs6000-nat.c (xcoff_relocate_core):
Pass down target parameter from SOLIB_ADD and use it instead of
directly accessing core_ops.
* xcoffexec.c: Reformat to standards and lint.
(language.h): Include.
(exec_close): Declare arg "quitting".
(file_command): Declare arg "from_tty".
(map_vmap): Cast xmalloc result to PTR.
* rs6000-nat.c: Reformat to standards and lint.
(exec_one_dummy_insn): Use char array for saved instruction.
(fixup_breakpoints): Declare.
(vmap_ldinfo): Be more informative in fatal error messages.
(xcoff_relocate_symtab): Define to return void.
* xcoffsolib.h: Reformat to standards, improve comments.
* config/rs6000/nm-rs6000.h (xcoff_relocate_symtab): Declare.
find, to locate TM_FILE, XM_FILE, and NAT_FILE. This is faster
and means that these filenames no longer need be unique across all
the config/* directories.
* configure.in: Put the config/*/ into TM_FILE, etc.
* m68k-stub.c (computeSignal): Return SIGFPE, not SIGURG, for chk
and trapv exceptions.
* target.h (struct section_table), objfiles.h (struct obj_section):
Change name of field sec_ptr to the_bfd_section. More mnemonic
and avoids the (sort of, for the ptx compiler) name clash with
the name of the typedef.
* exec.c, xcoffexec.c, sparc-tdep.c, rs6000-nat.c, osfsolib.c,
solib.c, irix5-nat.c, objfiles.c, remote.c: Change users.
* utils.c: Include readline.h.
* Makefile.in (utils.o): Add dependency.
* remote.c (getpkt): Add support for run-length encoding.
Change all references to stdout/stderr to gdb_stdout/gdb_stderr.
Replace all calls to stdio output functions with calls to
corresponding _unfiltered functions (`fprintf_unfiltered')
Replaced calls to fopen for output to gdb_fopen.
Added sufficient goo to utils.c and defs.h to make the above work.
The net effect is that stdio output functions are only directly used
in utils.c. Elsewhere, the _unfiltered and _filtered functions and
GDB_FILE type are used.
In the near future, GDB_FILE will stop being equivalant to FILE.
The semantics of some commands has changed in a very subtle way:
called in the right context, they may cause new occurences of
prompt_for_continue() behavior. The testsuite doesn't notice anything
like this, though.
Please respect this change by not reintroducing stdio output
dependencies in the main body of gdb code. All output from commands
should go to a GDB_FILE.
Target-specific code can still use stdio directly to communicate with
targets.