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 Han Shen * 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.