CodeSourcer's VxWorks toolchains support the following extension to
__attribute__((constructor)):
void f __attribute__((constructor (N)));
The number provided is a constructor priority. These are treated
exactly like the arguments to the C++ init_priority attribute, which
allows control over initialization priority order for namespace-scope
C++ objects. The implementation is the same, too; all the C++
init_priority attribute does is create a magic function which is then
given the appropriate priority. So, what this does is expose the
functionality used for C++ for direct use from C.
The attribute syntax above works in both C and C++, and is
backwards-compatible; without the "(N)" you just get the default
initialization priority, as you do at present.
I plan to merge this functionality to the GCC mainline. Does anyone
object to this feature, in principle?
Thanks,
--
Mark Mitchell
CodeSourcery
[EMAIL PROTECTED]
(650) 331-3385 x713