Ian Lance Taylor [Thu, 31 Mar 1994 19:44:10 +0000 (19:44 +0000)]
* ecoff.c (ecoff_write_object_contents): Set the text_start and
data_start entries in the optional header correctly even if a text
or data section starts at location zero.
Ian Lance Taylor [Thu, 31 Mar 1994 16:58:23 +0000 (16:58 +0000)]
* coffgen.c (coff_write_symbol): Reindented. Changed to return
boolean, and changed written to unsigned int *. Check error
returns from called functions.
(coff_write_alien_symbol): Likewise.
(coff_write_native_symbol): Likewise.
(coff_write_symbols): Likewise. Reworked checks on whether to
write symbol name to string table for clarity and to avoid core
dumping when given a non COFF symbol.
* libcoff-in.h (coff_write_symbols): Declare as returning boolean.
* libcoff.h: Rebuilt.
* coffcode.h (coff_write_object_contents): Check return value of
coff_write_symbols.
Jeff Law [Thu, 31 Mar 1994 06:50:42 +0000 (06:50 +0000)]
* som.c (som_begin_writing): New approach at dealing with holes
in executables left by the HP linker. Does not rely on subspace
alignments as subspaces are *NOT* guaranteed to be properly
aligned in an executable (can you believe that!).
Jim Kingdon [Wed, 30 Mar 1994 22:38:58 +0000 (22:38 +0000)]
* xcoffread.c (xcoff_next_symbol_text): New function.
(read_xcoff_symtab): Set next_symbol_text_func to it.
Move raw_symbol outside of read_xcoff_symtab.
Ian Lance Taylor [Wed, 30 Mar 1994 22:10:18 +0000 (22:10 +0000)]
* elfread.c (elf_symtab_read): Change storage_needed,
number_of_symbols and i to long. Rename get_symtab_upper_bound to
bfd_get_symtab_upper_bound. Check for errors from
bfd_get_symtab_upper_bound and bfd_canonicalize_symtab.
* nlmread.c (nlm_symtab_read): Same changes.
Ian Lance Taylor [Wed, 30 Mar 1994 22:06:39 +0000 (22:06 +0000)]
* gprof.c (getsymtab): Change nosyms to long. Rename
get_symtab_upper_bound to bfd_get_symtab_upper_bound. Check for
errors from bfd_get_symtab_upper_bound and
bfd_canonicalize_symtab.
Ian Lance Taylor [Wed, 30 Mar 1994 22:06:17 +0000 (22:06 +0000)]
Update for recent BFD changes to symbol and reloc reading. Rename
all uses of get_symtab_upper_bound to bfd_get_symtab_upper_bound.
Also:
* coffgrok.c (symcount): Change to long.
(do_sections_p1): Check for error return from
bfd_get_reloc_upper_bound. Change relcount to long, and check for
error from bfd_canonicalize_reloc.
(coff_grok): Change storage to long. Check for error from
bfd_get_symtab_upper_bound and bfd_canonicalize_symtab.
* nlmconv.c (main): Change symcount, newsymalloc, newsymcount, and
i to long. Check for error from bfd_get_symtab_upper_bound and
bfd_canonicalize_symtab.
(copy_sections): Change reloc_size and reloc_count to long. Check
for error from bfd_get_reloc_upper_bound and
bfd_canonicalize_reloc.
(mangle_relocs, i386_mangle_relocs, alpha_mangle_relocs): Change
reloc_count_ptr argument to long *. Make corresponding changes to
variables loaded from *reloc_count_ptr.
* nm.c (display_rel_file): Change storage and symcount to long.
Check for errors from bfd_get_symtab_upper_bound and
bfd_canonicalize_symtab.
* objcopy.c (filter_symbols): Change symcount, src_count and
dst_count to long.
(copy_object): Change symcount to long. Pass another argument to
fprintf. Check for errors from bfd_get_symtab_upper_bound and
bfd_canonicalize_symtab.
(copy_section): Change relcount to long. Check for errors from
bfd_get_reloc_upper_bound and bfd_canonicalize_reloc.
(mark_symbols_used_in_relocations): Change relcount and i to long.
Check for errors form bfd_get_reloc_upper_bound and
bfd_canonicalize_reloc.
* objdump.c (storage): Remove global variable.
(symcount): Changed to long.
(slurp_symtab): New local variable storage. Check for errors from
bfd_get_symtab_upper_bound and bfd_canonicalize_symtab.
(remove_useless_symbols): Change return value and count to long.
(objdump_print_address): Change min, max, thisplace and i to long.
(disassemble_data): Change i to long.
(dump_symbols): Change count to long.
(dump_relocs): Change relcount to long. Check for errors from
bfd_ret_reloc_upper_bound and bfd_canonicalize_reloc.
(display_info_table): Add casts when passing LONGEST_ARCH for
printf %* argument.
Jim Kingdon [Wed, 30 Mar 1994 21:48:14 +0000 (21:48 +0000)]
* xcoffread.c (xcoff_next_symbol_text): New function.
(read_xcoff_symtab): Set next_symbol_text_func to it.
Move raw_symbol outside of read_xcoff_symtab.
Peter Schauer [Wed, 30 Mar 1994 10:00:00 +0000 (10:00 +0000)]
* config/i386/tm-symmetry.h: Clean up, it is now only used for Dynix.
Remove all conditionals and definitions for ptx.
I386_REGNO_TO_SYMMETRY moved to here from symm-tdep.c.
Fix addresses of floating point registers in REGISTER_U_ADDR.
STORE_STRUCT_RETURN now handles cc and gcc conventions.
FRAME_CHAIN, FRAMELESS_FUNCTION_INVOCATION, FRAME_SAVED_PC,
IN_SIGTRAMP, SIGCONTEXT_PC_OFFSET defined to make backtracing through
signal trampoline code work.
* config/i386/xm-symmetry.h: Clean up, it is now only used for Dynix.
Remove all conditionals and definitions for ptx.
Remove KDB definitions.
Peter Schauer [Wed, 30 Mar 1994 09:57:08 +0000 (09:57 +0000)]
* ch-exp.y (decode_integer_value, match_character_literal,
match_bitstring_literal): Guard tolower calls with isupper,
tolower on old BSD systems blindly subtracts a constant.
* dbxread.c (read_ofile_symtab): Check for __gnu_compiled_* as
well when determining the producer of the object file.
* mdebugread.c (has_opaque_xref): New function to check for
cross reference to an opaque aggregate.
* mdebugread.c (parse_symbol, parse_partial_symbols): Do not
enter typedefs to opaque aggregates into the symbol tables.
* mdebugread.c (parse_external): Remove skip_procedures argument,
it has always been 1. Remove code that handled stProc symbols,
it was never executed and was wrong, as the index of a
stProc symbol points to the local symbol table and not to the
auxiliary symbol info. Update caller.
* mdebugread.c (parse_partial_symbols): Do not enter external
stProc symbols into the partial symbol table, they are already
entered into the minimal symbol table.
* config/i386/tm-symmetry.h: Clean up, it is now only used for Dynix.
Remove all conditionals and definitions for ptx.
I386_REGNO_TO_SYMMETRY moved to here from symm-tdep.c.
Fix addresses of floating point registers in REGISTER_U_ADDR.
STORE_STRUCT_RETURN now handles cc and gcc conventions.
FRAME_CHAIN, FRAMELESS_FUNCTION_INVOCATION, FRAME_SAVED_PC,
IN_SIGTRAMP, SIGCONTEXT_PC_OFFSET defined to make backtracing through
signal trampoline code work.
* config/i386/xm-symmetry.h: Clean up, it is now only used for Dynix.
Remove all conditionals and definitions for ptx.
Remove KDB definitions.
* symm-nat.c (store_inferior_registers): Fetch registers before
storing them to obtain valid floating point control registers.
Store fpu registers.
* symm-nat.c (print_1167_control_word): Dynix 3.1.1 defines
FPA_PCR_CC_C0 and FPA_PCR_CC_C1, avoid duplicate case value.
* symm-nat.c (fetch_inferior_registers, child_xfer_memory):
Fix typos.
* symm-nat.c (child_resume): Update type of `signal' parameter.
* symm-tdep.c (I386_REGNO_TO_SYMMETRY): Moved to tm-symmetry.h.
Peter Schauer [Wed, 30 Mar 1994 09:21:59 +0000 (09:21 +0000)]
* gdb.t02/whatis.exp, gdb.t08/opaque.exp: Add XFAILs for
sequent dynix.
* gdb.t06/signals.exp: Add clear_xfail for sequent dynix.
* gdb.t15/funcargs.exp: Conditionally step again to really
finish from marker_call_with_trampolines. Handle the case where
the first step from within call_with_trampolines already steps
us back to main.
* gdb.t15/gdbme.c: Add comment to closing brace of
call_with_trampolines for funcargs.exp.
Peter Schauer [Wed, 30 Mar 1994 08:53:45 +0000 (08:53 +0000)]
* i386dynix.c, config/i386-dynix.mt: New files, handling Dynix
variant of a.out.
* configure.in, config.bfd: Use them for Dynix.
* Makefile.in: Add dependencies for i386dynix.o.
* targets.c: Add definition for i386dynix_vec.
Jim Kingdon [Wed, 30 Mar 1994 03:50:23 +0000 (03:50 +0000)]
* remote.c (getpkt): If we get a timeout, actually retry rather
than just giving up the first time it happens.
* remote.c: Document sequence numbers.
(remote_store_registers): Change syntax of 'P' request so that it
never looks like a sequence number.
* os9kread.c (record_minmal_symbol): add section_offset to
relocate minimal symbol table.
* os9kread.c (read_minimal_symbols): ditto.
* os9kread.c (os9k_symfile_init): increase size of dbg and stb
file names.
* os9kread.c (read_os9k_psymtab): if there's no dbg file, just
return. Also if file addr is 0 leave it 0, not to relocate.
* remote-os9k.c (_initialize_remote_os9k): add 'set remotexon',
'set remotexoff' and 'set remotelog' commands.
Jim Kingdon [Tue, 29 Mar 1994 20:43:48 +0000 (20:43 +0000)]
* remote.c (remote_store_registers): Add 'P' request to set an
individual register.
(remote_write_bytes, remote_read_bytes): Use %lx, not %x, to print
a target address.
Ian Lance Taylor [Mon, 28 Mar 1994 17:43:54 +0000 (17:43 +0000)]
* config/obj-aout.c (obj_aout_frob_symbols): Don't let BFD clobber
the type of symbol set symbols which happen to be in the absolute
or undefined section.
Jeff Law [Mon, 28 Mar 1994 00:53:55 +0000 (00:53 +0000)]
* gdb.t07/gdbme.c: More code for watchpoint testing.
* gdb.t07/watchpoint.exp: Accept both "Watchpoint" and
"Hardware watchpoint" throughout file.
(test_watchpoint_triggered_in_syscall): New test.
(test_complex_watchpoint): New test.
Jeff Law [Mon, 28 Mar 1994 00:25:15 +0000 (00:25 +0000)]
* More fixes for object formats which allow multiple sections
with the same name:
* objcopy.c (setup_section): Make a new output section even if
one already exists with the given name.
(copy_section): Use isection->output_section rather than trying
to look the output section up by its (possibly non-unique) name.
Jeff Law [Sun, 27 Mar 1994 22:05:21 +0000 (22:05 +0000)]
* config/tc-hppa.c (tc_gen_reloc): Set addend for relocation
involving a function symbol which is not a plabel to zero.
(md_apply_fix): Never pass a function symbol to field_adjust.
Jeff Law [Sat, 26 Mar 1994 20:25:48 +0000 (20:25 +0000)]
* som.c (som_get_section_contents): New function. Do not try
to actually read data from a section that doesn't have either
SEC_LOAD or SEC_DEBUGGING set (eg $BSS$) just return true.
David MacKenzie [Sat, 26 Mar 1994 20:08:38 +0000 (20:08 +0000)]
* configure: Make unrecognized options give nonfatal warnings
instead of fatal errors, and pass them to any subdirectory
configures in case they recognize them.
Make --x equivalent to --with-x.
Jeff Law [Sat, 26 Mar 1994 18:28:29 +0000 (18:28 +0000)]
* libbfd.c (bfd_read): Set bfd_error as appropriate for a short
read. (bfd_error_system_call or bfd_error_file_truncated).
* som.c: Do not blindly set bfd_error_system_call after a
failing bfd_read, bfd_write, or bfd_seek. In a few places
(like som_object_p) override the error status set by bfd_read.
Jim Kingdon [Sat, 26 Mar 1994 16:00:02 +0000 (16:00 +0000)]
* config/sparc/tm-sparc.h: Define USE_REGISTER_NOT_ARG.
* stabsread (define_symbol): If USE_REGISTER_NOT_ARG, go back to
combining all 'p' and 'r' pairs into a LOC_REGPARM.
Jim Kingdon [Sat, 26 Mar 1994 15:15:00 +0000 (15:15 +0000)]
* command.c (do_setshow_command, case var_string): Never add a
space to the end of the string.
* NEWS: Document this change.
* .gdbinit: Add a space to the "set prompt" command.
Jim Kingdon [Sat, 26 Mar 1994 04:26:26 +0000 (04:26 +0000)]
* buildsym.c (start_subfile, patch_subfile_names), demangle.c
(set_demangling_style, set_demangling_command): Use savestring not
strdup. We were not dealing properly with a NULL return from
strdup, and were not declaring strdup (the system header may or
may not have it).
Jeff Law [Sat, 26 Mar 1994 01:07:36 +0000 (01:07 +0000)]
* hppa-tdep.c (skip_prologue): Do nothing if not at the beginning
of a function.
(skip_trampoline_code): Rewrite and add support for argument
relocation stubs stubs, import/export stubs, calls through
"_sr4export" and cascaded trampolines.
Ian Lance Taylor [Fri, 25 Mar 1994 22:40:44 +0000 (22:40 +0000)]
* config/tc-mips.c (append_insn): If EMBEDDED_PIC, don't swap a
branch with an instruction that uses $at, in case the branch is
later expanded.
(macro): If EMBEDDED_PIC, case M_JAL_A may use $at.
(md_pcrel_from): If not OBJ_AOUT, return 4 for an undefined symbol
to make it pcrel_offset.
(tc_gen_reloc): If not OBJ_AOUT, set the reloc addend to
reloc->address; another gruesome hack to get gas reloc handling to
do the right thing.
Ian Lance Taylor [Fri, 25 Mar 1994 22:37:55 +0000 (22:37 +0000)]
Changes to support linker relaxing of embedded MIPS PIC code to
use a five instruction sequence for funtion calls which are out of
range of the bal instruction.
* libecoff.h (struct ecoff_section_tdata): Define.
(ecoff_section_data): Define.
(ecoff_bfd_relax_section): Don't define.
* ecoff.c (ecoff_final_link_debug_accumulate): Don't read or free
the debugging information if it has already been read.
(ecoff_indirect_link_order): Handle _cooked_size being different
from _raw_size. Don't reread the contents or the relocs if they
have already been read in.
* coff-mips.c (mips_howto_table): Change bitsize of PCREL16 from
18 to 16.
(PCREL16_EXPANSION_ADJUSTMENT): Define.
(mips_relocate_refhi): Take adjust argument.
(mips_relocate_section): Handle reloc offsets stored in section
used_by_bfd field. Call mips_relax_pcrel16 to handle details of
expanding an out of range PCREL16. Keep trace of adjustments
required by expansions. Set s and unset h when converting a reloc
from undefined to section. Change handling of PC relative relocs:
if against a section, they are correct in the object file, if
against an external symbol they are pcrel_offset.
(mips_relax_section): New function.
(mips_relax_pcrel16): New function.
(ecoff_bfd_relax_section): Define.
* coff-alpha.c (ecoff_bfd_relax_section): Define.
* ecofflink.c (bfd_ecoff_debug_accumulate): Handle adjustments
built by mips_relax_section when writing out addresses.
* elf32-mips.c (mips_elf_read_ecoff_info): Clear adjust field.
Ian Lance Taylor [Fri, 25 Mar 1994 22:22:29 +0000 (22:22 +0000)]
* ldlang.c (print_input_section): For section size, use
_cooked_size if it is non-zero, size otherwise.
(size_input_section): Likewise.
(lang_do_assignments): Likewise (case lang_input_section_enum).
Jeff Law [Fri, 25 Mar 1994 18:21:49 +0000 (18:21 +0000)]
* tm-hppa.h (NUM_REGS): Bump to 128 registers.
(REGISTER_NAMES): Add entries for "right-half" of FP registers.
(REGISTER_RAW_SIZE, MAX_REGISTER_RAW_SIZE): Do not treat FP regs
differently. All registers are four bytes.
(REGISTER_BYTES, REGISTER_BYTE): Simplify now that all registers are
the same size.
(REGISTER_VIRTUAL_TYPE): Use builtin_type_float for all FP regs.
* hppa-tdep.c (pa_print_fp_reg): Update to print even numbered FP
registers as both single and double values (fetching 2nd 32bit half
as necessary). Annotate each register printed with its precision.
Ken Raeburn [Fri, 25 Mar 1994 02:39:19 +0000 (02:39 +0000)]
* config/tc-alpha.c (alpha_ip): Only set GP prolog size if using PV register.
(T12): New macro.
(emit_insn): New function.
(md_assemble): Call it.
(alpha_force_relocation): Handle BFD_RELOC_26, for call_pal instructions.
(lituse_pending): New variable. Set by anything that generates a LITERAL
reloc, cleared by anything that generates a LITUSE reloc, tested by code that
might want to emit a LITUSE reloc.
(emit_unaligned_io): New function. Currently calls md_assemble, but it should
eventually be converted to generate the insn itself and call emit_insn directly.
(emit_load_unal, emit_store_unal, emit_byte_manip_r, emit_extract_r,
emit_insert_r, emit_mask_r, emit_sign_extend, emit_bis_r): Likewise.
(alpha_ip, case 'I'): Handle with BFD_RELOC_23.
(alpha_ip, label get_macro): Don't emit the final instruction if the opcode is
zero.
(alpha_ip, case 'B', subcase 'd'): New case, for subword and unaligned memory
access macros.
(md_apply_fix): Handle BFD_RELOC_26. Generate an error message if the value
can't be resolved.
Jim Kingdon [Fri, 25 Mar 1994 01:38:24 +0000 (01:38 +0000)]
* config/mips/tm-mips.h (SETUP_ARBITRARY_FRAME): Revise comment
regarding using the PC--using the PC is necessary and all the
FIXME comments in the world won't make it go away.