X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ff980590b46975003092ac088ed823e4b3a38591..2c8c164d58104acb6256b6d8efd476a6a2165b8a:/src/xbt/xbt_main.c diff --git a/src/xbt/xbt_main.c b/src/xbt/xbt_main.c index 615ad8d16b..7c6795f3b7 100644 --- a/src/xbt/xbt_main.c +++ b/src/xbt/xbt_main.c @@ -6,10 +6,12 @@ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ +#define XBT_LOG_LOCALLY_DEFINE_XBT_CHANNEL /* MSVC don't want it to be declared extern in headers and local here */ + #include "xbt/misc.h" #include "simgrid_config.h" /* _XBT_WIN32 */ -#include "internal_config.h" /* MMALLOC_WANT_OVERRIDE_LEGACY */ -#include "portable.h" +#include "src/internal_config.h" /* MMALLOC_WANT_OVERRIDE_LEGACY */ +#include "src/portable.h" #include "xbt/sysdep.h" #include "xbt/log.h" #include "xbt/dynar.h" @@ -17,7 +19,7 @@ #include "xbt/module.h" /* this module */ -#include "xbt_modinter.h" /* prototype of other module's init/exit in XBT */ +#include "src/xbt_modinter.h" /* prototype of other module's init/exit in XBT */ #include "simgrid/sg_config.h" @@ -26,7 +28,6 @@ #include #endif -XBT_LOG_NEW_CATEGORY(xbt, "All XBT categories (simgrid toolbox)"); XBT_LOG_NEW_DEFAULT_SUBCATEGORY(module, xbt, "module handling"); XBT_LOG_NEW_CATEGORY(smpi, "All SMPI categories"); /* lives here even if that's a bit odd to solve linking issues: this is used in xbt_log_file_appender to detect whether SMPI is used (and thus whether we should unbench the writing to disk) */ @@ -39,6 +40,7 @@ int xbt_initialized = 0; int _sg_do_clean_atexit = 1; int xbt_pagesize; +int xbt_pagebits = 0; /* Declare xbt_preinit and xbt_postexit as constructor/destructor of the library. * This is crude and rather compiler-specific, unfortunately. @@ -88,16 +90,20 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, static void xbt_preinit(void) { unsigned int seed = 2147483647; -#ifndef WIN32 +#ifndef _XBT_WIN32 xbt_pagesize = sysconf(_SC_PAGESIZE); #else SYSTEM_INFO si; GetSystemInfo(&si); xbt_pagesize = si.dwPageSize; #endif -#ifdef MMALLOC_WANT_OVERRIDE_LEGACY - mmalloc_preinit(); -#endif + + xbt_pagebits = 0; + int x = xbt_pagesize; + while(x >>= 1) { + ++xbt_pagebits; + } + #ifdef _TWO_DIGIT_EXPONENT /* Even printf behaves differently on Windows... */ _set_output_format(_TWO_DIGIT_EXPONENT); @@ -109,16 +115,16 @@ static void xbt_preinit(void) { xbt_dict_preinit(); srand(seed); -#ifndef _WIN32 +#ifndef _XBT_WIN32 srand48(seed); #endif - atexit(xbt_postexit); } static void xbt_postexit(void) { if(!_sg_do_clean_atexit) return; + xbt_initialized--; xbt_backtrace_postexit(); xbt_fifo_postexit(); xbt_dict_postexit();