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 <s...@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?
} 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?
Cheers,
Quentin