diff options
Diffstat (limited to 'gold/layout.cc')
-rw-r--r-- | gold/layout.cc | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/gold/layout.cc b/gold/layout.cc index bb13d71..5f25fae 100644 --- a/gold/layout.cc +++ b/gold/layout.cc @@ -1581,6 +1581,23 @@ Layout::add_eh_frame_for_plt(Output_data* plt, const unsigned char* cie_data, } } +// Remove .eh_frame information for a PLT. FDEs using the CIE must +// be removed in reverse order to the order they were added. + +void +Layout::remove_eh_frame_for_plt(Output_data* plt, const unsigned char* cie_data, + size_t cie_length, const unsigned char* fde_data, + size_t fde_length) +{ + if (parameters->incremental()) + { + // FIXME: Maybe this could work some day.... + return; + } + this->eh_frame_data_->remove_ehframe_for_plt(plt, cie_data, cie_length, + fde_data, fde_length); +} + // Scan a .debug_info or .debug_types section, and add summary // information to the .gdb_index section. @@ -3464,7 +3481,7 @@ is_text_segment(const Target* target, const Output_segment* seg) } // Set the file offsets of all the segments, and all the sections they -// contain. They have all been created. LOAD_SEG must be be laid out +// contain. They have all been created. LOAD_SEG must be laid out // first. Return the offset of the data to follow. off_t |