Ulrich Weigand [Thu, 15 Nov 2007 23:48:00 +0000 (23:48 +0000)]
bfd/ChangeLog:
* elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Set udata.p of
synthetic symbol to point to the ELF symbol it was derived from.
gdb/ChangeLog:
* elfread.c (ST_REGULAR, ST_DYNAMIC, ST_SYNTHETIC): New defines.
(elf_symtab_read): Rename DYNAMIC argument to TYPE. Do not access
ELF-private symbol data when processing synthetic symbols. Use
udata.p to get at size of ppc64 synthetic 'dot' symbols.
(elf_symfile_read): Pass TYPE argument to elf_symtab_read.
Markus Deuling [Thu, 15 Nov 2007 13:53:11 +0000 (13:53 +0000)]
2007-11-15 Markus Deuling <deuling@de.ibm.com>
* arm-tdep.c (arm_prologue_this_id): Replace LOWEST_PC by its
expression and use get_frame_arch to replace current_gdbarch by frame's
architecture.
*arm-tdep.h (LOWEST_PC): Remove
Vladimir Prus [Thu, 15 Nov 2007 06:52:53 +0000 (06:52 +0000)]
Apply const qualifier to some users of bp_location.
* breakpoint.h (struct bpstats): Make
the breakpoint_at field point at const bp_location.
* breakpoint.c (bpstat_alloc): Accept const
bp_location.
(breakpoint_here_p, breakpoint_inserted_here_p)
(software_breakpoint_inserted_here_p)
(breakpoint_thread_match, bpstat_stop_status)
(read_memory_nobpt, bpstat_have_active_hw_watchpoints): Use
const bp_location for iteration.
(print_it_typical, print_bp_stop_message): Use
const bp_location variable.
Vladimir Prus [Thu, 15 Nov 2007 06:28:19 +0000 (06:28 +0000)]
Prevent clear_command from directly modifying breakpoint list.
* Makefile.in (breakpoint_h): Update dependency.
* breakpoint.c (clear_command): Do not remove
breakpoints from breakpoint_chain. Collect breakpoints
to delete in a vector.
* breakpoint.h (breakpoint_p): New typedef for pointer to
breakpoint. Register vector of breakpoint_p.
bfd/
2007-09-18 Richard Sandiford <richard@codesourcery.com>
* elfxx-mips.c (mips_got_page_range): New structure.
(mips_got_page_entry): Likewise.
(mips_got_info): Add page_gotno and got_page_entries fields.
(mips_elf_got_per_bfd_arg): Add max_pages field. Delete
primary_count and current_count fields.
(mips_got_page_entry_hash, mips_got_page_entry_eq): New functions.
(mips_elf_pages_for_range, mips_elf_record_got_page_entry): Likewise.
(mips_elf_get_got_for_bfd): New function, split out from
mips_elf_make_got_per_bfd. Initialize the page_gotno and
got_page_entries fields when creating a new GOT structure.
(mips_elf_make_got_pages_per_bfd): New function.
(mips_elf_merge_got_with): New function, split out from
mips_elf_make_got_per_bfd. Merge page entries as well as
non-page entries. Use the minimum of max_pages and the sum
of the page_gotnos to estimate the number of page entries.
(mips_elf_merge_gots): Use the minimum of max_pages and the
bfd's page_gotno to estimate the number of page entries.
Use the above functions.
(mips_elf_multi_got): Add page entries as well as non-page entries
to the individual per-bfd GOTs. Initialize got_per_bfd_arg.max_pages.
Initialize the page_gotno and got_page_entries fields when creating
a new primary GOT. Use the minimum of pages and page_gotno when
adding the number of pages entries to local_gotno.
(mips_elf_create_got_section): Initialize the page_gotno and
got_page_entries fields of the GOT structure.
(mips_elf_rel_relocation_p, mips_elf_read_rel_addend)
(mips_elf_add_lo16_rel_addend, mips_elf_get_section_contents): New
functions, split out from...
(_bfd_mips_elf_relocate_section): ...here.
(_bfd_mips_elf_check_relocs): Record GOT page entries too.
(_bfd_mips_relax_section): Use mips_elf_get_section_contents.
(_bfd_mips_elf_always_size_sections): Use the smaller of the
loadable_size- and page_gotno-derived estimates.
ld/testsuite/
2007-09-18 Richard Sandiford <richard@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
Nick Clifton [Tue, 13 Nov 2007 10:40:29 +0000 (10:40 +0000)]
* config/tc-mn10300.c (mn10300_force_relocation): Force a reloc to be generated for alignment fixups.
* config/tc-mn10300.h (TC_FORCE_RELOCATION): Call mn10300_force_relocation.
* elf-m10300.c (mn10300_elf_final_link_relocate): Prevent the accidental termination of DWARF location list entries.
(mn10300_elf_relax_delete_bytes): Stop deletion if an align reloc is encountered that is larger than or not a mutliple of the number of bytes being deleted.
When adjusting symbols, any symbols inside the region being deleted must be moved to the end of the region.
Move align relocs forward if there is room for them after the deletion of the region.
Alan Modra [Tue, 13 Nov 2007 05:56:10 +0000 (05:56 +0000)]
PR 5233
* elf.c (rewrite_elf_program_header): Formatting. Add
first_matching_lma and first_suggested_lma booleans and use
instead of testing matching_lma and suggested_lma for zero.
Markus Deuling [Mon, 12 Nov 2007 06:43:16 +0000 (06:43 +0000)]
2007-11-12 Markus Deuling <deuling@de.ibm.com>
* xtensa-tdep.c (ARG_1ST): Replace ARGS_FIRST_REG by its expression.
(ARGS_FIRST_REG): Remove.
(areg_numer): New function.
(xtensa_pseudo_register_read, xtensa_frame_prev_register)
(xtensa_extract_return_value, xtensa_store_return_value)
(xtensa_frame_cache): Replace AREG_NUMBER by areg_number.
(AREG_NUMBER): Remove.
(XTENSA_IS_ENTRY, ARG_NOF, ARG_1ST): Add gdbarch as parameter.
(xtensa_frame_cache): Update use of XTENSA_IS_ENTRY.
(xtensa_push_dummy_call): Update use of ARG_NOF.
(extract_call_winsize): Add gdbarch as parameter. Replace
current_gdbarch by gdbarch.
(xtensa_extract_return_value, xtensa_store_return_value): Update call
of extract_call_winsize.
Alan Modra [Mon, 12 Nov 2007 00:27:53 +0000 (00:27 +0000)]
* config/tc-ppc.c (md_assemble): If -mregnames, when parsing
PPC_OPERAND_CR always parse as expression to allow register name
followed by an expression.
Kevin Buettner [Fri, 9 Nov 2007 23:38:51 +0000 (23:38 +0000)]
* mn10300-tdep.c (mn10300_dwarf2_reg_to_regnum): Add missing
register number to map. Adjust warning check and error/warning
return value code to match expectations of this function's callers.
Joel Brobecker [Fri, 9 Nov 2007 19:04:35 +0000 (19:04 +0000)]
* stack.c (print_frame_arguments_choices): New static global.
(print_frame_arguments): Likewise.
(print_this_frame_argument_p): New function.
(print_frame_args): Print the argument value only when appropriate.
(_initialize_task): Add new "set/show print frame-arguments" command.
Danny Smith [Fri, 9 Nov 2007 08:35:29 +0000 (08:35 +0000)]
Apply delta accidentally omitted from 2007-11-05 commit.
* pei-i386.c (COFF_SECTION_ALIGNMENT_ENTRIES): Let .data, .text
and .bss section use the default.
Joseph Myers [Thu, 8 Nov 2007 00:10:06 +0000 (00:10 +0000)]
2007-11-07 Joseph Myers <joseph@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
* ppc-sysv-tdep.c (ppc64_sysv_abi_push_dummy_call): Right-align
struct values smaller than one doubleword; left-align those
larger. Pass structs containing a single floating-point value in
registers.
libiberty:
2007-11-07 Joseph Myers <joseph@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
* floatformat.c (mant_bits_set): New.
(floatformat_to_double): Use it. Note no special handling of
split formats.
(floatformat_from_double): Note no special handing of split
formats.
(floatformat_ibm_long_double_is_valid,
floatformat_ibm_long_double): New.
(floatformat_ieee_single_big, floatformat_ieee_single_little,
floatformat_ieee_double_big, floatformat_ieee_double_little,
floatformat_ieee_double_littlebyte_bigword, floatformat_vax_f,
floatformat_vax_d, floatformat_vax_g, floatformat_i387_ext,
floatformat_m68881_ext, floatformat_i960_ext,
floatformat_m88110_ext, floatformat_m88110_harris_ext,
floatformat_arm_ext_big, floatformat_arm_ext_littlebyte_bigword,
floatformat_ia64_spill_big, floatformat_ia64_spill_little,
floatformat_ia64_quad_big, floatformat_ia64_quad_little): Update
for addition of split_half field.
gdb:
2007-11-07 Joseph Myers <joseph@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
* gdbtypes.c (floatformats_ibm_long_double): New.
* gdbtypes.h (floatformats_ibm_long_double): Declare.
* ia64-tdep.c (floatformat_ia64_ext): Update for addition of
split_half field.
* mips-tdep.c (n32n64_floatformat_always_valid,
floatformat_n32n64_long_double_big, floatformats_n32n64_long):
Remove.
(mips_gdbarch_init): Use floatformats_ibm_long_double instead of
floatformats_n32n64_long.
* ppc-linux-tdep.c (ppc_linux_init_abi): Use 128-bit IBM long
double.
* doublest.c (convert_floatformat_to_doublest,
convert_doublest_to_floatformat): Handle split floating-point
formats.
* ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call): Handle IBM long
double arguments.
(ppc64_sysv_abi_push_dummy_call): Likewise.
(do_ppc_sysv_return_value): Handle IBM long double return.