aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>2009-12-30 06:57:17 +0000
committerIan Lance Taylor <ian@airs.com>2009-12-30 06:57:17 +0000
commit1a2dff539bff0b85f89b2f8f0c30dab1851f59a5 (patch)
tree549fd584889a912f8d7aec63610c52b2969dee96 /gold/common.cc
parent PR 10450 (diff)
downloadbinutils-gdb-1a2dff539bff0b85f89b2f8f0c30dab1851f59a5.tar.gz
binutils-gdb-1a2dff539bff0b85f89b2f8f0c30dab1851f59a5.tar.bz2
binutils-gdb-1a2dff539bff0b85f89b2f8f0c30dab1851f59a5.zip
* 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.
Diffstat (limited to 'gold/common.cc')
-rw-r--r--gold/common.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/gold/common.cc b/gold/common.cc
index 4bc6a51d698..c5d830ebc96 100644
--- a/gold/common.cc
+++ b/gold/common.cc
@@ -239,7 +239,8 @@ Symbol_table::do_allocate_commons_list(
Output_data_space *poc = new Output_data_space(addralign, ds_name);
Output_section *os = layout->add_output_section_data(name,
elfcpp::SHT_NOBITS,
- flags, poc, false);
+ flags, poc, false,
+ false, false, false);
if (os != NULL)
{
if (commons_section_type == COMMONS_SMALL)