Build errors while adding a new func to Region Map

Sid Agrawal siagraw at cs.ubc.ca
Fri Feb 4 20:00:14 CET 2022


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 at 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 at 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/Hello_world.html
> [2]
> https://genode.org/documentation/release-notes/17.02#Genode_Application_Binary_Interface
>     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 at lists.genode.org
> https://lists.genode.org/listinfo/users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.genode.org/pipermail/users/attachments/20220204/ea73ecab/attachment.htm>


More information about the users mailing list