
Hi Simon,
2015-04-16 10:14 GMT+09:00 Simon Glass sjg@chromium.org:
Unfortunately memset() is not always available, so provide a substitute when needed.
Signed-off-by: Simon Glass sjg@chromium.org
common/init/global_data.c | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/common/init/global_data.c b/common/init/global_data.c index 2633f0d..ef055c4 100644 --- a/common/init/global_data.c +++ b/common/init/global_data.c @@ -21,7 +21,15 @@ ulong board_init_f_mem(ulong top) top -= sizeof(struct global_data); top = ALIGN(top, 16); gd = (struct global_data *)top; +#if !defined(CONFIG_SPL_BUILD) || defined(CONFIG_SPL_LIBGENERIC_SUPPORT) memset((void *)gd, '\0', sizeof(*gd)); +#else
int *ptr = (int *)gd;
int *end = (int *)(gd + 1);
while (ptr < end)
*ptr++ = 0;
+#endif
#ifdef CONFIG_SYS_MALLOC_F_LEN top -= CONFIG_SYS_MALLOC_F_LEN;
This patch implies that all the SPLs should have memset().
Is it better to build lib/ unconditionally? I posted a patch to do so.
Please consider to use it as a prerequisite for cleaning up 01/10 and 02/10.