This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [gold][aarch64]patch2: link helloworld
- From: Jiong Wang <jiong dot wang at arm dot com>
- To: Jing Yu <jingyu at google dot com>, binutils <binutils at sourceware dot org>, Doug Kwan <dougkwan at google dot com>, Cary Coutant <ccoutant at google dot com>
- Cc: Han Shen <shenhan at google dot com>
- Date: Mon, 04 Aug 2014 10:53:13 +0100
- 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>
Hi Jing,
this hello world milestone patch generally looks good to me.
looking forward to your following patches.
-- Jiong
On 30/07/14 03:03, Jing Yu wrote:
Here is the second patch for aarch64 gold backend, which enables
linking hello_world binary.
On x86:
$ ../binutils-gdb/configure --enable-plugins --disable-multilib
--disable-nls --enable-threads --enable-gold=default
--enable-targets=all
On aarch64:
$ ../binutils-gdb/configure --enable-plugins --disable-multilib
--disable-nls --enable-threads --enable-gold=default
--enable-targets=all
gold/ld-new is able to link hello_world binary dynamically.
Our next patch will support linking hello_world statically and linking
position independent code.
Thanks,
Jing
2014-07-29 Jing Yu <jingyu@google.com>
Han Shen <shenhan@google.com>
* elfcpp/aarch64.h(enum): Replace withdrawn with R_AARCH64_withdrawn
* gold/Makefile.am(HFILES): Add aarch64-reloc-property.h
(DEFFILES): add aarch64-reloc.def
(TARGETSOURCES): Add aarch64-reloc-property.cc
(ALL_TARGETOBJS): aarch64-reloc-property.$(OBJEXT)
* gold/Makefile.in: Regenerate
* gold/aarch64-reloc-property.cc: New file
* gold/aarch64-reloc-property.h: New file
* gold/aarch64-reloc.def: New file
* gold/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): Femove 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
(Target_selector_aarch64): Comment out 32-bit target instantiation.