But what if I have a C++ dynamic library? Does it call constructors for global variables before _start function in the main program starts?
_start takes care of calling the global initializers and register the atexit callback for the finalizers.
(In practice _start calls __libc_start_main, a libc function that handles all of that).
_start takes care of calling the global initializers and register the atexit callback for the finalizers.
(In practice _start calls __libc_start_main, a libc function that handles all of that).