diff --git a/gold/aarch64.cc b/gold/aarch64.cc index 75e4177..3d03c11 100644 --- a/gold/aarch64.cc +++ b/gold/aarch64.cc @@ -5958,8 +5958,6 @@ Target_aarch64::Scan::local( typedef Output_data_reloc Reloc_section; - Output_data_got_aarch64* got = - target->got_section(symtab, layout); unsigned int r_sym = elfcpp::elf_r_sym(rela.get_r_info()); // A local STT_GNU_IFUNC symbol may require a PLT entry. @@ -6004,6 +6002,8 @@ Target_aarch64::Scan::local( case elfcpp::R_AARCH64_LD64_GOTPAGE_LO15: // The above relocations are used to access GOT entries. { + Output_data_got_aarch64* got = + target->got_section(symtab, layout); bool is_new = false; // This symbol requires a GOT entry. if (is_ifunc) @@ -6056,6 +6056,8 @@ Target_aarch64::Scan::local( // Create a GOT entry for the tp-relative offset. if (!parameters->doing_static_link()) { + Output_data_got_aarch64* got = + target->got_section(symtab, layout); got->add_local_with_rel(object, r_sym, GOT_TYPE_TLS_OFFSET, target->rela_dyn_section(layout), elfcpp::R_AARCH64_TLS_TPREL64); @@ -6063,6 +6065,8 @@ Target_aarch64::Scan::local( else if (!object->local_has_got_offset(r_sym, GOT_TYPE_TLS_OFFSET)) { + Output_data_got_aarch64* got = + target->got_section(symtab, layout); got->add_local(object, r_sym, GOT_TYPE_TLS_OFFSET); unsigned int got_offset = object->local_got_offset(r_sym, GOT_TYPE_TLS_OFFSET); @@ -6086,6 +6090,8 @@ Target_aarch64::Scan::local( } gold_assert(tlsopt == tls::TLSOPT_NONE); + Output_data_got_aarch64* got = + target->got_section(symtab, layout); got->add_local_pair_with_rel(object,r_sym, data_shndx, GOT_TYPE_TLS_PAIR, target->rela_dyn_section(layout),