OSDN Git Service

2003-03-03 Hans Boehm <Hans.Boehm@hp.com>
[pf3gnuchains/gcc-fork.git] / boehm-gc / misc.c
index f607973..891cdc7 100644 (file)
 #undef STACKBASE
 #endif
 
+/* Dont unnecessarily call GC_register_main_static_data() in case      */
+/* dyn_load.c isn't linked in.                                         */
+#ifdef DYNAMIC_LOADING
+# define GC_REGISTER_MAIN_STATIC_DATA() GC_register_main_static_data()
+#else
+# define GC_REGISTER_MAIN_STATIC_DATA() TRUE
+#endif
+
 GC_FAR struct _GC_arrays GC_arrays /* = { 0 } */;
 
 
@@ -572,7 +580,7 @@ void GC_init_inner()
        GC_init_win32();
 #   endif
 #   if defined(SEARCH_FOR_DATA_START)
-       GC_init_linux_data_start();
+       if (GC_REGISTER_MAIN_STATIC_DATA()) GC_init_linux_data_start();
 #   endif
 #   if (defined(NETBSD) || defined(OPENBSD)) && defined(__ELF__)
        GC_init_netbsd_elf();
@@ -619,7 +627,7 @@ void GC_init_inner()
     
     /* Add initial guess of root sets.  Do this first, since sbrk(0)   */
     /* might be used.                                                  */
-      GC_register_data_segments();
+      if (GC_REGISTER_MAIN_STATIC_DATA()) GC_register_data_segments();
     GC_init_headers();
     GC_bl_init();
     GC_mark_init();