logging: add padding for RISC-V 64bits environment
This patch add padding in filter structure of log system.
In RISCV && 64BIT environment. Log system is facing alignment bug.
struct log_source_dynamic_data {
uint32_t filters;
};
static inline uint32_t *log_dynamic_filters_get(uint32_t source_id)
{
return &__log_dynamic_start[source_id].filters;
}
A sizeof(log_source_dynamic_data) = 4, address offset of
&__log_dynamic_start[] are:
- &__log_dynamic_start[0]: +0
- &__log_dynamic_start[1]: +4
- &__log_dynamic_start[2]: +8
But RISCV 64bit gcc/ld places each log_dynamic_log, log_dynamic_os
and log_dynamic_test per 8bytes alignment. So address offset of
log_dynamic_* are:
- &log_dynamic_log : +0
- &log_dynamic_os : +8
- &log_dynamic_test: +16
tests/subsys/logging/log_core cannot set correct log filters in
RISCV && 64BIT environment, so test is always going to fail.
Signed-off-by: Katsuhiro Suzuki <katsuhiro@katsuster.net>
1 file changed