Hello all, There's been some discussion on the net list about a problem stemming from a situation where initialize_before wasn't called when a library was loaded. I figured it was worth starting a thread in the main list about it since it seems to be something that we should (all) discuss. In particular it seems that we can't generally rely on initialize_before. It's not particular portable. (read: at all) I thought maybe we could use these macros from kernel/image.h: #define B_INIT_BEFORE_FUNCTION_NAME "initialize_before" #define B_INIT_AFTER_FUNCTION_NAME "initialize_after" #define B_TERM_BEFORE_FUNCTION_NAME "terminate_before" #define B_TERM_AFTER_FUNCTION_NAME "terminate_after" But you can't very well write anything like this: void B_INIT_BEFORE_FUNCTION_NAME (void) { .... } Because the name is quoted. I tried looking a bit on the net about this, and in particular I looked for _init and _fini. I found an interesting message: http://mail.gnu.org/archive/html/libtool/2001-03/msg00017.html ... which recommended the use of __attribute__((constructor)) and __attribute__((destructor)) I did not test these on our gcc. I think we should come up with one strategy for doing this and hopefully it will be one that we can reasonably port to other architectures, eh? Recommendations? Maybe even just a set of macros that we can use to capture the magic names? (in a format we can use to define the functions) Andrew