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]

[gold patch] Fix incremental linking problems with .init_array and .eh_frame sections


This patch fixes a couple of bugs in incremental linking.

(1) During an incremental update, the linker was failing to reserve
the space used by .init/.preinit/.fini_array sections, causing an
internal error when processing an input section from an unchanged
file. (This showed up because of .ctors input sections mapped to
.init_array sections via the new --ctors-in-init-array option.)

(2) During an incremental full link, the linker is adding padding to
the .eh_frame section, confusing the unwinder. I plan to correct this
later by supporting the .eh_frame_hdr section during an incremental
update.

Tested on x86_64. OK to commit?

-cary


	* incremental.cc (can_incremental_update): New function.
	* incremental.h (can_incremental_update): New function.
	* layout.cc (Layout::init_fixed_output_section): Call it.
	(Layout::make_output_section): Don't allow patch space in .eh_frame.
	* object.cc (Sized_relobj_file::do_layout): Call
	can_incremental_update.

Attachment: ctors-ehframe-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]