It would be nice to keep the one-shot functions around since they are
convenient, but there's not any good, backward-compatible, way to
remove the shared static buffer option. In particular, there are likely
to be many callers of these functions that expect them to never fail,
and so returning |NULL| when the caller doesn't supply a buffer is not
likely to work well in all cases. Consequently, it's better to fail
hard at build time.