Date: Fri, 23 Nov 2018 12:34:17 +0100 From: Gernot Reisinger <Gernot.Reisinger@...ino.at> To: musl@...ts.openwall.com, dalias@...c.org Subject: Re: Question regarding dynamic loader Thanks a lot for this exhaustive explanation - helps a lot to understand the different initialization stages. I agree, one should not assume a specific execution sequence of these initialization routines. Am Mi., 21. Nov. 2018 um 17:41 Uhr schrieb Szabolcs Nagy <nsz@...t70.net>: > * Gernot Reisinger <Gernot.Reisinger@...ino.at> [2018-11-21 16:52:53 > +0100]: > > I did no extensive research how glibc executes these constructor calls. > At > > least the call stack indicates that they are partially executed in > dynamic > > linker context - _dl_start_user () in /lib64/ld-linux-x86-64.so > > calling _dl_init. > > the dynamic linker runs the > - preinit_array functions of the main executable, > - the init_array and DT_INIT functions of shared libraries. > > then via __libc_start_main the _init and init_array functions > of the main executable are run by libc_nonshared.a code that > is linked into the executable. > > so part of the initialization (main exe) does require entry > via __libc_start_main (but this is not an issue for go). > > however this design can change when glibc introduces a new > symbol version for __libc_start_main, so i don't see how > go can rely on any of this. > > Content of type "text/html" skipped
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.