source: scripts/patch/binutils/2.19.1/15-orphan_section.patch@ 601a163

clfs-1.2 clfs-2.1 clfs-3.0.0-systemd clfs-3.0.0-sysvinit systemd sysvinit
Last change on this file since 601a163 was 914669c, checked in by Jim Gifford <clfs@…>, 15 years ago

Updated Binutils Patch. Added Patches to fix Issues with Powerpc

  • Property mode set to 100644
File size: 1.5 KB
RevLine 
[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
Note: See TracBrowser for help on using the repository browser.