Hi Noah,


Assuming that the issue is related to the new build scripts, have you checked that archive.o contains the other programs that you are trying to load?  Is archive.o being included in the call to add_executable?  Processes started by libsel4utils are expected to have the __vsyscall_ptr​ symbol defined. Do the processes that you are loading contain a __vsyscall_ptr​ symbol? Are you able to use objdump on the PRIMARY elf file to see what instruction is at address 0x4252ba​ that is causing the fault?


Kent


From: Devel <devel-bounces@sel4.systems> on behalf of Noah Kennedy <noah.kennedy@rockwellcollins.com>
Sent: Friday, August 17, 2018 2:01 AM
To: devel@sel4.systems
Subject: [seL4] Cap fault in send phase while spawning processes
 
Hi folks,

I'm currently porting over a project from the Kbuild/Kconfig build system to the new CMake based build system and am having some issues.

I'm trying trying to spawn additional processes (2+) and I am encountering an error when I attempt to call 'process_config_default_simple'. The message reads:

Caught cap fault in send phase at address 0x0
while trying to handle:
vm fault on data at address 0x0 with status 0x4
in thread 0xffffff801ffb5400 "PRIMARY" at address 0x4252ba

I loaded the executables which I am trying to spawn into the new processes into the cpio using a variation of the call
MakeCPIO(archive.o $<TARGET_FILE:SECONDARY>;$<TARGET_FILE:TERTIARY>;...)
where SECONDARY and TERTIARY are the executables which I am using later to spawn the new processes.

The source code in question worked previously when using Kbuild, so I'm wondering if I'm doing something wrong with the CMake.

Does anyone have any ideas? I've gone through the tutorials, but I'm still fairly new to seL4, so any help would be very much appreciated.