[PATCH][GOLD] Avoid generating unused dynamic relocation for __exidx_{start,end}
Doug Kwan (關振德)
dougkwan@google.com
Thu Mar 15 19:50:00 GMT 2012
Ping?
On Tue, Mar 13, 2012 at 4:18 PM, Doug Kwan (關振德) <dougkwan@google.com> wrote:
> [resend a previously sent e-mail to include binutils]
>
> Hi Ian,
>
> This patch fixes a problem in which unnecessary dynamic relocations
> are generated for __exidx_{start,end}. These symbols are special and
> references to them should use the local definition. Currently we
> define these symbols in the ARM backend too late. The patch adds a
> new target hook to generate target-specific symbols.
>
>
> 2012-03-13 Doug Kwan <dougkwan@google.com>
>
> * arm.cc (Target_arm::do_define_standard_symbols): New method.
> (Target_arm::do_finalize_sections): Remove code which defines
> __exidx_start and __exidx_end. Make symbol table parameter
> anonymous as it is not used.
> * gold.cc (queue_middle_tasks): Call target hook to define any
> target-specific symbols.
> * target.h (Target::define_standard_symbols): New method.
> (Target::do_define_standard_symbols): Same.
> * testsuite/Makefile.am (arm_exidx_test): Dump relocations also.
> * testsuite/Makefile.in: Regenerate.
> * testsuite/arm_exidx.s: Generate data relocations for __exidx_start
> and __exidx_end.
> * testsuite/arm_exidx_test.sh: Check that no unused dynamic
> relocations are generated for __exidx_start and __exidx_end.
>
>
>
> -Doug
More information about the Binutils
mailing list