Fred Fish [Sat, 28 Jun 1997 06:10:06 +0000 (06:10 +0000)]
* buildsym.h (struct subfile): Add debugformat member.
(record_debugformat): Declare global function.
* buildsym.c (start_subfile): Initialize debugformat member
to NULL.
(record_debugformat): New function to record the format.
(end_symtab): Copy format into symtab debugformat member.
(end_symtab): Free subfile debugformat member.
* symmisc.c (free_symtab): Free debugformat when freeing
symtab.
* symfile.c (allocate_symtab): Initialize the new debugformat
member for new symtabs.
* symtab.h (struct symtab): Add debugformat member.
* source.c (source_info): Print the debug format.
* os9kread.c (os9k_process_one_symbol): Call record_debugformat
with "OS9".
* hpread.c (hpread_expand_symtab): Call record_debugformat
with "HP".
(hpread_process_one_debug_symbol): Ditto.
* dbxread.c (process_one_symbol): Call record_debugformat
with "stabs".
* coffread.c (coff_start_symtab): Call record_debugformat
with "COFF".
* xcoffread.c (read_xcoff_symtab): Call record_debugformat
with "XCOFF".
* dwarfread.c (read_file_scope): Call record_debugformat
with "DWARF 1".
* dwarf2read.c (read_file_scope): Call record_debugformat
with "DWARF 2".
* dstread.c (dst_end_symtab): Set debugformat to be
"Apollo DST".
* mdebugread.c (new_symtab): Set debugformat to be "ECOFF".
Fred Fish [Sat, 28 Jun 1997 06:03:43 +0000 (06:03 +0000)]
* lib/gdb.exp (setup_xfail_format): New function.
(get_debug_format): New function to get debug format.
(debug_format): New global variable to hold last value set
by get_debug_format.
* gdb.base/list.exp: Call get_debug_format and expect some
tests to fail for DWARF 1 and COFF formats.
* gdb.c++/ptype.exp: Ditto.
* gdb.c++/classes.exp: Ditto.
* gdb.c++/cplusfuncs.exp: Ditto.
* gdb.c++/inherit.exp: Ditto.
* gdb.c++/templates.exp: Ditto.
* gdb.c++/virtfunc.exp: Ditto.
Ian Lance Taylor [Thu, 26 Jun 1997 18:00:57 +0000 (18:00 +0000)]
* Makefile.in (WINDRES): New variable.
(WINDRES_FOR_TARGET): New variable.
(BASE_FLAGS_TO_PASS): Add WINDRES_FOR_TARGET.
(EXTRA_HOST_FLAGS): Add WINDRES.
(EXTRA_TARGET_FLAGS): Add WINDRES.
(EXTRA_GCC_FLAGS): Add WINDRES.
($(DO_X)): Pass down WINDRES.
($(CONFIGURE_TARGET_MODULES)): Set WINDRES when configuring.
* configure: Treat WINDRES like DLLTOOL, and WINDRES_FOR_TARGET like
DLLTOOL_FOR_TARGET.
Ian Lance Taylor [Thu, 26 Jun 1997 17:53:57 +0000 (17:53 +0000)]
* windres.c (main): Quit if we didn't get any resources.
* rescoff.c (write_coff_file): Don't free the relocation array
until after we've closed the BFD.
Ian Lance Taylor [Thu, 26 Jun 1997 16:06:03 +0000 (16:06 +0000)]
* elflink.h (elf_link_add_object_symbols): When a version
indirection symbol is overridden, make the original symbol point
at the real overriding symbol.
Ian Lance Taylor [Thu, 26 Jun 1997 05:27:56 +0000 (05:27 +0000)]
* elflink.h (elf_link_output_extsym): Use the right section for a
common symbol.
* elf32-mips.c (mips_elf_link_output_symbol_hook): If a common
symbol was in .scommon, mark it as SHN_MIPS_SCOMMON.
PR 12697.
Felix Lee [Wed, 25 Jun 1997 22:35:14 +0000 (22:35 +0000)]
* ppc-opc.c (extract_nsi): make unsigned expression signed before
negating it.
(UNUSED): remove one level of parens, so MSVC doesn't choke on
nesting depth when all the macros are expanded.
Bob Manson [Wed, 25 Jun 1997 16:29:59 +0000 (16:29 +0000)]
* lib/gdb.exp(default_gdb_exit): Don't give an error if the remote
host doesn't have a currently-open connection.
* config/sparclet.exp: Cleanups and fixes to make it generic for
any gdb stub target. Handle cases where gdb doesn't respond when
interrupted in a sane fashion.
* config/m32r.exp: Load sparclet.exp instead of trying to do the
same thing in a totally different way.
* config/monitor.exp: Pass in timeouts to gdb_expect instead of
setting "timeout".
(gdb_start): We set the global gdb_prompt variable in
default_gdb_init now.
Jeff Law [Tue, 24 Jun 1997 19:45:17 +0000 (19:45 +0000)]
* interp.c (sim_resume): Clear State.exited.
(sim_stop_reason): If State.exited is nonzero, then indicate that
the simulator exited instead of stopped.
* mn10300_sim.h (struct _state): Add exited field.
* simops.c (syscall): Set State.exited for SYS_exit.
Ian Lance Taylor [Tue, 24 Jun 1997 02:28:03 +0000 (02:28 +0000)]
* elflink.h (elf_merge_symbol): In the case of a new defined
symbol overriding an old defined symbol, return the hash table
entry which we modify, even if it is the target of an
indirection.
(elf_link_add_object_symbols): If the real name of the symbol gets
overridden, convert the versioned symbol into an indirect symbol
to the real symbol.
Ian Lance Taylor [Sun, 22 Jun 1997 23:41:55 +0000 (23:41 +0000)]
* coff-i386.c (i3coff_object_p): If COFF_IMAGE_WITH_PE, hack to
handle case where COFF filehdr does not immediately follow PE
header.
* coffgen.c (coff_object_p): Remove useless seek to current
location.
Ian Lance Taylor [Sun, 22 Jun 1997 21:35:35 +0000 (21:35 +0000)]
First stab at Windows resource compiler:
* windres.h: New file.
* windres.c: New file.
* resrc.c: New file.
* rcparse.y: New file.
* rclex.l: New file.
* configure.in: Define and substitute BUILD_WINDRES.
* configure: Rebuild.
* Makefile.in: Rebuild dependencies.
(WINDRES_PROG): New variable.
(PROGS): Add @BUILD_WINDRES@.
(HFILES): Add dlltool.h and windres.h.
(CFILES): Add windres.c and resrc.c.
(GENERATED_CFILES): Add rcparse.c and rclex.c.
(WINDRES_OBJS): New variable.
$(WINDRES_PROG): New target.
(rcparse.c, rcparse.h, rclex.c): New targets.
Snapshot. windres can parse and print rc files.
Fred Fish [Wed, 18 Jun 1997 21:38:57 +0000 (21:38 +0000)]
* dwarfread.c (isreg, optimized_out, offreg, basereg): Move
global variables into the struct dieinfo structure.
(locval): Pass pointer to a dieinfo struct rather than a
pointer to the raw location information. Change prototype.
Set isreg, optimized_out, offreg and basereg as appropriate.
(struct_type): Call locval with dieinfo struct pointer.
(new_symbol): Ditto.
(new_symbol): Call locval and save location before testing
the values of the new dieinfo struct flags, set by locval.
Ian Lance Taylor [Wed, 18 Jun 1997 15:36:33 +0000 (15:36 +0000)]
* elflink.h (elf_link_add_object_symbols): Don't let a common
symbol in a regular object override a common symbol in a shared
object if the latter was found via an indirect symbol.
Ian Lance Taylor [Tue, 17 Jun 1997 21:03:18 +0000 (21:03 +0000)]
* sparc-opc.c: The fcmp v9a instructions take an integer register
as a destination, not a floating point register. From Christian
Kuehnke <Christian.Kuehnke@arbi.Informatik.Uni-Oldenburg.DE>.
Peter Schauer [Tue, 17 Jun 1997 20:33:18 +0000 (20:33 +0000)]
* procfs.c (proc_set_exec_trap, procfs_init_inferior, procfs_wait,
unconditionally_kill_inferior): Undo Oct 26 1996 and Apr 26 1997
changes to trace PRFS_STOPTERM and handle PR_DEAD.
These changes tried to work around a problem with an early DU 4.0
release, but they trigger subtle timing dependent kernel bugs
in older OSF/1 releases.
Ian Lance Taylor [Tue, 17 Jun 1997 15:56:09 +0000 (15:56 +0000)]
* cofflink.c (_bfd_coff_link_input_bfd): If stripping debugging
symbols, skip N_ABS symbols with debugging storage classes.
PR 12630.
Also a couple of warning and formatting fixes.
Mark Alexander [Tue, 17 Jun 1997 02:11:42 +0000 (02:11 +0000)]
* infrun.c (wait_for_inferior): Mark registers as invalid when
stepping over an instruction that triggered a watchpoint.
* remote-mips.c: Numerous changes to support hardware breakpoints
and watchpoints on LSI MiniRISC and TinyRISC boards.
* mips-tdep.c: Move MIPS16-related macros to config/mips/tm-mips.h.
(mips_breakpoint_from_pc): Account for different breakpoint
instructions used by PMON and IDT monitor.
* config/mips/tm-embed.h: Enable hardware breakpoints on embedded
MIPS targets.
* config/mips/tm-mips.h: Define breakpoint instructions for
PMON and IDT monitor. Move MIPS16-related macros here from
mips-tdep.c.
Bob Manson [Tue, 17 Jun 1997 00:08:20 +0000 (00:08 +0000)]
* lib/gdb.exp: Close connection to remote host if gdb doesn't
initialize.
(default_gdb_init): New procedure; allow gdb_init to be overridden
by a target configuration file.
(gdb_expect): Pass the timeout to remote_expect.
* lib/remote.exp(remote_expect): Add timeout parameter.
(remote_wait): Ditto.
(standard_wait): Ditto. Also give up if the program outputs
more than 512,000 bytes.
* scripttempl/elfppc.sc: Put the PLT between the small and large
BSS segments.
* emulparams/elf32ppc.sh (TEXT_START_ADDR): The ABI says `A
program base of 0x02000000 is recommended...' because otherwise
shared libraries are less efficient. We use 0x01800000 because
otherwise it's impossible to branch to location 0, for instance if
you have an undefined weak symbol.
Ian Lance Taylor [Mon, 16 Jun 1997 23:17:22 +0000 (23:17 +0000)]
Mon Jun 16 19:12:51 1997 Geoff Keating <geoffk@ozemail.com.au>
* config/tc-ppc.h (tc_fix_adjustable): Don't let the assembler
calculate relocations to any external symbol, because we might be
linking a shared object and the symbol might be overriden or moved
(for instance, moved into a static executable's .bss section).
(GLOBAL_OFFSET_TABLE_NAME): Delete. This is an i386 wierdness.
* config/tc-ppc.h (tc_fix_adjustable): GOT-based relocations can't
be calculated by the assembler.
* config/tc-ppc.c (md_apply_fix3): Handle @plt or @local branch
whose destination lies in the same file, by ignoring the @plt or
@local and aiming the branch at its destination.
Ian Lance Taylor [Mon, 16 Jun 1997 23:05:27 +0000 (23:05 +0000)]
Mon Jun 16 18:56:27 1997 Geoff Keating <geoffk@ozemail.com.au>
* elf32-ppc.c (ppc_elf_relocate_section): Don't emit R_PPC_REL*
relocs in shared libraries which refer to local symbols. Cope
with addend when processing a GOT relocation.
* elf32-ppc.c (ppc_elf_size_dynamic_sections): Only create symbols
for sections that the linker didn't create.
(ppc_elf_finish_dynamic_sections): Only try to write out a section
symbol if it was created in ppc_elf_size_dynamic_sections.
(ppc_elf_relocate_section): Complain if we have to generate a reloc
relative to a section for which we didn't output a symbol.
* elf32-ppc.c (ppc_elf_size_dynamic_sections): Clean up. PLT
relocs are 'rela' relocs, like everything else. .rela.plt is not
a read-only section, so we don't have to special-case it.
* elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Entries in the
.rela.bss section are (of course) 'rela' relocs not 'rel' relocs.
* elf32-ppc.c (ppc_elf_check_relocs): Initialise srelgot.
(ppc_elf_relocate_section): @got offsets are 4 from start of the
actual .got section.
* elflink.c (_bfd_elf_create_got_section): The three reserved
words start from the symbol '_GLOBAL_OFFSET_TABLE_'.
* elf32-ppc.c (ppc_elf_size_dynamic_sections): '.rela' is 5
characters, not 4.
* elf32-ppc.c (ppc_elf_check_relocs): Use
_bfd_elf_create_got_section to create the GOT rather than
ppc_elf_create_linker_section. Create the '.rela.got' section
ourselves.
(ppc_elf_finish_dynamic_symbol): Set up GOT relocations when a
symbol has a GOT entry.
(ppc_elf_relocate_section): Record when a symbol is used through
the GOT, and allocate space in the GOT for each such symbol.
(ppc_elf_adjust_dynamic_symbol): Delete unused .got.plt stuff.
(ppc_elf_create_linker_section): Delete unused LINKER_SECTION_GOT
stuff.
* elf32-ppc.c (ppc_elf_howto_raw): GOT16_HA relocs should be
treated in a similar way to ADDR16_HA relocs.
(ppc_elf_relocate_section): PLTREL24 relocs do not get copied into
shared objects; the linker must deal with them.
(ppc_elf_create_linker_section): Stop setting
_GLOBAL_OFFSET_TABLE_ to the wrong value; delete unused
LINKER_SECTION_PLT stuff.
(ppc_elf_check_relocs): Delete unused LINKER_SECTION_PLT stuff.
(ppc_elf_finish_dynamic_sections): Use BFD calls to get GOT
section, not ELF-specific calls.
(elf_backend_plt_not_loaded): Set to 1.
(elf_backend_got_symbol_offset): Set to 4.
* elf-bfd.h (elf_backend_data): Add 'plt_not_loaded' member
for when ld.so fills in the PLT; and 'got_symbol_offset' member.
* elflink.c (_bfd_elf_create_dynamic_sections): Apply
plt_not_loaded member.
(_bfd_elf_create_got_section): Apply got_symbol_offset.
* elfxx-target.h (elf_backend_plt_not_loaded): Set default to
'loaded'.
(elf_backend_G_O_T_offset): Set default to 0.
(elfNN_bed): Set added fields.
* elf32-ppc.c (ppc_elf_size_dynamic_sections): Was setting
DT_RELENT in shared objects; should be DT_RELAENT.
* elf32-ppc.c (ppc_elf_relocate_section): Propagate
R_PPC_ADDR16_HA relocs to shared objects. Cope with case where
such a reloc (in a non-shared object) refers to a symbol that's
not defined.
Ian Lance Taylor [Mon, 16 Jun 1997 20:09:35 +0000 (20:09 +0000)]
* config/tc-ppc.c (ppc_insert_operand): In 32 bit mode, with a
signed operand, sign extend a 32 bit value to the host size.
Permits dubious usage like
addi %r6,%r6,0xfffffeff
to assemble on a 64 bit host as it does on a 32 bit host.
Ian Lance Taylor [Mon, 16 Jun 1997 19:46:12 +0000 (19:46 +0000)]
* configure: Set CFLAGS and CXXFLAGS, and substitute them into
Makefile. From Jeff Makey <jeff@cts.com>.
* Makefile.in: Add comment for CFLAGS and CXXFLAGS.
Ian Lance Taylor [Mon, 16 Jun 1997 18:45:30 +0000 (18:45 +0000)]
Mon Jun 16 14:42:14 1997 H.J. Lu <hjl@gnu.ai.mit.edu>
* elfcode.h (put_signed_word): Define.
(get_signed_word): Define.
(elf_swap_reloca_in): Use get_signed_word for the r_addend field.
(elf_swap_reloca_out): Use put_signed_word for the r_addend
field.
* elf32-m68k.c (elf_m68k_finish_dynamic_symbol): Use
bfd_get_signed_32 to set the r_addend field.
* elf64-mips.c (mips_elf64_swap_reloca_in): Use
bfd_h_get_signed_64 to set the r_addend field.
Ian Lance Taylor [Mon, 16 Jun 1997 18:41:19 +0000 (18:41 +0000)]
* elflink.h (NAME(bfd_elf,size_dynamic_sections)): Call
elf_link_assign_sym_version before elf_adjust_dynamic_symbol.
(elf_fix_symbol_flags): New static function, broken out of
elf_adjust_dynamic_symbol.
(elf_adjust_dynamic_symbol): Call elf_fix_symbol_flags.
(elf_link_assign_sym_version): Likewise. Permit a symbol to be
forced local even if NEEDS_PLT is set. When forcing a symbol to
be local, clear NEEDS_PLT.
(elf_link_output_extsym): Remove unused local bed.
Jeff Law [Fri, 13 Jun 1997 20:19:53 +0000 (20:19 +0000)]
* mn10300-tdep.c (mn10300_analyze_prologue): Fix some comments.
Add missing return statements after finding an "add imm{16,32},sp"
instruction.
(mn10300_frame_chain): Add in size of our register save area to find
our caller's frame if our caller does not have a frame pointer.
Fixes some problems debugging optimized code.
* remote-e7000.c (ctype.h): Include.
(e7000_insert_breakpoint): #if away unused arg used by unused expr.
* frame.h (generic_get_saved_register): Add prototype.
(enum lval_type): Add partial forward decl.
* dsrec.c (make_srec): Remove unused variable "type_code".
* remote-sim.c (gdbsim_wait): Handle sim_running and sim_polling
cases by just ignoring them.
(command.h): Include.
* java-exp.y (parse_number): Remove unused variable "unsigned_p".
* java-lang.c (gdbcore.h): Include for prototypes.
(type_from_class): Remove unused variable "ftype".
(type_from_class): Remove unused variable "name_length".
(evaluate_subexp_java): Add default case to handle remaining
enumerations.
* java-valprint.c (c-lang.h): Include for prototypes.
* symfile.c (simple_read_overlay_region_table): #if away
unused function.
(simple_free_overlay_region_table): Ditto.
(overlay_is_mapped): Add default case to switch.
(simple_read_overlay_region_table): Ditto.
(simple_read_overlay_region_table): Add prototype.
* symtab.c (fixup_symbol_section): Remove unused msym variable.
(fixup_psymbol_section): Ditto.
(find_pc_sect_symtab): Make distance a CORE_ADDR.
* utils.c: Add comment about t_addr being either unsigned long or
unsigned long long.
(paddr): Change formats to match actual types args are cast to.
(preg): Ditto.
(paddr_nz): Ditto.
(preg_nz): Ditto.
Fred Fish [Fri, 13 Jun 1997 14:51:32 +0000 (14:51 +0000)]
* defs.h (perror_with_name): Is a NORETURN function.
* utils.c (perror_with_name): Is a NORETURN function.
(error): Is NORETURN independently of ANSI_PROTOTYPES.
Ian Lance Taylor [Thu, 12 Jun 1997 16:30:55 +0000 (16:30 +0000)]
* dlltool.c (export_type): Add data field.
(def_exports): Add data parameter. Change all callers.
(dump_def_info): Print data field.
(gen_def_file): Likewise.
(make_one_lib_file): Handle data field by not emitting simple
label and not emitting anything in SEC_TEXT.
(dtab): Print data field.
(process_duplicates): Merge data field.
* dlltool.h (def_exports): Update declaration.
* defparse.y (expline): Accept opt_DATA. Pass it to def_exports.
(opt_DATA): New non-terminal.
Ian Lance Taylor [Thu, 12 Jun 1997 16:17:53 +0000 (16:17 +0000)]
* write.c (write_object_file): In non BFD_ASSEMBLER code, as we
step through the frags calling cvt_frag_to_fill, switch to
SEG_DATA when we reach data_frag_root.
PR 12580.