Ian Lance Taylor [Thu, 25 Jan 1996 17:25:25 +0000 (17:25 +0000)]
SCO ELF support from Robert Lipe <[email protected]>:
* configure.in (i386-*-sco*elf*): Use fmt elf, targ sco5.
* configure: Rebuild.
* config/sco5.mt: New file; set TDEFINES to -DSCO_ELF.
* config/tc-i386.c (sco_id): New function, if SCO_ELF.
* config/tc-i386.h (tc_init_after_args): Define if SCO_ELF.
(sco_id): Declare if SCO_ELF.
David Edelsohn [Thu, 25 Jan 1996 11:20:06 +0000 (11:20 +0000)]
* config/tc-sparc.c (initial_architecture,can_bump_v9_p): Deleted.
({max,warn_after}_architecture): New static locals.
(md_begin): Replace NUMOPCODES with sparc_num_opcodes.
If both architecture and -bump requested, set max_architecture to max.
(sparc_md_end): Simplify.
(sparc_ip): Replace references to can_bump_v9_p with max_architecture.
Rewrite code to bump architecture and check for conflicts.
(md_longopts): Recognize -xarch={v8plus,v8plusa} for compatibility
with Solaris assembler.
(md_parse_option): Likewise. Call sparc_opcode_lookup_arch.
(md_show_usage): Update.
Ian Lance Taylor [Thu, 25 Jan 1996 00:26:19 +0000 (00:26 +0000)]
* ieee.c (ieee_read_cxx_class): Don't multiply voffset by 4.
(struct ieee_write_type): Add name field.
(struct ieee_type_class): Remove name field. Change all uses to
use new name field in type instead.
(struct ieee_name_type): Likewise.
(ieee_start_struct_type): Initialize name field of type.
(ieee_start_class_type): Don't initialize classdef entry of tag.
(ieee_class_method_var): Don't adjust voffset.
(ieee_end_class_type): Likewise.
(ieee_tag_type): Initialize new name field of type.
(ieee_typdef): Set name after copying in type information.
Fred Fish [Wed, 24 Jan 1996 21:30:37 +0000 (21:30 +0000)]
* NEWS: Make note of new record and replay feature for
remote debug sessions.
* serial.c (gdbcmd.h): Include.
(serial_logfile, serial_logfp, serial_reading, serial_writing):
Define here, for remote debug session logging.
(serial_log_command, serial_logchar, serial_write, serial_readchar):
New functions for remote debug session logging.
(serial_open): Open remote debug session log file when needed.
(serial_close): Close remote debug session log file when needed.
(_initialize_serial): Add set/show commands for name of remote
debug session log file.
* serial.h (serial_readchar): Declare
(SERIAL_READCHAR): Call serial_readchar().
(SERIAL_WRITE): Call serial_write().
(serial_close): Declare as extern.
(serial_logfile, serial_logfp): Declare.
* top.c (execute_command): Declare serial_logfp. Log user command
in remote debug session log if log file is open.
* remote-array.c (array_wait): #ifdef out echo to gdb_stdout.
(array_read_inferior_memory): Rewrite to fix memory overwrite bug.
* remote-array.c (SREC_SIZE): Remove, duplicates define in
monitor.h.
* remote-array.c (hexchars, hex2mem): Remove, unused.
* gdbserver/low-linux.c (store_inferior_registers): Remove
unnecessary extern declaration of registers[].
* gdbserver/Makefile.in (all): Add gdbreplay.
* gdbserver/gdbreplay.c: New file.
* gdbserver/README: Give example of recording a remote
debug session with gdb and then replaying it with gdbreplay.
Ian Lance Taylor [Wed, 24 Jan 1996 21:10:55 +0000 (21:10 +0000)]
* ieee.c (ieee_define_named_type): When creating a tag for an
anonymous struct, copy the name into memory.
(ieee_tag_type): Likewise.
* debug.c (debug_write_type): Only check and set id field for an
unnamed object.
(debug_write_class_type): Likewise.
Brendan Kehoe [Wed, 24 Jan 1996 20:48:09 +0000 (20:48 +0000)]
* test-build.mk: Add checking of `hpux9' rather than just `hpux'.
Add creation of gconfigargs with `--enable-shared' turned on.
($(host)-stamp-stage2-configured): Pass $(gconfigargs).
($(host)-stamp-stage3-configured): Likewise.
(HOLES): Add chatr and ldd.
(i386-ncr-sysv4.3*): Add use of /usr/ccs/bin in the PATH and HOLE_DIRS.
David Edelsohn [Wed, 24 Jan 1996 18:45:50 +0000 (18:45 +0000)]
* elf32-sparc.c (elf32_sparc_merge_private_bfd_data): Delete checking
of flags, only flags used are controlled by mach number. Bump up
output file mach number to highest of input file mach numbers.
(elf32_sparc_object_p): Watch for EF_SPARC_SUN_US1.
(elf32_sparc_final_write_processing): Set EF_SPARC_SUN_US1 if v8plusa.
Also, delete v8plus sanitization.
Ian Lance Taylor [Wed, 24 Jan 1996 17:08:25 +0000 (17:08 +0000)]
* ieee.c (struct ieee_var): Remove variable field. Add kind
field, and define some enum constants for it.
(parse_ieee_ty): Set kind field of variable for 'x' and 'X' types.
(parse_ieee_atn): Make an indirect slot for an external variable,
although we otherwise don't record it. Set kind field rather than
variable field of pvar.
(ieee_read_cxx_class): Try to get the type of a static member.
(ieee_read_reference): Check kind field rather than variable
field.
Per Bothner [Wed, 24 Jan 1996 00:35:09 +0000 (00:35 +0000)]
* value.h (COERCE_ARRAY): Don't coerce enums.
(COERCE_ENUM): Don't COERCE_REF.
(COERCE_NUMBER): New macro (same as COERCE_ARRAY then COERCE_ENUM).
* valops.c (value_assign): Only do COERCE_ARRAY if internalvar (let
value_cast handle it otherwise); do *not* COERCE_ENUM either way.
* valarith.c: Use COERCE_NUMBER instead od COEREC_ARRAY.
Add COERCE_REF before COERCE_ENUM.
* values.c (value_as_long): Simplify.
This fixes PR chill/8869.
* valops.c (value_array): Create internalvar if !c_style_arrays.
Jeff Law [Tue, 23 Jan 1996 22:44:10 +0000 (22:44 +0000)]
* gdb.base/corefile.exp: Recognize "not found" as failure
when trying to determine if a core file was generated.
If no core file was generate the first time, try again without
the ulimit -c to work around braindamaged shells.
Jeff Law [Tue, 23 Jan 1996 21:06:34 +0000 (21:06 +0000)]
* symfile.c (auto_solib_add): Renamed from auto_solib_add_at_startup.
All references changed.
* breakpoint.c (bpstat_what): Add shlib_event to the class types.
Update state table. Reformat so that it's still readable.
When we hit the shlib_event breakpoint, set the calss of shlib_event.
(breakpoint_1): Add "shlib events" as a breakpoint type.
Print the shlib_event breakpoint like other breakpoints.
(create_solib_event_breakpoint): New function.
(breakpoint_re_set_one): Handle solib_event breakpoints.
* breakpoint.h (enum bytype): Add bp_shlib_event breakpoint type.
(enum bpstat_what_main_action): Add BPSTAT_WHAT_CHECK_SHLIBS
action.
(create_solib_event_breakpoint): Declare.
* infrun.c (wait_for_inferior): Handle CHECK_SHLIBS bpstat.
(normal_stop): Inform the user when the inferior stoped due
to a shared library event.
(_initialize_infrun): Add new set/show variable "stop_on-solib-events"
to control whether or not gdb continues the inferior or stops it when
a shared library event occurs.
* minsyms.c (lookup_minimal_symbol_solib_trampoline): New function.
* somsolib.c (TODO list): Update.
(som_solib_create_inferior_hook): Arrange for gdb to be notified
when significant shared library events occur.
* hppa-tdep.c (find_unwind_entry): No longer static.
First cut at the machine independent changes for 7363. Also includes
code to automatically track shl_load/shl_unload calls on hpux.
Ian Lance Taylor [Tue, 23 Jan 1996 20:58:57 +0000 (20:58 +0000)]
* stabs.c (struct stab_handle): Remove last_type field. Add
so_string and so_value fields.
(finish_stab): Call stab_emit_pending_vars before calling
debug_end_function. Don't warn about pending variables.
(parse_stab): Accumulate N_SO strings until a non N_SO symbol is
seen, rather than calling debug_append_filename. Call
stab_emit_pending_vars before calling debug_end_function. Don't
set info->last_type.
Ian Lance Taylor [Tue, 23 Jan 1996 19:26:01 +0000 (19:26 +0000)]
* coffcode.h (coff_set_section_contents): Fix the handling of the
.lib section to work even if the entire section contents are
written at once. From Gvran Uddeborg <[email protected]> and
Robert Lipe <[email protected]>.
Stan Shebs [Tue, 23 Jan 1996 01:10:48 +0000 (01:10 +0000)]
* remote.c (remotebreak): New GDB variable.
(remote_break): New global.
(remote_interrupt): Send a break instead of ^C if remote_break.
* NEWS: Describe the new variable.
David Edelsohn [Tue, 23 Jan 1996 00:55:40 +0000 (00:55 +0000)]
* sparc-dis.c (print_insn_sparc): Renamed from print_insn.
If DISASM_RAW_INSN, print insn in hex. Handle v9a as opcode
architecture.
(print_insn_sparc64): Deleted.
* disassemble.c (disassembler, case bfd_arch_sparc): Always use
print_insn_sparc.
David Edelsohn [Tue, 23 Jan 1996 00:50:24 +0000 (00:50 +0000)]
Add new option --show-raw-insn.
* objdump.c (show_raw_insn): New global.
(usage): Update.
(long_options): Update.
(disassemble_data): Set disasm_info.flags if --show-raw-insn.
* objdump.c (disassemble_data): Set new arch,mach,endian fields in
disasm_info.
Ian Lance Taylor [Tue, 23 Jan 1996 00:35:25 +0000 (00:35 +0000)]
* ieee.c: Extensive changes to pass a single info argument around
in the reading routines, rather than several arguments. Add code
to read C++ debugging records.
Ian Lance Taylor [Tue, 23 Jan 1996 00:34:58 +0000 (00:34 +0000)]
* debug.h (debug_get_type_size): Declare.
(debug_get_field_name): Declare.
(debug_get_field_bitpos): Declare.
(debug_get_field_bitsize): Declare.
(debug_get_field_visibility): Declare.
(debug_get_field_physname): Declare.
* debug.c (debug_get_real_type): Handle DEBUG_KIND_TAGGED.
(debug_get_type_size): New function.
(debug_get_field_name): New function.
(debug_get_field_bitpos): New function.
(debug_get_field_bitsize): New function.
(debug_get_field_visibility): New function.
(debug_get_field_physname): New function.
(debug_write_type): Make sure we pass the real kind, not INDIRECT,
to tag_type. Pass the name recursively for INDIRECT.
* Makefile.in (GENSCRIPTS): Pass @host@ @target@ @target_alias@.
* genscripts.sh: Set host, target and target_alias variables.
Check for native compile by comparing ${target} and ${host}.
* emultempl/elf32.em: Likewise.
* scripttempl/elfmips.sc: Test ${target}, not ${target_alias}.
Ian Lance Taylor [Mon, 22 Jan 1996 18:00:01 +0000 (18:00 +0000)]
* symbols.c (resolve_symbol_value): If a symbol is equated to an
undefined symbol, preserve the X_op of O_symbol.
(S_GET_VALUE): Fix check to permit this case.
* write.c (write_relocs): If a reloc is against an undefined
symbol equated to another symbol, change the reloc to be against
the latter symbol.
* config/obj-coff.c (do_relocs_for): Likewise.
If the MRI assembler sees
foo EQU bar
call foo
where bar is not defined, it generates a reloc against bar rather than
against foo. Since the gas documentation does not define this case,
this change makes gas compatible.
* config/tc-mips.c (load_register): Optimise "dli" loads.
(md_show_usage): add "-mcpu=vr4100" to help text.
Provide code to check for either the hi32, or lo32 bits of a 64bit
"dli" constant being 0xffffffff. Also for bit15 of a 16bit constant
being set, so that sign-extension can be used to fill the higher order
bits if required.