Andrew Cagney [Tue, 18 Jul 2000 07:47:02 +0000 (07:47 +0000)]
From Richard Henderson <[email protected]>:
* dwarf2read.c (dwarf2_empty_hash_tables): Renamed from
dwarf2_empty_die_ref_table; zero dwarf2_cached_types as well.
Update all callers.
Enable the support for Traditional MIPS.
* elf32-mips.c (IRIX_COMPAT): Recognize bfd_elf32_tradbigmips_vecand
return ict_none appropriately for traditional mips targets.
(STUB_LW): Change 0x8f998000 to 0x8f998010 for traditional mips.
(STUB_MOVE): Conditionalize for traditonal mips.
(STUB_LI16): Likewise.
(_bfd_mips_elf_modify_segment_map): Conditionalize to avoid making
room for RTPROC header.
(_bfd_mips_elf_modify_segment_map): For a normal mips executable set
the permission for the PT_DYNAMIC as read, write and execute.
(mips_elf_calculate_relocation): Check for the symbol _DYNAMIC_LINKING
for traditonal mips.
(_bfd_mips_elf_create_dynamic_sections): Add the symbol
_DYNAMIC_LINKING for traditonal mips.
(_bfd_mips_elf_create_dynamic_sections): Add the symbol __RLD_MAP
in case of traditonal mips.
(_bfd_mips_elf_adjust_dynamic_symbol): Create a stub only if a PLT
entry is required. For a function if PLT is not required then set the
corresponding hash table entry to 0.
(_bfd_mips_elf_size_dynamic_sections): Add DT_DEBUG entry for
traditonal mips.
(_bfd_mips_elf_finish_dynamic_symbol): for a undefined symbol in a
shared object set the value to 0.
(_bfd_mips_elf_finish_dynamic_symbol): Check for the symbol
_DYNAMIC_LINKING for traditonal mips.
(_bfd_mips_elf_finish_dynamic_symbol): Check for the symbol __RLD_MAP
for traditonal mips.
DJ Delorie [Mon, 17 Jul 2000 18:59:58 +0000 (18:59 +0000)]
* src/ld/emultempl/pe.em (gld_*_open_dynamic_archive): New search
order for dynamic library '-lfoo' on pei386: libfoo.dll.a,
foo.dll.a, libfoo.a, libfoo.dll, foo.dll. This fixes compatibility
errors introduced by the old dynamic lib search order.
* ld-elfvsb/elfvsb.exp (support_protected): New variable. Check
and set to "yes" if the protected visibility is expected to
pass.
(visibility_run): Set expected to fail for the "protected"
and "protected_undef_def" tests only if $support_protected is
"no".
* ld-elfvsb/main.c (PROTECTED_CHECK): Check for the protected
visibility support if defined.
* ld-elfvsb/elfvsb.exp (visibility_run): Set expected failure
for "protected_undef_def".
* ld-elfvsb/main.c: Don't define HIDDEN_UNDEF_TEST when
PROTECTED_WEAK_TEST is defined.
Don't define PROTECTED_UNDEF_TEST when PROTECTED_WEAK_TEST is
defined.
Define PROTECTED_TEST when PROTECTED_UNDEF_TEST is defined.
* ld-elfvsb/sh1.c (visibility): Mark protected only if
PROTECTED_TEST, PROTECTED_UNDEF_TEST or PROTECTED_WEAK_TEST
is defined.
(visibility_var): Likewise.
Nicholas Duffek [Fri, 14 Jul 2000 22:17:33 +0000 (22:17 +0000)]
* ppcbug-rom.c (ppcbug_regnames[]): Make array size implicit.
* rs6000-tdep.c (DEFAULT_LR_SAVE): Move to config/*/tm-*.h.
(rs6000_gdbarch_init): Use generic_pc_in_call_dummy instead of
rs6000_pc_in_call_dummy.
* config/rs6000/tm-rs6000.h (DEFAULT_LR_SAVE): Move here from
rs6000-tdep.c.
* config/powerpc/tm-ppc-eabi.h: Remove various definitions
handled by multi-arched rs6000-tdep.c.
* regcache.c (registers_changed, registers_fetched): Use
ARCH_NUM_REGS directly, eliminating an unnecessary variable.
This change adds pseudo-register capability to GDB.
Pseudo-registers are handled like registers, but they
don't come from or live on the target. They may be
aliases for an existing register, or they may be computed.
* defs.h (NUM_PSEUDO_REGISTERS): Define default of zero.
(ARCH_FETCH_PSEUDO_REGISTERS): Define default of no-op.
(ARCH_STORE_PSEUDO_REGISTERS): Define default of no-op.
# regcache.c (registers_changed): Mark pseudo-registers
invalid, as well as real registers.
(registers_fetched): Do not mark pseudo-registers as fetched
at the same time as other (real) registers.
(read_register_bytes): Fetch pseudo-registers (if any) from
the target architecture module instead of from the target.
(read_register_gen): Ditto.
(read_register): Ditto.
(write_register_bytes): Store pseudo-registers (if any) to
the target architecture module instead of to the target.
(write_register_gen): Ditto.
(write_register): Ditto.
(build_regcache): Allocate enough register_valid space for
pseudo-registers as well as normal (real) ones.
Andrew Cagney [Tue, 11 Jul 2000 11:02:11 +0000 (11:02 +0000)]
* mips-tdep.c: General cleanup. Delete all #if 0 code. Convert
all old style K&R function definitions to ISO-C.
(struct gdbarch_tdep): Add mips_abi_string.
(mips_gdbarch_init): Initialize.
(mips_dump_tdep): Print mips_abi_string and other values.
(mips_push_arguments): Add more detailed tracing.
Andrew Cagney [Tue, 11 Jul 2000 06:08:19 +0000 (06:08 +0000)]
* elfcode.h (elf_object_p): Use bfd_set_start_address and not
bfd_get_start_address.
(elf_swap_ehdr_in): Sign extend e_entry when applicable.
(elf_swap_ehdr_out): Ditto.
Alan Modra [Tue, 11 Jul 2000 03:42:41 +0000 (03:42 +0000)]
Remove some forward declarations in ldemul.h and ldfile.h, and
re-arrange header include order.
Fix shadowing warnings in ldlang.h
Fix compile errors in mpw-elfmips.c
Andrew Cagney [Mon, 10 Jul 2000 15:09:23 +0000 (15:09 +0000)]
* mips-tdep.c (mips_push_arguments): Always align struct_addr on a
16 byte boundary. Align allocated argument space using
MIPS_STACK_ARGSIZE. Reserve space on stack for the struct return
and floating-point registers. Use fp_register_arg_p to determine
if float_argreg should be aligned.
* config/sh/tm-sh.h (STORE_RETURN_VALUE): Redefine as
sh_store_return_value().
* sh-tdep.c (sh_store_return_value): New function. Store the
value returned by a function into the appropriate register.
* sh-tdep.c (sh_skip_prologue): Before looking at the actual
instructions, try to see if the symbol table can be of help, by
calling after_prologue(). If this doesn't work, call
skip_prologue_hard_way().
(skip_prologue_hard_way): Renamed from sh_skip_prologue. Add some
more instruction pattern matching for pushing of arguments, and
manipulation of r14.
(after_prologue): New function. Use symbol table info to determine
the end of the prologue, if possible.