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@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? Best regards, Pavel --- Introduce __puts() that puts strings without trailing newline. Plan is to move the existing puts() users into __puts(), when no puts() users are left, fix the puts() to add the newline, and move users that want newline back to puts(). Signed-off-by: Pavel Machek <pa...@denx.de> --- a/include/common.h +++ b/include/common.h @@ -836,6 +836,8 @@ int tstc(void); /* stdout */ void putc(const char c); void puts(const char *s); +static inline void __puts(const char *s) { puts(s); } + int printf(const char *fmt, ...) __attribute__ ((format (__printf__, 1, 2))); int vprintf(const char *fmt, va_list args); -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot