[U-Boot] puts() and newlines (was Re: Discussion topics / issues)

Tom Rini trini at ti.com
Mon Oct 20 17:51:26 CEST 2014


On Wed, Oct 15, 2014 at 10:40:12AM +0200, Pavel Machek wrote:
> Hi!
> 
> > First, we have a compatibility problem here.  GCC assumes that puts()
> > will add a newline character after the string; U-Boot puts() does NOT
> > do this.  So the GCC auto-converted printf()s will all be wrong, as
> > they are missing the newline. [1]
> 
> > [1] One might argue that this is a bug in U-Boot and should be fixed,
> > but that is another topic.
> 
> I believe we should fix that, yes.
> 
> I did quick grep,
> 
> pavel at duo:~/wagabuibui/u-boot$ grep -ri puts . | wc -l
> 4287
> 
> and that is probably too much to change in one go. So what about this?

I'm thinking, now that we know that with $(CC) -ffreestanding printf is
not converted to puts, we should (a) globally change puts("no newline")
to printf (b) fix puts behavior to conform to standards and correct
puts("newline\n") to puts("newline").  And then let people use whatever
of the print functions they want, while we sort out making people use
debug(...) / error(...) more and come up with a clever output scheme
like we talked about in person.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141020/112db177/attachment.pgp>


More information about the U-Boot mailing list