OSDN Git Service

* layout.cc (Layout::Layout): Initialize increase_relro_.
authorian <ian>
Wed, 30 Dec 2009 15:57:17 +0000 (15:57 +0000)
committerian <ian>
Wed, 30 Dec 2009 15:57:17 +0000 (15:57 +0000)
commit3552780c12d81d93b58eadeb1e556527a79e6d48
tree5a743b726ffab5f6d82a221bc76833beba154c3d
parent054d22b86352445febfb2e90f4c2fb3c47cf6af1
* layout.cc (Layout::Layout): Initialize increase_relro_.
(Layout::get_output_section): Add is_relro, is_last_relro, and
is_first_non_relro parameters.  Change all callers.
(Layout::choose_output_section): Likewise.
(Layout::add_output_section_data): Likewise.
(Layout::make_output_section): Likewise.
(Layout::set_segment_offsets): Clear increase_relro when using a
linker script.
* layout.h (class Layout): Add increase_relro method.  Add
increase_relro_ field.  Update declarations.
* output.cc (Output_section::Output_section): Initialize
is_last_relro_ and is_first_non_relro_.
(Output_segment::add_output_section): Group relro sections is
do_sort is true.  Handle is_last_relro and is_first_non_relro.
(Output_segment::maximum_alignment): Remove relro handling.
(Output_segment::set_section_addresses): Add increase_relro
parameter.  Change all callers.  Add initial alignment to align
relro sections on separate page.  Remove old relro handling.
(Output_segment::set_section_list_addresses): Remove in_relro
parameter.  Change all callers.
(Output_segment::set_offset): Add increase parameter.  Change all
callers.  Remove old relro handling.
* output.h (class Output_section): Add new methods: is_last_relro,
set_is_last_relro, is_first_non_relro, set_is_first_non_relro.
Add is_last_relro_ and is_first_non_relro_ fields.
* i386.cc (Target_i386::got_section): Don't call set_is_relro.
Create separate .got.plt section.  Call increase_relro.
* x86_64.cc (Target_x86_64::got_section): Likewise.
* testsuite/relro_script_test.t: Add .got.plt.
13 files changed:
gold/ChangeLog
gold/arm.cc
gold/common.cc
gold/copy-relocs.cc
gold/i386.cc
gold/layout.cc
gold/layout.h
gold/output.cc
gold/output.h
gold/powerpc.cc
gold/sparc.cc
gold/testsuite/relro_script_test.t
gold/x86_64.cc