[PATCH 0/3] Allow i386 to compile with --enable-smp

Amaan Cheval amaan.cheval at gmail.com
Sat Mar 10 14:11:36 UTC 2018

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

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.


[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(-)


More information about the devel mailing list