This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [gold][aarch64]patch2: link helloworld
- From: Cary Coutant <ccoutant at google dot com>
- To: Jing Yu <jingyu at google dot com>
- Cc: binutils <binutils at sourceware dot org>, Doug Kwan <dougkwan at google dot com>, Han Shen <shenhan at google dot com>
- Date: Fri, 8 Aug 2014 09:33:21 -0700
- Subject: Re: [gold][aarch64]patch2: link helloworld
- Authentication-results: sourceware.org; auth=none
- References: <CAJ_rGWSiaDhPnv28jw+T4y1JqCz_TjYZ3zsNQKG_ptXvESHGBg at mail dot gmail dot com> <CAHACq4q6pSk-DXceh82WQFUFWv2UeOBTDMX1obDp-uYD=yXQxg at mail dot gmail dot com> <CAJ_rGWROP3wgUxxLFZZG806eOZJm75ec1A_A-pVovDg6AdLzZA at mail dot gmail dot com>
> elfcpp/Changelog:
> 2014-08-07 Jing Yu <jingyu@google.com>
> Han Shen <shenhan@google.com>
>
> * aarch64.h(enum): Replace withdrawn with R_AARCH64_withdrawn.
>
>
> gold/Changelog:
> 2014-08-07 Jing Yu <jingyu@google.com>
> Han Shen <shenhan@google.com>
>
> * Makefile.am(HFILES): Add aarch64-reloc-property.h.
> (DEFFILES): add aarch64-reloc.def.
> (TARGETSOURCES): Add aarch64-reloc-property.cc.
> (ALL_TARGETOBJS): Add aarch64-reloc-property.$(OBJEXT).
> * Makefile.in: Regenerate.
> * aarch64-reloc-property.cc: New file.
> * aarch64-reloc-property.h: New file.
> * aarch64-reloc.def: New file.
> * aarch64.cc: Include aarch64-reloc-property.h. Replace spaces
> with tab to make the format consistent.
> (Output_data_got_aarch64::symbol_table_): New method.
> (Target_aarch64::do_plt_address_for_global): New method.
> (Target_aarch64::do_plt_address_for_local): New method.
> (Target_aarch64::do_select_as_default_target): New method.
> (Target_aarch64::do_make_data_plt): New method.
> (Target_aarch64::make_data_plt): New method.
> (Output_data_plt_aarch64::has_irelative_section): New method.
> (Output_data_plt_aarch64::address_for_global): New method.
> (Output_data_plt_aarch64::address_for_local): New method.
> (Output_data_plt_aarch64::irelative_rel_): New parameter.
> (Output_data_plt_aarch64::add_entry): Implement contents.
> (Output_data_plt_aarch64::set_final_data_size): Fix typo.
> (Output_data_plt_aarch64::do_write): Remove useless got_base. Set
> the got_pov entry to plt0.
> (Output_data_plt_aarch64_standard::do_fill_first_plt_entry):
> Implement contents.
> (Output_data_plt_aarch64_standard::do_fill_plt_entry): Implement.
> (AArch64_howto): New struct.
> (aarch64_howto[]): New static const array.
> (AArch64_relocate_functions): New class
> (Target_aarch64::Scan::get_reference_flags): Remove method.
> (Target_aarch64::Scan::local): Implement to support a few relocations.
> (Target_aarch64::Scan::global): Implement to support a few relocations.
> (Target_aarch64::make_plt_section): Implement contents.
> (Target_aarch64::make_plt_entry): Implement contents.
> (Target_aarch64::do_finalize_sections): Implement contents.
> (Target_aarch64::Relocate::relocate): Implement a few relocations.
> (Target_aarch64::relocate_section): Implement contents.
+// Above is from Table 4-10, Relocations for control-fl
Looks like this comment got truncated.
+// Above is from Table 4-17, Initial Exec TLS relocatios, 539-543.
"relocations"
+ Page(typename elfcpp::Elf_types<size>::Elf_Addr address)
It might be worth making a class-local typedef for this type.
+ return (address &
+ (~(typename elfcpp::Elf_types<size>::Elf_Addr)0xFFF));
Please use static_cast (which will be more manageable with the local typedef).
OK with these changes (please post the patch as committed for
reference). Thanks!
-cary