Hi All, I'm trying to use xenomai on linux 5.4. I previously used xenomai 3.0 on linux 4.9 and xenomai 3.1 on linux 4.19 and both were fine. However when I use xenomai 3.2.1 on linux 5.4 there are errors in compile. One of the errors says expected expression before ')' token (__flags) = hard_preempt_disable(); for the macro below in fpsimd.c: #define get_cpu_fpsimd_context(__flags) \ do { \ (__flags) = hard_preempt_disable(); \ __get_cpu_fpsimd_context(); \ } while (0)
hard_preempt_disable is also a macro defined in preempt.h: #define hard_preempt_disable() \ ({ \ unsigned long __flags__; \ __flags__ = hard_local_irq_save(); \ if (__ipipe_root_p) \ preempt_disable(); \ __flags__; \ }) It is clear that hard_preempt_disable() should be a function-like macro but is actually not. It seems to me that there are inconsistencies in the ipipe patch I used. I used ipipe-core-5.4.72-arm64-0.patch. Anyone has a suggestion on I can I resolve this issue? Best Regards, Yunjie