doc: Improve wording in relocatable-maint.texi.

Reported by Reuben Thomas <rrt@sc3d.org>.
error: depend on stdio

Problem reported by Nikos Mavrogiannopoulos in
<http://lists.gnu.org/archive/html/bug-gnulib/2013-11/msg00084.html>
* modules/error (Depends-on): Add stdio.
quotearg: don't attempt to store 1 << 31 into an "int"

* lib/quotearg.c (quotearg_buffer_restyled): Building coreutils with
gcc's new -fsanitize=undefined and running its tests triggered some
new test failures due to undefined behavior, all with this diagnostic:
  lib/quotearg.c:629:62: runtime error: left shift of 1 by 31 places \
    cannot be represented in type int
Rather than shifting "1" left to form a mask, shift the bits right and
simply use "1" as the mask.
Co-authored-by: Paul Eggert <eggert@cs.ucla.edu>
autoupdate
maint: fix gendocs.sh permissions

* build-aux/gendocs.sh: Restore executable bit.

Signed-off-by: Eric Blake <eblake@redhat.com>
pty: Activate the signature wrapper of forkpty.

The intended preprocessor macro HAVE_FORKPTY is
never defined, yet `lib/forkpty.c' depends on it.

* m4/pty.m4 (gl_FUNC_FORKPTY): At completed analysis,
apply AC_DEFINE_UNQUOTED to HAVE_FORKPTY with value
$HAVE_FORKPTY for access to wrapper in `lib/forkpty.c'.
ignore-value: prefer GCC version back through 2.0

The code didn't match the comments, so I did a bit of software
archaeology.  GCC 2.0 seems to support __extension__ and
__typeof__, so fix both code and comments to use 2.0.
* lib/ignore-value.h (ignore_value): Use __extension__ and
__typeof__ for GCC 2.0 through 3.3, too.
selinux-h: improve stub types and add more stub functions

* lib/se-selinux.in.h: Change security_context_t to a typedef
rather than a define, as it's a pointer type and so is better
as a typedef to avoid issues declaring multiple variables
with the comma operator.  Also add stub for string_to_security_class().
* lib/se-context.in.h: Add stub functions for
context_{type,range,role,user}_get().
ignore-value: revert previous code change

* lib/ignore-value.h (ignore_value): Use __extension__ and
__typeof__ only for GCC 3.4 and later.  Reported by Eric Blake in
<http://lists.gnu.org/archive/html/bug-gnulib/2013-11/msg00102.html>.
Change the comment to try to explain this better.
autoupdate
autoupdate
base64: fix recent compilation regression on some compilers

This fixes a compile failure with
  "Sun C 5.8 Patch 121015-05 2007/08/01"
which returns:
  "base64.c", line 99: void function cannot return value

* lib/base64.c: Don't return the void function,
instead split to a separate return statement.
md5, sha1, sha256, sha512: use openssl routines if available

--with-openssl the libcrypto md5, sha1, sha224, sha256, sha384, sha256
routines will be used if available, requiring apps to link @LIB_CRYPTO@

* lib/gl_openssl.h: Provide wrappers for specified openssl hash.
* m4/gl-openssl.m4 (gl_CRYPTO_CHECK): New function to lookup libcrypto
in the standard system location.
* m4/sha1.m4: Call gl_CRYPTO_CHECK() for SHA1.
* m4/sha256.m4: Likewise with SHA256.
* m4/sha512.m4: Likewise with SHA512.
* m4/md5.m4: Likewise with MD5.
* m4/gc.m4: Ensure @LIB_CRYPTO@ set for tests.
* lib/sha1.h: Include wrappers if HAVE_OPENSSL_SHA1.
* lib/sha256.h: Likewise with SHA256.
* lib/sha512.h: Likewise with SHA512.
* lib/md5.h: Likewise with MD5.
* lib/sha1.c: Exlude functionality if HAVE_OPENSSL_SHA1.
* lib/sha256.c: Likewise with SHA256.
* lib/sha512.c: Likewise with SHA512.
* lib/md5.c: Likewise with MD5.
* modules/crypto/sha1 (Link:): Add the new optional lib.
(Depends-on:): Add dependency on extern-inline.
* modules/crypto/sha256: Likewise.
* modules/crypto/sha512: Likewise.
* modules/crypto/md5: Likewise.
* modules/crypto/sha1-tests: Reference the lib here too.
* modules/crypto/md5-tests: Likewise.
* modules/crypto/gc-des-tests: Likewise.
* modules/crypto/gc-hmac-md5-tests: Likewise.
* modules/crypto/gc-hmac-sha1-tests: Likewise.
* modules/crypto/gc-hmac-sha256-tests: Likewise.
* modules/crypto/gc-hmac-sha512-tests: Likewise.
* modules/crypto/gc-md5-tests: Likewise.
* modules/crypto/gc-pbkdf2-sha1-tests: Likewise.
* modules/crypto/gc-sha1-tests: Likewise.
* modules/crypto/gc-tests: Likewise.
* modules/crypto/hmac-md5-tests: Likewise.
* modules/crypto/hmac-sha1-tests: Likewise.
* modules/crypto/hmac-sha256-tests: Likewise.
* modules/crypto/hmac-sha512-tests: Likewise.
regex: avoid glibc deadlock during configure

glibc has a known bug where certain corruptions of the heap can
cause malloc to default to printing a debug message that includes
a backtrace, but the act of getting the backtrace uses dlopen
which in turn calls into malloc, causing a recursive lock ending
in deadlock.  Thus, when configure is probing for a known glibc
heap corruption bug, the overall configure would hang.

The solution suggested by glibc developers is to force malloc
to quit printing debug messages, which avoids recursive malloc.

* m4/regex.m4 (gl_REGEX): Avoid recursive malloc deadlock when
glibc bug 15078 in turn triggers bug 16159.
Reported by Michal Privoznik.

Signed-off-by: Eric Blake <eblake@redhat.com>
test-xvasprintf: disable some -Wformat-security diagnostics

* tests/test-xvasprintf.c: Disable -Wformat-zero-length and
-Wformat-nonliteral checks, as these edge cases are part of the test.
md5, sha1, sha256, sha512: support mandating use of openssl

* m4/gl-openssl.m4 (gl_CRYPTO_CHECK): Adjust the --with-openssl
description, to list the now 3 separate options.  Also don't
mention the default=no, since this is implicit given the option
is described as --with-openssl rather than --without-openssl.
If projects change the default they're free to document that.
With --with-openssl[=yes] we now error out when the specified
hash algorithm is not available in libcrypto.
regex: suppress core dumps from detection code

* m4/regex.m4 (gl_REGEX): Catch the SIGABRT and convert to SIGTERM
to suppress core dumps that may well occur on glibc systems.
These core dumps might not be cleaned up automatically, or could
trigger some system core dump handling logic.
getcwd: fix compile error in configure check

Introduced in commit ca369c8d, 2013-02-03

* m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Include errno.h
include_next: minimize code duplication

I noticed some code duplication while trying to resolve a bug
originally reported by Rhys Ulerich:
https://lists.gnu.org/archive/html/bug-gnulib/2013-10/msg00049.html

* modules/include_next (Depends-on): Add absolute-header.
* m4/include_next.m4 (gl_NEXT_HEADERS_INTERNAL): Reuse
gl_ABSOLUTE_HEADER_ONE instead of open-coding it.

Signed-off-by: Eric Blake <eblake@redhat.com>