    // Fill in some more dynamic tags.
    Output_data_dynamic* const odyn = layout->dynamic_data();
    if (odyn != NULL)
-@@ -1864,24 +7844,44 @@ Target_arm<big_endian>::do_finalize_sections(Layout* layout)
+@@ -1864,24 +7849,44 @@ Target_arm<big_endian>::do_finalize_sections(Layout* layout)
    if (this->copy_relocs_.any_saved_relocs())
      this->copy_relocs_.emit(this->rel_dyn_section(layout));
  

       got_origin = target->got_plt_section()->address();
       reloc_status = Arm_relocate_functions::got_prel(view,
 						      got_origin + got_offset,
@@ -2194,44 +8290,153 @@ Target_arm<big_endian>::Relocate::relocate(
 		  || (gsym->is_defined()
 		      && !gsym->is_from_dynobj()
 		      && !gsym->is_preemptible()));

     symtab,
     layout,
     this,
@@ -1825,8 +7744,74 @@ Target_arm<big_endian>::scan_relocs(const General_options& options,
 
 template<bool big_endian>
 void
