-extern struct marker __start___markers[] __attribute__((visibility("hidden"))); \
-extern struct marker __stop___markers[] __attribute__((visibility("hidden"))); \
- \
-static void __attribute__((constructor)) __markers__init(void) \
-{ \
- DBG("next registration in "__FILE__"\n");\
- marker_register_lib(__start___markers, (((long)__stop___markers)-((long)__start___markers))/sizeof(struct marker));\
-}
+ extern struct marker __start___markers[] __attribute__((weak, visibility("hidden"))); \
+ extern struct marker __stop___markers[] __attribute__((weak, visibility("hidden"))); \
+ extern struct marker_addr __start___marker_addr[] __attribute__((weak, visibility("hidden"))); \
+ extern struct marker_addr __stop___marker_addr[] __attribute__((weak, visibility("hidden"))); \
+ \
+ static void __attribute__((constructor)) __markers__init(void) \
+ { \
+ marker_register_lib(__start___markers, __start___marker_addr, (((long)__stop___markers)-((long)__start___markers))/sizeof(struct marker)); \
+ }