X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=include%2Fust%2Fmarker.h;h=bbd9187a66ce4c043b5ab7fe83a38e73d49a067c;hb=55994a672106ec794f292d747206542067a27584;hp=0c32586a58b6721708208fda7f4d469866168c5e;hpb=9727555f30daf958f4817b28069ad36e871d65e8;p=ust.git diff --git a/include/ust/marker.h b/include/ust/marker.h index 0c32586..bbd9187 100644 --- a/include/ust/marker.h +++ b/include/ust/marker.h @@ -309,18 +309,20 @@ struct lib { struct list_head list; }; -extern int marker_register_lib(struct marker *markers_start, struct marker_addr *marker_addr_start, int markers_count); - -#define MARKER_LIB \ -extern struct marker __start___markers[] __attribute__((visibility("hidden"))); \ -extern struct marker __stop___markers[] __attribute__((visibility("hidden"))); \ -extern struct marker_addr __start___marker_addr[] __attribute__((visibility("hidden"))); \ -extern struct marker_addr __stop___marker_addr[] __attribute__((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)); \ -} +extern int marker_register_lib(struct marker *markers_start, + struct marker_addr *marker_addr_start, + int markers_count); + +#define MARKER_LIB \ + 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)); \ + } extern void marker_set_new_marker_cb(void (*cb)(struct marker *)); extern void init_markers(void);