-#endif
-
-#endif
-
-static void xbt_preinit()
-{
-#ifdef _WIN32
- SYSTEM_INFO si;
- GetSystemInfo(&si);
- xbt_pagesize = si.dwPageSize;
-#elif HAVE_SYSCONF
- xbt_pagesize = static_cast<int>(sysconf(_SC_PAGESIZE));
-#else
-# error Cannot get page size.
-#endif
-
- xbt_pagebits = static_cast<int>(log2(xbt_pagesize));
-
-#ifdef _TWO_DIGIT_EXPONENT
- /* Even printf behaves differently on Windows... */
- _set_output_format(_TWO_DIGIT_EXPONENT);
-#endif
- xbt_log_preinit();
- xbt_dict_preinit();
- atexit(xbt_postexit);
-}
-
-static void xbt_postexit()
-{
- if (not cfg_dbg_clean_atexit)
- return;
- xbt_initialized--;
- xbt_dict_postexit();
- xbt_log_postexit();
-#if SIMGRID_HAVE_MC
- mmalloc_postexit();
-#endif
-}
-
-/** @brief Initialize the xbt mechanisms. */
-void xbt_init(int *argc, char **argv)
-{
- xbt_initialized++;
- if (xbt_initialized > 1) {
- XBT_DEBUG("XBT has been initialized %d times.", xbt_initialized);
- return;
- }
-
- simgrid::xbt::install_exception_handler();
-
- simgrid::xbt::binary_name = argv[0];
- for (int i = 0; i < *argc; i++)
- simgrid::xbt::cmdline.emplace_back(argv[i]);
-
- xbt_log_init(argc, argv);
+XBT_ATTRIB_NOINLINE void sthread_disable()
+{ // when libsthread is LD_PRELOADED. In this case, sthread's implem gets used instead.
+ asm("");