This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [GOLD][PATCH] Handle 32-bit initial TLS relocations for ARM target.
- From: Viktor Kutuzov <vkutuzov at accesssoftek dot com>
- To: "Doug Kwan ($Bop?6y~(B)" <dougkwan at google dot com>
- Cc: binutils <binutils at sourceware dot org>
- Date: Wed, 17 Feb 2010 13:04:13 -0800
- Subject: Re: [GOLD][PATCH] Handle 32-bit initial TLS relocations for ARM target.
- References: <498552561002171134m7af75eb7i14972e848eb84ff4@mail.gmail.com>
- Reply-to: vkutuzov at accesssoftek dot com
Would you add the changes for arm-reloc.def into this patch?
Thank you.
-Viktor.
On Wed, 2010-02-17 at 11:34 -0800, Doug Kwan ($Bop?6y~(B) wrote:
> Hi,
>
> This patch adds some support for initial TLS relocations for the
> ARM target. It is required for running the gold test suite on an ARM
> system running Ubuntu. It is not yet complete. There are known
> issues:
>
> -TLS relocations in static output objects do not work.
> -12-bit TLS relocations not supported.
> -TLS optimization not supported.
> -Additional TLS relocations defined in
> http://www.lsd.ic.unicamp.br/~oliva/writeups/TLS/RFC-TLSDESC-ARM.txt
> not supported.
>
> These will be fixed or implemented later. This patch allows most of
> the tests in the test suite to build.
>
> -Doug
>
> 2010-02-18 Doug Kwan <dougkwan@google.com>
>
> * arm-reloc.def: Mark R_ARM_TLS_GD32, R_ARM_TLS_LDM32,
> R_ARM_TLS_LDO32, R_ARM_TLS_IE32 and R_ARM_TLS_LE32 are implemented.
> * arm.cc (Arm_relocation_functions): New forward declaration.
> (Target_arm::Target_arm): Initialize new data members
> got_mod_index_offset_ and tls_base_symbol_defined_.
> (Target_arm::Relocate::relocate_tls): New method.
> (Target_arm::optimize_tls_reloc, Target_arm::define_tls_base_symbol,
> Target_arm::got_mod_index_entry, Target_arm::rel_tls_desc_section):
> New methods.
> (Target_arm::Got_type): Add GOT_TYPE_TLS_NOFFSET, GOT_TYPE_OFFSET,
> GOT_TYPE_TLS_PAIR and GOT_TYPE_TLS_DESC.
> (Target_arm::got_mod_index_offset_,
> Target_arm::tls_base_symbol_defined_): New data members.
> (Target_arm::Scan::local, Target::Scan::global,
> Target_arm::Relocate::relocate): Handle 32-bit initial TLS
> relocations.
--
-Viktor