The Boehm-Demers-Weiser conservative garbage collector can be
used as a garbage collecting replacement for C malloc or C++ new.
When using libgc.a in order to build a shared library, _end and _data
symbols must be imported.
This two symbols are needed by libgc.a but are only defined by the linker when creating an executable, not a shared library. Thus, make sure "-Wl,-bI:libgc.imp" is added with "libgc.imp" being: "#! . _data _end "