components sequence and libc

Alexander Tormasov a.tormasov at innopolis.ru
Mon Jul 6 11:37:09 CEST 2020


Hello, Christian, and thank you for answer!

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.

Frankly speaking, seems that this bug was present even in 19.08/19.11 versions.
I hit in in the very beginning of my attempt to solve application link problem.
I found some solution which force proper order of initialisation (libc AFTER core initialisation).
It was kind of «tribe dance with drum» around: some particular order of libraries works, some - not.
I hit this first for seL4 kernel, and accidentally I found proper sequence.
later I moved to Nova kernel, and again I need to make kind of «MonteCarlo experiments» to find proper sequence in link command line.

Today I want to make more clear implementation based on 20.05 using defaults from genode and again start the same «dance» (I can’t reproduce it exactly as it was in my old test because it requires intensive patching of mk files - this is what I want to get rid off).
I don’t think that this is exactly 20.05 changes problem...

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...

Sincerely,
	Alexander

> 6 июля 2020 г., в 09:22, Christian Helmuth <christian.helmuth at genode-labs.com> написал(а):
> 
> Hello Alexander,
> 
> it seems your component startup misses to initialize all modules
> correctly. While I have no idea where this stems from I have two
> options to proceed. First, I suggest a closer look into the changes in
> [1] that cleans up shared library initialization. The alternative is
> to use "git bisect" (maybe starting with [1]) to find the offending
> change in Genode 20.05.
> 
> As you have your own linker command sampled with an earlier release it
> only makes sense to test with your tree except you are able to isolate
> the issue with a minimal patch and without Go.
> 
> [1] https://github.com/chelmuth/genode/commit/42fddf8390c0436a09cf6fae3391f9a26098e4de
> 
> 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
> 
> _______________________________________________
> Genode users mailing list
> users at lists.genode.org
> https://lists.genode.org/listinfo/users



More information about the users mailing list