diff -cNr 0/dll_init.cc 1/dll_init.cc *** 0/dll_init.cc Wed Feb 8 16:10:49 2012 --- 1/dll_init.cc Wed Feb 8 16:17:40 2012 *************** *** 426,434 **** dll_list::reserve_space () { for (dll* d = dlls.istart (DLL_LOAD); d; d = dlls.inext ()) ! if (!VirtualAlloc (d->handle, d->image_size, MEM_RESERVE, PAGE_NOACCESS)) fabort ("address space needed by '%W' (%p) is already occupied", d->modname, d->handle); } /* Reload DLLs after a fork. Iterates over the list of dynamically loaded --- 426,440 ---- dll_list::reserve_space () { for (dll* d = dlls.istart (DLL_LOAD); d; d = dlls.inext ()) ! #define TYPE_SHOW(x) ((x) == DLL_NONE) ? "DLL_NONE" : ((x) == DLL_LINK) ? "DLL_LINK" : ((x) == DLL_LOAD) ? "DLL_LOAD" : ((x) == DLL_ANY) ? "DLL_ANY" : "DLL_(unknown)" ! if (!VirtualAlloc (d->handle, d->image_size, MEM_RESERVE, PAGE_NOACCESS)) { ! for (dll* d_alt = dlls.start.next; d_alt; d_alt = d_alt->next) { ! system_printf ("address space needed by '%W' (file %W) (%p with type %d=%s)", ! d_alt->modname, d_alt->name, d_alt->handle, d_alt->type, TYPE_SHOW(d_alt->type)); ! }; fabort ("address space needed by '%W' (%p) is already occupied", d->modname, d->handle); + }; } /* Reload DLLs after a fork. Iterates over the list of dynamically loaded