mysterious re-arrangement of exports;  asprintf is a GNU extension and hence we fall back to sprintf