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/spa... [2] https://github.com/genodelabs/genode/blob/2c47cd5c946af1ec585d2758955f8b2c4e...
Regards