+// Write the first three reserved words of the .got.plt section.
+// The remainder of the section is written while writing the PLT
+// in Output_data_plt_i386::do_write.
+
+void
+Output_data_got_plt_i386::do_write(Output_file* of)
+{
+ // The first entry in the GOT is the address of the .dynamic section
+ // aka the PT_DYNAMIC segment. The next two entries are reserved.
+ // We saved space for them when we created the section in
+ // Target_i386::got_section.
+ const off_t got_file_offset = this->offset();
+ gold_assert(this->data_size() >= 12);
+ unsigned char* const got_view = of->get_output_view(got_file_offset, 12);
+ Output_section* dynamic = this->layout_->dynamic_section();
+ uint32_t dynamic_addr = dynamic == NULL ? 0 : dynamic->address();
+ elfcpp::Swap<32, false>::writeval(got_view, dynamic_addr);
+ memset(got_view + 4, 0, 8);
+ of->write_output_view(got_file_offset, 12, got_view);
+}
+