Jeff Law [Thu, 13 Jan 1994 20:17:07 +0000 (20:17 +0000)]
* subsegs.c (subseg_get): Accept new argument "force_new". If
set then a new segment is always created. All callers changed.
(subseg_force_new): New function. Similar to subseg_new, but
always force a new segment to be created.
* config/obj-som.c (som_frob_file): Call adjust_code_sections
for each section.
(adjust_code_sections): New function. Adjusts the VMA for all the
$CODE$ subspaces.
* config/tc-hppa.c (md_assemble): Also handle creating a fixup
for the unwind descriptors if a function's label follows the
.PROC and .ENTRY directives.
(pa_entry): Don't set BSF_FUNCTION for the label symbol here; it
is done elsewhere. Don't create a fixup for the unwind
descriptors if the function's label has not been defined yet.
(pa_proc): For SOM, place each procedure within a new $CODE$
subspace. Adjust the segment and frag for the associated
function label if it exists.
Jeff Law [Thu, 13 Jan 1994 20:16:44 +0000 (20:16 +0000)]
* subsegs.c (subseg_get): Accept new argument "force_new". If
set then a new segment is always created. All callers changed.
(subseg_force_new): New function. Similar to subseg_new, but
always force a new segment to be created.
Jeff Law [Thu, 13 Jan 1994 20:01:22 +0000 (20:01 +0000)]
* gas/all/gas.exp: No longer expect difference of forward
references to fail.
* gas/all/x930509.s: Fix testcase to match how the expect code was
written.
Jim Kingdon [Thu, 13 Jan 1994 17:41:40 +0000 (17:41 +0000)]
* printcmd.c (print_address_symbolic): If set print fast-symbolic-addr
is on, call find_pc_function rather than relying just on the minimal
symbols (probably only matters for symbol readers which don't put
statics in the minimal symbols, but changing this strikes me as
not conservative enough).
Initialize name_location in all cases.
If no symbol and no msymbol, don't print anything symbolic.
Jeff Law [Thu, 13 Jan 1994 06:06:35 +0000 (06:06 +0000)]
* config/tc-hppa.c (hppa_fix_struct): Add new "segment" field.
(hppa_fix_new): Initialize segment field.
(md_apply_fix): Do nothing for pc-relative fixup which involves
crossing a segment boundary.
(pa_procend): Undefine the current label after handling .PROC
and .PROCEND directives.
(dummy_symbol): Make type "symbolS *". Change references as
appropriate.
John Gilmore [Thu, 13 Jan 1994 05:04:40 +0000 (05:04 +0000)]
* printcmd.c (print_address_symbolic): Make it search the
symtabs for variables as well as functions. Add `set print
fast-symbolic-addr' and default it to fast (the old way).
Print line numbers for data items as well as functions.
* symtab.c (find_addr_symbol): Return the symtab and the symbol
address, if a symbol is found (take two more args pointing to
where to store these results).
Jim Kingdon [Thu, 13 Jan 1994 00:34:18 +0000 (00:34 +0000)]
* objfiles.h: Fix comments to reflect the fact that the phrase
"top of stack" always refers to where the pushing and popping takes
place, regardless of whether it is at the highest or lowest address.
Peter Schauer [Wed, 12 Jan 1994 21:40:42 +0000 (21:40 +0000)]
Enable gdb to write to core files on more core file readers.
* libbfd.c (bfd_generic_set_section_contents): Remove range check
for section size, it is already done in bfd_set_section_contents
with bfd_get_section_size_now.
* aix386-core.c, hppabsd-core.c, hpux-core.c, irix-core.c,
osf-core.c, ptrace-core.c, trad-core.c (*_set_section_contents):
Use bfd_generic_set_section_contents instead of bfd_false.
Peter Schauer [Wed, 12 Jan 1994 21:27:51 +0000 (21:27 +0000)]
* mdebugread.c (parse_symbol): Do not set TYPE_TAG_NAME for
compiler generated tag names.
* mdebugread.c (parse_type): Handle cross references to qualified
aggregate types.
* valops.c (value_struct_elt): Improve error message if the
address of a method is requested from an object instance.
* valops.c (search_struct_method): Make name_matched non-static
to get it initialized correctly.
Jim Kingdon [Wed, 12 Jan 1994 19:47:27 +0000 (19:47 +0000)]
* go32-xdep.c: Remove unused function uerror.
(sigsetmask): Declare return type. Declare argument (to match the
way it is called). Explicitly return 0.
Ian Lance Taylor [Wed, 12 Jan 1994 18:40:11 +0000 (18:40 +0000)]
* read.c (read_a_source_file): Cast array argument to unsigned
char.
* write.c (adjust_reloc_syms): Remove unused variable symseginfo.
(write_object_file): Don't define punt_it if it won't be used.
(fixup_segment): Don't define skip if it won't be used.
John Gilmore [Wed, 12 Jan 1994 09:53:06 +0000 (09:53 +0000)]
* symtab.h (struct symbol, general_symbol_info, minimal_symbol,
partial_symbol): Shrink the storage sizes of symbols, by making
enums into 1-byte bitfields when compiled __GNUC__, moving all the
enums and small ints to the end of each struct to improve
alignment, and switching the section number from int to unsigned short.
John Gilmore [Wed, 12 Jan 1994 08:18:55 +0000 (08:18 +0000)]
* symtab.c (find_addr_symbol): New routine that will find the nearest
symbol associated with an address. It does so by exhaustive
search of the symtabs, so it's slow but complete.
John Gilmore [Wed, 12 Jan 1994 08:02:26 +0000 (08:02 +0000)]
* coffread.c (read_coff_symtab): Set PC bounds of _globals_ symtab
to [0,0] rather than [0, end of first source file]. This avoids
problems with other parts of GDB looking for linetables in the
_globals_ symtab. Eliminate variables num_object_files and
first_object_file_end.
John Gilmore [Wed, 12 Jan 1994 07:47:14 +0000 (07:47 +0000)]
* a29k-tdep.c (init_frame_info): Cast null arg to examine_tag.
(pop_frame): Restore PC2 and LR0 from dummy frames.
(push_dummy_frame): Save PC2 and LR0 into dummy frames.
(setup_arbitrary_frame): Handle 3 args and set up real frames.
* config/a29k/tm-a29k.h (FRAME_NUM_ARGS): Update comments.
(DUMMY_FRAME_RSIZE): Add 2 longwords for PC2 and LR0.
(SETUP_ARBITRARY_FRAME): Define.
David Edelsohn [Wed, 12 Jan 1994 01:04:10 +0000 (01:04 +0000)]
* expr.c (integer_constant): Fix computation of too_many_digits. Variable
digit_2 renamed to start. Fix check for whether number will fit in 32 bits.
* read.c (emit_expr): Use valueT instead of long.
Ian Lance Taylor [Tue, 11 Jan 1994 22:35:16 +0000 (22:35 +0000)]
* config/obj-elf.c: If TC_MIPS, include elf/mips.h.
(special_sections): Define.
(obj_elf_special_section): Get default types and attributes from
list of special sections.
* config/tc-mips.c (ELF_TC_SPECIAL_SECTIONS): Define.
Ian Lance Taylor [Tue, 11 Jan 1994 18:06:01 +0000 (18:06 +0000)]
* listing.c (listing_prev_line): New function.
* listing.c: Include subsegs.h.
(listing_prev_line): New function.
(calc_hex): Reset byte_in_frag to zero for each new frag.
* config/tc-mips.c (append_insn): Call listing_prev_line after
emitting nop instructions.
* Makefile.in (listing.o): Depends upon subsegs.h.
Ian Lance Taylor [Tue, 11 Jan 1994 16:23:41 +0000 (16:23 +0000)]
* ecofflink.c: Extensive changes to compress and merge debugging
information, and to write some of out directly rather than saving
it in memory. Several new functions and structures, and new
arguments to existing functions.
* ecoff.c (ecoff_compute_reloc_file_positions): Compute
sym_filepos as well.
(ecoff_get_extr): Use ifdmap instead of ifdbase.
(ecoff_write_object_contents): Don't compute sym_filepos here.
Only output symbols if outsymbols is not NULL.
(ecoff_bfd_final_link): Adjust for changes in ecoff_debug_info and
bfd_ecoff_debug functions. Write out debugging information here.
(ecoff_final_link_debug_accumulate): Adjust for changes in
bfd_ecoff_debug functions.
(ecoff_link_write_external): Use ifdmap rather than ifdbase.
* elf32-mips.c (mips_elf_read_ecoff_info): Read external symbols
first, to put them in the first memory buffer. Clear fdr field.
(mips_elf_get_extr): Use pointer to unswapped external symbol.
(mips_elf_final_link): Adjust for changes in bfd_ecoff functions.
Preserve .text, .data and .bss even if they are empty. Save
pointer to unswapped external symbol rather than copying it.
Don't free up the external symbols.
* libelf.h (elf_symbol_type): Change mips_extr to PTR.
* bfd-in.h (bfd_ecoff_debug_init, bfd_ecoff_debug_free): Declare.
(bfd_ecoff_debug_accumulate): Update declaration.
(bfd_ecoff_debug_accumulate_other): Rename declaration from
bfd_ecoff_debug_link_other and update.
(bfd_ecoff_write_accumulated_debug): Declare.
* bfd-in2.h: Rebuilt.
* Makefile.in: Rebuilt dependencies.
John Gilmore [Tue, 11 Jan 1994 09:13:25 +0000 (09:13 +0000)]
[Revise prev change -- this is how it's been running at Adobe, and it works
there.]
* sparc-tdep.c (sparc_pop_frame): Pop the fsr and csr (float and
coprocessor status regs) when popping a frame. This fixes
float exceptions that occur after calling inferior functions.
* sparc-nat.c (fetch_inferior_registers, store_inferior_registers):
Read and write the fsr (float status register) to/from the child
process along with the float regs. Remove Peter Schauer's change
of May 24 '93, which has higher overhead and doesn't solve the
real problem (which was that FSR wasn't being set).
John Gilmore [Tue, 11 Jan 1994 08:59:41 +0000 (08:59 +0000)]
* sparc-nat.c (fetch_inferior_registers, store_inferior_registers):
Read and write the fsr (float status register) to/from the child
process. This avoids random float exceptions when running under
GDB, and probably obsoletes Peter Schauer's change of May 24 '93
(which remains for safety).
John Gilmore [Tue, 11 Jan 1994 07:45:48 +0000 (07:45 +0000)]
* a29k-tdep.c (examine_prologue): Don't worry if the ASGEQ
stack overflow check isn't right after the register stack
adjustment instruction. Metaware R2.3u compiler moves other
things in front of it. This fix isn't perfect but is what's
running.
Jeff Law [Mon, 10 Jan 1994 17:54:01 +0000 (17:54 +0000)]
* config/tc-hppa.c (pa_ip): Put check for missing label on .PROC
here. Handle case where label may be defined after the .PROC.
(pa_proc): It is not an error if the procedure's label isn't
defined before the .PROC directive.
* ecoff.c (ecoff_stab): Don't clobber the ECOFF symbol information
with the associate stabs information.
(ecoff_build_symbols): Never set the type of stabs symbols to
st_Global. Don't update the symbol index or ifd if the gas symbol
is not the same as the ECOFF symbol (which is now the case for
stabs symbols).
Peter Schauer [Fri, 7 Jan 1994 20:59:35 +0000 (20:59 +0000)]
* config/i386/tm-i386v.h, config/m68k/tm-m68k.h, config/mips/tm-mips.h,
config/vax/tm-vax.h (CALL_DUMMY_BREAKPOINT_OFFSET): Define.
* mdebugread.c (parse_symbol): Handle enum sh.type produced by
DEC c89.
* mdebugread.c (add_line): Handle zero linenos produced by DEC c89.
Peter Schauer [Fri, 7 Jan 1994 20:47:45 +0000 (20:47 +0000)]
* gdb.t07/watchpoint.exp: Clear xfail for calling function with
watchpoint enabled on mips, CALL_DUMMY_BREAKPOINT_OFFSET got defined.
* gdb.t20/gdbme.cc, gdb.t21/gdbme.cc: Conversion operator functions
have to be typeless.
* bfd-in.h: (bfd_boolean): Add workaround for systems that also
define true and false as enums.
(ALMOST_STDC): Add as alternative to __STDC__.
* bfd-in2.h: Rebuilt.
* syms.c (bfd_print_symbol_vandf): Convert a PTR to FILE*.
* targets.c (target_vector): Added nlm32_alpha_vec inside #ifdef
BFD64.
* Makefile.in (BFD32_BACKENDS): Remove nlm32-alpha.o.
(BFD64_BACKENDS): Add nlm32-alpha.o. It depends on 64 bit
support, even though it is for an Alpha in 32 bit mode.
* configure.in (nlm32_alpha_vec): Set target64 to true.
* nlm32-gen.c, nlm64-gen.c: Removed. All nlm targets are
different, so there is no point to providing a generic one.
* libnlm.h: Don't bother to check for nlm_backend(bfd) being NULL
in the backend accessor macros; that should no longer be possible.
* targets.c (target_vector): Removed nlm32_big_generic_vec,
nlm64_big_generic_vec, nlm64_little_generic_vec.
* configure.in (nlm32_big_generic_vec, nlm32_little_generic_vec,
nlm64_big_generic_vec, nlm64_little_generic_vec): Removed.
* Makefile.in: Rebuilt dependencies, and
(BFD32_BACKENDS): Removed nlm32-gen.o.
(BFD64_BACKENDS): Removed nlm64-gen.o.
(CFILES): Removed nlm32-gen.c and nlm64-gen.c.
Jim Kingdon [Thu, 6 Jan 1994 20:51:19 +0000 (20:51 +0000)]
* target.h: Add TARGET_WAITKIND_LOADED and TARGET_WAITKIND_SPURIOUS.
* target.c (store_waitstatus): Add CHILD_SPECIAL_WAITSTATUS hook.
* infrun.c (wait_for_inferior): Replace SIGTRAP_STOP_AFTER_LOAD with
code which looks for those two waitkinds. Use switch statement.
* config/rs6000/tm-rs6000.h: Replace SIGTRAP_STOP_AFTER_LOAD with
CHILD_SPECIAL_WAITSTATUS.
* ecoff.c: First cut at new style of linker backend for
ECOFF--added a bunch of functions. Also:
(ecoff_sec_to_styp_flags): Set flags for .pdata and .xdata.
(ecoff_slurp_symbolic_header): New function.
(ecoff_slurp_symbolic_info): Call ecoff_slurp_symbolic_header.
(ecoff_compute_reloc_file_positions): New function.
(ecoff_set_section_contents): Get out quickly if count is zero.
Check errors better.
(ecoff_write_object_contents): Put .xdata section in data segment.
Call ecoff_compute_reloc_file_positions. Don't output relocs or
external symbols if outsymbols is NULL.
(ecoff_bfd_final_link): Completely rewritten.
* libecoff.h: Include bfdlink.h.
(struct ecoff_backend_data): Add relocate_section field.
(ecoff_data_type): Add sym_hashes and symndx_to_section fields.
(struct ecoff_link_hash_entry): Define.
(struct ecoff_link_hash_table): Define.
(ecoff_bfd_link_add_symbols): Declare as function, not macro.
(ecoff_bfd_link_hash_table_create): Likewise.
* ecofflink.c (bfd_ecoff_debug_one_external): New function.
(bfd_ecoff_debug_externals): Call bfd_ecoff_debug_one_external.
* bfd-in.h (bfd_ecoff_debug_one_external): Declare.
* bfd-in2.h: Rebuilt.
* coff-alpha.c (alpha_howto_table): Mark BRADDR as
partial_inplace, and set the src_mask to 0x1fffff.
(alpha_ecoff_get_relocated_section_contents): Remove unused
variable gp_warned.
(alpha_convert_external_reloc): New static function.
(alpha_relocate_section): New static function.
(alpha_ecoff_backend_data): Initialize relocate_section field.
* coff-mips.c (mips_relocate_refhi): New static function.
(mips_relocate_section): New static function.
(mips_ecoff_backend_data): Initialize relocate_section field.
* ldmain.c (add_to_set): Add bitsize argument.
(constructor_callback): New function.
(link_callbacks): Add constructor_callback.
* ldctor.c (struct set_info): Add bitsize field.
(ldctor_add_set_entry): Add bitsize argument.
(ldctor_build_sets): Base the size of the elements of the set on
the bitsize, rather than always using LONG.
* ldctor.h (ldctor_add_set_entry): Add bitsize to declaration.
* aoutx.h (NAME(aout,final_link)): Don't abort when trying to link
a non a.out file, just pass it to _bfd_default_link_order.
(aout_link_input_section_std): When doing a final PC relative link
against a section symbol, subtract the VMA of the input section.
(aout_link_input_section_ext): Likewise.
* linker.c (_bfd_generic_link_add_one_symbol): Add constructor and
bitsize arguments. Changed all callers (aoutx.h).
(default_indirect_link_order): Renamed from
_bfd_generic_indirect_link_order and made static.
(_bfd_generic_final_link): Don't switch on link_order type, just
call _bfd_default_link_order.
(_bfd_default_link_order): Handle bfd_indirect_link_order type.
* genlink.h: Removed declaration of
_bfd_generic_indirect_link_order.
* elf32-mips.c (mips_elf_final_link): Don't switch on link_order
type, just call _bfd_default_link_order.
* binutils.texi strip.1 objcopy.1 nlmconv.1 objcopy.c nlmconv.c:
Use "--target=bfdname" as the option to select the BFD target,
like nm and size already do.
Reserve "--format=format" for textual output selection options, but
for now keep old option names as obsolete for backward compatibility.