(side note from the current discussion about XML/JSON/...) The doc of hwloc_topology_export_xmlbuffer() says that the returned buffer should be freed with xmlFree(). xmlFree() is in libxml2, but hwloc can be built without libxml2 support. So the application can always use hwloc_topology_export_xmlbuffer() but it cannot safely use xmlFree() without checking again if libxml2 is available. We need to something about this:
1) add HWLOC_HAVE_XML to hwloc/autogen/config.h and tell the application to look at it 2) add hwloc_free_xmlbuffer() 3a) change hwloc_topology_export_xmlbuffer() to return a normal buffer copied from the xml-allocated one 3b) change hwloc_topology_export_xmlbuffer() to have the application provide the destination buffer (would require one export to get the actual length, malloc, and an another export with the right length). (1) isn't very nice, and doesn't abstract us away from libxml2 (2) is easy (3) breaks the ABI Brice