Alan Modra [Sun, 23 Dec 2007 23:00:06 +0000 (23:00 +0000)]
daily update
Joel Brobecker [Sun, 23 Dec 2007 05:34:38 +0000 (05:34 +0000)]
* infrun.c (handle_inferior_event): Remove code that made us
stop when stepping into the last line of the current function.
gdbadmin [Sun, 23 Dec 2007 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Sat, 22 Dec 2007 23:00:05 +0000 (23:00 +0000)]
daily update
Pierre Muller [Sat, 22 Dec 2007 22:09:56 +0000 (22:09 +0000)]
2007-12-22 Pierre Muller <muller@ics.u-strasbg.fr>
* win32-nat.c: Fix PR/2388.
(do_win32_fetch_inferior_registers): Do not overwrite debug register
array dr if debug_registers_changed variable is set.
Jan Kratochvil [Sat, 22 Dec 2007 20:58:30 +0000 (20:58 +0000)]
* dwarf2read.c (scan_partial_symbols partial_die_parent_scope)
(add_partial_symbol, pdi_needs_namespace, process_die)
(is_type_tag_for_partial, load_partial_dies, new_symbol)
(read_type_die, determine_prefix): Extend the current code of
`DW_TAG_class_type' also for `DW_TAG_interface_type'.
H.J. Lu [Sat, 22 Dec 2007 14:06:31 +0000 (14:06 +0000)]
binutils/
2007-12-22 H.J. Lu <hongjiu.lu@intel.com>
* doc/binutils.texi: Document the new intel-mnemonic and
intel-mnemonic options for i386 disassembler.
gas/testsuite/
2007-12-22 H.J. Lu <hongjiu.lu@intel.com>
* gas/i386/compat-intel.d: New file.
* gas/i386/compat.d: Likewise.
* gas/i386/compat.s: Likewise.
* gas/i386/i386.exp: Run compat.
opcodes/
2007-12-22 H.J. Lu <hongjiu.lu@intel.com>
* i386-dis.c (intel_mnemonic): New.
(print_i386_disassembler_options): Display att-mnemonic and
intel-mnemonic options.
(print_insn): Handle att-mnemonic and intel-mnemonic.
(float_reg): Replace SYSV386_COMPAT with "!M" and "M".
(putop): Handle "!M" and "M".
Jim Blandy [Sat, 22 Dec 2007 06:44:28 +0000 (06:44 +0000)]
* gdb.asm/asm-source.exp: Use gdb_get_line_number, instead of
hard-coding source line numbers into the test.
* gdb.asm/asmsrc1.s, gdb.asm/asmsrc2.s: Add comments for
gdb_get_line_number to find.
Joel Brobecker [Sat, 22 Dec 2007 05:28:19 +0000 (05:28 +0000)]
* gdb.base/ptype.c (highest): New struct type.
(the_highest): New variable of that type.
(main): Add dummy assignment to a field of variable the_highest.
* gdb.base/ptype.exp: Test type printing of our new variable.
Ian Lance Taylor [Sat, 22 Dec 2007 01:53:39 +0000 (01:53 +0000)]
Use a simpler hash function.
Ian Lance Taylor [Sat, 22 Dec 2007 00:50:43 +0000 (00:50 +0000)]
Correct contributor name on new tests, remove #if 0 code.
gdbadmin [Sat, 22 Dec 2007 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
Ian Lance Taylor [Fri, 21 Dec 2007 23:31:19 +0000 (23:31 +0000)]
From Cary Coutant: Fix handling of versioned symbols, add some tests.
Bob Wilson [Fri, 21 Dec 2007 23:11:28 +0000 (23:11 +0000)]
* elf32-xtensa.c (relax_section): Update DIFF relocations in the
same way as other relocations.
Ian Lance Taylor [Fri, 21 Dec 2007 23:08:25 +0000 (23:08 +0000)]
Correct handling of non-section symbol in merged section. Avoid some
64-bit signed/unsigned warnings.
Alan Modra [Fri, 21 Dec 2007 23:00:05 +0000 (23:00 +0000)]
daily update
Ian Lance Taylor [Fri, 21 Dec 2007 21:19:45 +0000 (21:19 +0000)]
Speed up relocations against local symbols in merged sections.
H.J. Lu [Fri, 21 Dec 2007 17:04:04 +0000 (17:04 +0000)]
2007-12-21 H.J. Lu <hongjiu.lu@intel.com>
* Makefile.am (i386-gen.o): Also depend on
$(srcdir)/../include/opcode/i386.h.
* Makefile.in: Regenerated.
Andreas Schwab [Fri, 21 Dec 2007 16:04:27 +0000 (16:04 +0000)]
* linux-low.c (STACK_SIZE): Define.
(linux_tracefork_child): Use it. Use __clone2 on ia64.
(linux_test_for_tracefork): Likewise.
Joel Brobecker [Fri, 21 Dec 2007 11:50:11 +0000 (11:50 +0000)]
* ada-lang.h (ada_renaming_category): New enumerated type.
(ada_lookup_encoded_symbol): Declare.
(ada_parse_renaming): Declare.
(ada_renaming_type,ada_is_object_renaming)
(ada_simple_renamed_entity): Delete declarations.
* ada-lang.c (ada_parse_renaming): New function to concentrate
extraction of information from renaming symbols.
(parse_old_style_renaming): New function to concentrate
extraction of old-style (purely type-based) renaming information.
(renaming_is_visible): Rename to...
(old_renaming_is_invisible): Rename and change sense of
renaming_is_visible.
(remove_out_of_scope_renamings): Rename to...
(remove_irrelevant_renamings): Renames remove_out_of_scope_renamings
and augments with additional logic to handle cases where the same
object renaming is encoded both as a reference variable and an
encoded renaming.
(ada_renaming_type,ada_is_object_renaming)
(ada_simple_renamed_entity): Delete definitions.
(ada_lookup_encoded_symbol): New function factored out of
ada_lookup_symbol.
(ada_lookup_symbol): Reimplement to call ada_lookup_encoded_symbol.
(wild_match): Don't reject perfect match of prefix.
(ada_find_renaming_symbol): Factor old-style renaming logic into
find_old_style_renaming_symbol.
(find_old_style_renaming_symbol): New name for content of old
ada_find_renaming_symbol.
(ada_prefer_type): Reimplement not to use ada_renaming_type.
* ada-exp.y (write_object_renaming): Change interface. Reimplement
to use new arguments and ada_parse_renaming.
Correct blocks used to find array index.
(write_var_or_type): Reimplement to use ada_parse_renaming.
Joel Brobecker [Fri, 21 Dec 2007 11:44:14 +0000 (11:44 +0000)]
Minor reformatting.
Joel Brobecker [Fri, 21 Dec 2007 07:37:26 +0000 (07:37 +0000)]
* tui/tui-data.h (MAX_LOCATOR_ELEMENT_LEN): Defined to a bigger
value or to PATH_MAX when possible.
Joel Brobecker [Fri, 21 Dec 2007 04:59:00 +0000 (04:59 +0000)]
* rs6000-tdep.h: Remove defs.h #include.
* Makefile.in (rs6000_tdep_h): Update dependencies.
gdbadmin [Fri, 21 Dec 2007 00:00:44 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Thu, 20 Dec 2007 23:00:06 +0000 (23:00 +0000)]
daily update
Ian Lance Taylor [Thu, 20 Dec 2007 21:26:17 +0000 (21:26 +0000)]
Fix buglet in last patch.
Ian Lance Taylor [Thu, 20 Dec 2007 21:21:24 +0000 (21:21 +0000)]
Convert more instances of off_t to be 32-bit types.
Bob Wilson [Thu, 20 Dec 2007 17:21:07 +0000 (17:21 +0000)]
* config/tc-xtensa.c (xtensa_elf_cons): Set frag flags for
expressions without suffixes.
(get_frag_property_flags): Preserve is_no_transform flag for frags
not marked as either instructions or literals.
Thiago Jung Bauermann [Thu, 20 Dec 2007 17:17:21 +0000 (17:17 +0000)]
* gdbtypes.c (gdbtypes_post_init): Change names of decimal float types
to conform to C extension for decimal float.
* c-lang.c (enum c_primitive_types): Add entries for Decimal Floating
Point types.
(enum cplus_primitive_types): Likewise.
(c_language_arch_info): Add Decimal Floating Point builtin types to
the primitive_type_vector.
(cplus_language_arch_info): Likewise.
Maciej W. Rozycki [Thu, 20 Dec 2007 17:13:57 +0000 (17:13 +0000)]
* mips-tdep.c (mips_n32n64_push_dummy_call): Sign-extend
integers and 32-bit pointers as required by the ABI.
Ian Lance Taylor [Thu, 20 Dec 2007 16:27:34 +0000 (16:27 +0000)]
Update comments about output offsets and merged input sections.
Hans-Peter Nilsson [Thu, 20 Dec 2007 11:36:56 +0000 (11:36 +0000)]
* ld-elf/seg.d: Restrict to linux and vxworks.
Joel Brobecker [Thu, 20 Dec 2007 05:36:14 +0000 (05:36 +0000)]
* symtab.h: Remove "defs.h" #include.
* Makefile.in (symtab_h): Update dependencies.
Ian Lance Taylor [Thu, 20 Dec 2007 01:32:10 +0000 (01:32 +0000)]
Remove one inline.
Ian Lance Taylor [Thu, 20 Dec 2007 01:29:04 +0000 (01:29 +0000)]
Make functions on hot path inline. Remove a mistaken virtual
declaration.
gdbadmin [Thu, 20 Dec 2007 00:00:34 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Wed, 19 Dec 2007 23:00:05 +0000 (23:00 +0000)]
daily update
DJ Delorie [Wed, 19 Dec 2007 20:55:03 +0000 (20:55 +0000)]
* frv/frv.c (frvbf_cut): Only look at the six LSBs of
cut_point.
Jeff Johnston [Wed, 19 Dec 2007 20:47:45 +0000 (20:47 +0000)]
2007-12-19 Jeff Johnston <jjohnstn@redhat.com>
* COPYING.LIBGLOSS: Update default copyright.
Jeff Johnston [Wed, 19 Dec 2007 19:12:23 +0000 (19:12 +0000)]
2007-12-19 Jeff Johnston <jjohnstn@redhat.com>
* COPYING.NEWLIB: Update default copyright.
H.J. Lu [Wed, 19 Dec 2007 15:54:06 +0000 (15:54 +0000)]
2007-12-19 H.J. Lu <hongjiu.lu@intel.com>
* ld-elf/seg.d: Adjusted for 64bit targets.
Pierre Muller [Wed, 19 Dec 2007 14:40:37 +0000 (14:40 +0000)]
2007-12-19 Pierre Muller <muller@ics-u-strasbg.fr>
* (gdb.base/watch_thread_num.exp): Add breakpoint at thread_function
and record first explicitly generated thread number.
Use that thread number for thread specific watchpoint test.
Add iteration number to repetitive tests.
Joel Brobecker [Wed, 19 Dec 2007 13:21:32 +0000 (13:21 +0000)]
* symtab.h: #include "defs.h".
(enum language): Remove opaque declaration.
* Makefile.in (symtab_h): Update dependencies.
Joel Brobecker [Wed, 19 Dec 2007 12:55:09 +0000 (12:55 +0000)]
* language.h (enum exp_opcode): Remove commented out forward
declaration.
(op_error): Delete declaration.
Nathan Sidwell [Wed, 19 Dec 2007 10:22:02 +0000 (10:22 +0000)]
* ld-elf/seg.t: New.
* ld-elf/seg.d: New.
* ld-elf/seg.s: New.
Joel Brobecker [Wed, 19 Dec 2007 05:16:36 +0000 (05:16 +0000)]
* infrun.c (handle_inferior_event): Fix spelling in comment.
Ian Lance Taylor [Wed, 19 Dec 2007 01:23:46 +0000 (01:23 +0000)]
Move Stringpool offsets into a chunked_vector indexed by keys.
Ian Lance Taylor [Wed, 19 Dec 2007 01:18:41 +0000 (01:18 +0000)]
Avoid some warnings which showed up in 64-bit mode.
Ian Lance Taylor [Wed, 19 Dec 2007 00:29:28 +0000 (00:29 +0000)]
Use string length when available when calling Stringpool. Compare
pointers first when looking up Stringpool entries.
gdbadmin [Wed, 19 Dec 2007 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Tue, 18 Dec 2007 23:00:05 +0000 (23:00 +0000)]
daily update
Daniel Jacobowitz [Tue, 18 Dec 2007 21:58:01 +0000 (21:58 +0000)]
* linux-low.c (linux_wait_for_event): Update messages. Do not
reinsert auto-delete breakpoints.
* mem-break.c (struct breakpoint): Change return type of handler to
int.
(set_breakpoint_at): Update handler type.
(reinsert_breakpoint_handler): Return 1 instead of calling
delete_breakpoint.
(reinsert_breakpoint_by_bp): Check for the original breakpoint before
setting a new one.
(check_breakpoints): Delete auto-delete breakpoints and return 2.
* mem-break.h (set_breakpoint_at): Update handler type.
* thread-db.c (thread_db_create_event, thread_db_create_event): Update.
* win32-low.c (auto_delete_breakpoint): New.
(get_child_debug_event): Use it.
Ian Lance Taylor [Tue, 18 Dec 2007 21:45:28 +0000 (21:45 +0000)]
Don't write unattached after_input sections twice.
Jim Blandy [Tue, 18 Dec 2007 21:32:50 +0000 (21:32 +0000)]
Fix filename in ChangeLog entry.
Ian Lance Taylor [Tue, 18 Dec 2007 21:24:10 +0000 (21:24 +0000)]
Print statistics about merge sections with --stats.
Daniel Jacobowitz [Tue, 18 Dec 2007 19:48:07 +0000 (19:48 +0000)]
* section.c (BFD_FAKE_SECTION): Update.
* bfd-in2.h: Regenerate.
Daniel Jacobowitz [Tue, 18 Dec 2007 19:38:26 +0000 (19:38 +0000)]
* bfd-in2.h: Regenerate.
Jim Blandy [Tue, 18 Dec 2007 18:11:09 +0000 (18:11 +0000)]
* doc/gdb.texinfo (Set Watchpoints): Integrate per-thread
watchpoint explanation into the main description of the watchpoint
command; update synopses of 'watch', 'rwatch', and 'awatch'
commands.
Daniel Jacobowitz [Tue, 18 Dec 2007 16:02:54 +0000 (16:02 +0000)]
* minsyms.c (lookup_minimal_symbol): Also check the separate
debug objfile.
(lookup_minimal_symbol_text): Likewise.
(lookup_minimal_symbol_solib_trampoline): Likewise.
* symtab.c (lookup_global_symbol_from_objfile): Likewise.
Vladimir Prus [Tue, 18 Dec 2007 11:06:12 +0000 (11:06 +0000)]
* mi/mi-main.c (mi_cmd_list_features): Announce
the 'pending-breakpoints' feature.
Richard Sandiford [Tue, 18 Dec 2007 07:37:34 +0000 (07:37 +0000)]
/tmp/foo.diff
Richard Sandiford [Tue, 18 Dec 2007 07:34:56 +0000 (07:34 +0000)]
/tmp/foo.diff
Ian Lance Taylor [Tue, 18 Dec 2007 00:48:04 +0000 (00:48 +0000)]
Add section_size_type and section_offset_type, use them to replace a
lot of instances of off_t.
gdbadmin [Tue, 18 Dec 2007 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Mon, 17 Dec 2007 23:00:05 +0000 (23:00 +0000)]
daily update
H.J. Lu [Mon, 17 Dec 2007 19:41:57 +0000 (19:41 +0000)]
2007-12-17 H.J. Lu <hongjiu.lu@intel.com>
* config/tc-i386.c (output_insn): Use ARRAY_SIZE.
(lex_got): Likewise.
H.J. Lu [Mon, 17 Dec 2007 18:53:06 +0000 (18:53 +0000)]
2007-12-17 H.J. Lu <hongjiu.lu@intel.com>
* config/tc-i386.c (output_insn): Use FRAG_APPEND_1_CHAR
instead of frag_more/md_number_to_chars.
(md_short_jump_size): Removed.
(md_long_jump_size): Likewise.
(md_create_short_jump): Likewise.
(md_create_long_jump): Likewise.
Jim Blandy [Mon, 17 Dec 2007 18:38:30 +0000 (18:38 +0000)]
* dwarf2read.c (dwarf2_add_field): Correctly scale all byte
offsets obtained from DW_AT_data_member_location before recording
them in FIELD_BITPOS (*fp).
* dwarf2read.c (attr_form_is_section_offset): Doc fixes.
Maciej W. Rozycki [Mon, 17 Dec 2007 17:49:29 +0000 (17:49 +0000)]
* utils.c (string_to_core_addr): If the executable format
indicates that addresses should be sign-extended and there are
only 8 hex digits in the address, then do so.
* Makefile.in (utils.o): Depend on $(gdbcore_h).
Maciej W. Rozycki [Mon, 17 Dec 2007 17:20:15 +0000 (17:20 +0000)]
* symfile.c (init_filename_language_table): Recognise .sx as
an assembler file.
Carlos Eduardo Seo [Mon, 17 Dec 2007 14:56:33 +0000 (14:56 +0000)]
* gdb.base/expand-psymtabs.c: New testcase
source file.
* gdb.base/expand-psymtabs.exp: New testcase
expect file.
Joel Brobecker [Mon, 17 Dec 2007 14:06:34 +0000 (14:06 +0000)]
* language.h (enum exp_opcode): Comment out this declaration,
undoing the previous change.
Luis Machado [Mon, 17 Dec 2007 12:32:23 +0000 (12:32 +0000)]
* breakpoint.c: (watch_command_1): Parse additional optional
"thread" parameter to the watchpoint command and set the
"thread" member of the breakpoint struct.
* doc/gdb.texinfo: Add new parameter's description.
* testsuite/gdb.base/watch_thread_num.c: New testcase source file.
* testsuite/gdb.base/watch_thread_num.exp: New testcase expect file.
Luis Machado [Mon, 17 Dec 2007 11:34:45 +0000 (11:34 +0000)]
* breakpoint.c (bpstat_stop_status): Check an additional
condition before evaluating an expression value.
Joel Brobecker [Mon, 17 Dec 2007 07:26:08 +0000 (07:26 +0000)]
* gdb.ada/frame_args/foo.adb: New file.
* gdb.ada/frame_args/pck.ads: New file.
* gdb.ada/frame_args/pck.adb: New file.
* gdb.ada/frame_args.exp: New testcase.
Joel Brobecker [Mon, 17 Dec 2007 07:18:03 +0000 (07:18 +0000)]
* gdb.base/frame-args.c: New file.
* gdb.base/frame-args.exp: New testcase.
Joel Brobecker [Mon, 17 Dec 2007 07:00:49 +0000 (07:00 +0000)]
* language.h (enum exp_opcode): Add forward declaration.
(language_string_char_type, language_lookup_primitive_type_by_name):
Move declaration past declaration of language_defn.
Pedro Alves [Mon, 17 Dec 2007 01:50:44 +0000 (01:50 +0000)]
* config.bfd: Add arm-*-mingw32ce* target.
gdbadmin [Mon, 17 Dec 2007 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Sun, 16 Dec 2007 23:00:06 +0000 (23:00 +0000)]
daily update
Daniel Jacobowitz [Sun, 16 Dec 2007 22:57:06 +0000 (22:57 +0000)]
* gdb.texinfo (Overview): Clarify run-length encoding
example. Remove the restriction on "+" and "-" characters.
Joseph Myers [Sun, 16 Dec 2007 22:19:21 +0000 (22:19 +0000)]
2007-12-16 Daniel Jacobowitz <dan@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
* configure.ac: Check for *-*-solaris2.1[[0-9]]* instead of
*-*-solaris2.1[[0-9]].
* configure: Regenerate.
* procfs.c (proc_set_current_signal): If redelivering a signal,
reuse the current siginfo if possible.
testsuite:
* gdb.base/siginfo-addr.exp, gdb.base/siginfo-addr.c: New.
Daniel Jacobowitz [Sun, 16 Dec 2007 21:50:05 +0000 (21:50 +0000)]
* configure.ac: Check for pread and pwrite.
* hostio.c (handle_pread): Fall back to lseek and read.
(handle_pwrite): Fall back to lseek and write.
* config.in, configure: Regenerated.
Daniel Jacobowitz [Sun, 16 Dec 2007 21:27:26 +0000 (21:27 +0000)]
* f-typeprint.c (print_equivalent_f77_float_type): Remove function.
(f_type_print_base): Output the type names directly for real and
complex types.
Vladimir Prus [Sun, 16 Dec 2007 19:15:48 +0000 (19:15 +0000)]
* breakpoint.c (bpstat_have_active_hw_watchpoints):
Remove
(bpstat_stop_status): Remove unused variable
real_breakpoint.
* breakpoint.h (bpstat_have_active_hw_watchpoints):
Remove prototype.
Vladimir Prus [Sun, 16 Dec 2007 19:14:23 +0000 (19:14 +0000)]
* target.h (target_pid_or_tid_to_str): Remove.
* infrun.c (handle_inferior_event):
Use target_pid_to_str instead of
target_pid_or_tid_to_str.
(normal_stop): Likewise.
Jan Kratochvil [Sun, 16 Dec 2007 16:06:29 +0000 (16:06 +0000)]
* dwarf2read.c (dwarf_attr_name): Rename `DW_AT_stride_size' to its
DWARF3 equivalent `DW_AT_bit_stride'.
Rename `DW_AT_stride' to its DWARF3 equivalent `DW_AT_byte_stride'.
Joel Brobecker [Sun, 16 Dec 2007 13:37:26 +0000 (13:37 +0000)]
* mi/mi-main.c: Remove code that was commented out in 1999.
Joel Brobecker [Sun, 16 Dec 2007 13:31:46 +0000 (13:31 +0000)]
* expression.h (parse_expression_in_context): Delete prototype.
* parse.c (parse_expression_in_context): Delete.
gdbadmin [Sun, 16 Dec 2007 00:00:04 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Sat, 15 Dec 2007 23:00:05 +0000 (23:00 +0000)]
daily update
Eli Zaretskii [Sat, 15 Dec 2007 13:13:12 +0000 (13:13 +0000)]
* gdb.texinfo (Host I/O Packets): Fix xref syntax.
Richard Sandiford [Sat, 15 Dec 2007 09:43:40 +0000 (09:43 +0000)]
ld/
* scripttempl/armbpabi.sc (.text): Don't KEEP (*(.text.*personality*)).
(.data): Don't KEEP (*(.gnu.linkonce.d.*personality*)).
* scripttempl/elf.sc: As for armbpabi.sc.
* scripttempl/elfxtensa.sc: Likewise.
* scripttempl/mep.sc: Likewise.
Richard Sandiford [Sat, 15 Dec 2007 09:42:02 +0000 (09:42 +0000)]
bfd/
* elf-bfd.h (eh_cie_fde): Replace u.cie.merged with a union of
a merged field and a sec field.
(eh_frame_hdr_info): Remove offsets_adjusted.
* elf-eh-frame.c (_bfd_elf_parse_eh_frame): Update accesses to
the CIE merged field.
(_bfd_elf_gc_mark_fdes): Likewise.
(_bfd_elf_discard_section_eh_frame): Likewise. Set u.cie.u.sec
when clearing the removed flag.
(_bfd_elf_eh_frame_section_offset): Remove offsets_adjusted handling.
(_bfd_elf_write_section_eh_frame): Likewise. Apply output_offsets
where appropriate.
Richard Sandiford [Sat, 15 Dec 2007 09:41:15 +0000 (09:41 +0000)]
bfd/
* elf-bfd.h (eh_cie_fde): Move add_fde_encoding and
per_encoding_relative to u.cie. Add commentary.
* elf-eh-frame.c (cie): Remove make_relative.
(extra_augmentation_string_bytes): Update use of add_fde_encoding.
(extra_augmentation_data_bytes): Likewise. Use an FDE's own
add_augmentation_size field, rather than referring to the CIE.
(_bfd_elf_parse_eh_frame): Don't set the struct cie
make_relative field; set the eh_cie_fde field directly.
Update setting of add_fde_encoding and per_encoding_relative.
Copy make_relative and add_augmentation_size from the CIE
to the FDE.
(_bfd_elf_discard_section_eh_frame): Use the FDE's own
make_relative field.
(_bfd_elf_eh_frame_section_offset): Likewise.
(_bfd_elf_write_section_eh_frame): Update accesses to
add_fde_encoding and per_encoding_relative. Use the FDE's
own make_relative and add_augmentation_size fields.
Richard Sandiford [Sat, 15 Dec 2007 09:35:58 +0000 (09:35 +0000)]
bfd/
* elf-bfd.h (eh_cie_fde): Remove need_lsda_relative.
Move make_lsda_relative to u.cie.
* elf-eh-frame.c (cie): Rename make_lsda_relative to
can_make_lsda_relative.
(_bfd_elf_parse_eh_frame): Don't set the old eh_cie_fde
make_lsda_relative field. Update after cie renaming.
Set u.cie.make_lsda_relative if can_make_lsda_relative
and if we find a relocation against the LSDA.
(_bfd_elf_discard_section_eh_frame): Copy make_lsda_relative when
changing a CIE's group representative.
(_bfd_elf_eh_frame_section_offset): Don't set need_ldsa_relative here.
(_bfd_elf_write_section_eh_frame): Check u.cie.make_lsda_relative
rather than need_lsda_relative.
Richard Sandiford [Sat, 15 Dec 2007 09:34:48 +0000 (09:34 +0000)]
bfd/
* elf-bfd.h (eh_cie_fde): Add u.fde.next_for_section and
u.cie.gc_mark.
(bfd_elf_section_data): Add fde_list.
(elf_fde_list): New macro.
(elf_obj_tdata): Add eh_frame_section.
(elf_eh_frame_section): New macro.
(_bfd_elf_gc_mark_reloc): Remove last parameter.
(_bfd_elf_gc_mark_fdes): Declare.
* elf-eh-frame.c (_bfd_elf_get_eh_frame_sec_info): Chain the FDEs
for each input section.
(mark_entry, _bfd_elf_gc_mark_fdes): New functions.
* elflink.c (_bfd_elf_gc_mark_reloc): Remove is_eh parameter.
(_bfd_elf_gc_mark): Update call accordingly. Mark the relocations
againts the section's FDEs. Don't mark the bfd's elf_eh_frame_section.
(bfd_elf_gc_sections): Parse each input bfd's .eh_frame before
marking any input sections. Remove the current EH handling.
* section.c (bfd_section): Remove gc_mark_from_eh.
* ecoff.c (bfd_debug_section): Update initializer accordingly.
Richard Sandiford [Sat, 15 Dec 2007 09:33:51 +0000 (09:33 +0000)]
bfd/
* elf-bfd.h (eh_cie_fde): Add u.cie. Document how u.fde.cie_inf
changes when removed == 0.
(eh_frame_hdr_info): Add parsed_eh_frames.
(_bfd_elf_begin_eh_frame_parsing): Declare.
(_bfd_elf_parse_eh_frame): Declare.
(_bfd_elf_end_eh_frame_parsing): Declare.
* elf-eh-frame.c (_bfd_elf_begin_eh_frame_parsing): New function.
(_bfd_elf_parse_eh_frame): New function, split out from
_bfd_elf_discard_section_eh_frame. Make a first pass through the
buffer to calculate the number of entries and CIEs. Allocate memory
for them before the main loop. Replace current extended cie
representation with a pair of pointers, one to the local eh_cie_fde
and one to the full struct cie. Allocate a separate array of struct
cies if not merging. Merge CIEs during the main loop and set up each
u.cie.merged field. Point an FDE's cie_inf field directly at the
local CIE. Initially assume that all entries should be removed.
(_bfd_elf_end_eh_frame_parsing): New function.
(_bfd_elf_discard_section_eh_frame): Assume that the section has
already been parsed. Use a separate pass to mark entries that
need to be kept. Use the u.cie.merged field to track a CIE's
group representative.
* elflink.c (bfd_elf_discard_info): Call _bfd_elf_parse_eh_frame
before _bfd_elf_discard_section_eh_frame. Wrap loop with calls to
_bfd_elf_begin_eh_frame_parsing and _bfd_elf_end_eh_frame_parsing.
Richard Sandiford [Sat, 15 Dec 2007 09:32:38 +0000 (09:32 +0000)]
bfd/
* elf-bfd.h (eh_cie_fde): Put cie_inf in a union. Add a reloc_index
field. Use bitfields for fde_encoding, lsda_encoding and lsda_offset.
* elf-eh-frame.c (extra_augmentation_data_bytes): Adjust cie_inf
accesses after the above change.
(_bfd_elf_eh_frame_section_offset): Likewise.
(_bfd_elf_write_section_eh_frame): Likewise.
(_bfd_elf_discard_section_eh_frame): Likewise. Set up reloc_index.
Richard Sandiford [Sat, 15 Dec 2007 09:31:41 +0000 (09:31 +0000)]
bfd/
* elf-bfd.h (_bfd_elf_gc_mark_rsec, _bfd_elf_gc_mark_reloc): Declare.
(_bfd_elf_gc_mark): Use elf_gc_mark_hook_fn.
* elflink.c (init_reloc_cookie, fini_reloc_cookie)
(init_reloc_cookie_rels, fini_reloc_cookie_rels): New functions,
split out from...
(bfd_elf_discard_info): ...here.
(init_reloc_cookie_for_section): New function.
(fini_reloc_cookie_for_section): Likewise.
(_bfd_elf_gc_mark_rsec, _bfd_elf_gc_mark_reloc): New functions,
split out from...
(_bfd_elf_gc_mark): ...here. Use init_reloc_cookie_for_section
and fini_reloc_cookie_for_section.