strerror: drop strerror_r dependency
authorEric Blake <eblake@redhat.com>
Tue, 24 May 2011 21:33:49 +0000 (15:33 -0600)
committerEric Blake <eblake@redhat.com>
Wed, 1 Jun 2011 14:58:23 +0000 (08:58 -0600)
commit63ce57e7e9fff1265da4e0a4d2639483c28b6b93
tree66c56de09a1eee647a45eafe5b085670c22020c6
parent6b66ce308dae8448f02da645a9fd8fb992349f06
strerror: drop strerror_r dependency

Since the errno module is responsible for introducing replacement
errno values, it should also be responsible for translating those
new values into strings.  And by moving the replacements into a
file managed by the errno, we can then break the dependency between
strerror and strerror_r, so that strerror no longer drags in
multi-threading modules required by strerror_r.

Tested on glibc with:

gl_cv_header_errno_h_complete=no gl_cv_func_working_strerror=no \
  gl_cv_func_strerror_r_works=no ./gnulib-tool --with-tests \
  --test strerror strerror_r-posix

* lib/strerror_r.c (strerror_r): Move gnulib replacement strings...
* lib/strerror-override.c (strerror_override): ...to new file.
* lib/strerror-override.h: Add prototype.
* lib/strerror-impl.h: Delete.
* lib/strerror.c (strerror): New implementation.
* modules/errno (Files): Add new files.
(configure.ac): Compile new file as appropriate.
* modules/strerror (Files): Drop unused file.
(Depends-on): Drop strerror_r-posix.
* MODULES.html.sh: Document strerror_r-posix.
Requested by Sam Steingold.

Signed-off-by: Eric Blake <eblake@redhat.com>
ChangeLog
MODULES.html.sh
lib/strerror-impl.h [deleted file]
lib/strerror-override.c [new file with mode: 0644]
lib/strerror-override.h [new file with mode: 0644]
lib/strerror.c
lib/strerror_r.c
modules/errno
modules/strerror