Hi all,
I'm trying to port camkes-arm-vm to a different platform, that supports
gic-v3
In the process, I hit a compilation error:
Building C object kernel/CMakeFiles/kernel_all_pp_...rapper_temp_lib.dir/
kernel_all_pp_prune_wrapper_temp.c.obj
FAILED: kernel/kernel_all_pp_prune_wrapper_temp.c
In file included from /home/chris/camkes-tqma8xqp-
vm/kernel/src/arch/arm/object/vcpu.c:15:
/home/chris/camkes-tqma8xqp-vm/kernel/include/arch/arm/arch/machine/gic_v2.h:23:
error: "IRQ_MASK" redefined [-Werror]
23 #define IRQ_MASK MASK(10u)
In file included from kernel/gen_headers/plat/platform_gen.h:23,
from /home/chris/camkes-tqma8xqp-vm/kernel/include/plat/
default/plat/machine.h:8,
from /home/chris/camkes-tqma8xqp-
vm/kernel/include/machine.h:9,
from /home/chris/camkes-tqma8xqp-
vm/kernel/include/api/syscall.h:10,
from /home/chris/camkes-tqma8xqp-
vm/kernel/src/api/faults.c:10:
/home/chris/camkes-tqma8xqp-vm/kernel/include/arch/arm/arch/machine/gic_v3.h:30:
note: this is the location of the previous definition
30 #define IRQ_MASK MASK(16u)
which is an indicative that both gic_v3.h & gic_v2.h headers have been
included, which is an error because said headers are not compatible:
kernel/include/arch/arm/arch/machine/gic_v3.h:#define IRQ_MASK MASK(16u)
kernel/include/arch/arm/arch/machine/gic_v2.h:#define IRQ_MASK MASK(10u)
So my question is: how can I configure the build to avoid such a conflict?
I can grepp the relevant configuration option in CMakeCache.txt:
build_tqma8/CMakeCache.txt:CONFIGURE_INTERRUPT_CONTROLLER:INTERNAL=arch/machine/gic_v3.h
but cannot see it in ccmake gui because it's "INTERNAL"
What is the solution?
- replace this option somehow to use gic_v2 and have my HW use gic v.2, or
- change compilation options to use gic_v3 everywhere
Thanks for any help,
Chris.