diff options
author | Ian Lance Taylor <ian@airs.com> | 2009-11-04 16:35:51 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 2009-11-04 16:35:51 +0000 |
commit | 22b127cceb64a4a8dc7e62591746eb4c178eff9f (patch) | |
tree | 6e210da43d6ae53a6f79b55c30efdfc164f33e54 /gold/i386.cc | |
parent | f5c870d25d59bc1e6fcb6a836b6bd1981788982c (diff) | |
download | gdb-22b127cceb64a4a8dc7e62591746eb4c178eff9f.zip gdb-22b127cceb64a4a8dc7e62591746eb4c178eff9f.tar.gz gdb-22b127cceb64a4a8dc7e62591746eb4c178eff9f.tar.bz2 |
PR 10887
* arm.cc (Target_arm::do_finalize_sections): Don't add dynamic
tags if data is discarded by linker script.
* i386.cc (Target_i386::do_finalize_sections): Likewise.
* powerpc.cc (Target_powerpc::do_finalize_sections): Likewise.
* sparc.cc (Target_sparc::do_finalize_sections): Likewise.
* x86_64.cc (Target_x86_64::do_finalize_sections): Likewise.
Diffstat (limited to 'gold/i386.cc')
-rw-r--r-- | gold/i386.cc | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/gold/i386.cc b/gold/i386.cc index d0ed561..c48a019 100644 --- a/gold/i386.cc +++ b/gold/i386.cc @@ -1558,10 +1558,12 @@ Target_i386::do_finalize_sections(Layout* layout, const Input_objects*) Output_data_dynamic* const odyn = layout->dynamic_data(); if (odyn != NULL) { - if (this->got_plt_ != NULL) + if (this->got_plt_ != NULL + && this->got_plt_->output_section() != NULL) odyn->add_section_address(elfcpp::DT_PLTGOT, this->got_plt_); - if (this->plt_ != NULL) + if (this->plt_ != NULL + && this->plt_->output_section() != NULL) { const Output_data* od = this->plt_->rel_plt(); odyn->add_section_size(elfcpp::DT_PLTRELSZ, od); @@ -1569,7 +1571,8 @@ Target_i386::do_finalize_sections(Layout* layout, const Input_objects*) odyn->add_constant(elfcpp::DT_PLTREL, elfcpp::DT_REL); } - if (this->rel_dyn_ != NULL) + if (this->rel_dyn_ != NULL + && this->rel_dyn_->output_section() != NULL) { const Output_data* od = this->rel_dyn_; odyn->add_section_address(elfcpp::DT_REL, od); |