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]

[gold][aarch64]patch2: link helloworld


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.

Attachment: gold.patch2
Description: Binary data


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