Jeff Law [Mon, 18 Apr 1994 21:29:28 +0000 (21:29 +0000)]
* config/tc-hppa.c (pa_parse_space_stmt): Use the built-in
defaults for defined, private, and spnum fields for the
$TEXT$ and $PRIVATE$ spaces. Do not clobber spnum. Do
not reset the segment if just updating a space.
(pa_spaces_begin): Set BFD section flags for all built-in
subspaces.
Jeff Law [Mon, 18 Apr 1994 21:28:01 +0000 (21:28 +0000)]
* som.c (som_prep_headers): Get the space's number from the
backend private section data rather than target_index.
(bfd_som_set_section_attributes): Store the space's number
in the backend private section data rather than target_index.
Peter Schauer [Mon, 18 Apr 1994 20:26:32 +0000 (20:26 +0000)]
* dbxread.c (read_dbx_dynamic_symtab): Relocate BFD symbols by
section vma. Do not read dynamic relocs for sun3 executables to
avoid BFD assertion message.
Jeff Law [Sun, 17 Apr 1994 05:22:39 +0000 (05:22 +0000)]
* paread.c (compare_unwind_entries): Delete function. It's been
moved into hppa-tdep.c.
(read_unwind_info): Likewise.
(pa_symfile_read): No longer call read_unwind_info. The unwind
tables will be read in as they are needed.
* hppa-tdep.c (compare_unwind_entries): New function.
(read_unwind_info, internalize_unwinds): Likewise.
(find_unwind_entry): Read in unwind information on demand.
Ian Lance Taylor [Fri, 15 Apr 1994 22:22:07 +0000 (22:22 +0000)]
* coff-a29k.c (reloc_processing): Always set the address of a
R_IHCONST reloc to that of the immediately preceding R_IHIHALF.
gas does this anyhow, but some other assemblers seem to leave
garbage in the R_IHCONST address field.
Ian Lance Taylor [Fri, 15 Apr 1994 19:30:09 +0000 (19:30 +0000)]
* bfd/archive.c: Consistently use ARFMAG; from [email protected] (Andreas Schwab).
(_bfd_write_archive_contents): Use ARFMAG rather than '`' and
'\012'.
(bsd_write_armap): Likewise.
(coff_write_armap): Likewise.
* h8500-tdep.c (initialize_h8500_tdep, large_command):
All references to value changed to value_ptrlage_command is now
called big_command.
All references to value changed to value_ptr.
* remote-z8k.c (e7000_wait): Use target_waitstatus and SETSTOP
* remote-hms.c (hms_wait): Timeout after five seconds.
* ser-go32.c (dosasync_read): Poll if timeout < 0.
* config/tm/tm-h8500.h (BEFORE_MAIN_LOOP_HOOK): Deleted.
* config/sh/tm-sh.h (BREAKPOINT): Is now sleep opcode.
Ian Lance Taylor [Fri, 15 Apr 1994 18:39:31 +0000 (18:39 +0000)]
* ecoff.c (first_proc_ptr): New static variable.
(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.
Ian Lance Taylor [Fri, 15 Apr 1994 18:35:32 +0000 (18:35 +0000)]
* coff-mips.c (mips_relocate_section): When relaxing, adjust local
relocs against the .text section as required.
* ecofflink.c (bfd_ecoff_debug_accumulate): When relaxing, adjust
PDR addresses as required.
Ian Lance Taylor [Fri, 15 Apr 1994 16:29:56 +0000 (16:29 +0000)]
* ecoff.c (ecoff_emit_aggregate): Take fdr argument. Map fdr
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.
Ken Raeburn [Thu, 14 Apr 1994 22:46:53 +0000 (22:46 +0000)]
* Makefile.in: Make $(OBJS) depend on $(ALL_OBJ_DEPS).
* configure.in: Set ALL_OBJ_DEPS in output Makefile.
Based on suggestions from <[email protected]> (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.
Ken Raeburn [Thu, 14 Apr 1994 22:30:22 +0000 (22:30 +0000)]
* expr.c (operand): Try to parse "0f" and "0b" sequences as floating point and
binary numbers respectively; if it doesn't work, treat them as local labels.
Ian Lance Taylor [Thu, 14 Apr 1994 17:39:55 +0000 (17:39 +0000)]
* config/tc-mips.h (DIFF_EXPR_OK): Define.
* 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.
Ian Lance Taylor [Thu, 14 Apr 1994 17:33:22 +0000 (17:33 +0000)]
* coff-mips.c (mips_howto_table): Add dummy entries to account for
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.
Ian Lance Taylor [Thu, 14 Apr 1994 17:02:48 +0000 (17:02 +0000)]
* mips.h (RELOC_BITS3_TYPE_BIG): Changed from 0x1e to 0x3e.
(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.
Ken Raeburn [Wed, 13 Apr 1994 22:46:00 +0000 (22:46 +0000)]
Make tests work again on alpha-osf1 and sun4 native.
* 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.
Jeff Law [Wed, 13 Apr 1994 21:57:00 +0000 (21:57 +0000)]
* breakpoint.h (enum bptype): Add bp_hardware_watchpoint and
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.
* 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.
Stu Grossman [Tue, 12 Apr 1994 02:53:09 +0000 (02:53 +0000)]
Mon Apr 11 19:21:27 1994 Stu Grossman (grossman at cygnus.com)
* 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().
Jim Kingdon [Mon, 11 Apr 1994 17:52:11 +0000 (17:52 +0000)]
* remote.c: Around redefinition of PBUFSIZE, adjust whitespace.
* 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.
Ian Lance Taylor [Mon, 11 Apr 1994 16:35:39 +0000 (16:35 +0000)]
* scripttempl/i386coff.sc: If relocating, don't put .init and
.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.
Jeff Law [Mon, 11 Apr 1994 16:19:03 +0000 (16:19 +0000)]
* paread.c (pa_symtab_read): Handle ST_STUB symbols and symbols
with scope SS_EXTERNAL. ST_ENTRY symbols in dynamic executables
are type mst_solib_trampoline.
Jeff Law [Mon, 11 Apr 1994 16:16:20 +0000 (16:16 +0000)]
* From Peter Schauer with minor modifications.
* 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.
Jeff Law [Sun, 10 Apr 1994 08:12:33 +0000 (08:12 +0000)]
* elfcode.h (write_relocs): For rela relocations, adjust the
addend for relocations involving section symbols to account
for the lossage of 1:1 mapping from input section symbols to
output section symbols.
* aoutx.h (NAME(aout,make_sections)): New function.
(NAME(aout,some_aout_object_p)): Call NAME(aout,make_sections)
rather than making sections inline.
(NAME(aout,mkobject)): Don't make any sections.
(NAME(aout,adjust_sizes_and_vmas)): Call NAME(aout,make_sections).
(NAME(aout,final_link)): Don't dereference obj_textsec (abfd) or
obj_datasec (abfd) if they are NULL.
* libaout.h (NAME(aout,make_sections)): Declare.
* bout.c (b_out_mkobject): Don't make any sections.
(b_out_write_object_contents): Call aout_32_make_sections.
(b_out_set_section_contents): Likewise.
* i386os9k.c (os9k_mkobject): Don't make any sections.
(os9k_write_object_contents): Call aout_32_make_sections.
(os9k_set_section_contents): Likewise.
Peter Schauer [Fri, 8 Apr 1994 00:35:15 +0000 (00:35 +0000)]
* infrun.c (IN_SOLIB_TRAMPOLINE): Correct comment, trampolines
are in the .plt section.
* minsyms.c (lookup_solib_trampoline_symbol_by_pc,
find_solib_trampoline_target): New functions for handling
stepping into -g compiled shared libraries.
* symtab.h (lookup_solib_trampoline_symbol_by_pc,
find_solib_trampoline_target): Add prototypes.
* config/tm-sunos.h (IN_SOLIB_TRAMPOLINE, SKIP_TRAMPOLINE_CODE):
Define to handle stepping into -g compiled shared libraries.
* config/tm-sysv4.h (SKIP_TRAMPOLINE_CODE): Define to handle
stepping into -g compiled shared libraries.
* configure.in: Add mips-*-sysv4* support.
* config/mips/mipsv4.mh, config/mips/mipsv4.mt,
config/mips/tm-mipsv4.h, config/mips/xm-mipsv4.h, mipsv4-nat.c:
New files for MIPS SVR4 support.
* Makefile.in: Update for new mipsv4 files.
* alpha-tdep.c (heuristic_proc_desc, find_proc_desc): Use
read_next_frame_reg to obtain the frame relative stack pointer.
* mips-tdep.c (heuristic_proc_desc): Use read_next_frame_reg to
obtain the frame relative stack pointer.
* mdebugread.c (parse_partial_symbols, psymtab_to_symtab1):
Handle stStatic and stStaticProc symbols in stabs-in-ecoff output
by entering them into the minimal symbol table.
* printcmd.c (print_scalar_formatted): Do not try to unpack to
a long for float formats.
* solib.c: Include "elf/mips.h" only if DT_MIPS_RLD_MAP does not
get defined in <link.h>.
* solib.c (solib_add): Add shared library sections to the section
table of the target before adding the symbols.
* partial-stab.h: Relocate static and global functions.
* dbxread.c (read_dbx_symtab): Remove unused variable
end_of_text_address. Relocate text_addr when passing it
to end_psymtab.
For Alpha OSF/1 targets, enable gdb to set breakpoints in shared
library functions before the executable is run. Retrieve dynamic
symbols from stripped executables.
* mipsread.c (read_alphacoff_dynamic_symtab): New function.
* mipsread.c (mipscoff_symfile_read): Use it. Issue warning message
if no debugging symbols were found.
* alpha-tdep.c (alpha_skip_prologue): Silently return the unaltered
pc if memory at the pc is not accessible and GDB_TARGET_HAS_SHARED_LIBS
is defined.
* config/alpha/nm-alpha.h (GDB_TARGET_HAS_SHARED_LIBS): Define,
OSF/1 has shared libraries.
* config/tc-mips.c (macro): Pass NULL for expression argument to
macro_build for nori case.
(SWITCH_TABLE): Define.
(mips_force_relocation): Force a relocation for a switch table
entry.
(md_apply_fix): Write switch table entry value into file.
(tc_gen_reloc): Use BFD_RELOC_GPREL32 for a switch table entry,
and set the addend to the difference between the reloc address and
the subtrahend.
* coff-mips.c (mips_howto_table): Add entry for MIPS_R_SWITCH.
(mips_ecoff_swap_reloc_in): For MIPS_R_SWTICH, copy r_symndx into
r_offset and set r_symndx to RELOC_SECTION_TEXT.
(mips_ecoff_swap_reloc_out): For MIPS_R_SWITCH, get the r_symndx
value from the r_offset field.
(mips_adjust_reloc_in): Maximum r_type value is now MIPS_R_SWITCH.
For MIPS_R_SWITCH, copy the r_offset field into the addend field.
(mips_adjust_reloc_out): For MIPS_R_SWITCH, copy the addend field
into the r_offset field.
(mips_switch_reloc): New function.
(mips_bfd_reloc_type_lookup): Translate BFD_RELOC_GPREL32 into
MIPS_R_SWITCH.
(mips_relocate_section): Handle MIPS_R_SWITCH.
(mips_relax_section): Adjust MIPS_R_SWITCH offset if necessary.
Jeff Law [Thu, 7 Apr 1994 18:12:25 +0000 (18:12 +0000)]
* elfcode.h (elf_set_section_contents): Support calling the backend
function elf_backend_begin_write_processing when just beginning to
write an object file.
* elf32-hppa.c (symext_chain_built): Delete.
(symext_chain_size): Renamed from symextn_contents_real_size.
(elf32_hppa_backend_{begin,final}_write_processing): New functions.
(add_entry_to_symext_chain): New function.
(hppa_elf_set_section_contents): Ignore writes to the symbol extension
section until it's been rebuilt internally.
(hppa_elf_get_section_contents): Symbol extension section is no
longer special.
(elf_backend_{begin,final}_write_processing): Define.
(elf_hppa_tc_make_sections): Simplify now that much code has
migrated into elf32_hppa_backend_{being,final}_write_processing.
* config/obj-elf.c (elf_frob_file): Delete elf_tc_symbol and
elf_tc_make_sections stuff. It was there to support PA braindamage
which has been fixed, and in the case of elf_tc_make_sections is
redundant with elf_tc_final_processing.
Added -D (--dynamic) option to nm and -T (--dynamic-syms) and -R
(--dynamic-reloc) arguments to objdump.
* nm.c (dynamic): New static variable.
(long_options): Added "dynamic".
(usage): Mention -D and --dynamic.
(main): Add D to getopt string. Handle -D by setting dynamic.
(display_rel_file): If dynamic is non-zero, read dynamic symbols
rather than normal symbols.
* nm.1: Updated for -D (--dynamic) option.
* objdump.c (dump_dynamic_symtab): New global variable.
(dump_dynamic_reloc_info): New global variable.
(dynsyms, dynsymcount): New global variables.
(usage): Mention -R, -T, --dynamic-syms and --dynamic-reloc.
(long_options): Added "dynamic-reloc" and "dynamic-syms".
(slurp_symtab): If no symbols, return rather than exit.
(slurp_dynamic_symtab): New function.
(display_bfd): Handle dump_dynamic_symtab and
dump_dynamic_reloc_info.
(dump_symbols): Take new dynamic argument, indicating whether to
display dynamic symbols.
(dump_relocs): Move most printing into dump_reloc_set.
(dump_dynamic_relocs): New function.
(dump_reloc_set): New function, extracted from dump_relocs.
(main): Add R and T to getopt string. Handle -T by setting
dump_dynamic_symtab and -R by setting dump_dynamic_reloc_info.
* objdump.1: Updated for -R (--dynamic-reloc) and -T
(--dynamic-syms) options.
* binutils.texi: Updated for new nm and objdump options.
* targets.c (bfd_target): Rearranged fields in target vector.
Removed _bfd_debug_info_start, _bfd_debug_info_end and
_bfd_debug_info_accumulate, which were never used.
(BFD_JUMP_TABLE_GENERIC, BFD_JUMP_TABLE_COPY): Defined.
(BFD_JUMP_TABLE_CORE, BFD_JUMP_TABLE_ARCHIVE): Defined.
(BFD_JUMP_TABLE_SYMBOLS, BFD_JUMP_TABLE_RELOCS): Defined.
(BFD_JUMP_TABLE_WRITE, BFD_JUMP_TABLE_LINK): Defined.
* All backends: Changed to use the new BFD_JUMP_TABLE_* macros
rather than the single JUMP_TABLE macro. Removed many of the
weird macro definitions needed to support the monolithic
JUMP_TABLE.
* bfd-in.h (JUMP_TABLE): Removed.
* libbfd-in.h: Define a bunch of macros, and declare a few
functions, for use with the new BFD_JUMP_TABLE_* macros.
* libbfd.c (_bfd_dummy_new_section_hook): Removed.
(bfd_false): Set bfd_error_invalid_operation.
(bfd_nullvoidptr): Likewise.
(bfd_n1): New function.
(_bfd_nocore_core_file_matches_executable_p): Renamed from
_bfd_dummy_core_file_matches_executable_p.
(_bfd_nocore_core_file_failing_command): Similar rename. Set
bfd_error_invalid_operation.
(_bfd_nocore_core_file_failing_signal): Likewise.
(_bfd_generic_get_section_contents): Renamed from
bfd_generic_get_section_contents. Changed all callers.
(_bfd_generic_set_section_contents): Similar rename.
* ieee.c: #if 0 out ieee_bfd_debug_info_start,
ieee_bfd_debug_info_end, ieee_bfd_debug_info_accumulate. They
were never called.
* bfd-in2.h: Rebuilt.
* libbfd.h: Rebuilt.