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 incremental file format on 64-bit


> 2012-04-21 ?David S. Miller ?<davem@davemloft.net>
>
> ? ? ? ?* incremental.cc (Incremental_inputs::create_data_sections): Align
> ? ? ? ?incremental reloc section to 8 bytes.
> ? ? ? ?(Output_section_incremental_inputs::set_final_data_size): Pad out
> ? ? ? ?offsets to ensure necessary 8-byte alignment.
> ? ? ? ?(Output_section_incremental_inputs::write_info_block): Likewise.
> ? ? ? ?* incremental.h (Incremental_inputs_reader::get_symbol_offset):
> ? ? ? ?Adjust offset calculation.
> ? ? ? ?(Incremental_inputs_reader::get_input_section): Likewise.
> ? ? ? ?(Incremental_inputs_reader::get_global_symbol_reader): Likewise.
> ? ? ? ?(Incremental_inputs_reader::get_comdat_group_signature): Likewise.

That patch should do fine for your purposes, but I wanted to take the
opportunity to replace some of those magic numbers with symbolic
constants, something I've been putting off for too long. The attached
patch does that, sets the relocation section alignment based on the
target size, and bumps the incremental info version number (because
this is, in fact, an incompatible change -- somehow, on Friday I
wasn't seeing the fact that this changes the layout of the info block
for object files).

Tested on x86_64. David, can you test it on Sparc?

Ian, OK to commit if it works for David?

-cary


2012-04-23  David S. Miller ?<davem@davemloft.net>
	    Cary Coutant  <ccoutant@google.com>

	* incremental-dump.cc (find_input_containing_global): Replace
	magic number with symbolic constant.
	(dump_incremental_inputs): Update version number.
	* incremental.cc (Output_section_incremental_inputs): Update version
	number; import symbolic constants from Incremental_inputs_reader.
	(Incremental_inputs::create_data_sections): Align relocations
	section correctly for 64-bit targets.
	(Output_section_incremental_inputs::set_final_data_size): Use symbolic
	constants; add padding.
	(Output_section_incremental_inputs::write_header): Add assert for
	header_size.
	(Output_section_incremental_inputs::write_input_files): Add assert
	for input_entry_size.
	(Output_section_incremental_inputs::write_info_blocks): Add padding;
	add assert for object_info_size, input_section_entry_size,
	global_sym_entry_size.
	* incremental.h (Incremental_inputs_reader): Add symbolic constants
	for data structure sizes; use them.
	(Incremental_input_entry_reader): Import symbolic constants from
	Incremental_inputs_reader; use them.

Attachment: padding-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]