[U-Boot] [PATCH] spl: don't use %.*s with CONFIG_USE_TINY_PRINTF

Masahiro Yamada yamada.masahiro at socionext.com
Tue Jan 17 10:18:52 CET 2017


2017-01-17 17:06 GMT+09:00 Oded Gabbay <oded.gabbay at gmail.com>:
> On Tue, Jan 17, 2017 at 9:30 AM, Masahiro Yamada
> <yamada.masahiro at socionext.com> wrote:
>> 2016-12-28 16:36 GMT+09:00 Oded Gabbay <oded.gabbay at gmail.com>:
>>> In the tiny-printf implementation, there is no support for %.*s. This patch
>>> checks if CONFIG_USE_TINY_PRINTF is defined and if so, prints a different
>>> debug statement which doesn't use %.*s
>>>
>>> Signed-off-by: Oded Gabbay <oded.gabbay at gmail.com>
>>> Cc: Simon Glass <sjg at chromium.org>
>>> ---
>>>  common/spl/spl.c | 5 +++++
>>>  1 file changed, 5 insertions(+)
>>>
>>> diff --git a/common/spl/spl.c b/common/spl/spl.c
>>> index f7df834..7c4744d 100644
>>> --- a/common/spl/spl.c
>>> +++ b/common/spl/spl.c
>>> @@ -115,9 +115,14 @@ int spl_parse_image_header(struct spl_image_info *spl_image,
>>>                 }
>>>                 spl_image->os = image_get_os(header);
>>>                 spl_image->name = image_get_name(header);
>>> +#ifdef CONFIG_USE_TINY_PRINTF
>>> +               debug("spl: payload image: %s load addr: 0x%x size: %d\n",
>>> +                       spl_image->name, spl_image->load_addr, spl_image->size);
>>> +#else
>>>                 debug("spl: payload image: %.*s load addr: 0x%x size: %d\n",
>>>                         (int)sizeof(spl_image->name), spl_image->name,
>>>                         spl_image->load_addr, spl_image->size);
>>> +#endif
>>>         } else {
>>>  #ifdef CONFIG_SPL_PANIC_ON_RAW_IMAGE
>>
>>
>> Same here.
>>
>> Please do not patch around with CONFIG_USE_TINY_PRINTF.
>>
>> What you need to do is to fix tiny_printf() implementation.
>>
>>
>> --
>> Best Regards
>> Masahiro Yamada
>
> ok, I can accept that but how would you like to fix it ?
> I guess you don't want to copy the entire printf implementation,
> otherwise what's the point in tiny-printf ?


Right.   Supporting all the format specifiers will make
tiny-printf much bigger, then we will lose the point of this function.

Can we silently ignore specifiers that are not recognized by tiny_printf()?


> Do you think we should just silently treat %.s as %s inside
> tiny-printf ? And take that approach to the other two patches I sent ?
>


-- 
Best Regards
Masahiro Yamada


More information about the U-Boot mailing list