when will __attribute__((constructor)) NOT called

Szabolcs Nagy szabolcs.nagy@arm.com
Wed Sep 6 13:03:00 GMT 2017


On 06/09/17 13:46, Adhemerval Zanella wrote:
> '.ctor' section was the 'old' way, afaik GCC will now create and emit
> entries on 'init_array' section, as for C++ initialization code.
> 
> It won't run either by a bug on the loader or if it does not support
> it (not the case on glibc).
> 

or if an earlier ctor does not return (e.g. _exit).

or if the dso is already loaded, then a new dlopen wont make the ctor run again.

> On 06/09/2017 07:37, Yubin Ruan wrote:
>> I saw somewhere that "__attribute__((constructor)) will make GCC
>> create a '.ctor' section in the generated .so file, which is run when
>> a shared library is loaded, typically at program startup".
>>
>> A question:
>>   Are there any case where "__attribute__((constructor))" will not be run?
>>
>> Thanks,
>> Yubin
>>



More information about the Libc-help mailing list