>GC_register_dynamic_libraries()</tt> should be defined in
<TT>dyn_load.c</tt>.  This function should invoke
<TT>GC_cond_add_roots(</tt><I>region_start, region_end</i><TT>, TRUE)</tt>
on each dynamic library data section.
</ul>
<P>
Implementations that scan for writable data segments are error prone, particularly
in the presence of threads.  They frequently result in race conditions
when threads exit and stacks disappear.  They may also accidentally trace
large regions of graphics memory, or mapped files.  