On Mon, Nov 10, 2014 at 5:25 PM, Martin Husemann <mar...@duskware.de> wrote: > On Sun, Nov 09, 2014 at 05:46:21PM -0800, Matt Thomas wrote: >> No more link sets please. > > I agree.
I agreed one week ago. But now I have MI linker script that merges "link_set_*" into .rodata, I can live with link-set. :) >> Can't we use __attributes__((__constructor__)) >> and __attributes__((destructor)); > > How about splitting the $subsystem_init() function from the function > marked as __constructor__: let the constructor function register the > $subsystem_init() function as a callback passing either a simple > integral priority or (even better, but not sure if this is > overengeneering) some representation of the dependencies - then > (topological) sort all registered callbacks and call them one after the > other. __attribute__((constructor(n))), where n being priority, can do ordering (hint from pooka@). Question is, how to provide __CTOR_LIST__, __CTOR_LIST_END__ equivalent symbols. (It is super easy if MI linker script is there. :)