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