| [914669c] | 1 | --- ../binutils-2.19.51.0.11.orig/ld/ldlang.c   2009-07-14 11:42:46.000000000 +0100 | 
|---|
|  | 2 | +++ ld/ldlang.c 2009-07-14 11:55:01.000000000 +0100 | 
|---|
|  | 3 | @@ -1615,10 +1615,12 @@ output_prev_sec_find (lang_output_sectio | 
|---|
|  | 4 | idea is to skip over anything that might be inside a SECTIONS {} | 
|---|
|  | 5 | statement in a script, before we find another output section | 
|---|
|  | 6 | statement.  Assignments to "dot" before an output section statement | 
|---|
|  | 7 | -   are assumed to belong to it.  An exception to this rule is made for | 
|---|
|  | 8 | -   the first assignment to dot, otherwise we might put an orphan | 
|---|
|  | 9 | -   before . = . + SIZEOF_HEADERS or similar assignments that set the | 
|---|
|  | 10 | -   initial address.  */ | 
|---|
|  | 11 | +   are assumed to belong to it, except in two cases;  The first | 
|---|
|  | 12 | +   assignment to dot, and assignments before non-alloc sections. | 
|---|
|  | 13 | +   Otherwise we might put an orphan before . = . + SIZEOF_HEADERS or | 
|---|
|  | 14 | +   similar assignments that set the initial address, or we might | 
|---|
|  | 15 | +   insert non-alloc note sections among assignments setting end of | 
|---|
|  | 16 | +   image symbols.  */ | 
|---|
|  | 17 |  | 
|---|
|  | 18 | static lang_statement_union_type ** | 
|---|
|  | 19 | insert_os_after (lang_output_section_statement_type *after) | 
|---|
|  | 20 | @@ -1662,7 +1664,12 @@ insert_os_after (lang_output_section_sta | 
|---|
|  | 21 | continue; | 
|---|
|  | 22 | case lang_output_section_statement_enum: | 
|---|
|  | 23 | if (assign != NULL) | 
|---|
|  | 24 | -           where = assign; | 
|---|
|  | 25 | +           { | 
|---|
|  | 26 | +             asection *s = (*where)->output_section_statement.bfd_section; | 
|---|
|  | 27 | + | 
|---|
|  | 28 | +             if (s == NULL || (s->flags & SEC_ALLOC) != 0) | 
|---|
|  | 29 | +               where = assign; | 
|---|
|  | 30 | +           } | 
|---|
|  | 31 | break; | 
|---|
|  | 32 | case lang_input_statement_enum: | 
|---|
|  | 33 | case lang_address_statement_enum: | 
|---|
|  | 34 |  | 
|---|