From: Arnaud Giersch Date: Fri, 30 Mar 2012 09:53:05 +0000 (+0200) Subject: Allow to give a priority to _XBT_GNUC_{CONS,DES}TRUCTOR. X-Git-Tag: v3_7~139 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/0a51f61c9b27af52dc47e7b83892c008a41cd65e Allow to give a priority to _XBT_GNUC_{CONS,DES}TRUCTOR. --- diff --git a/include/xbt/misc.h b/include/xbt/misc.h index 9ef7324061..a77a7feeb1 100644 --- a/include/xbt/misc.h +++ b/include/xbt/misc.h @@ -17,8 +17,8 @@ __attribute__((__format__ (__scanf__, format_idx, arg_idx))) # define _XBT_GNUC_NORETURN __attribute__((__noreturn__)) # define _XBT_GNUC_UNUSED __attribute__((__unused__)) -# define _XBT_GNUC_CONSTRUCTOR __attribute__((__constructor__)) -# define _XBT_GNUC_DESTRUCTOR __attribute__((__destructor__)) +# define _XBT_GNUC_CONSTRUCTOR(prio) __attribute__((__constructor__ (prio))) +# define _XBT_GNUC_DESTRUCTOR(prio) __attribute__((__destructor__ (prio))) # undef _XBT_NEED_INIT_PRAGMA #else /* !__GNUC__ */ @@ -26,8 +26,8 @@ # define _XBT_GNUC_SCANF( format_idx, arg_idx ) # define _XBT_GNUC_NORETURN # define _XBT_GNUC_UNUSED -# define _XBT_GNUC_CONSTRUCTOR -# define _XBT_GNUC_DESTRUCTOR +# define _XBT_GNUC_CONSTRUCTOR(prio) +# define _XBT_GNUC_DESTRUCTOR(prio) # define _XBT_NEED_INIT_PRAGMA 1 #endif /* !__GNUC__ */ diff --git a/src/xbt/xbt_main.c b/src/xbt/xbt_main.c index 8fe1d222c9..5660ba7e01 100644 --- a/src/xbt/xbt_main.c +++ b/src/xbt/xbt_main.c @@ -31,8 +31,8 @@ int _surf_do_model_check = 0; /* this variable is used accros the libraries, a /* Declare xbt_preinit and xbt_postexit as constructor/destructor of the library. * This is crude and rather compiler-specific, unfortunately. */ -static void xbt_preinit(void) _XBT_GNUC_CONSTRUCTOR; -static void xbt_postexit(void) _XBT_GNUC_DESTRUCTOR; +static void xbt_preinit(void) _XBT_GNUC_CONSTRUCTOR(200); +static void xbt_postexit(void) _XBT_GNUC_DESTRUCTOR(200); #ifdef _XBT_WIN32 # undef _XBT_NEED_INIT_PRAGMA