From a40347502e1064a38b00bcd2176c754a9f534e30 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Sun, 21 Apr 2013 23:21:56 +0000 Subject: PR gold/15355 * layout.cc (Layout::segment_precedes): Allow more than one segment with the same type and flags. --- gold/ChangeLog | 50 ++++++++++++++++++++++++++++---------------------- gold/layout.cc | 6 ++++-- 2 files changed, 32 insertions(+), 24 deletions(-) diff --git a/gold/ChangeLog b/gold/ChangeLog index 64aedfd..67d7571 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,9 @@ +2013-04-22 Alan Modra + + PR gold/15355 + * layout.cc (Layout::segment_precedes): Allow more than one + segment with the same type and flags. + 2013-04-15 Cary Coutant * layout.cc (Layout::set_relocatable_section_offsets): Don't @@ -10,12 +16,12 @@ 2013-04-15 Cary Coutant - * symtab.cc (Symbol_table::sized_write_globals): Subtract - section starting address for relocatable link. - * testsuite/Makefile.am (script_test_11): New test. - * testsuite/Makefile.in: Regenerate. - * testsuite/script_test_11.c: New source file. - * testsuite/script_test_11.t: New linker script. + * symtab.cc (Symbol_table::sized_write_globals): Subtract + section starting address for relocatable link. + * testsuite/Makefile.am (script_test_11): New test. + * testsuite/Makefile.in: Regenerate. + * testsuite/script_test_11.c: New source file. + * testsuite/script_test_11.t: New linker script. 2013-04-13 Alan Modra @@ -310,17 +316,17 @@ 2013-01-28 Cary Coutant - * dwp.cc (File_list): New typedef. - (Dwo_name_info_reader): New class. - (Dwo_id_info_reader::Dwo_id_info_reader): Remove unused parameters. - (Dwo_id_info_reader::visit_top_die): Remove unused member function. - (Dwo_file::~Dwo_file): Delete input_file_ after obj_. - (Dwo_file::read_executable): New function. - (Dwo_file::read): Move common setup code to ... - (Dwo_file::make_object): ... here. - (dwp_options): Add --exec/-e. - (usage): Likewise. - (main): Likewise. + * dwp.cc (File_list): New typedef. + (Dwo_name_info_reader): New class. + (Dwo_id_info_reader::Dwo_id_info_reader): Remove unused parameters. + (Dwo_id_info_reader::visit_top_die): Remove unused member function. + (Dwo_file::~Dwo_file): Delete input_file_ after obj_. + (Dwo_file::read_executable): New function. + (Dwo_file::read): Move common setup code to ... + (Dwo_file::make_object): ... here. + (dwp_options): Add --exec/-e. + (usage): Likewise. + (main): Likewise. 2013-01-24 Sriraman Tallam @@ -503,11 +509,11 @@ 2012-12-14 Cary Coutant - * testsuite/Makefile.am (exception_separate_shared_12_test): Add - --no-as-needed flag. - (exception_separate_shared_12_test): Likewise. - (incremental_copy_test): Likewise. - * testsuite/Makefile.in: Regenerate. + * testsuite/Makefile.am (exception_separate_shared_12_test): Add + --no-as-needed flag. + (exception_separate_shared_12_test): Likewise. + (incremental_copy_test): Likewise. + * testsuite/Makefile.in: Regenerate. 2012-12-14 Cary Coutant diff --git a/gold/layout.cc b/gold/layout.cc index f2dc6da..13f57cb 100644 --- a/gold/layout.cc +++ b/gold/layout.cc @@ -3175,12 +3175,14 @@ Layout::segment_precedes(const Output_segment* seg1, // The order of non-PT_LOAD segments is unimportant. We simply sort // by the numeric segment type and flags values. There should not - // be more than one segment with the same type and flags. + // be more than one segment with the same type and flags, except + // when a linker script specifies such. if (type1 != elfcpp::PT_LOAD) { if (type1 != type2) return type1 < type2; - gold_assert(flags1 != flags2); + gold_assert(flags1 != flags2 + || this->script_options_->saw_phdrs_clause()); return flags1 < flags2; } -- cgit v1.1