From 668e5292203015b67e4485084d71f6aa6ff6f9f0 Mon Sep 17 00:00:00 2001
From: Gabor Juhos <juhosg@openwrt.org>
Date: Sat, 2 Feb 2013 09:30:47 +0000
Subject: [PATCH] generic: fix gc_sections patch

Due to the patch, essential '.data..*' sections are merged
into the '.data' section:

  --- vmlinux.good.sect   2013-02-01 23:49:16.000000000 +0100
  +++ vmlinux.bad.sect    2013-02-01 23:49:02.000000000 +0100
  @@ -1,5 +1,5 @@

  -vmlinux.good:     file format elf32-powerpc
  +vmlinux.bad:     file format elf32-powerpc

   Sections:
   Idx Name          Size      VMA       LMA       File off  Algn
  @@ -53,43 +53,35 @@
                     CONTENTS, ALLOC, LOAD, READONLY, DATA
    24 .machine.desc 00000460  c04e1000  004e1000  004f1000  2**2
                     CONTENTS, ALLOC, LOAD, DATA
  - 25 .data         0000f6a0  c04e2000  004e2000  004f2000  2**12
  + 25 .data         0001635c  c04e2000  004e2000  004f2000  2**12
                     CONTENTS, ALLOC, LOAD, DATA
  - 26 .data..init_task 00002000  c04f2000  004f2000  00502000  2**3
  -                  CONTENTS, ALLOC, LOAD, DATA
  - 27 .data..page_aligned 00002000  c04f4000  004f4000  00504000  2**12
  -                  CONTENTS, ALLOC, LOAD, DATA
  - 28 .data..cacheline_aligned 00000c00  c04f6000  004f6000  00506000
    2**5
  -                  CONTENTS, ALLOC, LOAD, DATA
  - 29 .data..read_mostly 000015e0  c04f6c00  004f6c00  00506c00  2**3
  -                  CONTENTS, ALLOC, LOAD, DATA
  - 30 .sbss         000002e0  c04f9000  004f9000  005081e0  2**3
  + 26 .sbss         000002e0  c04fa000  004fa000  0050835c  2**3
  <...>

This causes boot hang on powerpc. Modify the patch to
ensure that the kernel specific '.data..*' sections
remain separate.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

SVN-Revision: 35447
---
 target/linux/generic/patches-3.7/220-gc_sections.patch | 2 +-
 target/linux/generic/patches-3.8/220-gc_sections.patch | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/target/linux/generic/patches-3.7/220-gc_sections.patch b/target/linux/generic/patches-3.7/220-gc_sections.patch
index 8a52a1eec8..bdafdfe9c6 100644
--- a/target/linux/generic/patches-3.7/220-gc_sections.patch
+++ b/target/linux/generic/patches-3.7/220-gc_sections.patch
@@ -115,7 +115,7 @@
  	BRANCH_PROFILE()						\
 -	TRACE_PRINTKS()
 +	TRACE_PRINTKS()							\
-+	*(.data.*)
++	*(.data.[a-zA-Z_]*)
  
  /*
   * Data section helpers
diff --git a/target/linux/generic/patches-3.8/220-gc_sections.patch b/target/linux/generic/patches-3.8/220-gc_sections.patch
index 19c0f15923..0edba22757 100644
--- a/target/linux/generic/patches-3.8/220-gc_sections.patch
+++ b/target/linux/generic/patches-3.8/220-gc_sections.patch
@@ -115,7 +115,7 @@
  	BRANCH_PROFILE()						\
 -	TRACE_PRINTKS()
 +	TRACE_PRINTKS()							\
-+	*(.data.*)
++	*(.data.[a-zA-Z_]*)
  
  /*
   * Data section helpers
-- 
GitLab