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.