<p><br>
On Oct 19, 2013 9:09 PM, "Chris Johns" <<a href="mailto:chrisj@rtems.org">chrisj@rtems.org</a>> wrote:<br>
><br>
> On 20/10/13 11:30 AM, Gedare Bloom wrote:<br>
>><br>
>> Hi,<br>
>> I'm not a C++ expert (You might get better advice from the GCC<br>
>> community.) but I'm pretty sure initializing static constructors is<br>
>> done by the compiler, so the relevant code would be found in gcc<br>
>> located with either .init/.fini, .init_array/.fini_array or<br>
>> .ctors/.dtors. RTEMS just puts them in the right place via linkcmds<br>
>> file. I guess the C++ runtime startup is not honoring some assumptions<br>
>> made about the static constructors.<br>
>><br>
><br>
> This is a bug in RTEMS. The cores need to wait until the constructors have run. I have not had time to take a closer look because Joel keeps bringing me beer ... which I do not mind.<br>
><br>
Have a pint for me. I assumed the c/c++ runtime initialization ran serially with other bootstrap/initialization on the bootup core. Guess I have not looked closely enough! I would think rtems initialization should "finish" before the application starts? Otherwise lots of badness could happen...<br>

-Gedare</p>
<p>> Chris<br>
><br>
><br>
>> -Gedare<br>
>><br>
>><br>
>><br>
>><br>
>><br>
>><br>
>> On Fri, Oct 18, 2013 at 2:07 PM, Stephen Tether<br>
>> <<a href="mailto:tether@slac.stanford.edu">tether@slac.stanford.edu</a>> wrote:<br>
>>><br>
>>> Hi, all. At SLAC we've just started to experiment with the ML1 SMP version<br>
>>> of RTEMS 4.11.0.1 on the Zynq. We're having a problem with some statically<br>
>>> allocated C++ objects: the constructors are not being called before the<br>
>>> first calls to the objects' member functions, which eventually results in a<br>
>>> data abort due to a null pointer. Sometimes the constructors *are* called<br>
>>> first, sometimes they are called too late and sometimes they don't get<br>
>>> called at all before the abort. How are static constructors handled in this<br>
>>> version of RTEMS and which source files do I need to look at?<br>
>>><br>
>>> - Steve Tether<br>
>>> _______________________________________________<br>
>>> rtems-devel mailing list<br>
>>> <a href="mailto:rtems-devel@rtems.org">rtems-devel@rtems.org</a><br>
>>> <a href="http://www.rtems.org/mailman/listinfo/rtems-devel">http://www.rtems.org/mailman/listinfo/rtems-devel</a><br>
>><br>
>> _______________________________________________<br>
>> rtems-devel mailing list<br>
>> <a href="mailto:rtems-devel@rtems.org">rtems-devel@rtems.org</a><br>
>> <a href="http://www.rtems.org/mailman/listinfo/rtems-devel">http://www.rtems.org/mailman/listinfo/rtems-devel</a><br>
>><br>
</p>