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: [PATCH][GOLD] Allow a target to fix up output section flags.


Hi Ian,

   I moved the code to Arm_output_section::Arm_output_section.  Here
is the new patch.

-Doug

2011-04-22  Doug Kwan  <dougkwan@google.com>

	* arm.cc (Arm_output_section::Arm_output_section): Set SHF_LINK_ORDER
	flag of a SHT_ARM_EXIDX section.
        * testsuite/Makefile.am (arm_exidx_test): New test rules.
	* testsuite/Makefile.in: Regenerate.
	* testsuite/arm_exidx_test.s: New file.
	* testsuite/arm_exidx_test.sh: Same.



On Tue, Apr 19, 2011 at 5:12 PM, Doug Kwan (w) <dougkwan@google.com> wrote:
> No problem, I will move all the special processing to
> make_output_section and send you a patch.  Thanks for reviewing.
>
> -Doug
>
> On Tue, Apr 19, 2011 at 5:02 PM, Ian Lance Taylor <iant@google.com> wrote:
>> "Doug Kwan (w)" <dougkwan@google.com> writes:
>>
>>>     This patch adds code to allow a target to fix up some flags in an
>>> output section header.  We need this for ARM's EXIDX section, which is
>>> required to have SHF_LINK_ORDER set.  We currently do not handle that
>>> flag correctly in layout, it would be desirable to fix that in the
>>> long run.  I have tested this for both ARM and X86_64 and I also added
>>> a new test case.
>>>
>>> -Doug
>>>
>>> 2011-04-05  Doug Kwan  <dougkwan@google.com>
>>>
>>>         * arm.cc (Target_arm::do_adjust_output_section_flags): New
>>>         method definition.
>>>         * output.cc (Output_section::write_header): Allow a target to adjust
>>>         output section flags.
>>>         * target.h (Target::adjust_output_section_flags): New method definition.
>>>         (Target::do_adjust_output_section_flags): Same.
>>>         * testsuite/Makefile.am (arm_exidx_test): New test rules.
>>>         * testsuite/Makefile.in: Regenerate.
>>>         * testsuite/arm_exidx_test.s: New file.
>>>         * testsuite/arm_exidx_test.sh: Same.
>>
>> Sorry, I forgot about this one.
>>
>> I want to try to push back on having lots of little random Target hooks.
>> We already have too many.  They make it harder to understand how to
>> write a new backend and harder to modify the linker.  This is a problem
>> in BFD as well.  As much as possible we need to make target hooks
>> simple, easy to understand, and few in number.
>>
>> In this case the ARM backend already uses the make_output_section target
>> hook, so it should be possible to do everything there.  I don't see any
>> need for a new target hook to do this.  If you need to add a function to
>> Output_section to change the flags_ field, do that.
>>
>> Ian
>>
>

Attachment: patch-exidx.txt
Description: Text document


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