u-boot-1.3.2: Fix compilation with gcc 4.4 for mpc8313e-rdb/ppc
authorKhem Raj <raj.khem@gmail.com>
Wed, 12 May 2010 04:26:31 +0000 (21:26 -0700)
committerKhem Raj <raj.khem@gmail.com>
Wed, 12 May 2010 05:17:09 +0000 (22:17 -0700)
* Fix the linker script to allocate all .rodata section variants
  gcc-4.4 generated rodata sections with alignment 1 as .rodata1.1
  and linker script did not allocate it as a result it got default
  adress and create a large hole. So when it came to objcopy converting
  to srec format it kept on filling the gap with 0xff and virtually
  ran the build box out of memory.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
recipes/u-boot/u-boot-1.3.2/gcc4-weak-inline.patch [new file with mode: 0644]
recipes/u-boot/u-boot-1.3.2/linker-script-sort-rodata-sections.patch [new file with mode: 0644]
recipes/u-boot/u-boot_1.3.2.bb

diff --git a/recipes/u-boot/u-boot-1.3.2/gcc4-weak-inline.patch b/recipes/u-boot/u-boot-1.3.2/gcc4-weak-inline.patch
new file mode 100644 (file)
index 0000000..10a3c38
--- /dev/null
@@ -0,0 +1,13 @@
+Index: u-boot-1.3.2/common/main.c
+===================================================================
+--- u-boot-1.3.2.orig/common/main.c    2010-05-11 19:56:47.620373909 -0700
++++ u-boot-1.3.2/common/main.c 2010-05-11 19:57:36.060364465 -0700
+@@ -48,7 +48,7 @@ DECLARE_GLOBAL_DATA_PTR;
+  * Board-specific Platform code can reimplement show_boot_progress () if needed
+  */
+ void inline __show_boot_progress (int val) {}
+-void inline show_boot_progress (int val) __attribute__((weak, alias("__show_boot_progress")));
++void show_boot_progress (int val) __attribute__((weak, alias("__show_boot_progress")));
+ #if defined(CONFIG_BOOT_RETRY_TIME) && defined(CONFIG_RESET_TO_RETRY)
+ extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);             /* for do_reset() prototype */
diff --git a/recipes/u-boot/u-boot-1.3.2/linker-script-sort-rodata-sections.patch b/recipes/u-boot/u-boot-1.3.2/linker-script-sort-rodata-sections.patch
new file mode 100644 (file)
index 0000000..cb6a3e9
--- /dev/null
@@ -0,0 +1,16 @@
+Index: u-boot-1.3.2/cpu/mpc83xx/u-boot.lds
+===================================================================
+--- u-boot-1.3.2.orig/cpu/mpc83xx/u-boot.lds   2010-05-11 21:18:24.130376212 -0700
++++ u-boot-1.3.2/cpu/mpc83xx/u-boot.lds        2010-05-11 21:19:46.870376132 -0700
+@@ -55,10 +55,8 @@ SECTIONS
+     *(.fixup)
+     *(.got1)
+     . = ALIGN(16);
+-    *(.rodata)
+-    *(.rodata1)
+-    *(.rodata.str1.4)
+     *(.eh_frame)
++    *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
+   }
+   .fini      : { *(.fini)    } =0
+   .ctors     : { *(.ctors)   }
index 7a2f28c..435601c 100644 (file)
@@ -2,7 +2,7 @@ require u-boot.inc
 
 DEFAULT_PREFERENCE = "-1"
 
-PR = "r11"
+PR = "r12"
 
 SRC_URI = "ftp://ftp.denx.de/pub/u-boot/u-boot-${PV}.tar.bz2"
 
@@ -15,6 +15,8 @@ SRC_URI_append_mpc8313e-rdb = "\
            file://u-boot-fsl-1.3.0-mpc8313erdb-vsc7385-support.patch;patch=1 \
            file://u-boot-fsl-1.3.0-mpc8313erdb-fix-vitesse-7385-firmware.patch;patch=1 \
            file://u-boot-fsl-1.3.0-mpc8313erdb-performance-tuning-for-TSEC.patch;patch=1 \
+           file://gcc4-weak-inline.patch;patch=1 \
+           file://linker-script-sort-rodata-sections.patch;patch=1 \
            "
 
 SRC_URI_append_boc01 = "\