Hi Thad, 


In the current build system used by the tutorials you need to `make clean` if you are switching architectures. 


Our upcoming build system addresses this problem, but we're still applying the finishing touches.


Cheers,

Anna. ​



From: Devel <devel-bounces@sel4.systems> on behalf of Thad Seeberger <thad.seeberger@gmail.com>
Sent: Tuesday, 3 April 2018 5:44 AM
To: devel
Subject: [seL4] camkes tutorial build compilation error
 
Good day, I am working thru the examples.
make arm_hello-camkes-0_defconfig; make  -- compiles and run on qemu

The I tried x86 architecture
make ia32_hello-camkes-0_defconfig; make -- build error

I cant find declarations for any of the listed errors. I'm guessing these should be dynamically defined before the build based on the architecture. 

Please let me know what I'm doing wrong.

thx


 [CC] kernel_final.s
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/32/kernel/vspace_32paging.c: In function ‘decodeIA32PageDirectoryInvocation’:
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/32/kernel/vspace_32paging.c:263:10: error: ‘X86PageDirectoryGetStatusBits’ undeclared (first use in this function); did you mean ‘performIA32PageDirectoryGetStatusBits’?
     case X86PageDirectoryGetStatusBits: {
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          performIA32PageDirectoryGetStatusBits
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/32/kernel/vspace_32paging.c:263:10: note: each undeclared identifier is reported only once for each function it appears in
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/kernel/vspace.c: In function ‘decodeX86FrameInvocation’:
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/kernel/vspace.c:854:10: error: ‘X86PageMap’ undeclared (first use in this function); did you mean ‘ARMPageMap’?
     case X86PageMap: { /* Map */
          ^~~~~~~~~~
          ARMPageMap
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/kernel/vspace.c:1012:10: error: ‘X86PageRemap’ undeclared (first use in this function); did you mean ‘X86PageMap’?
     case X86PageRemap: { /* Remap */
          ^~~~~~~~~~~~
          X86PageMap
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/kernel/vspace.c:1143:10: error: ‘X86PageUnmap’ undeclared (first use in this function); did you mean ‘X86PageRemap’?
     case X86PageUnmap: { /* Unmap */
          ^~~~~~~~~~~~
          X86PageRemap
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/kernel/vspace.c:1166:10: error: ‘X86PageMapIO’ undeclared (first use in this function); did you mean ‘X86PageMap’?
     case X86PageMapIO: { /* MapIO */
          ^~~~~~~~~~~~
          X86PageMap
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/kernel/vspace.c:1175:10: error: ‘X86PageGetAddress’ undeclared (first use in this function); did you mean ‘ARMPageGetAddress’?
     case X86PageGetAddress: {
          ^~~~~~~~~~~~~~~~~
          ARMPageGetAddress
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/kernel/vspace.c: In function ‘decodeX86PageTableInvocation’:
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/kernel/vspace.c:1236:21: error: ‘X86PageTableUnmap’ undeclared (first use in this function); did you mean ‘ARMPageTableUnmap’?
     if (invLabel == X86PageTableUnmap) {
                     ^~~~~~~~~~~~~~~~~
                     ARMPageTableUnmap
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/kernel/vspace.c:1246:21: error: ‘X86PageTableMap’ undeclared (first use in this function); did you mean ‘X86PageTableUnmap’?
     if (invLabel != X86PageTableMap ) {
                     ^~~~~~~~~~~~~~~
                     X86PageTableUnmap
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/kernel/vspace.c: In function ‘decodeX86MMUInvocation’:
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/kernel/vspace.c:1365:25: error: ‘X86ASIDControlMakePool’ undeclared (first use in this function); did you mean ‘ARMASIDControlMakePool’?
         if (invLabel != X86ASIDControlMakePool) {
                         ^~~~~~~~~~~~~~~~~~~~~~
                         ARMASIDControlMakePool
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/kernel/vspace.c:1434:25: error: ‘X86ASIDPoolAssign’ undeclared (first use in this function); did you mean ‘ARMASIDPoolAssign’?
         if (invLabel != X86ASIDPoolAssign) {
                         ^~~~~~~~~~~~~~~~~
                         ARMASIDPoolAssign
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/object/interrupt.c: In function ‘Arch_decodeIRQControlInvocation’:
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/object/interrupt.c:122:10: error: ‘X86IRQIssueIRQHandlerIOAPIC’ undeclared (first use in this function); did you mean ‘invokeIssueIRQHandlerIOAPIC’?
     case X86IRQIssueIRQHandlerIOAPIC: {
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
          invokeIssueIRQHandlerIOAPIC
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/object/interrupt.c:144:10: error: ‘X86IRQIssueIRQHandlerMSI’ undeclared (first use in this function); did you mean ‘X86IRQIssueIRQHandlerIOAPIC’?
     case X86IRQIssueIRQHandlerMSI: {
          ^~~~~~~~~~~~~~~~~~~~~~~~
          X86IRQIssueIRQHandlerIOAPIC
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/object/ioport.c: In function ‘decodeX86PortInvocation’:
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/object/ioport.c:62:21: error: ‘X86IOPortOut8’ undeclared (first use in this function)
     if (invLabel == X86IOPortOut8 || invLabel == X86IOPortOut16 || invLabel == X86IOPortOut32) {
                     ^~~~~~~~~~~~~
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/object/ioport.c:62:50: error: ‘X86IOPortOut16’ undeclared (first use in this function); did you mean ‘X86IOPortOut8’?
     if (invLabel == X86IOPortOut8 || invLabel == X86IOPortOut16 || invLabel == X86IOPortOut32) {
                                                  ^~~~~~~~~~~~~~
                                                  X86IOPortOut8
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/object/ioport.c:62:80: error: ‘X86IOPortOut32’ undeclared (first use in this function); did you mean ‘X86IOPortOut16’?
     if (invLabel == X86IOPortOut8 || invLabel == X86IOPortOut16 || invLabel == X86IOPortOut32) {
                                                                                ^~~~~~~~~~~~~~
                                                                                X86IOPortOut16
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/object/ioport.c:75:10: error: ‘X86IOPortIn8’ undeclared (first use in this function); did you mean ‘X86IOPortOut8’?
     case X86IOPortIn8: { /* inport 8 bits */
          ^~~~~~~~~~~~
          X86IOPortOut8
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/object/ioport.c:89:10: error: ‘X86IOPortIn16’ undeclared (first use in this function); did you mean ‘X86IOPortIn8’?
     case X86IOPortIn16: { /* inport 16 bits */
          ^~~~~~~~~~~~~
          X86IOPortIn8
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/object/ioport.c:103:10: error: ‘X86IOPortIn32’ undeclared (first use in this function); did you mean ‘X86IOPortIn16’?
     case X86IOPortIn32: { /* inport 32 bits */
          ^~~~~~~~~~~~~
          X86IOPortIn16
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/object/iospace.c: In function ‘decodeX86IOPTInvocation’:
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/object/iospace.c:195:21: error: ‘X86IOPageTableUnmap’ undeclared (first use in this function); did you mean ‘ARMPageTableUnmap’?
     if (invLabel == X86IOPageTableUnmap) {
                     ^~~~~~~~~~~~~~~~~~~
                     ARMPageTableUnmap
/home/maddthad/camkes-tutorials-manifest/kernel/src/arch/x86/object/iospace.c:201:21: error: ‘X86IOPageTableMap’ undeclared (first use in this function); did you mean ‘X86IOPageTableUnmap’?
     if (invLabel != X86IOPageTableMap ) {
                     ^~~~~~~~~~~~~~~~~
                     X86IOPageTableUnmap
make[1]: *** [kernel_final.s] Error 1
make: *** [kernel_elf] Error 2