#3331 closed defect (fixed)

i386 targets don't compile with --enable-smp

Reported by: Amaan Cheval Owned by: Amaan Cheval <amaan.cheval@…>
Priority: normal Milestone:
Component: arch/i386 Version:
Severity: normal Keywords: smp
Cc: Blocked By:
Blocking:

Description

Build error:

/home/amaan/repos/rtems/kernel/cpukit/include/rtems/score/percpu.h:384:23: error: variable or field 'Interrupt_frame' declared void
   CPU_Interrupt_frame Interrupt_frame;
                       ^~~~~~~~~~~~~~~
/home/amaan/repos/rtems/kernel/cpukit/include/rtems/score/percpu.h:520:8: error: size of array 'unused_space_for_cache_line_alignment' is too large
   char unused_space_for_cache_line_alignment
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Makefile:764: recipe for target 'ckinit.o' failed

Besides these compile and link-time issues, the i386 does not support SMP fully, but as a first step, we should at least have it build.

Possibly related to #2623.

Change History (2)

comment:1 Changed on Mar 16, 2018 at 4:02:17 PM by Amaan Cheval <amaan.cheval@…>

Owner: set to Amaan Cheval <amaan.cheval@…>
Resolution: fixed
Status: newclosed

In efa0039e/rtems:

i386/smp: Export _CPU_SMP_Prepare_start_multitasking as a function

When it's a macro, a function declaration causes a compiler error due to the
macro being expanded.

Partial log showing error:
https://gist.github.com/AmaanC/ab3521141479aa6f61ea25f5d74ebb4d

Closes #3331

comment:2 Changed on Mar 17, 2018 at 6:29:50 AM by Amaan Cheval

Closing this issue involved 3 commits:

https://devel.rtems.org/changeset/e9fb313/rtems
https://devel.rtems.org/changeset/51614c0/rtems
https://devel.rtems.org/changeset/efa0039/rtems

The git-hook only posted the last to this ticket - perhaps because the commit message said "updates" instead of "update"?

Note: See TracTickets for help on using tickets.