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
Show replies by date
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(a)sel4.systems> on behalf of Thad Seeberger
<thad.seeberger(a)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