This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [gold patch] Add incremental link support for debug sections


> ? ? ? ?* gold/layout.cc (Free_list::allocate): Provide guarantee of minimum
> ? ? ? ?remaining hole size when allocating.
> ? ? ? ?(Layout::make_output_section): Set fill methods for debug sections.
> ? ? ? ?* gold/layout.h (Free_list::Free_list_node): Move from private to
> ? ? ? ?public.
> ? ? ? ?(Free_list::set_min_hole_size): New function.
> ? ? ? ?(Free_list::begin, Free_list::end): New functions.
> ? ? ? ?(Free_list::min_hole_): New data member.
> ? ? ? ?* gold/output.cc: Include dwarf.h.
> ? ? ? ?(Output_fill_debug_info::do_minimum_hole_size): New function.
> ? ? ? ?(Output_fill_debug_info::do_write): New function.
> ? ? ? ?(Output_fill_debug_line::do_minimum_hole_size): New function.
> ? ? ? ?(Output_fill_debug_line::do_write): New function.
> ? ? ? ?(Output_section::Output_section): Initialize new data member.
> ? ? ? ?(Output_section::set_final_data_size): Ensure patch space is larger
> ? ? ? ?than minimum hole size.
> ? ? ? ?(Output_section::do_write): Fill holes in debug sections.
> ? ? ? ?* gold/output.h (Output_fill): New class.
> ? ? ? ?(Output_fill_debug_info): New class.
> ? ? ? ?(Output_fill_debug_line): New class.
> ? ? ? ?(Output_section::set_free_space_fill): New function.
> ? ? ? ?(Output_section::free_space_fill_): New data member.
> ? ? ? ?* gold/testsuite/Makefile.am (incremental_test_3): Add
> ? ? ? ?--incremental-patch option.
> ? ? ? ?(incremental_test_4): Likewise.
> ? ? ? ?(incremental_test_5): Likewise.
> ? ? ? ?(incremental_test_6): Likewise.
> ? ? ? ?(incremental_copy_test): Likewise.
> ? ? ? ?(incremental_common_test_1): Likewise.
> ? ? ? ?* gold/testsuite/Makefile.in: Regenerate.

Here is a slightly revised patch. I've added some missing comments for
the new classes, and changed the fill method for .debug_line to set
the header_length field to claim that the header spans the entire
hole. Consumers that (correctly) use header_length to find the
beginning of the line number program will see an empty line number
program. Consumers that (incorrectly, like readelf/objdump) assume
that the line number program begins immediately following the last
filename entry of the header will have to parse all the
"DW_LNS_set_basic_block" opcodes used as no-ops.

-cary

Attachment: incr-debug-patch.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]