(add_procedure): Set first_proc_ptr if it hasn't been set.
(ecoff_build_lineno): If the first procedure does not start at
address zero, insert a dummy line to compensate.
index through rfd map if it exists. Check for a couple of cases
which gdb handles specially. Change all callers.
(ecoff_type_to_string): Take fdr argument rather than aux_ptr and
bigendian argument. Change all callers.
(ecoff_print_symbol): Handle stStruct, stUnion and stEnum.
* configure.in: Set ALL_OBJ_DEPS in output Makefile.
Based on suggestions from <BAILEY@hmivax.humgen.upenn.edu> (Charles Bailey):
* vmsconf.sh: In generated file, get ".obj" suffix right, build source files
from other directories into objects in the current directory, and specify PSECT
attributes explicitly to linker. Also added missing label.
* Makefile.in (stamp-mk.com): Reference new variable VMS_OTHER_OBJS for list of
non-local object files, instead of listing them here.
(VMS_OTHER_OBJS): New variable, added more libiberty files.
* make-gas.com: Regenerated.
* config/ho-vms.h (unlink): Define as delete.
* config-gas.com: Fix quoting on TARGET_CANONICAL definition. Delete files
before creating them.
* config/tc-mips.c (macro_build): Permit BFD_RELOC_PCREL_LO16 for
certain cases of 'i', 'j' and 'o'. Change 'u' to take an
argument, the reloc type.
(load_register): Pass reloc type to macro_build for 'u'.
(macro): Likewise. For M_LA_AB permit a difference expression
when generating embedded PIC code between an arbitrary symbol and
a symbol in the .text section.
(mips_force_relocation): Force BFD_RELOC_PCREL_HI16_S and
BFD_RELOC_PCREL_LO16 to be emitted.
(md_apply_fix): Check that most relocs are not PC relative.
Handle BFD_RELOC_PCREL_HI16_S and BFD_RELOC_PCREL_LO16.
(tc_gen_reloc): Change #error to as_fatal. Handle
BFD_RELOC_PCREL_LO16 and BFD_RELOC_PCREL_HI16_S.
numbering changes in include/coff/mips.h. Add entries for
MIPS_R_RELHI and MIPS_R_RELLO.
(mips_ecoff_swap_reloc_in): Handle an extra bit for the reloc type
when little endian. Treat internal MIPS_R_RELLO or MIPS_R_RELHI
relocs like MIPS_R_SWITCH, and convert r_offset from 24 to 32
bits.
(mips_ecoff_swap_reloc_out): Likewise.
(mips_adjust_reloc_in): Handle internal MIPS_R_RELLO or
MIPS_R_RELHI relocs like MIPS_R_SWITCH.
(mips_adjust_reloc_out): Likewise.
(mips_relhi_addr, mips_relhi_addend): New static variables.
(mips_relhi_reloc, mips_rello_reloc): New functions.
(mips_bfd_reloc_type_lookup): Turn BFD_RELOC_PCREL_HI16_S into
MIPS_R_RELHI and turn BFD_RELOC_PCREL_LO16 into MIPS_R_RELLO.
(mips_relocate_hi): Rename from mips_relocate_refhi, and add pcrel
argument. Changed all callers.
(mips_relocate_section): Rename got_reflo to got_lo and
reflo_int_rel to lo_int_rel. Handle MIPS_R_RELLO and MIPS_R_RELHI
relocs.
(mips_relax_section): Adjust MIPS_R_RELHI/MIPS_R_RELLO pairs when
expanding a PC relative call.
(RELOC_BITS3_TYPEHI_LITTLE): Define.
(RELOC_BITS3_TYPEHI_SH_LITTLE): Define.
(MIPS_R_PCREL16): Change value from 8 to 12 to match Irix 4.
(MIPS_R_RELHI): Define.
(MIPS_R_RELLO): Define.
(MIPS_R_SWITCH): Change value from 9 to 22.
* config/unix.exp: Use nm.new, not nm, from newly built tree.
* binutils.all/objdump.exp: Add more wildcards to list of
single-letter options in pattern for usage message.
* binutils.all/nm.exp: Deleted debug-symbols test, since it only
works for a.out/stabs systems. Fixed regexps to make underscores
optional, since some C compilers don't prepend them. Deleted
check for foo.o symbol, since again some systems don't generate
it.
bp_watchpoint_scope breakpoints.
(struct breakpoint): Add val_chain and related_breakpoint fields
for use by watchpoints.
* breakpoint.c (within_scope): Delete. No longer used.
(TARGET_CAN_USE_HARDWARE_WATCHPOINT): Provide default definition.
(target_{remove,insert}_watchpoint): Likewise.
(can_use_hardware_watchpoint): New function.
(remove_breakpoint): New function to remove a single breakpoint
or hardware watchpoint.
(insert_breakpoints): Handle insertion of hardware watchpoints.
Store a copy of the value chain derived from the watchpoint
expression.
(remove_breakpoints): Simplify by using remove_breakpoint.
(delete_breakpoint): Likewise.
(watchpoint_check): Delete the watchpoint and watchpoint scope
breakpoints when the watchpoint goes out of scope. Save & restore
the current frame after checking watchpoints.
(breakpoint_init_inferior): Likewise (restarting the program
makes all local watchpoints go out of scope).
(bpstat_stop_status): Handle hardware watchpoints much like normal
watchpoints. Delete the watchpoint and watchpoint scope breakpoint
when the watchpoint goes out of scope. Remove and reinsert all
breakpoints before returning if we stopped when a hardware watchpoint
fired.
(watch_command): Use a hardware watchpoint when possible. If
watching a local expression, build a scope breakpoint too.
(map_breakpoint_numbers): Also call given function for any
related breakpoints.
(disable_breakpoint): Never disable a scope breakpoint.
(enable_breakpoint): Handle hardware breakpoints much like normal
breakpoints, but recompute the watchpoint_scope breakpoint's
frame and address (if we have an associated scope breakpoint).
(read_memory_nobpt): Handle hardware watchpoints like normal
watchpoints. When necessary handle watchpoint_scope breakpoints.
(print_it_normal, bpstat_what, breakpoint_1, mention): Likewise.
(clear_command, breakpoint_re_set_one, enable_command): Likewise.
(disable_command): Likewise.
* blockframe.c (find_frame_addr_in_frame_chain): New function.
Extern prototype added to frame.h
* infrun.c (wait_for_inferior): Set current_frame and select
a frame before checking if we stopped due to a hardare watchpoint
firing. Handle stepping over hardware watchpoints.
(normal_stop): Remove unnecessary call to select_frame.
* value.h (value_release_to_mark): Declare.
* values.c (value_release_to_mark): New function.
* procfs.c (procfs_wait): Add cases for hardware watchpoints.
(procfs_set_watchpoint, procfs_stopped_by_watchpoint): New functions.
* hppab-nat.c (hppa_set_watchpoint): New function.
* config/pa/nm-hppab.h (STOPPED_BY_WATCHPOINT): Define.
(HAVE_STEPPABLE_WATCHPOINT): Define.
(TARGET_CAN_USE_HARDWARE_WATCHPOINT): Define.
(target_{insert,delete}_watchpoint): Define.
* subsegs.c (subsegs_begin): Call memset with args in the correct
order.
(subseg_get): Clear newly allocated seginfo, set its pointer slots
to NULL instead of 0.
Fixes a problem observed in sparc-lynx progressive.
* xcoffread.c (read_xcoff_symtab): Ignore symbols of class C_EXT,
smtyp XTY_LD, sclass XMC_DS (external data segment label). They
often have the same names as debug symbols for functions, and
confuse lookup_symbol().
* config/pa/tm-hppa.h (REGISTER_BYTES): Use 4 rather than
REGISTER_RAW_SIZE (1).
Together these changes work around a bug in HP's compiler. Both
seem to be necessary.
.fini sections into .text; keep them separate.
* config/i386sco.mh (HOSTING_CRT0): If ../gcc/crtbegin.o does not
exist, get crtbegin based on gcc -print-libgcc-file-name.
(HOSTING_LIBS): Similar change for ../gcc/crtend.o.
* gdb.t15/return.exp (return_tests): Handle targets where "return"
stops in mid-line in the caller. Add xfail for returning a float
value on X86 targets.