Hi, all!
I've found one strange thing. May be someone here can help me.
If I try to build an l4Linux with no-SMP config, it results in a fail.
And here, I think, the reason:
In l4lx lib we have file l4lx_irq.cc (ports-foc/src/lib/l4lx/l4lx_irq.cc).
Here we have a function l4lx_irq_dev_set_affinity() that uses non-lib
(regular l4linux) function l4x_cpumask_copy(). This function declared in
arch/l4/kernel/main.c
In it's turn this function makes the following call:
>> cpumask_copy(data->affinity, dest);
as you can see, it uses an affinity member of irq_data struct.
And this member is under l4linux config control:
>> #ifdef CONFIG_SMP
>> cpumask_var_t affinity;
>> #endif
So, as a result, if l4linux config doesn't provide this option - build
fails.
We can't use the same l4linux config directive in a lib l4lx_irq.cc to
"turn off" this chain, because it is not available there.
I have to change from SMP version to SMP from time to time, so as a
solution I can wrap cpumask_copy(data->affinity, dest); in the same
directive, but I don't think it's a good solutions.
Have you any ideas?
Best regards,
Nikolay