As discussed in the mailing list a few days ago, 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, which
doesn't seem to ever be used. I only see Context_Control being used in
the assembly, 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
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.
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(-)
devel mailing list