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: [gold][aarch64]patch3: static link/shared objects


On Fri, Aug 29, 2014 at 3:50 PM, Cary Coutant <ccoutant@google.com> wrote:
>> 2014-08-11 Han Shen <shenhan@google.com>
>>                   Jing Yu <jingyu@google.com>
>>
>> * gold/aarch64-reloc-property.cc(AArch64_reloc_property_table::reloc_name_in_error_message):
>>   Fix bug in reference reloc property in the table.
>> * gold/aarch64-reloc.def: Add TLSLE reloc types and fix some errors in
>> 3 other entries.
>> * gold/aarch64.cc:
>>   (TARGET_TCB_SIZE): New macro defining how tcb size is computed.
>>   (Output_data_got_aarch64::add_static_reloc): 2 new methods
>> (overloaded version).
>>   (Output_data_got_aarch64::do_write): Add code to write out static relocs.
>>   (class Output_data_got_aarch64::Static_reloc): New class to wrap
>> static relocs.
>>   (Output_data_got_aarch64::static_relocs): New vector to hold static relocs.
>>   (Target_aarch64::tcb_size): New method.
>>   (Target_aarch64::Relocate::relocate): Add code handling new reloc types.
>>   (Target_aarch64::Relocate::relocate_tls): New method.
>>   (Target_aarch64::Scan::local): Add code handling new reloc types.
>>   (Target_aarch64::Scan::global): Add code handling new reloc types.
>
> Your patch includes the top-level configure patches. Those need to go
> to GCC first; I'll take care of adding both aarch64 and mips at the
> same time.
>
> The ChangeLog entries shouldn't have "gold/" in the filenames.
>
> +#define TARGET_TCB_SIZE ((size / 8) * 2)
>
> I'm uncomfortable having a file-scope macro that refers to a template
> parameter. Can't you just have a static const int TCB_SIZE in
> Target_aarch64, and refer to it from the Output_data_got_aarch64 class
> as Target_aarch64<size, big_endian::TCB_SIZE?
>
> +  unsigned int
> +  tcb_size() const { return this->tcb_size_; }
>
> You can just return This::TCB_SIZE here (with a suitable typedef for This).
>
> +  // Size of TCB
> +  const unsigned int tcb_size_;
>
> And this field can go away.
>
> This is OK with the above changes. Thanks!

The TCB changes size for ILP32.

Thanks,
Andrew

>
> -cary


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