Hello all, While building sculpt for virt riscv, I was getting undefined reference errors in app/gpt_write, Based on Norman's suggestions earlier, I updated the recipe for the jitterentopy API [1] that is used to assemble the content in depot/genodelabs/api/jitterentropy/<version>/ [1] genode/repos/libports/recipes/api/jitterentropy/content.mk
This helped me overcome the undefined reference errors, But now I am getting:
Library jitterentropy COMPILE jitterentropy-base-genode.o COMPILE jitterentropy-base.o genode/depot/genodelabs/api/jitterentropy/2023-02-24/src/lib/jitterentropy/spec/riscv/jitterentropy-base-genode-nstime.h: Assembler messages: genode/depot/genodelabs/api/jitterentropy/2023-02-24/src/lib/jitterentropy/spec/riscv/jitterentropy-base-genode-nstime.h:20: Error: unrecognized opcode `mrc p15,0,a5,c9,c13,0' make[7]: *** [genode/repos/base/mk/generic.mk:58: jitterentropy-base.o] Error 1 make[6]: *** [var/libdeps:112: jitterentropy.lib] Error 2 make[5]: *** [Makefile:336: gen_deps_and_build_targets] Error 2
This error seems be due the contents of the header file (That I had created):
repos/libports/src/lib/jitterentropy/spec/riscv/jitterentropy-base-genode-nstime.h
because jitterentropy was not enabled yet on riscv, I had to create this file myself. Contents of [2] that I had written:
#ifndef _JITTERENTROPY_RISCV_BASE_GENODE_NSTIME_H_ #define _JITTERENTROPY_RISCV_BASE_GENODE_NSTIME_H_ static inline void jent_get_nstime(__u64 *out) { uint32_t t; asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r"(t)); *out = t; } #endif
[2] *repos/libports/src/lib/**jitterentropy/spec/riscv/* jitterentropy-base-genode*-**nstime.h *
I tried to build it by looking at the header files corresponding to other architectures. I am not aware of opcode for riscv. Please guide me to write the correct code. what should be written in this header file for riscv.
Thanks and regards, Pranab Kumar Rout