Hi Christian, Thanks for the explanation and the links. I did read the hello world tutorial before trying this out, otherwise, I wouldn't have gotten this far :).
Best, Sid
On Thu, Feb 3, 2022 at 11:31 PM Christian Helmuth < christian.helmuth@genode-labs.com> wrote:
[CAUTION: Non-UBC Email]
Hello Sid,
you chose most difficult place to play around with RPC functions - the base API. I'd recommend to follow the hello-wrold tutorial [1] for your initial steps.
Regarding your remaining question...
On Fri, Feb 04, 2022 at 05:14:30 CET, Sid Agrawal wrote:
I still have the questions of whether changing the ld file is expected?
On Thu, Feb 3, 2022 at 6:48 PM Sid Agrawal siagraw@cs.ubc.ca wrote:
Error: size of '_ZTVN6Genode17Region_map_clientE' symbol violates ld
ABI
(72 bytes in ABI, 80 bytes in library) make[3]: *** [/home/siagraw/genode/repos/base/mk/lib.mk:244: ld-sel4.lib.checked] Error 255 make[2]: *** [var/libdeps:200: ld-sel4.lib] Error 2
I am least sure of this change. I am unsure if this is a file I should even be modifying for something as simple as adding a new RPC method.
But I
did change it to get past the build error.
In Genode, we established the notion of an explicit ABI to clearly separate (platform-specific) library implementations from the clients using the library API. This supports building components for CPU architectures (e.g., x86_64) that are effectively kernel-agnostic and can be run on NOVA, seL4, and Fiasco.OC without recompilation [2].
You added an additional virtual function to Genode::Region_map, which I'd expect to add another entry to the vtable. Running
echo '_ZTVN6Genode17Region_map_clientE' | c++filt -t
vtable for Genode::Region_map_client
reveals that our ABI checker is nagging about insufficient size of the vtable specified in the symbols file for ld.lib.so, which comprises the Genode base ABI implementation (incl. Genode::Region_map and Genode::Region_map_client). For this reason, you had to adapt the symbols spec to fit the vtable, but had not to add another global function.
[1] https://genode.org/documentation/genode-foundations/21.05/getting_started/He... [2] https://genode.org/documentation/release-notes/17.02#Genode_Application_Bina... https://youtu.be/fMahg-01Qbw
Regards
Christian Helmuth Genode Labs
https://www.genode-labs.com/ · https://genode.org/ https://twitter.com/GenodeLabs · https://genodians.org/
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users