get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/807222/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 807222,
    "url": "http://patchwork.ozlabs.org/api/patches/807222/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/glibc/patch/20170829184247.6875-1-zackw@panix.com/",
    "project": {
        "id": 41,
        "url": "http://patchwork.ozlabs.org/api/projects/41/?format=api",
        "name": "GNU C Library",
        "link_name": "glibc",
        "list_id": "libc-alpha.sourceware.org",
        "list_email": "libc-alpha@sourceware.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20170829184247.6875-1-zackw@panix.com>",
    "list_archive_url": null,
    "date": "2017-08-29T18:42:47",
    "name": "Deprecate libcrypt and don't build it by default.",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "842a3d2042d4b2c4590340f40ea4619e760f5b41",
    "submitter": {
        "id": 65878,
        "url": "http://patchwork.ozlabs.org/api/people/65878/?format=api",
        "name": "Zack Weinberg",
        "email": "zackw@panix.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/glibc/patch/20170829184247.6875-1-zackw@panix.com/mbox/",
    "series": [
        {
            "id": 433,
            "url": "http://patchwork.ozlabs.org/api/series/433/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/glibc/list/?series=433",
            "date": "2017-08-29T18:42:47",
            "name": "Deprecate libcrypt and don't build it by default.",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/433/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/807222/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/807222/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<libc-alpha-return-83841-incoming=patchwork.ozlabs.org@sourceware.org>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": [
            "patchwork-incoming@bilbo.ozlabs.org",
            "mailing list libc-alpha@sourceware.org"
        ],
        "Authentication-Results": [
            "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=sourceware.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=libc-alpha-return-83841-incoming=patchwork.ozlabs.org@sourceware.org;\n\treceiver=<UNKNOWN>)",
            "ozlabs.org; dkim=pass (1024-bit key;\n\tsecure) header.d=sourceware.org header.i=@sourceware.org\n\theader.b=\"wNJzQac3\"; dkim-atps=neutral",
            "sourceware.org; auth=none"
        ],
        "Received": [
            "from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xhcvw5XN8z9sP5\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 30 Aug 2017 04:43:08 +1000 (AEST)",
            "(qmail 130710 invoked by alias); 29 Aug 2017 18:43:00 -0000",
            "(qmail 130658 invoked by uid 89); 29 Aug 2017 18:43:00 -0000"
        ],
        "DomainKey-Signature": "a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id\n\t:list-unsubscribe:list-subscribe:list-archive:list-post\n\t:list-help:sender:from:to:cc:subject:date:message-id\n\t:mime-version:content-type:content-transfer-encoding; q=dns; s=\n\tdefault; b=KLFw8tQA6H72pUfNSlvLZaTMt9rfGaMcN/niK/ofkzT8/9BZOc3YJ\n\t3FGnLGNUJWHoJQgm/1NygNCQzAb7Maq5BecHmo6IFtOxIUqI1/Now6zSecAViBe5\n\taVarg3Ie+Ucs/mE9cvIRygzxyUm4kQFs+km4/UBR30ZE3PTRIWAkhs=",
        "DKIM-Signature": "v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id\n\t:list-unsubscribe:list-subscribe:list-archive:list-post\n\t:list-help:sender:from:to:cc:subject:date:message-id\n\t:mime-version:content-type:content-transfer-encoding; s=default;\n\tbh=rhnTACV6dtnWENUcKR6lkizo4QI=; b=wNJzQac3ZORf78JAefyWnZdq0lhf\n\tC4IJfLCcNOPQXftsrGkC+7d/roUOVmjbCatPmDdXj7GMpyTkRlcKs8MWE+4mK7xT\n\tiHGINeicd5YnzrbQxnqCX30iwQm2oWf1J981tUO8W6wWG8h1a9vqNSZiDNODxyiw\n\t6jTl+oz6zIRuE+Y=",
        "Mailing-List": "contact libc-alpha-help@sourceware.org; run by ezmlm",
        "Precedence": "bulk",
        "List-Id": "<libc-alpha.sourceware.org>",
        "List-Unsubscribe": "<mailto:libc-alpha-unsubscribe-incoming=patchwork.ozlabs.org@sourceware.org>",
        "List-Subscribe": "<mailto:libc-alpha-subscribe@sourceware.org>",
        "List-Archive": "<http://sourceware.org/ml/libc-alpha/>",
        "List-Post": "<mailto:libc-alpha@sourceware.org>",
        "List-Help": "<mailto:libc-alpha-help@sourceware.org>,\n\t<http://sourceware.org/ml/#faqs>",
        "Sender": "libc-alpha-owner@sourceware.org",
        "X-Virus-Found": "No",
        "X-Spam-SWARE-Status": "No, score=-25.6 required=5.0 tests=AWL, BAYES_00,\n\tGIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3,\n\tRP_MATCHES_RCVD,\n\tSPF_PASS autolearn=ham version=3.3.2 spammy=DES, encryption,\n\tformerly, H*MI:6875",
        "X-HELO": "mailbackend.panix.com",
        "From": "Zack Weinberg <zackw@panix.com>",
        "To": "libc-alpha@sourceware.org",
        "Cc": "bjoern.esser@gmail.com,\n\tfweimer@redhat.com,\n\tjoseph@codesourcery.com",
        "Subject": "[PATCH] Deprecate libcrypt and don't build it by default.",
        "Date": "Tue, 29 Aug 2017 14:42:47 -0400",
        "Message-Id": "<20170829184247.6875-1-zackw@panix.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit"
    },
    "content": "Back in June, Björn Esser proposed to add OpenBSD-compatible bcrypt\nsupport to our implementation of crypt(3), and I replied that it might\nactually make more sense to _remove_ libcrypt from glibc, freeing up\nlibcrypt.so.1 and crypt.h to be provided by a separate project that\ncould move faster.  (For instance, libxcrypt:\nhttps://github.com/besser82/libxcrypt)\n\nThis patch disables build and installation of libcrypt by default.  It\ncan be re-enabled with --enable-obsolete-crypt to configure.  Unlike\nlibnsl, we do *not* install a runtime shared library; that's left to\nthe replacement.  (Unlike the SunRPC situation, I think we can\nprobably drop this code altogether in a release or two.)\n\nThe function prototypes for crypt and encrypt are removed from\nunistd.h, and the function prototype for setkey is removed from\nstdlib.h; they do *not* come back with --enable-obsolete-crypt.  This\nmeans glibc no longer provides the POSIX CRYPT option, and the macro\n_XOPEN_CRYPT is also removed from unistd.h to indicate that.\n(_SC_XOPEN_CRYPT is still defined, but sysconf(_SC_XOPEN_CRYPT) will\nreturn -1 at runtime.)  These functions are also unconditionally\nremoved from conform/data/{stdlib,unistd}.h-data.\n\n\t* posix/unistd.h (_XOPEN_CRYPT, crypt, encrypt): Don't declare.\n\t* stdlib/stdlib.h (setkey): Don't declare.\n\n\t* configure.ac (--enable-obsolete-crypt): New configure option.\n\t* configure: Regenerate.\n\t* config.make.in (build-obsolete-crypt): New makefile variable.\n\t* crypt/Banner: Delete file.\n\t* crypt/Makefile: Don't build anything unless\n\t$(build-obsolete-crypt) is 'yes'.\n\t* sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile: Only add things\n\tto libcrypt-sysdep_routines when $(build-obsolete-crypt) is 'yes'.\n\t* sysdeps/sparc/sparc64/multiarch/Makefile: Likewise.\n\t* sysdeps/unix/sysv/linux/arm/Makefile: Likewise.\n\n\t* conform/Makefile: Only include libcrypt.a in linknamespace tests\n\twhen $(build-obsolete-crypt) is 'yes'.\n\t* conform/data/stdlib.h-data (setkey): Don't expect.\n\t* conform/data/unistd.h-data (crypt, encrypt): Don't expect.\n\t* elf/Makefile: Only perform various tests of libcrypt.so/libcrypt.a\n\twhen $(build-obsolete-crypt) is 'yes'.\n\t* elf/tst-linkall-static.c: Don't include crypt.h when USE_CRYPT\n\tis false.\n---\n NEWS                                             | 18 ++++++++++++++++++\n config.make.in                                   |  1 +\n configure                                        | 13 +++++++++++++\n configure.ac                                     |  8 ++++++++\n conform/Makefile                                 | 14 ++++++++++----\n conform/data/stdlib.h-data                       |  3 ---\n conform/data/unistd.h-data                       |  6 ------\n crypt/Banner                                     |  1 -\n crypt/Makefile                                   |  5 +++++\n elf/Makefile                                     | 14 +++++++++++---\n elf/tst-linkall-static.c                         |  2 ++\n posix/unistd.h                                   | 16 ----------------\n stdlib/stdlib.h                                  |  6 ------\n sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile |  2 ++\n sysdeps/sparc/sparc64/multiarch/Makefile         |  2 ++\n sysdeps/unix/sysv/linux/arm/Makefile             |  2 ++\n 16 files changed, 74 insertions(+), 39 deletions(-)\n delete mode 100644 crypt/Banner",
    "diff": "diff --git a/NEWS b/NEWS\nindex 8fe0879bc44..9a35ca4a050 100644\n--- a/NEWS\n+++ b/NEWS\n@@ -14,6 +14,24 @@ Major new features:\n \n Deprecated and removed features, and other changes affecting compatibility:\n \n+* The password-hashing library is deprecated, and will not be built or\n+  installed by default.  This only affects programs that link with -lcrypt,\n+  include the header <crypt.h>, use the functions 'crypt', 'encrypt', or\n+  'setkey' (which were formerly declared in <unistd.h> and/or <stdlib.h>),\n+  or inspect the feature-test macro _XOPEN_CRYPT.\n+\n+  A drop-in replacement for libcrypt and crypt.h is available from\n+  https://github.com/besser82/libxcrypt.  It also supports newer and more\n+  secure password hashes.\n+\n+  The configure option --enable-obsolete-crypt will cause libcrypt and\n+  crypt.h to be built and installed, but will not restore the declarations\n+  of 'crypt', 'encrypt', and 'setkey' in other headers, nor will it cause\n+  the feature-test macro _XOPEN_CRYPT to be defined.\n+\n+  Note that the configure option --enable-nss-crypt only affects libcrypt,\n+  and therefore will only have an effect when --enable-obsolete-crypt is used.\n+\n * On GNU/Linux, the obsolete Linux constant PTRACE_SEIZE_DEVEL is no longer\n   defined by <sys/ptrace.h>.\n \ndiff --git a/config.make.in b/config.make.in\nindex ea7a42cc191..ad8de5e3ed0 100644\n--- a/config.make.in\n+++ b/config.make.in\n@@ -81,6 +81,7 @@ mach-interface-list = @mach_interface_list@\n \n experimental-malloc = @experimental_malloc@\n \n+build-obsolete-crypt = @build_obsolete_crypt@\n nss-crypt = @libc_cv_nss_crypt@\n static-nss-crypt = @libc_cv_static_nss_crypt@\n \ndiff --git a/configure b/configure\nindex 5cb52101077..5e2af72678b 100755\n--- a/configure\n+++ b/configure\n@@ -672,6 +672,7 @@ add_ons\n have_tunables\n build_pt_chown\n build_nscd\n+build_obsolete_crypt\n build_obsolete_nsl\n link_obsolete_rpc\n libc_cv_static_nss_crypt\n@@ -786,6 +787,7 @@ enable_experimental_malloc\n enable_nss_crypt\n enable_obsolete_rpc\n enable_obsolete_nsl\n+enable_obsolete_crypt\n enable_systemtap\n enable_build_nscd\n enable_nscd\n@@ -1461,6 +1463,7 @@ Optional Features:\n                           link-time usage\n   --enable-obsolete-nsl   build and install the obsolete libnsl library and\n                           depending NSS modules\n+  --enable-obsolete-crypt build and install the obsolete libcrypt library\n   --enable-systemtap      enable systemtap static probe points [default=no]\n   --disable-build-nscd    disable building and installing the nscd daemon\n   --disable-nscd          library functions will not contact the nscd daemon\n@@ -3660,6 +3663,16 @@ if test \"$build_obsolete_nsl\" = yes; then\n \n fi\n \n+# Check whether --enable-obsolete-crypt was given.\n+if test \"${enable_obsolete_crypt+set}\" = set; then :\n+  enableval=$enable_obsolete_crypt; build_obsolete_crypt=$enableval\n+else\n+  build_obsolete_crypt=no\n+fi\n+\n+\n+\n+\n # Check whether --enable-systemtap was given.\n if test \"${enable_systemtap+set}\" = set; then :\n   enableval=$enable_systemtap; systemtap=$enableval\ndiff --git a/configure.ac b/configure.ac\nindex 2c6308883c5..6ac1a826e26 100644\n--- a/configure.ac\n+++ b/configure.ac\n@@ -392,6 +392,14 @@ if test \"$build_obsolete_nsl\" = yes; then\n   AC_DEFINE(LINK_OBSOLETE_NSL)\n fi\n \n+AC_ARG_ENABLE([obsolete-crypt],\n+              AC_HELP_STRING([--enable-obsolete-crypt],\n+                             [build and install the obsolete libcrypt library]),\n+              [build_obsolete_crypt=$enableval],\n+              [build_obsolete_crypt=no])\n+AC_SUBST(build_obsolete_crypt)\n+\n+\n AC_ARG_ENABLE([systemtap],\n               [AS_HELP_STRING([--enable-systemtap],\n \t       [enable systemtap static probe points @<:@default=no@:>@])],\ndiff --git a/conform/Makefile b/conform/Makefile\nindex 9ec41c7244a..8f2a329a188 100644\n--- a/conform/Makefile\n+++ b/conform/Makefile\n@@ -208,22 +208,28 @@ linknamespace-libs-thr = $(linknamespace-libs-isoc) \\\n \t\t\t $(common-objpfx)rt/librt.a $(static-thread-library)\n linknamespace-libs-posix = $(linknamespace-libs-thr) \\\n \t\t\t   $(common-objpfx)dlfcn/libdl.a\n-linknamespace-libs-xsi = $(linknamespace-libs-posix) \\\n-\t\t\t $(common-objpfx)crypt/libcrypt.a\n+linknamespace-libs-xsi = $(linknamespace-libs-posix)\n linknamespace-libs-ISO = $(linknamespace-libs-isoc)\n linknamespace-libs-ISO99 = $(linknamespace-libs-isoc)\n linknamespace-libs-ISO11 = $(linknamespace-libs-isoc)\n-linknamespace-libs-XPG4 = $(linknamespace-libs-isoc) \\\n-\t\t\t  $(common-objpfx)crypt/libcrypt.a\n+linknamespace-libs-XPG4 = $(linknamespace-libs-isoc)\n linknamespace-libs-XPG42 = $(linknamespace-libs-XPG4)\n linknamespace-libs-POSIX = $(linknamespace-libs-thr)\n linknamespace-libs-UNIX98 = $(linknamespace-libs-xsi)\n linknamespace-libs-XOPEN2K = $(linknamespace-libs-xsi)\n linknamespace-libs-POSIX2008 = $(linknamespace-libs-posix)\n linknamespace-libs-XOPEN2K8 = $(linknamespace-libs-xsi)\n+\n+ifeq ($(build-obsolete-crypt),yes)\n+linknamespace-libs-xsi += $(common-objpfx)crypt/libcrypt.a\n+linknamespace-libs-XPG4 += $(common-objpfx)crypt/libcrypt.a\n+endif\n+\n linknamespace-libs = $(foreach std,$(conformtest-standards),\\\n \t\t\t\t   $(linknamespace-libs-$(std)))\n \n+\n+\n $(linknamespace-symlist-stdlibs-tests): $(objpfx)symlist-stdlibs-%: \\\n \t\t\t\t\t$(linknamespace-libs)\n \tLC_ALL=C $(READELF) -W -s $(linknamespace-libs-$*) > $@; \\\ndiff --git a/conform/data/stdlib.h-data b/conform/data/stdlib.h-data\nindex d8fcccc2fba..6913828196f 100644\n--- a/conform/data/stdlib.h-data\n+++ b/conform/data/stdlib.h-data\n@@ -149,9 +149,6 @@ function {unsigned short int*} seed48 (unsigned short int[3])\n #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98\n function int setenv (const char*, const char*, int)\n #endif\n-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008\n-function void setkey (const char*)\n-#endif\n #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008\n function {char*} setstate (char*)\n #endif\ndiff --git a/conform/data/unistd.h-data b/conform/data/unistd.h-data\nindex ddf4f251326..aa070528e83 100644\n--- a/conform/data/unistd.h-data\n+++ b/conform/data/unistd.h-data\n@@ -437,9 +437,6 @@ function int chroot (const char*)\n function int chown (const char*, uid_t, gid_t)\n function int close (int)\n function size_t confstr (int, char*, size_t)\n-#if !defined POSIX && !defined POSIX2008\n-function {char*} crypt (const char*, const char*)\n-#endif\n #if defined XPG4 || defined XPG42 || defined UNIX98\n function {char*} ctermid (char*)\n function {char*} cuserid (char*)\n@@ -449,9 +446,6 @@ allow cuserid\n #endif\n function int dup (int)\n function int dup2 (int, int)\n-#if !defined POSIX && !defined POSIX2008\n-function void encrypt (char[64], int)\n-#endif\n function int execl (const char*, const char*, ...)\n function int execle (const char*, const char*, ...)\n function int execlp (const char*, const char*, ...)\ndiff --git a/crypt/Banner b/crypt/Banner\ndeleted file mode 100644\nindex 9cb25bdf0c4..00000000000\n--- a/crypt/Banner\n+++ /dev/null\n@@ -1 +0,0 @@\n-crypt add-on version 2.1 by Michael Glad and others\ndiff --git a/crypt/Makefile b/crypt/Makefile\nindex 0280fba8a71..a7485de290b 100644\n--- a/crypt/Makefile\n+++ b/crypt/Makefile\n@@ -22,6 +22,8 @@ subdir\t:= crypt\n \n include ../Makeconfig\n \n+ifeq ($(build-obsolete-crypt),yes)\n+\n headers := crypt.h\n \n extra-libs := libcrypt\n@@ -50,9 +52,11 @@ tests += md5test sha256test sha512test\n # machine over a minute.\n xtests = md5test-giant\n endif\n+endif\n \n include ../Rules\n \n+ifeq ($(build-obsolete-crypt),yes)\n ifneq ($(nss-crypt),yes)\n md5-routines := md5 $(filter md5%,$(libcrypt-sysdep_routines))\n sha256-routines := sha256 $(filter sha256%,$(libcrypt-sysdep_routines))\n@@ -69,3 +73,4 @@ $(addprefix $(objpfx),$(tests)): $(objpfx)libcrypt.so\n else\n $(addprefix $(objpfx),$(tests)): $(objpfx)libcrypt.a\n endif\n+endif\ndiff --git a/elf/Makefile b/elf/Makefile\nindex 7cf959aabdf..82ee6e8d39c 100644\n--- a/elf/Makefile\n+++ b/elf/Makefile\n@@ -378,8 +378,9 @@ $(objpfx)tst-_dl_addr_inside_object: $(objpfx)dl-addr-obj.os\n CFLAGS-tst-_dl_addr_inside_object.c += $(PIE-ccflag)\n endif\n \n-# By default tst-linkall-static should try to use crypt routines to test\n-# static libcrypt use.\n+ifeq ($(build-obsolete-crypt),yes)\n+# If the libcrypt library is being built, tst-linkall-static should\n+# try to use crypt routines to test static libcrypt use.\n CFLAGS-tst-linkall-static.c = -DUSE_CRYPT=1\n # However, if we are using NSS crypto and we don't have a static\n # library, then we exclude the use of crypt functions in the test.\n@@ -387,6 +388,9 @@ CFLAGS-tst-linkall-static.c = -DUSE_CRYPT=1\n ifeq (yesno,$(nss-crypt)$(static-nss-crypt))\n CFLAGS-tst-linkall-static.c = -DUSE_CRYPT=0\n endif\n+else\n+CFLAGS-tst-linkall-static.c = -DUSE_CRYPT=0\n+endif\n \n include ../Rules\n \n@@ -1106,8 +1110,10 @@ localplt-built-dso := $(addprefix $(common-objpfx),\\\n \t\t\t\t  rt/librt.so \\\n \t\t\t\t  dlfcn/libdl.so \\\n \t\t\t\t  resolv/libresolv.so \\\n-\t\t\t\t  crypt/libcrypt.so \\\n \t\t       )\n+ifeq ($(build-obsolete-crypt),yes)\n+localplt-built-dso += $(addprefix $(common-objpfx), crypt/libcrypt.so)\n+endif\n ifeq ($(build-mathvec),yes)\n localplt-built-dso += $(addprefix $(common-objpfx), mathvec/libmvec.so)\n endif\n@@ -1388,6 +1394,7 @@ $(objpfx)tst-linkall-static: \\\n   $(common-objpfx)resolv/libanl.a \\\n   $(static-thread-library)\n \n+ifeq ($(build-obsolete-crypt),yes)\n # If we are using NSS crypto and we have the ability to link statically\n # then we include libcrypt.a, otherwise we leave out libcrypt.a and\n # link as much as we can into the tst-linkall-static test.  This assumes\n@@ -1403,6 +1410,7 @@ ifeq (no,$(nss-crypt))\n $(objpfx)tst-linkall-static: \\\n   $(common-objpfx)crypt/libcrypt.a\n endif\n+endif\n \n # The application depends on the DSO, and the DSO loads the plugin.\n # The plugin also depends on the DSO. This creates the circular\ndiff --git a/elf/tst-linkall-static.c b/elf/tst-linkall-static.c\nindex 8f40657244a..cf58f21e0c3 100644\n--- a/elf/tst-linkall-static.c\n+++ b/elf/tst-linkall-static.c\n@@ -18,7 +18,9 @@\n \n #include <math.h>\n #include <pthread.h>\n+#if USE_CRYPT\n #include <crypt.h>\n+#endif\n #include <resolv.h>\n #include <dlfcn.h>\n #include <utmp.h>\ndiff --git a/posix/unistd.h b/posix/unistd.h\nindex 32b0f4898fd..299b9a34857 100644\n--- a/posix/unistd.h\n+++ b/posix/unistd.h\n@@ -107,9 +107,6 @@ __BEGIN_DECLS\n /* The X/Open Unix extensions are available.  */\n #define _XOPEN_UNIX\t1\n \n-/* Encryption is present.  */\n-#define\t_XOPEN_CRYPT\t1\n-\n /* The enhanced internationalization capabilities according to XPG4.2\n    are present.  */\n #define\t_XOPEN_ENH_I18N\t1\n@@ -1113,20 +1110,7 @@ extern int lockf64 (int __fd, int __cmd, __off64_t __len) __wur;\n extern int fdatasync (int __fildes);\n #endif /* Use POSIX199309 */\n \n-\n-/* XPG4.2 specifies that prototypes for the encryption functions must\n-   be defined here.  */\n #ifdef\t__USE_XOPEN\n-/* Encrypt at most 8 characters from KEY using salt to perturb DES.  */\n-extern char *crypt (const char *__key, const char *__salt)\n-     __THROW __nonnull ((1, 2));\n-\n-/* Encrypt data in BLOCK in place if EDFLAG is zero; otherwise decrypt\n-   block in place.  */\n-extern void encrypt (char *__glibc_block, int __edflag)\n-     __THROW __nonnull ((1));\n-\n-\n /* Swab pairs bytes in the first N bytes of the area pointed to by\n    FROM and copy the result to TO.  The value of TO must not be in the\n    range [FROM - N + 1, FROM - 1].  If N is odd the first byte in FROM\ndiff --git a/stdlib/stdlib.h b/stdlib/stdlib.h\nindex 7a720cfd11e..87e1138c272 100644\n--- a/stdlib/stdlib.h\n+++ b/stdlib/stdlib.h\n@@ -843,12 +843,6 @@ extern int getsubopt (char **__restrict __optionp,\n #endif\n \n \n-#ifdef __USE_XOPEN\n-/* Setup DES tables according KEY.  */\n-extern void setkey (const char *__key) __THROW __nonnull ((1));\n-#endif\n-\n-\n /* X/Open pseudo terminal handling.  */\n \n #ifdef __USE_XOPEN2KXSI\ndiff --git a/sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile b/sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile\nindex 4ad7aff9147..5e9b3e5f03f 100644\n--- a/sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile\n+++ b/sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile\n@@ -1,6 +1,8 @@\n ifeq ($(subdir),crypt)\n+ifeq ($(build-obsolete-crypt),yes)\n libcrypt-sysdep_routines += md5-crop sha256-crop sha512-crop\n endif\n+endif\n \n ifeq ($(subdir),locale)\n localedef-aux += md5-crop\ndiff --git a/sysdeps/sparc/sparc64/multiarch/Makefile b/sysdeps/sparc/sparc64/multiarch/Makefile\nindex 55b757f9add..60d528b88c9 100644\n--- a/sysdeps/sparc/sparc64/multiarch/Makefile\n+++ b/sysdeps/sparc/sparc64/multiarch/Makefile\n@@ -1,6 +1,8 @@\n ifeq ($(subdir),crypt)\n+ifeq ($(build-obsolete-crypt),yes)\n libcrypt-sysdep_routines += md5-crop sha256-crop sha512-crop\n endif\n+endif\n \n ifeq ($(subdir),locale)\n localedef-aux += md5-crop\ndiff --git a/sysdeps/unix/sysv/linux/arm/Makefile b/sysdeps/unix/sysv/linux/arm/Makefile\nindex 4adc35de04a..6cab4f3a31a 100644\n--- a/sysdeps/unix/sysv/linux/arm/Makefile\n+++ b/sysdeps/unix/sysv/linux/arm/Makefile\n@@ -19,8 +19,10 @@ endif\n # Add a syscall function to each library that needs one.\n \n ifeq ($(subdir),crypt)\n+ifeq ($(build-obsolete-crypt),yes)\n libcrypt-sysdep_routines += libc-do-syscall\n endif\n+endif\n \n ifeq ($(subdir),rt)\n librt-sysdep_routines += libc-do-syscall\n",
    "prefixes": []
}