u-boot-2010.12移植到2440(二)

2014-11-24 07:54:09 · 作者: · 浏览: 7
libext2fs.o fs/fat/libfat.o fs/fdos/libfdos.o fs/jffs2/libjffs2.o fs/reiserfs/libreiserfs.o fs/ubifs/libubifs.o fs/yaffs2/libyaffs2.o lib/libfdt/libfdt.o lib/libgeneric.o lib/lzma/liblzma.o lib/lzo/liblzo.o net/libnet.o post/libpost.o board/samsung/smdk2410/libsmdk2410.o --end-group /home/bsc/u-boot-2010.12/arch/arm/lib/eabi_compat.o -L /usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/armv4t -lgcc -Map u-boot.map -o u-boot


make: *** [u-boot] Error 139


查看bootm.c:代码,发现里面明明存在get_sp()函数,支持在一些宏定义条件下。可能是这些宏未定义导致该函数未编译。查到网上一个patch:


[PATCH] arm: get_sp() should always be compiled


gmail.com>
2010-11-01 07:55:27 GMT


From: Po-Yu Chuang faraday-tech.com>


get_sp() was incorrectly excluded if none of


CONFIG_SETUP_MEMORY_TAGS


CONFIG_CMDLINE_TAG


CONFIG_INITRD_TAG


CONFIG_SERIAL_TAG


CONFIG_REVISION_TAG


were defined.



Signed-off-by: Po-Yu Chuang faraday-tech.com>


---


arch/arm/lib/bootm.c | 4 +---


1 files changed, 1 insertions(+), 3 deletions(-)



diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c


index a1649ee..7734953 100644


--- a/arch/arm/lib/bootm.c


+++ b/arch/arm/lib/bootm.c


@@ -327,12 +327,12 @@ void setup_revision_tag(struct tag **in_params)


}


#endif /* CONFIG_REVISION_TAG */



-


static void setup_end_tag (bd_t *bd)


{


params->hdr.tag = ATAG_NONE;


params->hdr.size = 0;


}


+#endif /* CONFIG_SETUP_MEMORY_TAGS || CONFIG_CMDLINE_TAG || CONFIG_INITRD_TAG */



static ulong get_sp(void)


{


@@ -341,5 +341,3 @@ static ulong get_sp(void)


asm("mov %0, sp" : "=r"(ret) : );


return ret;


}


-


-#endif /* CONFIG_SETUP_MEMORY_TAGS || CONFIG_CMDLINE_TAG || CONFIG_INITRD_TAG */


修改完毕后,再次编译通过(从编译过程来看,新版本的BUG还不少)。