As discussed in the mailing list a few days ago[1], i386 needed a few patches to get it to compile with the --enable-smp flag.
The patches take care of the simple compile and link-time errors that show up with the flag. I'm unsure about the CPU_Interrupt_frame change - all other architectures seem to use a struct containing several (most?) architecture registers; for eg. ARM has a hefty struct[2], which doesn't seem to ever be used. I only see Context_Control being used in the assembly[3], but I didn't see any use for interrupts (though the project is large and I may simply have missed it). Some architectures "typedef Context_Control CPU_Interrupt_frame", which is what I was going to do, but given that it'll never be used, it seemed pointless (and would also increase the memory consumption, due to Per_CPU_Control including CPU_Interrupt_frame for HAS_SMP). I'd appreciate all critique, even if it's only nitpicking or style related. Note: I have not tested the logic of SMP usage on the i386 with this patch series at all. My only aim was to get it to build completely. Thanks! [1] https://lists.rtems.org/pipermail/devel/2018-March/020375.html [2] https://git.rtems.org/rtems/tree/cpukit/score/cpu/arm/include/rtems/score/cpuimpl.h#n42 [3] https://git.rtems.org/rtems/tree/cpukit/score/cpu/arm/cpu_asm.S#n57 Amaan Cheval (3): i386/smp: Define unused CPU_Interrupt_frame to fix compiler error i386/smp: Have ld use incremental build for appstart.o i386/smp: Export _CPU_SMP_Prepare_start_multitasking as a function c/src/lib/libbsp/i386/pc386/Makefile.am | 2 +- c/src/lib/libbsp/i386/shared/smp/smp-imps.c | 5 +++++ cpukit/score/cpu/i386/include/rtems/score/cpu.h | 13 ++++++++++--- 3 files changed, 16 insertions(+), 4 deletions(-) -- 2.13.0 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel