components sequence and libc

Christian Helmuth christian.helmuth at genode-labs.com
Tue Jul 7 07:59:56 CEST 2020


Hi,

On Mon, Jul 06, 2020 at 11:37:09 CEST, Alexander Tormasov via users wrote:
> Seems that problem a bit deeper - I need to use complex application
> written on 4 languages (C, C++, golang and asm), each with own
> static objects constructors.

I take this as: You're trying an application on top of Genode and
minimalizing the issue is difficult.

> I want to find a real reason of problem with order of dynamic
> library initialisation and the way to explicitly control it.
> 
> any suggestions about how to force dynamic linker to take
> core-nova.o in my case as the first to be initialised?
> I am not that proficient in link scripting...

I don't understand why you need to link to core-nova.o given the info
above. This particular compilation unit is linked only to the core
component which you don't need to change when running applications on
top of Genode. You also do not need to change ld.lib.so. All your
adaption should be "on top". Maybe you can have look into [1] to find
out how multi-language environments could be implemented on top of
Genode. Also for your issue with initialization, [2] may be relevant.

[1] https://github.com/genodelabs/genode/tree/master/repos/libports/src/test/spark
[2] https://github.com/genodelabs/genode/blob/2c47cd5c946af1ec585d2758955f8b2c4e919aa0/repos/base/src/lib/ldso/README#L71-L82

Regards
-- 
Christian Helmuth
Genode Labs

https://www.genode-labs.com/ · https://genode.org/
https://twitter.com/GenodeLabs · /ˈdʒiː.nəʊd/

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth



More information about the users mailing list