[PATCH v2 07/14] log: Avoid including function names by default
Simon Glass
sjg at chromium.org
Sun Aug 11 16:50:14 CEST 2024
Hi Quentin,
On Tue, 6 Aug 2024 at 08:16, Quentin Schulz <quentin.schulz at cherry.de> wrote:
>
> Hi Simon,
>
> On 7/21/24 5:25 PM, Simon Glass wrote:
> > Unless function names are requested, the logging system should not
> > compile these into the code. Adjust the macros to handle this.
> >
> > This means that turning on function names at runtime won't work unless
> > CONFIG_LOGF_FUNC is enabled. We could perhaps split this into a
> > separate option if that is a problem.
> >
> > Enable CONFIG_LOGF_FUNC logging for sandbox since the tests expect the
> > function names to be included. Fix up the pinmux test which checks a
> > logging statement.
> >
>
> I now understand the statement in patches earlier in this series :)
>
> > Signed-off-by: Simon Glass <sjg at chromium.org>
> > ---
> >
> > Changes in v2:
> > - Update commit message to mention the runtime impact
> > - Leave assert() alone since it is only compiled in with LOG_DEBUG
> >
> > common/log_console.c | 4 ++--
> > configs/sandbox_defconfig | 1 +
> > include/log.h | 16 +++++++++++-----
> > test/cmd/pinmux.c | 8 +++++++-
> > test/log/log_test.c | 4 ++--
> > 5 files changed, 23 insertions(+), 10 deletions(-)
> >
> > diff --git a/common/log_console.c b/common/log_console.c
> > index c27101b8fe2..9376baad664 100644
> > --- a/common/log_console.c
> > +++ b/common/log_console.c
> > @@ -38,10 +38,10 @@ static int log_console_emit(struct log_device *ldev, struct log_rec *rec)
> > printf("%d-", rec->line);
> > if (fmt & BIT(LOGF_FUNC)) {
> > if (CONFIG_IS_ENABLED(USE_TINY_PRINTF)) {
> > - printf("%s()", rec->func);
> > + printf("%s()", rec->func ?: "?");
>
> What about setting _log_func to "?" if LOGF_FUNC isn't set?
That would require all call sites to pass a pointer to the string,
rather than just NULL. I suspect it would increase code size?
>
> > } else {
> > printf("%*s()", CONFIG_LOGF_FUNC_PAD,
> > - rec->func);
> > + rec->func ?: "?");
>
> I think you missed a similar change in common/log_syslog.c if I can
> trust my grep-fu?
Yes, thanks.
Regards,
Simon
More information about the U-Boot
mailing list