soc: intel_s1000: fix XCC build error when CONFIG_LOG_MINIMAL=y

During LOG_*() macro expansions, XCC expands everything even though
IS_ENABLED() is used. This resulting in various log*() functions
(e.g. log_0(), log_1(), etc.) being required for linking. However,
when CONFIG_LOG_MINIMAL=y, those functions are not compiled from
the logging subsystem. Therefore, to get past the linking error,
dummy versions are being provided.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This commit is contained in:
Daniel Leung 2019-12-16 09:35:03 -08:00 committed by Johan Hedberg
commit 24b9542eba
2 changed files with 105 additions and 0 deletions

View file

@ -2,3 +2,4 @@
zephyr_library_sources_ifdef(CONFIG_CPLUSPLUS cpp_fixes.c)
zephyr_library_sources_ifdef(CONFIG_NEWLIB_LIBC newlib_fixes.c)
zephyr_library_sources_ifdef(CONFIG_LOG_MINIMAL log_minimal_fixes.c)

View file

@ -0,0 +1,104 @@
/*
* Copyright (c) 2019, Intel Corporation.
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <logging/log_msg.h>
#include <logging/log_instance.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdarg.h>
#include <syscall.h>
#include <sys/util.h>
#include <sys/printk.h>
void log_0(const char *str, struct log_msg_ids src_level)
{
}
void log_1(const char *str,
log_arg_t arg1,
struct log_msg_ids src_level)
{
}
void log_2(const char *str,
log_arg_t arg1,
log_arg_t arg2,
struct log_msg_ids src_level)
{
}
void log_3(const char *str,
log_arg_t arg1,
log_arg_t arg2,
log_arg_t arg3,
struct log_msg_ids src_level)
{
}
void log_n(const char *str,
log_arg_t *args,
u32_t narg,
struct log_msg_ids src_level)
{
}
void log_hexdump(const char *str,
const u8_t *data,
u32_t length,
struct log_msg_ids src_level)
{
}
void log_string_sync(struct log_msg_ids src_level, const char *fmt, ...)
{
}
void log_hexdump_sync(struct log_msg_ids src_level, const char *metadata,
const u8_t *data, u32_t len)
{
}
void log_generic(struct log_msg_ids src_level, const char *fmt, va_list ap)
{
}
void log_generic_from_user(struct log_msg_ids src_level,
const char *fmt, va_list ap)
{
}
bool log_is_strdup(const void *buf)
{
return false;
}
void log_free(void *buf)
{
}
u32_t log_get_strdup_pool_utilization(void)
{
return 0;
}
u32_t log_get_strdup_longest_string(void)
{
return 0;
}
void log_dropped(void)
{
}
void __printf_like(2, 3) log_from_user(struct log_msg_ids src_level,
const char *fmt, ...)
{
}
void log_hexdump_from_user(struct log_msg_ids src_level, const char *metadata,
const u8_t *data, u32_t len)
{
}