[Pkg-gnutls-commits] r1941 - /packages/gnutls28/branches/experimental/debian/patches/45_add_strerror-module.patch

ametzler at users.alioth.debian.org ametzler at users.alioth.debian.org
Fri Nov 29 18:24:40 UTC 2013


Author: ametzler
Date: Fri Nov 29 18:24:40 2013
New Revision: 1941

URL: http://svn.debian.org/wsvn/pkg-gnutls/?sc=1&rev=1941
Log:
actually add debian/patches/45_add_strerror-module.patch

Added:
    packages/gnutls28/branches/experimental/debian/patches/45_add_strerror-module.patch

Added: packages/gnutls28/branches/experimental/debian/patches/45_add_strerror-module.patch
URL: http://svn.debian.org/wsvn/pkg-gnutls/packages/gnutls28/branches/experimental/debian/patches/45_add_strerror-module.patch?rev=1941&op=file
==============================================================================
--- packages/gnutls28/branches/experimental/debian/patches/45_add_strerror-module.patch	(added)
+++ packages/gnutls28/branches/experimental/debian/patches/45_add_strerror-module.patch	Fri Nov 29 18:24:40 2013
@@ -0,0 +1,1069 @@
+From 31832b2d2cee8407007bb7651616bb8097d1a168 Mon Sep 17 00:00:00 2001
+From: Nikos Mavrogiannopoulos <nmav at gnutls.org>
+Date: Sat, 23 Nov 2013 17:19:10 +0100
+Subject: [PATCH] Added strerror module.
+
+---
+ gl/Makefile.am               |   20 ++-
+ gl/m4/gnulib-cache.m4        |    3 +-
+ gl/m4/gnulib-comp.m4         |   30 ++---
+ gl/strerror-override.c       |  302 ++++++++++++++++++++++++++++++++++++++++++
+ gl/strerror-override.h       |   56 ++++++++
+ gl/strerror.c                |   70 ++++++++++
+ gl/tests/Makefile.am         |   18 ---
+ gl/tests/strerror-override.c |  302 ------------------------------------------
+ gl/tests/strerror-override.h |   56 --------
+ gl/tests/strerror.c          |   70 ----------
+ 10 files changed, 464 insertions(+), 463 deletions(-)
+ create mode 100644 gl/strerror-override.c
+ create mode 100644 gl/strerror-override.h
+ create mode 100644 gl/strerror.c
+ delete mode 100644 gl/tests/strerror-override.c
+ delete mode 100644 gl/tests/strerror-override.h
+ delete mode 100644 gl/tests/strerror.c
+
+diff --git a/gl/Makefile.am b/gl/Makefile.am
+index 43e17e9..9e3c3e1 100644
+--- a/gl/Makefile.am
++++ b/gl/Makefile.am
+@@ -21,7 +21,7 @@
+ # the same distribution terms as the rest of that program.
+ #
+ # Generated by gnulib-tool.
+-# Reproduce by: gnulib-tool --import --dir=. --local-dir=gl/override --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --tests-base=gl/tests --aux-dir=build-aux --with-tests --avoid=alignof-tests --avoid=lock-tests --avoid=lseek-tests --lgpl=2 --no-conditional-dependencies --libtool --macro-prefix=gl --no-vc-files accept alloca base64 bind byteswap c-ctype close connect extensions func gendocs getaddrinfo getpass gettext gettimeofday hash-pjw-bare havelib iconv inet_ntop inet_pton intprops lib-msvc-compat lib-symbol-versions listen maintainer-makefile manywarnings memmem-simple minmax netdb netinet_in pmccabe2html read-file recv recvfrom select send sendto servent setsockopt shutdown snprintf socket sockets socklen stdint strcase strndup strtok_r strverscmp sys_socket sys_stat time_r u64 unistd valgrind-tests vasprintf vsnprintf warnings
++# Reproduce by: gnulib-tool --import --dir=. --local-dir=gl/override --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --tests-base=gl/tests --aux-dir=build-aux --with-tests --avoid=alignof-tests --avoid=lock-tests --avoid=lseek-tests --lgpl=2 --no-conditional-dependencies --libtool --macro-prefix=gl --no-vc-files accept alloca base64 bind byteswap c-ctype close connect extensions func gendocs getaddrinfo getpass gettext gettimeofday hash-pjw-bare havelib iconv inet_ntop inet_pton intprops lib-msvc-compat lib-symbol-versions listen maintainer-makefile manywarnings memmem-simple minmax netdb netinet_in pmccabe2html read-file recv recvfrom select send sendto servent setsockopt shutdown snprintf socket sockets socklen stdint strcase strerror strndup strtok_r strverscmp sys_socket sys_stat time_r u64 unistd valgrind-tests vasprintf vsnprintf warnings
+ 
+ AUTOMAKE_OPTIONS = 1.9.6 gnits
+ 
+@@ -1218,6 +1218,24 @@ EXTRA_libgnu_la_SOURCES += strdup.c
+ 
+ ## end   gnulib module strdup-posix
+ 
++## begin gnulib module strerror
++
++
++EXTRA_DIST += strerror.c
++
++EXTRA_libgnu_la_SOURCES += strerror.c
++
++## end   gnulib module strerror
++
++## begin gnulib module strerror-override
++
++
++EXTRA_DIST += strerror-override.c strerror-override.h
++
++EXTRA_libgnu_la_SOURCES += strerror-override.c
++
++## end   gnulib module strerror-override
++
+ ## begin gnulib module string
+ 
+ BUILT_SOURCES += string.h
+diff --git a/gl/m4/gnulib-cache.m4 b/gl/m4/gnulib-cache.m4
+index 6540575..65b9743 100644
+--- a/gl/m4/gnulib-cache.m4
++++ b/gl/m4/gnulib-cache.m4
+@@ -27,7 +27,7 @@
+ 
+ 
+ # Specification in the form of a command-line invocation:
+-#   gnulib-tool --import --dir=. --local-dir=gl/override --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --tests-base=gl/tests --aux-dir=build-aux --with-tests --avoid=alignof-tests --avoid=lock-tests --avoid=lseek-tests --lgpl=2 --no-conditional-dependencies --libtool --macro-prefix=gl --no-vc-files accept alloca base64 bind byteswap c-ctype close connect extensions func gendocs getaddrinfo getpass gettext gettimeofday hash-pjw-bare havelib iconv inet_ntop inet_pton intprops lib-msvc-compat lib-symbol-versions listen maintainer-makefile manywarnings memmem-simple minmax netdb netinet_in pmccabe2html read-file recv recvfrom select send sendto servent setsockopt shutdown snprintf socket sockets socklen stdint strcase strndup strtok_r strverscmp sys_socket sys_stat time_r u64 unistd valgrind-tests vasprintf vsnprintf warnings
++#   gnulib-tool --import --dir=. --local-dir=gl/override --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --tests-base=gl/tests --aux-dir=build-aux --with-tests --avoid=alignof-tests --avoid=lock-tests --avoid=lseek-tests --lgpl=2 --no-conditional-dependencies --libtool --macro-prefix=gl --no-vc-files accept alloca base64 bind byteswap c-ctype close connect extensions func gendocs getaddrinfo getpass gettext gettimeofday hash-pjw-bare havelib iconv inet_ntop inet_pton intprops lib-msvc-compat lib-symbol-versions listen maintainer-makefile manywarnings memmem-simple minmax netdb netinet_in pmccabe2html read-file recv recvfrom select send sendto servent setsockopt shutdown snprintf socket sockets socklen stdint strcase strerror strndup strtok_r strverscmp sys_socket sys_stat time_r u64 unistd valgrind-tests vasprintf vsnprintf warnings
+ 
+ # Specification in the form of a few gnulib-tool.m4 macro invocations:
+ gl_LOCAL_DIR([gl/override])
+@@ -78,6 +78,7 @@ gl_MODULES([
+   socklen
+   stdint
+   strcase
++  strerror
+   strndup
+   strtok_r
+   strverscmp
+diff --git a/gl/m4/gnulib-comp.m4 b/gl/m4/gnulib-comp.m4
+index 8ced96a..c1381bf 100644
+--- a/gl/m4/gnulib-comp.m4
++++ b/gl/m4/gnulib-comp.m4
+@@ -563,6 +563,18 @@ AC_SUBST([LTALLOCA])
+     gl_PREREQ_STRDUP
+   fi
+   gl_STRING_MODULE_INDICATOR([strdup])
++  gl_FUNC_STRERROR
++  if test $REPLACE_STRERROR = 1; then
++    AC_LIBOBJ([strerror])
++  fi
++  gl_MODULE_INDICATOR([strerror])
++  gl_STRING_MODULE_INDICATOR([strerror])
++  AC_REQUIRE([gl_HEADER_ERRNO_H])
++  AC_REQUIRE([gl_FUNC_STRERROR_0])
++  if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then
++    AC_LIBOBJ([strerror-override])
++    gl_PREREQ_SYS_H_WINSOCK2
++  fi
+   gl_HEADER_STRING_H
+   gl_HEADER_STRINGS_H
+   gl_FUNC_STRNDUP
+@@ -745,18 +757,6 @@ changequote([, ])dnl
+   gl_SYS_STAT_MODULE_INDICATOR([stat])
+   AC_REQUIRE([gt_TYPE_WCHAR_T])
+   AC_REQUIRE([gt_TYPE_WINT_T])
+-  gl_FUNC_STRERROR
+-  if test $REPLACE_STRERROR = 1; then
+-    AC_LIBOBJ([strerror])
+-  fi
+-  gl_MODULE_INDICATOR([strerror])
+-  gl_STRING_MODULE_INDICATOR([strerror])
+-  AC_REQUIRE([gl_HEADER_ERRNO_H])
+-  AC_REQUIRE([gl_FUNC_STRERROR_0])
+-  if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then
+-    AC_LIBOBJ([strerror-override])
+-    gl_PREREQ_SYS_H_WINSOCK2
+-  fi
+   gl_FUNC_STRERROR_R
+   if test $HAVE_DECL_STRERROR_R = 0 || test $REPLACE_STRERROR_R = 1; then
+     AC_LIBOBJ([strerror_r])
+@@ -966,6 +966,9 @@ AC_DEFUN([gl_FILE_LIST], [
+   lib/str-two-way.h
+   lib/strcasecmp.c
+   lib/strdup.c
++  lib/strerror-override.c
++  lib/strerror-override.h
++  lib/strerror.c
+   lib/string.in.h
+   lib/strings.in.h
+   lib/strncasecmp.c
+@@ -1285,9 +1288,6 @@ AC_DEFUN([gl_FILE_LIST], [
+   tests=lib/pipe.c
+   tests=lib/same-inode.h
+   tests=lib/stat.c
+-  tests=lib/strerror-override.c
+-  tests=lib/strerror-override.h
+-  tests=lib/strerror.c
+   tests=lib/strerror_r.c
+   tests=lib/symlink.c
+   tests=lib/sys_ioctl.in.h
+diff --git a/gl/strerror-override.c b/gl/strerror-override.c
+new file mode 100644
+index 0000000..dcceaa5
+--- /dev/null
++++ b/gl/strerror-override.c
+@@ -0,0 +1,302 @@
++/* strerror-override.c --- POSIX compatible system error routine
++
++   Copyright (C) 2010-2013 Free Software Foundation, Inc.
++
++   This program is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as published by
++   the Free Software Foundation; either version 2.1 of the License, or
++   (at your option) any later version.
++
++   This program is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
++
++/* Written by Bruno Haible <bruno at clisp.org>, 2010.  */
++
++#include <config.h>
++
++#include "strerror-override.h"
++
++#include <errno.h>
++
++#if GNULIB_defined_EWINSOCK /* native Windows platforms */
++# if HAVE_WINSOCK2_H
++#  include <winsock2.h>
++# endif
++#endif
++
++/* If ERRNUM maps to an errno value defined by gnulib, return a string
++   describing the error.  Otherwise return NULL.  */
++const char *
++strerror_override (int errnum)
++{
++  /* These error messages are taken from glibc/sysdeps/gnu/errlist.c.  */
++  switch (errnum)
++    {
++#if REPLACE_STRERROR_0
++    case 0:
++      return "Success";
++#endif
++
++#if GNULIB_defined_ESOCK /* native Windows platforms with older <errno.h> */
++    case EINPROGRESS:
++      return "Operation now in progress";
++    case EALREADY:
++      return "Operation already in progress";
++    case ENOTSOCK:
++      return "Socket operation on non-socket";
++    case EDESTADDRREQ:
++      return "Destination address required";
++    case EMSGSIZE:
++      return "Message too long";
++    case EPROTOTYPE:
++      return "Protocol wrong type for socket";
++    case ENOPROTOOPT:
++      return "Protocol not available";
++    case EPROTONOSUPPORT:
++      return "Protocol not supported";
++    case EOPNOTSUPP:
++      return "Operation not supported";
++    case EAFNOSUPPORT:
++      return "Address family not supported by protocol";
++    case EADDRINUSE:
++      return "Address already in use";
++    case EADDRNOTAVAIL:
++      return "Cannot assign requested address";
++    case ENETDOWN:
++      return "Network is down";
++    case ENETUNREACH:
++      return "Network is unreachable";
++    case ECONNRESET:
++      return "Connection reset by peer";
++    case ENOBUFS:
++      return "No buffer space available";
++    case EISCONN:
++      return "Transport endpoint is already connected";
++    case ENOTCONN:
++      return "Transport endpoint is not connected";
++    case ETIMEDOUT:
++      return "Connection timed out";
++    case ECONNREFUSED:
++      return "Connection refused";
++    case ELOOP:
++      return "Too many levels of symbolic links";
++    case EHOSTUNREACH:
++      return "No route to host";
++    case EWOULDBLOCK:
++      return "Operation would block";
++#endif
++#if GNULIB_defined_ESTREAMS /* native Windows platforms with older <errno.h> */
++    case ETXTBSY:
++      return "Text file busy";
++    case ENODATA:
++      return "No data available";
++    case ENOSR:
++      return "Out of streams resources";
++    case ENOSTR:
++      return "Device not a stream";
++    case ETIME:
++      return "Timer expired";
++    case EOTHER:
++      return "Other error";
++#endif
++#if GNULIB_defined_EWINSOCK /* native Windows platforms */
++    case ESOCKTNOSUPPORT:
++      return "Socket type not supported";
++    case EPFNOSUPPORT:
++      return "Protocol family not supported";
++    case ESHUTDOWN:
++      return "Cannot send after transport endpoint shutdown";
++    case ETOOMANYREFS:
++      return "Too many references: cannot splice";
++    case EHOSTDOWN:
++      return "Host is down";
++    case EPROCLIM:
++      return "Too many processes";
++    case EUSERS:
++      return "Too many users";
++    case EDQUOT:
++      return "Disk quota exceeded";
++    case ESTALE:
++      return "Stale NFS file handle";
++    case EREMOTE:
++      return "Object is remote";
++# if HAVE_WINSOCK2_H
++      /* WSA_INVALID_HANDLE maps to EBADF */
++      /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */
++      /* WSA_INVALID_PARAMETER maps to EINVAL */
++    case WSA_OPERATION_ABORTED:
++      return "Overlapped operation aborted";
++    case WSA_IO_INCOMPLETE:
++      return "Overlapped I/O event object not in signaled state";
++    case WSA_IO_PENDING:
++      return "Overlapped operations will complete later";
++      /* WSAEINTR maps to EINTR */
++      /* WSAEBADF maps to EBADF */
++      /* WSAEACCES maps to EACCES */
++      /* WSAEFAULT maps to EFAULT */
++      /* WSAEINVAL maps to EINVAL */
++      /* WSAEMFILE maps to EMFILE */
++      /* WSAEWOULDBLOCK maps to EWOULDBLOCK */
++      /* WSAEINPROGRESS maps to EINPROGRESS */
++      /* WSAEALREADY maps to EALREADY */
++      /* WSAENOTSOCK maps to ENOTSOCK */
++      /* WSAEDESTADDRREQ maps to EDESTADDRREQ */
++      /* WSAEMSGSIZE maps to EMSGSIZE */
++      /* WSAEPROTOTYPE maps to EPROTOTYPE */
++      /* WSAENOPROTOOPT maps to ENOPROTOOPT */
++      /* WSAEPROTONOSUPPORT maps to EPROTONOSUPPORT */
++      /* WSAESOCKTNOSUPPORT is ESOCKTNOSUPPORT */
++      /* WSAEOPNOTSUPP maps to EOPNOTSUPP */
++      /* WSAEPFNOSUPPORT is EPFNOSUPPORT */
++      /* WSAEAFNOSUPPORT maps to EAFNOSUPPORT */
++      /* WSAEADDRINUSE maps to EADDRINUSE */
++      /* WSAEADDRNOTAVAIL maps to EADDRNOTAVAIL */
++      /* WSAENETDOWN maps to ENETDOWN */
++      /* WSAENETUNREACH maps to ENETUNREACH */
++      /* WSAENETRESET maps to ENETRESET */
++      /* WSAECONNABORTED maps to ECONNABORTED */
++      /* WSAECONNRESET maps to ECONNRESET */
++      /* WSAENOBUFS maps to ENOBUFS */
++      /* WSAEISCONN maps to EISCONN */
++      /* WSAENOTCONN maps to ENOTCONN */
++      /* WSAESHUTDOWN is ESHUTDOWN */
++      /* WSAETOOMANYREFS is ETOOMANYREFS */
++      /* WSAETIMEDOUT maps to ETIMEDOUT */
++      /* WSAECONNREFUSED maps to ECONNREFUSED */
++      /* WSAELOOP maps to ELOOP */
++      /* WSAENAMETOOLONG maps to ENAMETOOLONG */
++      /* WSAEHOSTDOWN is EHOSTDOWN */
++      /* WSAEHOSTUNREACH maps to EHOSTUNREACH */
++      /* WSAENOTEMPTY maps to ENOTEMPTY */
++      /* WSAEPROCLIM is EPROCLIM */
++      /* WSAEUSERS is EUSERS */
++      /* WSAEDQUOT is EDQUOT */
++      /* WSAESTALE is ESTALE */
++      /* WSAEREMOTE is EREMOTE */
++    case WSASYSNOTREADY:
++      return "Network subsystem is unavailable";
++    case WSAVERNOTSUPPORTED:
++      return "Winsock.dll version out of range";
++    case WSANOTINITIALISED:
++      return "Successful WSAStartup not yet performed";
++    case WSAEDISCON:
++      return "Graceful shutdown in progress";
++    case WSAENOMORE: case WSA_E_NO_MORE:
++      return "No more results";
++    case WSAECANCELLED: case WSA_E_CANCELLED:
++      return "Call was canceled";
++    case WSAEINVALIDPROCTABLE:
++      return "Procedure call table is invalid";
++    case WSAEINVALIDPROVIDER:
++      return "Service provider is invalid";
++    case WSAEPROVIDERFAILEDINIT:
++      return "Service provider failed to initialize";
++    case WSASYSCALLFAILURE:
++      return "System call failure";
++    case WSASERVICE_NOT_FOUND:
++      return "Service not found";
++    case WSATYPE_NOT_FOUND:
++      return "Class type not found";
++    case WSAEREFUSED:
++      return "Database query was refused";
++    case WSAHOST_NOT_FOUND:
++      return "Host not found";
++    case WSATRY_AGAIN:
++      return "Nonauthoritative host not found";
++    case WSANO_RECOVERY:
++      return "Nonrecoverable error";
++    case WSANO_DATA:
++      return "Valid name, no data record of requested type";
++      /* WSA_QOS_* omitted */
++# endif
++#endif
++
++#if GNULIB_defined_ENOMSG
++    case ENOMSG:
++      return "No message of desired type";
++#endif
++
++#if GNULIB_defined_EIDRM
++    case EIDRM:
++      return "Identifier removed";
++#endif
++
++#if GNULIB_defined_ENOLINK
++    case ENOLINK:
++      return "Link has been severed";
++#endif
++
++#if GNULIB_defined_EPROTO
++    case EPROTO:
++      return "Protocol error";
++#endif
++
++#if GNULIB_defined_EMULTIHOP
++    case EMULTIHOP:
++      return "Multihop attempted";
++#endif
++
++#if GNULIB_defined_EBADMSG
++    case EBADMSG:
++      return "Bad message";
++#endif
++
++#if GNULIB_defined_EOVERFLOW
++    case EOVERFLOW:
++      return "Value too large for defined data type";
++#endif
++
++#if GNULIB_defined_ENOTSUP
++    case ENOTSUP:
++      return "Not supported";
++#endif
++
++#if GNULIB_defined_ENETRESET
++    case ENETRESET:
++      return "Network dropped connection on reset";
++#endif
++
++#if GNULIB_defined_ECONNABORTED
++    case ECONNABORTED:
++      return "Software caused connection abort";
++#endif
++
++#if GNULIB_defined_ESTALE
++    case ESTALE:
++      return "Stale NFS file handle";
++#endif
++
++#if GNULIB_defined_EDQUOT
++    case EDQUOT:
++      return "Disk quota exceeded";
++#endif
++
++#if GNULIB_defined_ECANCELED
++    case ECANCELED:
++      return "Operation canceled";
++#endif
++
++#if GNULIB_defined_EOWNERDEAD
++    case EOWNERDEAD:
++      return "Owner died";
++#endif
++
++#if GNULIB_defined_ENOTRECOVERABLE
++    case ENOTRECOVERABLE:
++      return "State not recoverable";
++#endif
++
++#if GNULIB_defined_EILSEQ
++    case EILSEQ:
++      return "Invalid or incomplete multibyte or wide character";
++#endif
++
++    default:
++      return NULL;
++    }
++}
+diff --git a/gl/strerror-override.h b/gl/strerror-override.h
+new file mode 100644
+index 0000000..64b4be3
+--- /dev/null
++++ b/gl/strerror-override.h
+@@ -0,0 +1,56 @@
++/* strerror-override.h --- POSIX compatible system error routine
++
++   Copyright (C) 2010-2013 Free Software Foundation, Inc.
++
++   This program is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as published by
++   the Free Software Foundation; either version 2.1 of the License, or
++   (at your option) any later version.
++
++   This program is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
++
++#ifndef _GL_STRERROR_OVERRIDE_H
++# define _GL_STRERROR_OVERRIDE_H
++
++# include <errno.h>
++# include <stddef.h>
++
++/* Reasonable buffer size that should never trigger ERANGE; if this
++   proves too small, we intentionally abort(), to remind us to fix
++   this value.  */
++# define STACKBUF_LEN 256
++
++/* If ERRNUM maps to an errno value defined by gnulib, return a string
++   describing the error.  Otherwise return NULL.  */
++# if REPLACE_STRERROR_0 \
++     || GNULIB_defined_ESOCK \
++     || GNULIB_defined_ESTREAMS \
++     || GNULIB_defined_EWINSOCK \
++     || GNULIB_defined_ENOMSG \
++     || GNULIB_defined_EIDRM \
++     || GNULIB_defined_ENOLINK \
++     || GNULIB_defined_EPROTO \
++     || GNULIB_defined_EMULTIHOP \
++     || GNULIB_defined_EBADMSG \
++     || GNULIB_defined_EOVERFLOW \
++     || GNULIB_defined_ENOTSUP \
++     || GNULIB_defined_ENETRESET \
++     || GNULIB_defined_ECONNABORTED \
++     || GNULIB_defined_ESTALE \
++     || GNULIB_defined_EDQUOT \
++     || GNULIB_defined_ECANCELED \
++     || GNULIB_defined_EOWNERDEAD \
++     || GNULIB_defined_ENOTRECOVERABLE \
++     || GNULIB_defined_EILSEQ
++extern const char *strerror_override (int errnum) _GL_ATTRIBUTE_CONST;
++# else
++#  define strerror_override(ignored) NULL
++# endif
++
++#endif /* _GL_STRERROR_OVERRIDE_H */
+diff --git a/gl/strerror.c b/gl/strerror.c
+new file mode 100644
+index 0000000..54e3a14
+--- /dev/null
++++ b/gl/strerror.c
+@@ -0,0 +1,70 @@
++/* strerror.c --- POSIX compatible system error routine
++
++   Copyright (C) 2007-2013 Free Software Foundation, Inc.
++
++   This program is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as published by
++   the Free Software Foundation; either version 2.1 of the License, or
++   (at your option) any later version.
++
++   This program is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
++
++#include <config.h>
++
++/* Specification.  */
++#include <string.h>
++
++#include <errno.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++
++#include "intprops.h"
++#include "strerror-override.h"
++#include "verify.h"
++
++/* Use the system functions, not the gnulib overrides in this file.  */
++#undef sprintf
++
++char *
++strerror (int n)
++#undef strerror
++{
++  static char buf[STACKBUF_LEN];
++  size_t len;
++
++  /* Cast away const, due to the historical signature of strerror;
++     callers should not be modifying the string.  */
++  const char *msg = strerror_override (n);
++  if (msg)
++    return (char *) msg;
++
++  msg = strerror (n);
++
++  /* Our strerror_r implementation might use the system's strerror
++     buffer, so all other clients of strerror have to see the error
++     copied into a buffer that we manage.  This is not thread-safe,
++     even if the system strerror is, but portable programs shouldn't
++     be using strerror if they care about thread-safety.  */
++  if (!msg || !*msg)
++    {
++      static char const fmt[] = "Unknown error %d";
++      verify (sizeof buf >= sizeof (fmt) + INT_STRLEN_BOUND (n));
++      sprintf (buf, fmt, n);
++      errno = EINVAL;
++      return buf;
++    }
++
++  /* Fix STACKBUF_LEN if this ever aborts.  */
++  len = strlen (msg);
++  if (sizeof buf <= len)
++    abort ();
++
++  return memcpy (buf, msg, len + 1);
++}
+diff --git a/gl/tests/Makefile.am b/gl/tests/Makefile.am
+index 7fcd478..3f73f31 100644
+--- a/gl/tests/Makefile.am
++++ b/gl/tests/Makefile.am
+@@ -934,24 +934,6 @@ EXTRA_DIST += test-stdlib.c test-sys_wait.h
+ 
+ ## end   gnulib module stdlib-tests
+ 
+-## begin gnulib module strerror
+-
+-
+-EXTRA_DIST += strerror.c
+-
+-EXTRA_libtests_a_SOURCES += strerror.c
+-
+-## end   gnulib module strerror
+-
+-## begin gnulib module strerror-override
+-
+-
+-EXTRA_DIST += strerror-override.c strerror-override.h
+-
+-EXTRA_libtests_a_SOURCES += strerror-override.c
+-
+-## end   gnulib module strerror-override
+-
+ ## begin gnulib module strerror-tests
+ 
+ TESTS += test-strerror
+diff --git a/gl/tests/strerror-override.c b/gl/tests/strerror-override.c
+deleted file mode 100644
+index d0ed2fb..0000000
+--- a/gl/tests/strerror-override.c
++++ /dev/null
+@@ -1,302 +0,0 @@
+-/* strerror-override.c --- POSIX compatible system error routine
+-
+-   Copyright (C) 2010-2013 Free Software Foundation, Inc.
+-
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
+-
+-   This program is distributed in the hope that it will be useful,
+-   but WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
+-
+-   You should have received a copy of the GNU General Public License
+-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+-
+-/* Written by Bruno Haible <bruno at clisp.org>, 2010.  */
+-
+-#include <config.h>
+-
+-#include "strerror-override.h"
+-
+-#include <errno.h>
+-
+-#if GNULIB_defined_EWINSOCK /* native Windows platforms */
+-# if HAVE_WINSOCK2_H
+-#  include <winsock2.h>
+-# endif
+-#endif
+-
+-/* If ERRNUM maps to an errno value defined by gnulib, return a string
+-   describing the error.  Otherwise return NULL.  */
+-const char *
+-strerror_override (int errnum)
+-{
+-  /* These error messages are taken from glibc/sysdeps/gnu/errlist.c.  */
+-  switch (errnum)
+-    {
+-#if REPLACE_STRERROR_0
+-    case 0:
+-      return "Success";
+-#endif
+-
+-#if GNULIB_defined_ESOCK /* native Windows platforms with older <errno.h> */
+-    case EINPROGRESS:
+-      return "Operation now in progress";
+-    case EALREADY:
+-      return "Operation already in progress";
+-    case ENOTSOCK:
+-      return "Socket operation on non-socket";
+-    case EDESTADDRREQ:
+-      return "Destination address required";
+-    case EMSGSIZE:
+-      return "Message too long";
+-    case EPROTOTYPE:
+-      return "Protocol wrong type for socket";
+-    case ENOPROTOOPT:
+-      return "Protocol not available";
+-    case EPROTONOSUPPORT:
+-      return "Protocol not supported";
+-    case EOPNOTSUPP:
+-      return "Operation not supported";
+-    case EAFNOSUPPORT:
+-      return "Address family not supported by protocol";
+-    case EADDRINUSE:
+-      return "Address already in use";
+-    case EADDRNOTAVAIL:
+-      return "Cannot assign requested address";
+-    case ENETDOWN:
+-      return "Network is down";
+-    case ENETUNREACH:
+-      return "Network is unreachable";
+-    case ECONNRESET:
+-      return "Connection reset by peer";
+-    case ENOBUFS:
+-      return "No buffer space available";
+-    case EISCONN:
+-      return "Transport endpoint is already connected";
+-    case ENOTCONN:
+-      return "Transport endpoint is not connected";
+-    case ETIMEDOUT:
+-      return "Connection timed out";
+-    case ECONNREFUSED:
+-      return "Connection refused";
+-    case ELOOP:
+-      return "Too many levels of symbolic links";
+-    case EHOSTUNREACH:
+-      return "No route to host";
+-    case EWOULDBLOCK:
+-      return "Operation would block";
+-#endif
+-#if GNULIB_defined_ESTREAMS /* native Windows platforms with older <errno.h> */
+-    case ETXTBSY:
+-      return "Text file busy";
+-    case ENODATA:
+-      return "No data available";
+-    case ENOSR:
+-      return "Out of streams resources";
+-    case ENOSTR:
+-      return "Device not a stream";
+-    case ETIME:
+-      return "Timer expired";
+-    case EOTHER:
+-      return "Other error";
+-#endif
+-#if GNULIB_defined_EWINSOCK /* native Windows platforms */
+-    case ESOCKTNOSUPPORT:
+-      return "Socket type not supported";
+-    case EPFNOSUPPORT:
+-      return "Protocol family not supported";
+-    case ESHUTDOWN:
+-      return "Cannot send after transport endpoint shutdown";
+-    case ETOOMANYREFS:
+-      return "Too many references: cannot splice";
+-    case EHOSTDOWN:
+-      return "Host is down";
+-    case EPROCLIM:
+-      return "Too many processes";
+-    case EUSERS:
+-      return "Too many users";
+-    case EDQUOT:
+-      return "Disk quota exceeded";
+-    case ESTALE:
+-      return "Stale NFS file handle";
+-    case EREMOTE:
+-      return "Object is remote";
+-# if HAVE_WINSOCK2_H
+-      /* WSA_INVALID_HANDLE maps to EBADF */
+-      /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */
+-      /* WSA_INVALID_PARAMETER maps to EINVAL */
+-    case WSA_OPERATION_ABORTED:
+-      return "Overlapped operation aborted";
+-    case WSA_IO_INCOMPLETE:
+-      return "Overlapped I/O event object not in signaled state";
+-    case WSA_IO_PENDING:
+-      return "Overlapped operations will complete later";
+-      /* WSAEINTR maps to EINTR */
+-      /* WSAEBADF maps to EBADF */
+-      /* WSAEACCES maps to EACCES */
+-      /* WSAEFAULT maps to EFAULT */
+-      /* WSAEINVAL maps to EINVAL */
+-      /* WSAEMFILE maps to EMFILE */
+-      /* WSAEWOULDBLOCK maps to EWOULDBLOCK */
+-      /* WSAEINPROGRESS maps to EINPROGRESS */
+-      /* WSAEALREADY maps to EALREADY */
+-      /* WSAENOTSOCK maps to ENOTSOCK */
+-      /* WSAEDESTADDRREQ maps to EDESTADDRREQ */
+-      /* WSAEMSGSIZE maps to EMSGSIZE */
+-      /* WSAEPROTOTYPE maps to EPROTOTYPE */
+-      /* WSAENOPROTOOPT maps to ENOPROTOOPT */
+-      /* WSAEPROTONOSUPPORT maps to EPROTONOSUPPORT */
+-      /* WSAESOCKTNOSUPPORT is ESOCKTNOSUPPORT */
+-      /* WSAEOPNOTSUPP maps to EOPNOTSUPP */
+-      /* WSAEPFNOSUPPORT is EPFNOSUPPORT */
+-      /* WSAEAFNOSUPPORT maps to EAFNOSUPPORT */
+-      /* WSAEADDRINUSE maps to EADDRINUSE */
+-      /* WSAEADDRNOTAVAIL maps to EADDRNOTAVAIL */
+-      /* WSAENETDOWN maps to ENETDOWN */
+-      /* WSAENETUNREACH maps to ENETUNREACH */
+-      /* WSAENETRESET maps to ENETRESET */
+-      /* WSAECONNABORTED maps to ECONNABORTED */
+-      /* WSAECONNRESET maps to ECONNRESET */
+-      /* WSAENOBUFS maps to ENOBUFS */
+-      /* WSAEISCONN maps to EISCONN */
+-      /* WSAENOTCONN maps to ENOTCONN */
+-      /* WSAESHUTDOWN is ESHUTDOWN */
+-      /* WSAETOOMANYREFS is ETOOMANYREFS */
+-      /* WSAETIMEDOUT maps to ETIMEDOUT */
+-      /* WSAECONNREFUSED maps to ECONNREFUSED */
+-      /* WSAELOOP maps to ELOOP */
+-      /* WSAENAMETOOLONG maps to ENAMETOOLONG */
+-      /* WSAEHOSTDOWN is EHOSTDOWN */
+-      /* WSAEHOSTUNREACH maps to EHOSTUNREACH */
+-      /* WSAENOTEMPTY maps to ENOTEMPTY */
+-      /* WSAEPROCLIM is EPROCLIM */
+-      /* WSAEUSERS is EUSERS */
+-      /* WSAEDQUOT is EDQUOT */
+-      /* WSAESTALE is ESTALE */
+-      /* WSAEREMOTE is EREMOTE */
+-    case WSASYSNOTREADY:
+-      return "Network subsystem is unavailable";
+-    case WSAVERNOTSUPPORTED:
+-      return "Winsock.dll version out of range";
+-    case WSANOTINITIALISED:
+-      return "Successful WSAStartup not yet performed";
+-    case WSAEDISCON:
+-      return "Graceful shutdown in progress";
+-    case WSAENOMORE: case WSA_E_NO_MORE:
+-      return "No more results";
+-    case WSAECANCELLED: case WSA_E_CANCELLED:
+-      return "Call was canceled";
+-    case WSAEINVALIDPROCTABLE:
+-      return "Procedure call table is invalid";
+-    case WSAEINVALIDPROVIDER:
+-      return "Service provider is invalid";
+-    case WSAEPROVIDERFAILEDINIT:
+-      return "Service provider failed to initialize";
+-    case WSASYSCALLFAILURE:
+-      return "System call failure";
+-    case WSASERVICE_NOT_FOUND:
+-      return "Service not found";
+-    case WSATYPE_NOT_FOUND:
+-      return "Class type not found";
+-    case WSAEREFUSED:
+-      return "Database query was refused";
+-    case WSAHOST_NOT_FOUND:
+-      return "Host not found";
+-    case WSATRY_AGAIN:
+-      return "Nonauthoritative host not found";
+-    case WSANO_RECOVERY:
+-      return "Nonrecoverable error";
+-    case WSANO_DATA:
+-      return "Valid name, no data record of requested type";
+-      /* WSA_QOS_* omitted */
+-# endif
+-#endif
+-
+-#if GNULIB_defined_ENOMSG
+-    case ENOMSG:
+-      return "No message of desired type";
+-#endif
+-
+-#if GNULIB_defined_EIDRM
+-    case EIDRM:
+-      return "Identifier removed";
+-#endif
+-
+-#if GNULIB_defined_ENOLINK
+-    case ENOLINK:
+-      return "Link has been severed";
+-#endif
+-
+-#if GNULIB_defined_EPROTO
+-    case EPROTO:
+-      return "Protocol error";
+-#endif
+-
+-#if GNULIB_defined_EMULTIHOP
+-    case EMULTIHOP:
+-      return "Multihop attempted";
+-#endif
+-
+-#if GNULIB_defined_EBADMSG
+-    case EBADMSG:
+-      return "Bad message";
+-#endif
+-
+-#if GNULIB_defined_EOVERFLOW
+-    case EOVERFLOW:
+-      return "Value too large for defined data type";
+-#endif
+-
+-#if GNULIB_defined_ENOTSUP
+-    case ENOTSUP:
+-      return "Not supported";
+-#endif
+-
+-#if GNULIB_defined_ENETRESET
+-    case ENETRESET:
+-      return "Network dropped connection on reset";
+-#endif
+-
+-#if GNULIB_defined_ECONNABORTED
+-    case ECONNABORTED:
+-      return "Software caused connection abort";
+-#endif
+-
+-#if GNULIB_defined_ESTALE
+-    case ESTALE:
+-      return "Stale NFS file handle";
+-#endif
+-
+-#if GNULIB_defined_EDQUOT
+-    case EDQUOT:
+-      return "Disk quota exceeded";
+-#endif
+-
+-#if GNULIB_defined_ECANCELED
+-    case ECANCELED:
+-      return "Operation canceled";
+-#endif
+-
+-#if GNULIB_defined_EOWNERDEAD
+-    case EOWNERDEAD:
+-      return "Owner died";
+-#endif
+-
+-#if GNULIB_defined_ENOTRECOVERABLE
+-    case ENOTRECOVERABLE:
+-      return "State not recoverable";
+-#endif
+-
+-#if GNULIB_defined_EILSEQ
+-    case EILSEQ:
+-      return "Invalid or incomplete multibyte or wide character";
+-#endif
+-
+-    default:
+-      return NULL;
+-    }
+-}
+diff --git a/gl/tests/strerror-override.h b/gl/tests/strerror-override.h
+deleted file mode 100644
+index 0d086b8..0000000
+--- a/gl/tests/strerror-override.h
++++ /dev/null
+@@ -1,56 +0,0 @@
+-/* strerror-override.h --- POSIX compatible system error routine
+-
+-   Copyright (C) 2010-2013 Free Software Foundation, Inc.
+-
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
+-
+-   This program is distributed in the hope that it will be useful,
+-   but WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
+-
+-   You should have received a copy of the GNU General Public License
+-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+-
+-#ifndef _GL_STRERROR_OVERRIDE_H
+-# define _GL_STRERROR_OVERRIDE_H
+-
+-# include <errno.h>
+-# include <stddef.h>
+-
+-/* Reasonable buffer size that should never trigger ERANGE; if this
+-   proves too small, we intentionally abort(), to remind us to fix
+-   this value.  */
+-# define STACKBUF_LEN 256
+-
+-/* If ERRNUM maps to an errno value defined by gnulib, return a string
+-   describing the error.  Otherwise return NULL.  */
+-# if REPLACE_STRERROR_0 \
+-     || GNULIB_defined_ESOCK \
+-     || GNULIB_defined_ESTREAMS \
+-     || GNULIB_defined_EWINSOCK \
+-     || GNULIB_defined_ENOMSG \
+-     || GNULIB_defined_EIDRM \
+-     || GNULIB_defined_ENOLINK \
+-     || GNULIB_defined_EPROTO \
+-     || GNULIB_defined_EMULTIHOP \
+-     || GNULIB_defined_EBADMSG \
+-     || GNULIB_defined_EOVERFLOW \
+-     || GNULIB_defined_ENOTSUP \
+-     || GNULIB_defined_ENETRESET \
+-     || GNULIB_defined_ECONNABORTED \
+-     || GNULIB_defined_ESTALE \
+-     || GNULIB_defined_EDQUOT \
+-     || GNULIB_defined_ECANCELED \
+-     || GNULIB_defined_EOWNERDEAD \
+-     || GNULIB_defined_ENOTRECOVERABLE \
+-     || GNULIB_defined_EILSEQ
+-extern const char *strerror_override (int errnum) _GL_ATTRIBUTE_CONST;
+-# else
+-#  define strerror_override(ignored) NULL
+-# endif
+-
+-#endif /* _GL_STRERROR_OVERRIDE_H */
+diff --git a/gl/tests/strerror.c b/gl/tests/strerror.c
+deleted file mode 100644
+index 80a2f2e..0000000
+--- a/gl/tests/strerror.c
++++ /dev/null
+@@ -1,70 +0,0 @@
+-/* strerror.c --- POSIX compatible system error routine
+-
+-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+-
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
+-
+-   This program is distributed in the hope that it will be useful,
+-   but WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
+-
+-   You should have received a copy of the GNU General Public License
+-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+-
+-#include <config.h>
+-
+-/* Specification.  */
+-#include <string.h>
+-
+-#include <errno.h>
+-#include <stdio.h>
+-#include <stdlib.h>
+-#include <string.h>
+-
+-#include "intprops.h"
+-#include "strerror-override.h"
+-#include "verify.h"
+-
+-/* Use the system functions, not the gnulib overrides in this file.  */
+-#undef sprintf
+-
+-char *
+-strerror (int n)
+-#undef strerror
+-{
+-  static char buf[STACKBUF_LEN];
+-  size_t len;
+-
+-  /* Cast away const, due to the historical signature of strerror;
+-     callers should not be modifying the string.  */
+-  const char *msg = strerror_override (n);
+-  if (msg)
+-    return (char *) msg;
+-
+-  msg = strerror (n);
+-
+-  /* Our strerror_r implementation might use the system's strerror
+-     buffer, so all other clients of strerror have to see the error
+-     copied into a buffer that we manage.  This is not thread-safe,
+-     even if the system strerror is, but portable programs shouldn't
+-     be using strerror if they care about thread-safety.  */
+-  if (!msg || !*msg)
+-    {
+-      static char const fmt[] = "Unknown error %d";
+-      verify (sizeof buf >= sizeof (fmt) + INT_STRLEN_BOUND (n));
+-      sprintf (buf, fmt, n);
+-      errno = EINVAL;
+-      return buf;
+-    }
+-
+-  /* Fix STACKBUF_LEN if this ever aborts.  */
+-  len = strlen (msg);
+-  if (sizeof buf <= len)
+-    abort ();
+-
+-  return memcpy (buf, msg, len + 1);
+-}
+-- 
+1.7.10.4
+




More information about the Pkg-gnutls-commits mailing list