Incidentally, is there a reason that strerror_lr is not exposed to
userland, it has no prototype (not even one guarded by _NETBSD_SOURCE)
anywhere in /usr/include/* and there's actually no alias for it
(all that actually exists is the internal _strerror_lr name).

That violates your "We have _l versions of every function that depends
on the (global) locale" doesn't it?   strerror_r depends upon the
global locale, yet it appears that we don't actually have an _l version
of that one.

Is this really intended only as an internal libc function (the one that
actually does all the real work for all the strerror*() functions)
or is it intended for users to be able to use that as well?

[If it matters, I vote for the latter interpretation.]

It seems like to expose it, all we need is a weak_alias() in strerror_r.c
and a prototype in <string.h> (and doc...)

Also, can someone explain strerror_ss() and strerror_r_ss() - which look
to be implementations of the ancient (pre locale) strerror() functions, and
as best I can see, exist solely for the purposes of jemalloc() ?
They are exposed in libc, but have no prototypes - and I assume should
not be used without a very good reason, and hence not be documented either.

kre

ps: I'm going to hold off on the promised man page update until this is
resolved, so it can document all (but only) what we actually provide.

Reply via email to