[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