[riot-devel] RIOT and static initializers in C++

Ludwig Ortmann ludwig.ortmann at fu-berlin.de
Mon Sep 22 20:23:14 CEST 2014


Hi pekka,



On 22. September 2014 19:56:04 MESZ, Pekka Nikander <pekka.nikander at iki.fi> wrote:
>>>>>  __attribute__((constructor)) static void startup(int argc, char
>**argv)
>
>This is probably a stupid question, but why in the first place are you
>declaring startup as a constructor? As there are no guarantees (without
>priorities) in which order the constructors are called, that is
>somewhat unsafe.

Because it worked when I first tried it, because I did not know too much about the initialization process, and:

>But then, of course, you have to take care of explicitly initialising
>anything else that your native runtimes require, that differs slightly
>between Linux, FreeBSD and OSX, and requires some work.

.. this, after I dug a bit deeper ;)

And finally, because this assumption does not hold:

>If you want to take care of all initialisations yourself, 

Really, all this is just to allow "main" as the user application name, so I didn't want to add unnecessary complexity.

Cheers, Ludwig


More information about the devel mailing list