Alan Modra [Sat, 24 Aug 2002 01:44:56 +0000 (01:44 +0000)]
* elf32-sh.c (sh_elf_copy_indirect_symbol): New.
(create_got_section, allocate_dynrelocs, readonly_dynrelocs):
Likewise.
(struct elf_sh_pcrel_relocs_copied): Removed.
(struct elf_sh_dyn_relocs): New.
(struct elf_sh_link_hash_entry): Replace pcrel_relocs_copied
field with dyn_relocs.
(struct elf_sh_link_hash_table): Add short-cuts to get dynamic
sections and sym_sec.
(sh_elf_link_hash_newfunc): Clear dyn_relocs.
(sh_elf_link_hash_table_create): Clear shorts-cuts and sym_sec.
(sh_elf_create_dynamic_sections): Use create_got_section instead
of _bfd_elf_create_got_section.
(sh_elf_check_relocs): Likewise.
(sh_elf_create_dynamic_sections): Use short-cuts to the dynamic
sections.
(sh_elf_adjust_dynamic_symbol, sh_elf_size_dynamic_sections,
sh_elf_relocate_section, sh_elf_check_relocs,
sh_elf_finish_dynamic_symbol, sh_elf_finish_dynamic_sections):
Likewise.
(sh_elf_adjust_dynamic_symbol): Handle nocopyreloc. Keep the
dynamic relocations and avoiding the copy relocation when we
didn't find any dynamic relocations in the section which has
contents or is read-only.
(WILL_CALL_FINISH_DYNAMIC_SYMBOL): New.
(sh_elf_size_dynamic_sections): Don't reset the size of
.rela.got section even if dynamic_sections_created flag is off.
Don't use sh_elf_discard_copies. Scan all input bfd and use
allocate_dynrelocs. Call readonly_dynrelocs to determine
whether we need DT_TEXTREL.
(sh_elf_adjust_dynamic_symbol): Use plt.refcount to determine
whether the symbol was never referred to.
(sh_elf_relocate_section): Use WILL_CALL_FINISH_DYNAMIC_SYMBOL.
(sh_elf_gc_sweep_hook): Fill with the real sweep function.
(sh_elf_check_relocs): Call create_got_section if the short-cut
to .got is null. Increment reference counters only instead of
allocating space on dynamic sections here. Don't conditionalize
uninitialized got.offset value when marking the symbol as a
global offset table entry. Keep relocations for symbols satisfied
by a dynamic library to avoid copy relocations for the symbol.
Set dynobj field of an elf hash table if needed.
(sh_elf_finish_dynamic_sections): Handle null section pointer
correctly.
(elf_backend_copy_indirect_symbol): Defined.
(elf_backend_can_refcount): Defined.
Mark Kettenis [Sat, 24 Aug 2002 00:40:59 +0000 (00:40 +0000)]
* valprint.c (print_longest) [CC_HAS_LONG_LONG &&
PRINTF_HAS_LONG_LONG]: Cast val_long to (long long) or (unsigned
long long) to prevent compiler warning on 64-bit systems.
Joel Brobecker [Fri, 23 Aug 2002 21:55:36 +0000 (21:55 +0000)]
* infrun.c (handle_inferior_event): Move a comment outside of a
function call, in order to avoid indent reformatting this part
of the code in an unreadable way.
Grace Sainsbury [Fri, 23 Aug 2002 20:49:38 +0000 (20:49 +0000)]
* infrun.c (normal_stop, proceed): Remove call to print_sys_errmsg
when breakpoints fail. Move general breakpoint error messages to
insert_breakpoints.
* breakpoint.c (insert_breakpoints): Change warnings when
breakpoints are nto inserted to specify the type. Remove call to
memory_error when hardware breakpoints can't be inserted. Remove
multiple calls to warning so all messages are sent to the user at
once.
(delete_breakpoints): Make insert error messsages more explicit.
* gdb.threads/print-threads.c: New file.
* gdb.threads/print-threads.exp: New file.
* gdb.threads/schedlock.c: New file.
* gdb.threads/schedlock.exp: New file.
Mark Kettenis [Fri, 23 Aug 2002 19:26:15 +0000 (19:26 +0000)]
* i386-tdep.c: Include "objfiles.h".
(i386_svr4_init_abi): Set in_solib_call_trampoline and
skip_trampoline_code.
* config/i386/tm-i386v4.h: Don't include "config/tm-sysv4.h".
(CPLUS_MARKER): Define to '.'.
Mark Kettenis [Fri, 23 Aug 2002 19:06:05 +0000 (19:06 +0000)]
* linux-proc.c (struct linux_corefile_thread_data): Add num_notes
member.
(linux_corefile_thread_callback): Increase args->num_notes.
(linux_make_note_section): Initialize thread_args.num_notes, and
use it to determine whether notes for any threads were created.
Joel Brobecker [Fri, 23 Aug 2002 15:06:53 +0000 (15:06 +0000)]
* proc-api.c (rw_table): Do not include a row for PCDSTOP if the
corresponding macro is not defined. Likewise for PCNICE, PCSHOLD
and PCUNKILL.
(write_with_trace): Conditionalize out the switch branch handling
PCSHOLD if the corresponding macro is not defined. Likewise for
PRSABORT and PRSTOP.
This change will be needed by the Interix port.
Alan Modra [Fri, 23 Aug 2002 08:26:13 +0000 (08:26 +0000)]
* elf32-sh.c (elf_sh_plt0_entry_be, elf_sh_plt0_entry_le): Copy
contents of .got.plt[2] to tr0, not address of .got.plt.
(sh_elf_finish_dynamic_symbol): Do not apply GOT_BIAS when
patching absolute plt entry. For shmedia plt entry, set bottom bit
of branch to plt0 as this is a branch to an shmedia instruction.
* elf64-sh64.c (elf_sh64_plt0_entry_be, elf_sh64_plt0_entry_le):
Copy contents of .got.plt[2] to tr0, not address of .got.plt.
(elf_sh64_plt_entry_be, elf_sh64_plt_entry_le): Use ptrel to
branch to plt0.
(sh64_elf64_finish_dynamic_symbol): Do not apply GOT_BIAS when
patching absolute plt entry. For shmedia plt entry, branch to
plt0 is now ptrel, so use relative offset. Set bottom bit of
branch target as it is a branch to an shmedia instruction.
Alan Modra [Fri, 23 Aug 2002 08:14:06 +0000 (08:14 +0000)]
* ld-sh/sh64/rd-sh64.exp: New framework file.
* ld-sh/sh64/init-cmpct.d, ld-sh/sh64/init-media.d,
ld-sh/sh64/init64.d, ld-sh/sh64/init.s: New tests for
correct setting of ISA bit for init and fini entry-points.
Alan Modra [Fri, 23 Aug 2002 08:13:12 +0000 (08:13 +0000)]
* elf32-sh.c (sh_elf_finish_dynamic_sections): Set LSB of DT_INIT
value if .init is an SHmedia function. Similarly for DT_FINI.
* elf64-sh64.c (sh64_elf64_finish_dynamic_sections): Likewise.
Elena Zannoni [Thu, 22 Aug 2002 22:26:41 +0000 (22:26 +0000)]
2002-08-22 Elena Zannoni <ezannoni@redhat.com>
* rs6000-tdep.c (struct rs6000_framedata): Add saved_ev and
ev_offset fields.
(skip_prologue): Add support for BookE/e500 instructions.
(e500_extract_return_value): New function.
(frame_get_saved_regs): Add support for saving ev registers and
pseudo gpr's.
(e500_store_return_value): New function.
(rs6000_gdbarch_init): Move up default intializations of
deprecated_extract_return_value and store_return_value. Overwrite
init of store_return_value with e500 specific version.
Set extract_return_value for e500.
Jim Blandy [Thu, 22 Aug 2002 05:50:11 +0000 (05:50 +0000)]
* coffread.c (coff_symfile_read): Don't try to read the line
number table from disk if the image file doesn't have a symbol
table; we'll never actually look at the info anyway, and Windows
ships DLL's with bogus file offsets for the line number data.
Elena Zannoni [Wed, 21 Aug 2002 23:37:34 +0000 (23:37 +0000)]
2002-08-21 Elena Zannoni <ezannoni@redhat.com>
* config/tc-ppc.c (ppc_cleanup): Do something only if format
is ELF.
(ppc_apuinfo_section_add): Define only if format is ELF.
(md_assemble): Emit APUinfo section only if format is ELF.
Fix formatting.
Michael Snyder [Wed, 21 Aug 2002 01:08:23 +0000 (01:08 +0000)]
2002-08-20 Michael Snyder <msnyder@redhat.com>
* mips-tdep.c (MSYMBOL_IS_SPECIAL, MSYMBOL_SIZE): These are only
used locally, so move them from the target machine header to here.
(mips_set_processor_type, mips_register_name, mips32_next_pc,
mips16_next_pc, cached_proc_desc, mips_set_processor_type):
Make static.
* config/mips/tm-mips.h (MSYMBOL_IS_SPECIAL, MSYMBOL_SIZE): Delete.
Elena Zannoni [Tue, 20 Aug 2002 22:24:29 +0000 (22:24 +0000)]
2002-08-20 Elena Zannoni <ezannoni@redhat.com>
* ppc-tdep.h (struct gdbarch_tdep): Add ev registers.
* rs6000-tdep.c (rs6000_register_virtual_type): Return 64 bit
vector type for ev registers.
(e500_pseudo_register_read): New function.
(e500_pseudo_register_write): New function.
(e500_dwarf2_reg_to_regnum): New function.
(PPC_UISA_NOFP_SPRS): New macro.
(PPC_EV_REGS): New macro.
(PPC_GPRS_PSEUDO_REGS): New macro.
(registers_e500): New register set for e500.
(variants): Add e500 variant.
(rs6000_gdbarch_init): Move setting of pc, sp, fp regnums to
before setting architectural dependent variations. Initialize ev
registers numbers. Add case for e500 architecture. Set the
number of pseudo registers.
Michael Snyder [Tue, 20 Aug 2002 19:32:47 +0000 (19:32 +0000)]
2002-08-20 Michael Snyder <msnyder@redhat.com>
* config/mips/tm-mips.h (STORE_STRUCT_RETURN): Delete.
(EXTRACT_STRUCT_VALUE_ADDRESS): Delete.
* mips-tdep.c (mips_store_struct_return): New function.
(mips_extract_struct_value_address): New function.
(mips_gdbarch_init): Set store_struct_return and
extract_struct_value_address.
Michael Snyder [Tue, 20 Aug 2002 19:26:23 +0000 (19:26 +0000)]
2002-08-20 Michael Snyder <msnyder@redhat.com>
* config/mips/tm-mips.h (STORE_STRUCT_RETURN): Delete.
(EXTRACT_STRUCT_VALUE_ADDRESS): Delete.
* mips-tdep.c (mips_store_struct_return): New function.
(mips_extract_struct_value_address): New function.
(mips_gdbarch_init): Set store_struct_return and
extract_struct_value_address.
David Carlton [Tue, 20 Aug 2002 18:45:30 +0000 (18:45 +0000)]
2002-08-13 David Carlton <carlton@math.stanford.edu>
* dwarf2read.c (dwarf2_build_psymtabs): Check that
dwarf_line_offset is nonzero before creating dwarf_line_buffer.
(read_file_scope): Check that line_header is nonzero before
decoding macro information.
Mark Kettenis [Tue, 20 Aug 2002 17:59:50 +0000 (17:59 +0000)]
* i386-tdep.h (FP_REGNUM_P): Change such that we don't incorrectly
flag the general-purpose registers as floating-point on targets
that don't support the floating-point registers.
Elena Zannoni [Tue, 20 Aug 2002 16:33:32 +0000 (16:33 +0000)]
2002-08-20 Elena Zannoni <ezannoni@redhat.com>
* infcmd.c (do_registers_info): Print vector registers in hex
format only.
(print_vector_info): Check that printing registers
makes sense.
(print_float_info): Ditto.
* mips-tdep.c (mips_gdbarch_init): Update.
(mips_o32_extract_return_value): Rewrite.
(mips_o32_store_return_value): Rewrite.
(mips_o32_xfer_return_value): New function.
(mips_xfer_register): Tweak debug print message. Allow for
buf_offset when dumping the value transfered.