seL4_Fault_t and friends seems to be missing in user libsel4
Hello, if I compile and link seL4 5.2.0 ARCH=x86 PLAT=pc99 SEL4_ARCH=x86_64 make and I finally try to use the generated syscall/libsel4 headers, the compiler complains about missing seL4_Fault types and functions in libsel4/sel4_arch_include/x86_64/sel4/sel4_arch/faults.h like seL4_Fault_t seL4_Fault_tag seL4_Fault_VMFault_new and a lot more. These structs and functions seems to be generated only for the kernel side, e.g. in kernel_final.c they show up, but there are no traces of them on the user level side. Do I just miss a configuration option ? Thanks, -- Alexander Boettcher Genode Labs http://www.genode-labs.com - http://www.genode.org Genode Labs GmbH - Amtsgericht Dresden - HRB 28424 - Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Hi Alexander, They get generated as part of the compilation of the libsel4 library, which is separate to the kernel compilation. See the libsel4 Makefile (https://github.com/seL4/seL4/blob/master/libsel4/Makefile) Adrian On Wed 14-Jun-2017 1:32 AM, Alexander Boettcher wrote: Hello, if I compile and link seL4 5.2.0 ARCH=x86 PLAT=pc99 SEL4_ARCH=x86_64 make and I finally try to use the generated syscall/libsel4 headers, the compiler complains about missing seL4_Fault types and functions in libsel4/sel4_arch_include/x86_64/sel4/sel4_arch/faults.h like seL4_Fault_t seL4_Fault_tag seL4_Fault_VMFault_new and a lot more. These structs and functions seems to be generated only for the kernel side, e.g. in kernel_final.c they show up, but there are no traces of them on the user level side. Do I just miss a configuration option ? Thanks,
Hi Adrian, On 14.06.2017 04:11, Adrian.Danis@data61.csiro.au wrote:
They get generated as part of the compilation of the libsel4 library, which is separate to the kernel compilation. See the libsel4 Makefile (https://github.com/seL4/seL4/blob/master/libsel4/Makefile)
libsel4/Makefile is not free-standing (missing common.mk in the seL4 kernel git), so I was not able to run it actually. I found the file in the camkes repository and got now an idea what to adapt on our side. Finally, I got my missing seL4_Fault* friends generated. In general, would it be possible to ship the already generated syscall headers instead of generating it ? Maybe, at least for a specific seL4 release it would be helpful. The generation infrastructure with all the python magic is not easy to grasp (and to maintain for a external project). Thanks, Alex.
-- Alexander Boettcher Genode Labs http://www.genode-labs.com - http://www.genode.org Genode Labs GmbH - Amtsgericht Dresden - HRB 28424 - Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Hi Alex, Yes libsel4 assumes it is being built as part of our larger common project build environment (https://github.com/seL4/seL4_tools/tree/master/common-tool). Again the build system improvements that I said were coming should also solve this, so if you've managed to find a work around for now I would prefer not to spend time patching what is definitely a broken system. Adrian On Wed 14-Jun-2017 7:56 PM, Alexander Boettcher wrote: Hi Adrian, On 14.06.2017 04:11, Adrian.Danis@data61.csiro.aumailto:Adrian.Danis@data61.csiro.au wrote: They get generated as part of the compilation of the libsel4 library, which is separate to the kernel compilation. See the libsel4 Makefile (https://github.com/seL4/seL4/blob/master/libsel4/Makefile) libsel4/Makefile is not free-standing (missing common.mk in the seL4 kernel git), so I was not able to run it actually. I found the file in the camkes repository and got now an idea what to adapt on our side. Finally, I got my missing seL4_Fault* friends generated. In general, would it be possible to ship the already generated syscall headers instead of generating it ? Maybe, at least for a specific seL4 release it would be helpful. The generation infrastructure with all the python magic is not easy to grasp (and to maintain for a external project). Thanks, Alex. Adrian On Wed 14-Jun-2017 1:32 AM, Alexander Boettcher wrote: Hello, if I compile and link seL4 5.2.0 ARCH=x86 PLAT=pc99 SEL4_ARCH=x86_64 make and I finally try to use the generated syscall/libsel4 headers, the compiler complains about missing seL4_Fault types and functions in libsel4/sel4_arch_include/x86_64/sel4/sel4_arch/faults.h like seL4_Fault_t seL4_Fault_tag seL4_Fault_VMFault_new and a lot more. These structs and functions seems to be generated only for the kernel side, e.g. in kernel_final.c they show up, but there are no traces of them on the user level side. Do I just miss a configuration option ? Thanks,
Hi Adrian, On 15.06.2017 02:46, Adrian.Danis@data61.csiro.au wrote:
Yes libsel4 assumes it is being built as part of our larger common project build environment (https://github.com/seL4/seL4_tools/tree/master/common-tool).
Again the build system improvements that I said were coming should also solve this, so if you've managed to find a work around for now I would prefer not to spend time patching what is definitely a broken system.
we are fine now. In case you need some (external) feedback/testing if you change things in that regard, just send us a note. Alex. -- Alexander Boettcher Genode Labs http://www.genode-labs.com - http://www.genode.org Genode Labs GmbH - Amtsgericht Dresden - HRB 28424 - Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
participants (2)
-
Adrian.Danis@data61.csiro.au
-
Alexander Boettcher