seL4 / sel4-tutorials

Tutorials for working with seL4 and/or CAmkES.

Home Page:https://docs.sel4.systems/Tutorials

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Solution `hello-camkes-1` won't build with RPC

Jesse-Millwood opened this issue · comments

In the apps/hello-camkes-1/hello-camkes-1 it says

/* TODO 2: connections */
                /* hint 1: use seL4RPCCall as the connector (or you could use seL4RPC if you prefer)
                 * hint 2: look at
		 * https://github.com/seL4/camkes-tool/blob/2.1.0/docs/index.md#creating-an-application
                 */
                // connection seL4RPC hello_con(from client.hello, to echo.hello);
                connection seL4RPCCall hello_con(from client.hello, to echo.hello);

If the connection seL4RPCCall line is commented out and the one above it is uncommented the solution fails to build. The build got this far:

[apps/hello-camkes-1] building...
/home/jesse/camkes-Learning/camkes-solutions/tools/camkes/camkes.mk:126: /home/jesse/camkes-Learning/camkes-solutions/build/arm/imx31/hello-camkes-1/camkes-gen.mk: No such file or directory
 [GEN] camkes-gen.mk
 [HEADERS]
 [STAGE] autoconf.h
 [CP] echo.c
 [GEN] Echo.h
 [GEN] camkes.h
 [GEN] Echo.c
 [GEN] hello_seL4RPC.c
 [CC] echo.o
 [CC] Echo.o
 [CC] hello_seL4RPC.o
 [GEN] linker.lds
 [LD] echo.instance.bin
 [CP] client.c
 [GEN] Client.h
 [GEN] camkes.h
 [GEN] Client.c
 [GEN] hello_seL4RPC.c
 [CC] client.o
 [CC] Client.o
 [CC] hello_seL4RPC.o
In file included from /home/jesse/camkes-Learning/camkes-solutions/build/arm/imx31/hello-camkes-1/src/client/generated/hello_seL4RPC.c:12:0:
/home/jesse/camkes-Learning/camkes-solutions/stage/arm/imx31/include/camkes/timing.h:16:33: fatal error: sel4bench/sel4bench.h: No such file or directory
 #include <sel4bench/sel4bench.h>
                                 ^
compilation terminated.
/home/jesse/camkes-Learning/camkes-solutions/tools/camkes/camkes.mk:77: recipe for target '/home/jesse/camkes-Learning/camkes-solutions/build/arm/imx31/hello-camkes-1/src/client/generated/hello_seL4RPC.o' failed
make[1]: *** [/home/jesse/camkes-Learning/camkes-solutions/build/arm/imx31/hello-camkes-1/src/client/generated/hello_seL4RPC.o] Error 1
tools/common/project.mk:320: recipe for target 'hello-camkes-1' failed

I can't reproduce this issue, please reopen a new one if you can reproduce with the latest version of the tutorials.

I see this same behavior as of a checkout from yesterday (Aug 9, 2017). seL4RPCCall works, but seL4RPC does not, as the latter fails to include sel4bench.h.

I rearranged the #includes in the seL4RPC connector template which fixes this issue. I haven't yet updated the camkes-solutions.xml and camkes-tutorials.xml versions to point to the fixed version. But if you use camkes-solutions-master.xml and camkes-tutorials-master.xml it will use the tips of all of our libraries and should work.