* layout.cc (Layout::relaxation_loop_body): Don't crash if we see
authorIan Lance Taylor <ian@airs.com>
Fri, 16 Oct 2009 05:16:09 +0000 (05:16 +0000)
committerIan Lance Taylor <ian@airs.com>
Fri, 16 Oct 2009 05:16:09 +0000 (05:16 +0000)
program headers with no load segment if there is a linker script.

gold/ChangeLog
gold/layout.cc

index 6ebb5e8ba39a0d3866cd431ffbb36b7dd31a176e..ea864a75746371af4516690c5e6564c9ee00e3b2 100644 (file)
@@ -1,5 +1,8 @@
 2009-10-15  Ian Lance Taylor  <iant@google.com>
 
+       * layout.cc (Layout::relaxation_loop_body): Don't crash if we see
+       program headers with no load segment if there is a linker script.
+
        * layout.cc (Layout::set_segment_offsets): Align the file offset
        to the segment aligment for -N or -n with no load segment.
        * output.cc (Output_segment::add_output_section): Don't crash if
index 0b62c18b30e91c0eb9416876c5d62d938f92030e..028703ae1cec80a774f157a39c79ea88d4bda1be 100644 (file)
@@ -1421,7 +1421,9 @@ Layout::relaxation_loop_body(
       != General_options::OBJECT_FORMAT_ELF)
     load_seg = NULL;
 
-  gold_assert(phdr_seg == NULL || load_seg != NULL);
+  gold_assert(phdr_seg == NULL
+             || load_seg != NULL
+             || this->script_options_->saw_sections_clause());
 
   // Lay out the segment headers.
   if (!parameters->options().relocatable())