Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Allow to give a priority to _XBT_GNUC_{CONS,DES}TRUCTOR.
authorArnaud Giersch <arnaud.giersch@iut-bm.univ-fcomte.fr>
Fri, 30 Mar 2012 09:53:05 +0000 (11:53 +0200)
committerArnaud Giersch <arnaud.giersch@iut-bm.univ-fcomte.fr>
Fri, 30 Mar 2012 10:01:06 +0000 (12:01 +0200)
include/xbt/misc.h
src/xbt/xbt_main.c

index 9ef7324..a77a7fe 100644 (file)
@@ -17,8 +17,8 @@
               __attribute__((__format__ (__scanf__, format_idx, arg_idx)))
 # define _XBT_GNUC_NORETURN __attribute__((__noreturn__))
 # define _XBT_GNUC_UNUSED  __attribute__((__unused__))
               __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__ */
 # 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_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__ */
 # define  _XBT_NEED_INIT_PRAGMA 1
 
 #endif                          /* !__GNUC__ */
index 8fe1d22..5660ba7 100644 (file)
@@ -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.
  */
 /* 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
 
 #ifdef _XBT_WIN32
 # undef _XBT_NEED_INIT_PRAGMA