On Fri, Jan 20, 2017 at 10:38:41AM -0600, Andrew F. Davis wrote:
> On 01/20/2017 10:25 AM, Tom Rini wrote:
> > On Fri, Jan 06, 2017 at 01:35:44PM -0600, Andrew F. Davis wrote:
> > 
> >> Print statements in SPL depend on lib/common support, so many such
> >> statements are ifdef'd, move the check to the common.h header and
> >> remove these inline checks.
> >>
> >> Signed-off-by: Andrew F. Davis <a...@ti.com>
> >> Reviewed-by: Tom Rini <tr...@konsulko.com>
> > 
> > This patch is a good example of why travis-ci is useful, even if takes a
> > few hours for the cycle to complete (kick it off and check the results
> > in the morning :)).  As is, it's broken on PowerPC (where
> > CONFIG_SPL_INIT_MINIMAL is the conditional for puts/printf/etc), mx31pdk
> > and evb-rk3036 (and this is an incomplete list).  The ARM targets are
> > harder to just fix as it shows an underlying problem.  Today we have no
> > single symbol that means "In SPL I want serial output" (and ditto TPL).
> > We try and rely on SPL_SERIAL_SUPPORT but this misses the case where we
> > use neither TINY_PRINTF nor LIBCOMMON but instead have only puts
> > available in a more raw way.  So before we can make the type of change
> > you're doing here we need to introduce a symbol that means "I have
> > output".  That will also greatly reduce the logic needed in the tests in
> > common.h for having puts/etc be real or do-while loops.  Thanks!
> 
> Ahh, I was expecting something like this happening with all the levels
> of ifdef logic involved. Could we keep this patch and add
> CONFIG_SPL_INIT_MINIMAL to the check in common.h?

I did that, but it does not address the problem of mx31pdk and rockchip
and others.

> Removing all these various ifdefs from files is still correct, all this
> ifdef logic should *not* be around calls to puts/etc in-line in the
> code, all we need is to figure out the logic for the function's
> definitions in common.h, which can be cleaned up in a later patch.

Well, thinking about this harder.  What would be OK for now would be a
v2 (that you've pushed through travis-ci) that just removes the tests as
that should be OK.  But... I wonder if we don't have those tests due to
needing to #if out the prints due to the gcc bug[1] that's only fixed in
gcc 6.x and later.

[1]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54303

-- 
Tom

Attachment: signature.asc
Description: Digital signature

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to