[prev in list] [next in list] [prev in thread] [next in thread] 

List:       binutils
Subject:    [gold][aarch64]patch2: link helloworld
From:       Jing Yu <jingyu () google ! com>
Date:       2014-07-30 2:03:55
Message-ID: CAJ_rGWSiaDhPnv28jw+T4y1JqCz_TjYZ3zsNQKG_ptXvESHGBg () mail ! gmail ! com
[Download RAW message or body]


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.

["gold.patch2" (application/octet-stream)]

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic