Ian Lance Taylor [Thu, 18 Nov 1993 18:56:31 +0000 (18:56 +0000)]
* config/tc-mips.c: Check ECOFF_DEBUGGING rather than
OBJ_ECOFF in many cases.
(mips_any_noreorder): New variable.
(mips_cprestore_offset): Initialize to -1.
(mips_frame_reg): New variable.
(RELAX_ENCODE, RELAX_OLD, RELAX_NEW, RELAX_RELOC1,
RELAX_RELOC2, RELAX_RELOC3, RELAX_WARN): New macros.
(md_pseudo_table): Handle "gpword" and "cpadd".
(md_begin): Initialize ok to false. If OBJ_ELF, set alignment
of text, data and bss sections to 4. Set alignment of
.reginfo section to 2. If ECOFF_DEBUGGING, create .mdebug
section.
(ALIGN_ERR, ALIGN_ERR2): Removed unused and useless alignment
check.
(append_insn, macro_build, macro_build_lui): Take place
argument. Changed all callers.
(append_insn): If appending a nop, don't emit one.
(macro_build): Changed assertion for 'i', 'j', 'o' case.
(gp_reference): Removed.
(load_address): New function.
(macro): If mips_noreorder is used, set mips_any_noreorder.
Extensive changes to handle GP and PIC symbols differently.
Build both possible code choices using a variant frag, and
make a final decision at the end of assembly when all
information is known. Added PIC support for all symbol
references.
(mips_ip): Don't permit anything but a number after $ for a
coprocessor register. Don't use .lit4 or .lit8 sections when
generating PIC code. If OBJ_ELF, set alignment of .lit4 or
.lit8 section to 4.
(md_apply_fix): Accept and ignore GOT16 and GPREL32 relocs.
(s_change_sec): Set alignment of ELF .rodata or .sdata section
to 4.
(s_mipsset): If .set noreorder, set mips_any_noreorder.
(s_cpload): Ignore .cpload if not generating PIC code. Warn
if .cpload is not in noreorder section.
(s_cprestore): Ignore .cprestore if not generating PIC code.
(s_gpword, s_cpadd): New functions.
(tc_get_register): Added frame argument; if true, set
mips_frame_reg to return value. Changed all callers.
(md_estimate_size_before_relax): Don't error out, but instead
determine how much a frag should grow.
(tc_gen_reloc): Return multiple relocs if appropriate, as
determined by md_estimate_size_before_relax.
(md_convert_frag): New function.
(mips_elf_final_processing): Set ELF header flags based on
mips_any_noreorder and mips_pic.
* config/tc-mips.h (RELOC_EXPANSION_POSSIBLE): Define.
(MAX_RELOC_EXPANSION): Define to be 3.
(md_relax_frag): Define to be 0.
(md_convert_frag): Don't define.
(tc_get_register): Changed declaration.
Kung Hsu [Thu, 18 Nov 1993 18:54:11 +0000 (18:54 +0000)]
Modified Files:
ChangeLog valops.c
* valops.c(search_struct_method): to use unified search so type
conversion operator works in calling method. (this file should be
checked in with last commit, I missed it).
Ian Lance Taylor [Thu, 18 Nov 1993 17:12:47 +0000 (17:12 +0000)]
* elfcode.h (bfd_section_from_shdr): Don't dump core if target
section has no ELF section data.
(elf_make_sections): Set addralign of reloc section to 4.
(elf_fake_sections): Likewise.
(map_program_segments): Don't consider section 0.
(assign_file_positions_except_relocs): Don't consider section 0.
In the main loop, skip the symtab and strtab sections, since their
positions are set elsewhere.
(swap_out_syms): Set addralign of symtab section to 4. Set
addralign of strtab sections to 1.
(assign_file_positions_for_relocs): Don't consider section 0.
(write_object_contents): Don't write out section 0.
(sym_is_global): Take abfd argument. Call
elf_backend_sym_is_global if it is not NULL.
(elf_map_symbols): Pass abfd to sym_is_global.
(write_object_contents): Call elf_backend_final_write_processing
if it is defined.
Fred Fish [Thu, 18 Nov 1993 16:34:43 +0000 (16:34 +0000)]
Fix for PR 3978:
* valprint.c (val_print_string): When looking for a null
terminator compare current bufsize to fetchlimit to determine
when to stop, instead of computing buffer+fetchlimit which
may overflow for very large limits (like "unlimited").
Kung Hsu [Thu, 18 Nov 1993 02:30:33 +0000 (02:30 +0000)]
Modified Files:
ChangeLog eval.c valarith.c
* eval.c(evaluate_subexp): to use unified search so type conversion
operator works in calling method.
* valarith.c(value_x_binop, value_x_unop): same as above.
Ian Lance Taylor [Thu, 18 Nov 1993 00:07:33 +0000 (00:07 +0000)]
* libecoff.h: Include coff/ecoff.h.
(struct ecoff_backend_data): Move external debugging information
fields into a single field pointing to an ecoff_debug_swap
structure.
(ecoff_data_type): Move debugging information fields into a single
field pointing to an ecoff_debug_info structure.
* coff-alpha.c, coff-mips.c, ecoff.c: Corresponding changes.
Ian Lance Taylor [Wed, 17 Nov 1993 23:06:12 +0000 (23:06 +0000)]
* write.c (is_dnrange): Do not define if md_relax_frag is defined.
(relax_segment): If md_relax_frag is defined, use it to handle a
frag of type rs_machine_dependent rather than looking through
md_relax_table.
* write.c (relax_and_size_seg): Don't set SEC_HAS_CONTENTS for a
bss section. Set SEC_RELOC if there are any relocations, even for
a zero size section.
* write.c (write_relocs): In RELOC_EXPANSION_POSSIBLE case, based
data offset on reloc[0]->address rather than reloc[j]->address, so
that multiple relocs can affect different memory locations.
* write.c (chain_frchains_together, relax_and_size_seg,
adjust_reloc_syms, write_relocs): Make third argument PTR, not
char *, to match definition of bfd_map_over_sections.
Ian Lance Taylor [Wed, 17 Nov 1993 23:03:42 +0000 (23:03 +0000)]
* read.c (read_a_source_file): If we find a bad pseudo-op,
do a continue to go on to the next line rather than a break.
Removed duplicate bad pseudo-op code which was never executed.
* read.c (s_lcomm): Do not require a comma after the name.
* read.c (s_lcomm): Set bss flag for .sbss section if used.
Kung Hsu [Wed, 17 Nov 1993 18:07:58 +0000 (18:07 +0000)]
Modified Files:
ChangeLog eval.c valops.c
* valops.c (typecmp): improve prototype matching when calling
a method. Make 'p (*(ostream *) &cout) << "lll" ' to work.
* eval.c(evalute_subexp): fix operator search problem when call
like p x.'operator+'(i).
Stu Grossman [Wed, 17 Nov 1993 07:56:28 +0000 (07:56 +0000)]
* i386ly-nat.c, i386lynx-nat.c, m68kly-nat.c: Remove. Move
common code into lynx-nat.c.
* lynx-nat.c: New module. Contains portable code for Lynx native
stuff (mostly ptrace related).
* config/i386/i386lynx.mh (NATDEPFILES): i386ly-nat.o -> lynx-nat.o
* config/m68k/m68klynx.mh (NATDEPFILES): i386ly-nat.o -> lynx-nat.o
* config/nm-lynx.h, config/tm-lynx.h: New files to contain
non-architecture specific native and target defs.
* config/i386/nm-i386lynx.h, config/i386/tm-i386lynx.h,
config/m68k/nm-m68klynx.h, config/m68k/tm-m68klynx.h: Move all
(arch) portable stuff into ../{tm nm}-lynx.h.
Stu Grossman [Wed, 17 Nov 1993 07:17:45 +0000 (07:17 +0000)]
* i386ly-nat.c, i386lynx-nat.c, m68kly-nat.c: Remove. Move
common code into lynx-nat.c.
* lynx-nat.c: New module. Contains portable code for Lynx native
stuff (mostly ptrace related).
* config/i386/i386lynx.mh (NATDEPFILES): i386ly-nat.o -> lynx-nat.o
* config/m68k/m68klynx.mh (NATDEPFILES): i386ly-nat.o -> lynx-nat.o
* config/nm-lynx.h, config/tm-lynx.h: New files to contain
non-architecture specific native and target defs.
* config/i386/nm-i386lynx.h, config/i386/tm-i386lynx.h,
config/m68k/nm-m68klynx.h, config/m68k/tm-m68klynx.h: Move all
(arch) portable stuff into ../{tm nm}-lynx.h.
Jim Kingdon [Wed, 17 Nov 1993 04:24:34 +0000 (04:24 +0000)]
* symtab.c (gdb_mangle_name): Only assume that the physname is
the entire mangled name if it looks like the mangled name of a
constructor. Needed for testsuite to work with GCC 2.4.5.
Stu Grossman [Wed, 17 Nov 1993 01:38:11 +0000 (01:38 +0000)]
* i386ly-nat.c, i386lynx-nat.c, m68kly-nat.c: Remove. Move
common code into lynx-nat.c.
* lynx-nat.c: New module. Contains portable code for Lynx native
stuff (mostly ptrace related).
* config/i386/i386lynx.mh (NATDEPFILES): i386ly-nat.o -> lynx-nat.o
* config/m68k/m68klynx.mh (NATDEPFILES): i386ly-nat.o -> lynx-nat.o
* config/nm-lynx.h, config/tm-lynx.h: New files to contain
non-architecture specific native and target defs.
* config/i386/nm-i386lynx.h, config/i386/tm-i386lynx.h,
config/m68k/nm-m68klynx.h, config/m68k/tm-m68klynx.h: Move all
(arch) portable stuff into ../{tm nm}-lynx.h.
Jim Kingdon [Tue, 16 Nov 1993 20:29:03 +0000 (20:29 +0000)]
* a68v-nat.c: Replace with new version from Troy Rollo. The
version I am replacing appears to be an old copy of sun3-nat.c.
* dstread.c (dst_symfile_read): Replace sort_all_symtab_syms call
with loop.
Jim Kingdon [Tue, 16 Nov 1993 19:51:59 +0000 (19:51 +0000)]
* Makefile.in (TAGS): Depend on TAGFILES_{NO,WITH}_SRCDIR.
* Makefile.in: (HFILES,TAGFILES): Split into _WITH_SRCDIR and
_NO_SRCDIR versions.
(TAGS): Only add srcdir to TAGFILES_NO_SRCDIR.
(This is part of a long saga involving me putting srcdir on
everything (perhaps for now-obsolete reasons, I forget), Rich
removing the srcdir from everything, Stu putting it back some
places for Sun make, and me just now getting around to fixing
`make TAGS' again).
* remote-e7000.c: New file to cope with the Hitachi E7000 ICE.
* remote-utils.c, remote-utils.h (gr_load_image): New function to
download to target.
* h8300-tdep.c, h8500-tdep.c, remote-z8k.c, sh-tdep.c z8k-tdep.c
(sim_load): delete.
* remote-sim.c (sim_load): Use gr_load_image.
* config/sh/sh.mt: Add remote-e7000
Jim Kingdon [Mon, 15 Nov 1993 20:13:30 +0000 (20:13 +0000)]
* gdbtypes.h: Add TYPE_FLAG_TARGET_STUB.
* gdbtypes.c (check_stub_type): On TYPE_FLAG_TARGET_STUB, do
what cleanup_undefined_types does for arrays, except we clear
TYPE_FLAG_TARGET_STUB if we fix up the type.
* stabsread.c (cleanup_undefined_types): Add comments about how
doing arrays here is no longer the clean way to do it.
(read_array_type): Set TYPE_FLAG_TARGET_STUB as well as calling
add_undefined_type.
* c-typeprint.c, ch-typeprint.c: Move call to check_stub_type
outside switch so it happens for all type codes.
* cp-valprint.c (cp_print_value_fields): Recurse to val_print,
instead of c_val_print, so that check_stub_type gets called.
* gdbtypes.h, gdbtypes.c, m2-lang.c, ch-lang.c, c-lang.c: Remove
TYPE_FLAG_SIGNED. It was inconsistently set, never checked
(except in recursive_dump_type), and is pointless.
Jeff Law [Mon, 15 Nov 1993 08:43:36 +0000 (08:43 +0000)]
* som.c (som_object_setup): Do not create dummy ".text", ".data",
and ".bss" sections.
(setup_sections): Do not set SEC_HAS_CONTENTS if a section's size
is zero. Recognize BSS type sections and turn off SEC_LOAD and
SEC_DATA (so binutils/size works). Set the correct value for
a section's _raw_size.
(som_slurp_symbol_table): Program entry points, and millicode are
also functions. Mark them as such. Also mark L$* symbols as
debugging symbols.
Jim Kingdon [Mon, 15 Nov 1993 05:36:36 +0000 (05:36 +0000)]
* stabsread.c: Remove #if 0'd dbx_class_complaint. We now handle
this (more or less) gracefully, and complain() was never a good
way of dealing with this.
Jim Kingdon [Sun, 14 Nov 1993 06:40:47 +0000 (06:40 +0000)]
* stabsread.c (read_type): Skip the colon when reading a
cross-reference. Only complain, not error_type, on unrecognized
cross-reference types. error_type, not dump core, if the colon is
missing.
Jeff Law [Fri, 12 Nov 1993 23:43:24 +0000 (23:43 +0000)]
* som.c (struct reloc_queue): New structure to keep track of
the last four multibyte relocations emitted.
(enum pa_symbol_type): Type to fully describe the symbol types
associated with .import/.export assembler directives.
Jeff Law [Fri, 12 Nov 1993 23:08:13 +0000 (23:08 +0000)]
* som.h (struct som_symbol): Add new fields to hold additional
information needed to build/write symbol tables and fixup streams.
(struct som_section_data_struct): Add new fields to hold additional
information needed to build/write space and subspace headers.
(som_symbol_data): New accessor macro for SOM symbol information.
(R_HPPA_*): Basic relocation types to be used by the assembler.