mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2025-01-31 14:04:12 +00:00
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.
This commit is contained in:
parent
f5c870d25d
commit
22b127cceb
@ -1,3 +1,13 @@
|
||||
2009-11-04 Ian Lance Taylor <iant@google.com>
|
||||
|
||||
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.
|
||||
|
||||
2009-11-04 Ian Lance Taylor <iant@google.com>
|
||||
|
||||
* layout.cc (Layout::get_output_section): Add is_interp and
|
||||
|
@ -4252,10 +4252,12 @@ Target_arm<big_endian>::do_finalize_sections(
|
||||
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);
|
||||
@ -4263,7 +4265,8 @@ Target_arm<big_endian>::do_finalize_sections(
|
||||
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);
|
||||
|
@ -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);
|
||||
|
@ -1538,7 +1538,8 @@ Target_powerpc<size, big_endian>::do_finalize_sections(
|
||||
Output_data_dynamic* const odyn = layout->dynamic_data();
|
||||
if (odyn != NULL)
|
||||
{
|
||||
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);
|
||||
@ -1548,7 +1549,8 @@ Target_powerpc<size, big_endian>::do_finalize_sections(
|
||||
odyn->add_section_address(elfcpp::DT_PLTGOT, this->plt_);
|
||||
}
|
||||
|
||||
if (this->rela_dyn_ != NULL)
|
||||
if (this->rela_dyn_ != NULL
|
||||
&& this->rela_dyn_->output_section() != NULL)
|
||||
{
|
||||
const Output_data* od = this->rela_dyn_;
|
||||
odyn->add_section_address(elfcpp::DT_RELA, od);
|
||||
|
@ -2325,7 +2325,8 @@ Target_sparc<size, big_endian>::do_finalize_sections(
|
||||
Output_data_dynamic* const odyn = layout->dynamic_data();
|
||||
if (odyn != NULL)
|
||||
{
|
||||
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);
|
||||
@ -2335,7 +2336,8 @@ Target_sparc<size, big_endian>::do_finalize_sections(
|
||||
odyn->add_section_address(elfcpp::DT_PLTGOT, this->plt_);
|
||||
}
|
||||
|
||||
if (this->rela_dyn_ != NULL)
|
||||
if (this->rela_dyn_ != NULL
|
||||
&& this->rela_dyn_->output_section() != NULL)
|
||||
{
|
||||
const Output_data* od = this->rela_dyn_;
|
||||
odyn->add_section_address(elfcpp::DT_RELA, od);
|
||||
|
@ -1648,10 +1648,12 @@ Target_x86_64::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);
|
||||
@ -1669,7 +1671,8 @@ Target_x86_64::do_finalize_sections(Layout* layout, const Input_objects*)
|
||||
}
|
||||
}
|
||||
|
||||
if (this->rela_dyn_ != NULL)
|
||||
if (this->rela_dyn_ != NULL
|
||||
&& this->rela_dyn_->output_section() != NULL)
|
||||
{
|
||||
const Output_data* od = this->rela_dyn_;
|
||||
odyn->add_section_address(elfcpp::DT_RELA, od);
|
||||
|
Loading…
x
Reference in New Issue
Block a user