get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 809149,
    "url": "http://patchwork.ozlabs.org/api/patches/809149/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/buildroot/patch/20170902205423.21288-11-romain.naour@gmail.com/",
    "project": {
        "id": 27,
        "url": "http://patchwork.ozlabs.org/api/projects/27/?format=api",
        "name": "Buildroot development",
        "link_name": "buildroot",
        "list_id": "buildroot.buildroot.org",
        "list_email": "buildroot@buildroot.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20170902205423.21288-11-romain.naour@gmail.com>",
    "list_archive_url": null,
    "date": "2017-09-02T20:54:22",
    "name": "[v2,10/11] package/glibc: bump to 2.26",
    "commit_ref": null,
    "pull_url": null,
    "state": "awaiting-upstream",
    "archived": false,
    "hash": "8476d51755f4ff5c41d86aeada8107ef8acfd44a",
    "submitter": {
        "id": 67942,
        "url": "http://patchwork.ozlabs.org/api/people/67942/?format=api",
        "name": "Romain Naour",
        "email": "romain.naour@gmail.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/buildroot/patch/20170902205423.21288-11-romain.naour@gmail.com/mbox/",
    "series": [
        {
            "id": 1178,
            "url": "http://patchwork.ozlabs.org/api/series/1178/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/buildroot/list/?series=1178",
            "date": "2017-09-02T20:54:12",
            "name": "glibc: bump to 2.26",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/1178/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/809149/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/809149/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<buildroot-bounces@busybox.net>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "buildroot@lists.busybox.net"
        ],
        "Delivered-To": [
            "patchwork-incoming@bilbo.ozlabs.org",
            "buildroot@osuosl.org"
        ],
        "Authentication-Results": [
            "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=busybox.net\n\t(client-ip=140.211.166.137; helo=fraxinus.osuosl.org;\n\tenvelope-from=buildroot-bounces@busybox.net;\n\treceiver=<UNKNOWN>)",
            "ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"dc6ryCYY\"; dkim-atps=neutral"
        ],
        "Received": [
            "from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xl7f80qVtz9sRY\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSun,  3 Sep 2017 06:54:55 +1000 (AEST)",
            "from localhost (localhost [127.0.0.1])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id 3F85182058;\n\tSat,  2 Sep 2017 20:54:51 +0000 (UTC)",
            "from fraxinus.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id t1vYdOqAc2sA; Sat,  2 Sep 2017 20:54:48 +0000 (UTC)",
            "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id 1C80B83527;\n\tSat,  2 Sep 2017 20:54:48 +0000 (UTC)",
            "from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n\tby ash.osuosl.org (Postfix) with ESMTP id B16621BFF90\n\tfor <buildroot@lists.busybox.net>;\n\tSat,  2 Sep 2017 20:54:43 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id 9A61781E65\n\tfor <buildroot@lists.busybox.net>;\n\tSat,  2 Sep 2017 20:54:43 +0000 (UTC)",
            "from fraxinus.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id tJoZQRMYxAZ6 for <buildroot@lists.busybox.net>;\n\tSat,  2 Sep 2017 20:54:41 +0000 (UTC)",
            "from mail-wr0-f169.google.com (mail-wr0-f169.google.com\n\t[209.85.128.169])\n\tby fraxinus.osuosl.org (Postfix) with ESMTPS id 1485A82058\n\tfor <buildroot@buildroot.org>; Sat,  2 Sep 2017 20:54:41 +0000 (UTC)",
            "by mail-wr0-f169.google.com with SMTP id r64so1919239wrb.1\n\tfor <buildroot@buildroot.org>; Sat, 02 Sep 2017 13:54:40 -0700 (PDT)",
            "from localhost.localdomain\n\t([2a01:e35:1391:67d0:e6f9:2d2f:1a1e:79bf])\n\tby smtp.gmail.com with ESMTPSA id\n\t52sm2295647wru.59.2017.09.02.13.54.36\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tSat, 02 Sep 2017 13:54:38 -0700 (PDT)"
        ],
        "X-Virus-Scanned": [
            "amavisd-new at osuosl.org",
            "amavisd-new at osuosl.org"
        ],
        "X-Greylist": "domain auto-whitelisted by SQLgrey-1.7.6",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references;\n\tbh=UvoAkTUEiXpdg2gYMZCzThsesv+yCk/aQPreurJx5os=;\n\tb=dc6ryCYYmjwGab7gIXKfozTM++2QEMfBbinJzmU/1xZaIk4EGSX68gS44HF8Sm7S6F\n\t9kk2UoEj0yB6/M8/C3ZIcglgOx9zH7o0YqrS632gRrE9BXd1b+sFpn8UEOP4Cxf/eXjI\n\tZJpwrCW7T08czVBMKP97LF+MNI5Fanzo4Olqf1mrYuc27p/cfQ3p+jmJbzzPkfFuRqve\n\tPt/pMNdqpXEDFdBrdG8iKD2lsh9T+Un6JLryKoUuyCwVGL05J75v3p1TXx9sVR2pkCNk\n\tMKdN10600dDUlqLAqVECGxi0UhRKThRpXZjLJTRmQLR+JGhjoC7LvOPvY6To0c9FNykL\n\t6EbA==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=UvoAkTUEiXpdg2gYMZCzThsesv+yCk/aQPreurJx5os=;\n\tb=OF6+/sb6UiZ1TDkr4N3yDd/kRNBq+7Xu6uYa/ckyCo6SE2MKHkhZTf8iP7aNPJgyA4\n\tlLF8l8Ft0NyASTVzVv7qOBiImjN9KkmT5mX3iPJzYBKo5njyHswuJ+u3Rr+hr5kfER8F\n\tHljxVpvv/FLtvAztzCcOK1e7bn0+lnLSuREzRZKTyMYQd4Bl0DDslJXGfRVHeJChq0wj\n\trlXc+MFlwP0FHQ+KFvaRGhtn9A44LjGKTJIwPsPfj7vWtdhxQAp/qsYOOus09T+WiNnK\n\tElOnRg8duRND+JsQpxGwMK4Cp2BIf27HBPG0pOch/a/yBERMkeHVMdIcjXFzxKh4Hnwr\n\tcdSg==",
        "X-Gm-Message-State": "AHPjjUhhAIdJRLIXpJ63Jol3Dpd0RPMSh1tRbvpmXsWCEdctn5ZaDoVU\n\tuveSDI/EcrUXBaMRIR0=",
        "X-Google-Smtp-Source": "ADKCNb52vmKH9v9V3KxDuxmEKcQqbFwHoEzsMrDbyvA6RNDEiLHQlAooO7522NfCOLnTAoA1A2k92g==",
        "X-Received": "by 10.223.179.13 with SMTP id j13mr3069329wrd.122.1504385678588; \n\tSat, 02 Sep 2017 13:54:38 -0700 (PDT)",
        "From": "Romain Naour <romain.naour@gmail.com>",
        "To": "buildroot@buildroot.org",
        "Date": "Sat,  2 Sep 2017 22:54:22 +0200",
        "Message-Id": "<20170902205423.21288-11-romain.naour@gmail.com>",
        "X-Mailer": "git-send-email 2.9.5",
        "In-Reply-To": "<20170902205423.21288-1-romain.naour@gmail.com>",
        "References": "<20170902205423.21288-1-romain.naour@gmail.com>",
        "Cc": "Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,\n\tRomain Naour <romain.naour@gmail.com>",
        "Subject": "[Buildroot] [PATCH v2 10/11] package/glibc: bump to 2.26",
        "X-BeenThere": "buildroot@busybox.net",
        "X-Mailman-Version": "2.1.18-1",
        "Precedence": "list",
        "List-Id": "Discussion and development of buildroot <buildroot.busybox.net>",
        "List-Unsubscribe": "<http://lists.busybox.net/mailman/options/buildroot>,\n\t<mailto:buildroot-request@busybox.net?subject=unsubscribe>",
        "List-Archive": "<http://lists.busybox.net/pipermail/buildroot/>",
        "List-Post": "<mailto:buildroot@busybox.net>",
        "List-Help": "<mailto:buildroot-request@busybox.net?subject=help>",
        "List-Subscribe": "<http://lists.busybox.net/mailman/listinfo/buildroot>,\n\t<mailto:buildroot-request@busybox.net?subject=subscribe>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"us-ascii\"",
        "Content-Transfer-Encoding": "7bit",
        "Errors-To": "buildroot-bounces@busybox.net",
        "Sender": "\"buildroot\" <buildroot-bounces@busybox.net>"
    },
    "content": "Drop upstream patch:\n\n0001-sh-Fix-building-with-gcc5-6.patch\nhttps://sourceware.org/git/?p=glibc.git;a=commit;h=d40dbe722f004f999b589de776f7e57e564dda01\n\n0002-CVE-2017-1000366-Ignore-LD_LIBRARY_PATH-for-AT_SECUR.patch\nhttps://sourceware.org/git/?p=glibc.git;a=commit;h=f6110a8fee2ca36f8e2d2abecf3cba9fa7b8ea7d\n\n0003-ld.so-Reject-overly-long-LD_PRELOAD-path-elements.patch\nhttps://sourceware.org/git/?p=glibc.git;a=commit;h=6d0ba622891bed9d8394eef1935add53003b12e8\n\n0004-ld.so-Reject-overly-long-LD_AUDIT-path-elements.patch\n\nhttps://sourceware.org/git/?p=glibc.git;a=commit;h=81b82fb966ffbd94353f793ad17116c6088dedd9\n\n0005-fix-binutils-2-29-build.patch\nhttps://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff_plain;h=388b4f1a02f3a801965028bbfcd48d905638b797\n\n0006-i686-Add-missing-IS_IN-libc-guards-to-vectorized-strcspn.patch\nhttps://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff_plain;h=69052a3a95da37169a08f9e59b2cc1808312753c\n\n0006-sh4-trap.patch\nhttps://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff_plain;h=db3d848e154b00071f4a5e729d5884efad410109\n\nSigned-off-by: Romain Naour <romain.naour@gmail.com>\nCc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>\n---\n .../glibc/0001-sh-Fix-building-with-gcc5-6.patch   |  56 ----\n ...00366-Ignore-LD_LIBRARY_PATH-for-AT_SECUR.patch |  35 ---\n ...ject-overly-long-LD_PRELOAD-path-elements.patch | 122 --------\n ...Reject-overly-long-LD_AUDIT-path-elements.patch | 204 -------------\n package/glibc/0005-fix-binutils-2-29-build.patch   |  65 -----\n ...g-IS_IN-libc-guards-to-vectorized-strcspn.patch |  47 ---\n package/glibc/0006-sh4-trap.patch                  | 318 ---------------------\n package/glibc/glibc.hash                           |   2 +-\n package/glibc/glibc.mk                             |   2 +-\n 9 files changed, 2 insertions(+), 849 deletions(-)\n delete mode 100644 package/glibc/0001-sh-Fix-building-with-gcc5-6.patch\n delete mode 100644 package/glibc/0002-CVE-2017-1000366-Ignore-LD_LIBRARY_PATH-for-AT_SECUR.patch\n delete mode 100644 package/glibc/0003-ld.so-Reject-overly-long-LD_PRELOAD-path-elements.patch\n delete mode 100644 package/glibc/0004-ld.so-Reject-overly-long-LD_AUDIT-path-elements.patch\n delete mode 100644 package/glibc/0005-fix-binutils-2-29-build.patch\n delete mode 100644 package/glibc/0006-i686-Add-missing-IS_IN-libc-guards-to-vectorized-strcspn.patch\n delete mode 100644 package/glibc/0006-sh4-trap.patch",
    "diff": "diff --git a/package/glibc/0001-sh-Fix-building-with-gcc5-6.patch b/package/glibc/0001-sh-Fix-building-with-gcc5-6.patch\ndeleted file mode 100644\nindex fa43bdd..0000000\n--- a/package/glibc/0001-sh-Fix-building-with-gcc5-6.patch\n+++ /dev/null\n@@ -1,56 +0,0 @@\n-From 3840d4c2add1dd282f5f01fa51720b2d5b8fd8d2 Mon Sep 17 00:00:00 2001\n-From: Alexey Neyman <stilor@att.net>\n-Date: Wed, 8 Feb 2017 16:00:57 -0200\n-Subject: [PATCH] sh: Fix building with gcc5/6\n-\n-Build glibc for sh4-unknown-linux-gnu currently fails if one's\n-using GCC5/6: in dl-conflict.c, the elf_machine_rela() function\n-is called with NULL as its 3rd argument, sym. The implementation\n-of that function in sysdeps/sh/dl-machine.h dereferences that pointer:\n-\n-const Elf32_Sym *const refsym = sym;\n-...\n-if (map == &GL(dl_rtld_map))\n-  value -= map->l_addr + refsym->st_value + reloc->r_addend;\n-\n-GCC discovers a null pointer dereference, and in accordance with\n--fdelete-null-pointer-checks (which is enabled in -O2) replaces this\n-code with a trap - which, as SH does not implement a trap pattern in\n-GCC, evaluates to an abort() call. This abort() call pulls many more\n-objects from libc_nonshared.a, eventually resulting in link failure\n-due to multiple definitions for a number of symbols.\n-\n-As far as I see, the conditional before this code is always false in\n-rtld: _dl_resolve_conflicts() is called with main_map as the first\n-argument, not GL(_dl_rtld_map), but since that call is in yet another\n-compilation unit, GCC does not know about it. Patch that wraps this\n-conditional into !defined RESOLVE_CONFLICT_FIND_MAP attached.\n-\n-\t* sysdeps/sh/dl-machine.h (elf_machine_rela): The condition\n-\tin R_SH_DIR32 case is always false when inlined from\n-\tdl-conflict.c. Ifdef out to prevent GCC from insertin an\n-\tabort() call.\n-\n-[Waldemar: backport of\n-https://sourceware.org/git/?p=glibc.git;a=commit;h=d40dbe722f004f999b589de776f7e57e564dda01.]\n-Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>\n----\n- sysdeps/sh/dl-machine.h | 2 +-\n- 1 file changed, 1 insertion(+), 1 deletion(-)\n-\n-diff --git a/sysdeps/sh/dl-machine.h b/sysdeps/sh/dl-machine.h\n-index 449deea..2b468af 100644\n---- a/sysdeps/sh/dl-machine.h\n-+++ b/sysdeps/sh/dl-machine.h\n-@@ -389,7 +389,7 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,\n- \t  break;\n- \tcase R_SH_DIR32:\n- \t  {\n--#ifndef RTLD_BOOTSTRAP\n-+#if !defined RTLD_BOOTSTRAP && !defined RESOLVE_CONFLICT_FIND_MAP\n- \t   /* This is defined in rtld.c, but nowhere in the static\n- \t      libc.a; make the reference weak so static programs can\n- \t      still link.  This declaration cannot be done when\n--- \n-2.7.4\n-\ndiff --git a/package/glibc/0002-CVE-2017-1000366-Ignore-LD_LIBRARY_PATH-for-AT_SECUR.patch b/package/glibc/0002-CVE-2017-1000366-Ignore-LD_LIBRARY_PATH-for-AT_SECUR.patch\ndeleted file mode 100644\nindex d701294..0000000\n--- a/package/glibc/0002-CVE-2017-1000366-Ignore-LD_LIBRARY_PATH-for-AT_SECUR.patch\n+++ /dev/null\n@@ -1,35 +0,0 @@\n-From f6110a8fee2ca36f8e2d2abecf3cba9fa7b8ea7d Mon Sep 17 00:00:00 2001\n-From: Florian Weimer <fweimer@redhat.com>\n-Date: Mon, 19 Jun 2017 17:09:55 +0200\n-Subject: [PATCH] CVE-2017-1000366: Ignore LD_LIBRARY_PATH for AT_SECURE=1\n- programs [BZ #21624]\n-\n-LD_LIBRARY_PATH can only be used to reorder system search paths, which\n-is not useful functionality.\n-\n-This makes an exploitable unbounded alloca in _dl_init_paths unreachable\n-for AT_SECURE=1 programs.\n-\n-[Peter: Drop ChangeLog modification]\n-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>\n----\n- elf/rtld.c | 3 ++-\n- 1 file changed, 8 insertions(+), 1 deletion(-)\n-\n-diff --git a/elf/rtld.c b/elf/rtld.c\n-index 2446a87680..2269dbec81 100644\n---- a/elf/rtld.c\n-+++ b/elf/rtld.c\n-@@ -2422,7 +2422,8 @@ process_envvars (enum mode *modep)\n- \n- \tcase 12:\n- \t  /* The library search path.  */\n--\t  if (memcmp (envline, \"LIBRARY_PATH\", 12) == 0)\n-+\t  if (!__libc_enable_secure\n-+\t      && memcmp (envline, \"LIBRARY_PATH\", 12) == 0)\n- \t    {\n- \t      library_path = &envline[13];\n- \t      break;\n--- \n-2.11.0\n-\ndiff --git a/package/glibc/0003-ld.so-Reject-overly-long-LD_PRELOAD-path-elements.patch b/package/glibc/0003-ld.so-Reject-overly-long-LD_PRELOAD-path-elements.patch\ndeleted file mode 100644\nindex df41093..0000000\n--- a/package/glibc/0003-ld.so-Reject-overly-long-LD_PRELOAD-path-elements.patch\n+++ /dev/null\n@@ -1,122 +0,0 @@\n-From 6d0ba622891bed9d8394eef1935add53003b12e8 Mon Sep 17 00:00:00 2001\n-From: Florian Weimer <fweimer@redhat.com>\n-Date: Mon, 19 Jun 2017 22:31:04 +0200\n-Subject: [PATCH] ld.so: Reject overly long LD_PRELOAD path elements\n-\n-[Peter: Drop ChangeLog modification]\n-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>\n----\n- elf/rtld.c | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++------------\n- 1 file changed, 72 insertions(+), 16 deletions(-)\n-\n-diff --git a/elf/rtld.c b/elf/rtld.c\n-index 2269dbec81..86ae20c83f 100644\n---- a/elf/rtld.c\n-+++ b/elf/rtld.c\n-@@ -99,6 +99,35 @@ uintptr_t __pointer_chk_guard_local\n- strong_alias (__pointer_chk_guard_local, __pointer_chk_guard)\n- #endif\n- \n-+/* Length limits for names and paths, to protect the dynamic linker,\n-+   particularly when __libc_enable_secure is active.  */\n-+#ifdef NAME_MAX\n-+# define SECURE_NAME_LIMIT NAME_MAX\n-+#else\n-+# define SECURE_NAME_LIMIT 255\n-+#endif\n-+#ifdef PATH_MAX\n-+# define SECURE_PATH_LIMIT PATH_MAX\n-+#else\n-+# define SECURE_PATH_LIMIT 1024\n-+#endif\n-+\n-+/* Check that AT_SECURE=0, or that the passed name does not contain\n-+   directories and is not overly long.  Reject empty names\n-+   unconditionally.  */\n-+static bool\n-+dso_name_valid_for_suid (const char *p)\n-+{\n-+  if (__glibc_unlikely (__libc_enable_secure))\n-+    {\n-+      /* Ignore pathnames with directories for AT_SECURE=1\n-+\t programs, and also skip overlong names.  */\n-+      size_t len = strlen (p);\n-+      if (len >= SECURE_NAME_LIMIT || memchr (p, '/', len) != NULL)\n-+\treturn false;\n-+    }\n-+  return *p != '\\0';\n-+}\n- \n- /* List of auditing DSOs.  */\n- static struct audit_list\n-@@ -718,6 +747,42 @@ static const char *preloadlist attribute_relro;\n- /* Nonzero if information about versions has to be printed.  */\n- static int version_info attribute_relro;\n- \n-+/* The LD_PRELOAD environment variable gives list of libraries\n-+   separated by white space or colons that are loaded before the\n-+   executable's dependencies and prepended to the global scope list.\n-+   (If the binary is running setuid all elements containing a '/' are\n-+   ignored since it is insecure.)  Return the number of preloads\n-+   performed.  */\n-+unsigned int\n-+handle_ld_preload (const char *preloadlist, struct link_map *main_map)\n-+{\n-+  unsigned int npreloads = 0;\n-+  const char *p = preloadlist;\n-+  char fname[SECURE_PATH_LIMIT];\n-+\n-+  while (*p != '\\0')\n-+    {\n-+      /* Split preload list at space/colon.  */\n-+      size_t len = strcspn (p, \" :\");\n-+      if (len > 0 && len < sizeof (fname))\n-+\t{\n-+\t  memcpy (fname, p, len);\n-+\t  fname[len] = '\\0';\n-+\t}\n-+      else\n-+\tfname[0] = '\\0';\n-+\n-+      /* Skip over the substring and the following delimiter.  */\n-+      p += len;\n-+      if (*p != '\\0')\n-+\t++p;\n-+\n-+      if (dso_name_valid_for_suid (fname))\n-+\tnpreloads += do_preload (fname, main_map, \"LD_PRELOAD\");\n-+    }\n-+  return npreloads;\n-+}\n-+\n- static void\n- dl_main (const ElfW(Phdr) *phdr,\n- \t ElfW(Word) phnum,\n-@@ -1464,23 +1529,8 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\\n\",\n- \n-   if (__glibc_unlikely (preloadlist != NULL))\n-     {\n--      /* The LD_PRELOAD environment variable gives list of libraries\n--\t separated by white space or colons that are loaded before the\n--\t executable's dependencies and prepended to the global scope\n--\t list.  If the binary is running setuid all elements\n--\t containing a '/' are ignored since it is insecure.  */\n--      char *list = strdupa (preloadlist);\n--      char *p;\n--\n-       HP_TIMING_NOW (start);\n--\n--      /* Prevent optimizing strsep.  Speed is not important here.  */\n--      while ((p = (strsep) (&list, \" :\")) != NULL)\n--\tif (p[0] != '\\0'\n--\t    && (__builtin_expect (! __libc_enable_secure, 1)\n--\t\t|| strchr (p, '/') == NULL))\n--\t  npreloads += do_preload (p, main_map, \"LD_PRELOAD\");\n--\n-+      npreloads += handle_ld_preload (preloadlist, main_map);\n-       HP_TIMING_NOW (stop);\n-       HP_TIMING_DIFF (diff, start, stop);\n-       HP_TIMING_ACCUM_NT (load_time, diff);\n--- \n-2.11.0\n-\ndiff --git a/package/glibc/0004-ld.so-Reject-overly-long-LD_AUDIT-path-elements.patch b/package/glibc/0004-ld.so-Reject-overly-long-LD_AUDIT-path-elements.patch\ndeleted file mode 100644\nindex 25e937b..0000000\n--- a/package/glibc/0004-ld.so-Reject-overly-long-LD_AUDIT-path-elements.patch\n+++ /dev/null\n@@ -1,204 +0,0 @@\n-From 81b82fb966ffbd94353f793ad17116c6088dedd9 Mon Sep 17 00:00:00 2001\n-From: Florian Weimer <fweimer@redhat.com>\n-Date: Mon, 19 Jun 2017 22:32:12 +0200\n-Subject: [PATCH] ld.so: Reject overly long LD_AUDIT path elements\n-\n-Also only process the last LD_AUDIT entry.\n-\n-[Peter: Drop ChangeLog modification]\n-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>\n----\n- elf/rtld.c | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++---------\n- 1 file changed, 105 insertions(+), 15 deletions(-)\n-\n-diff --git a/elf/rtld.c b/elf/rtld.c\n-index 86ae20c83f..65647fb1c8 100644\n---- a/elf/rtld.c\n-+++ b/elf/rtld.c\n-@@ -129,13 +129,91 @@ dso_name_valid_for_suid (const char *p)\n-   return *p != '\\0';\n- }\n- \n--/* List of auditing DSOs.  */\n-+/* LD_AUDIT variable contents.  Must be processed before the\n-+   audit_list below.  */\n-+const char *audit_list_string;\n-+\n-+/* Cyclic list of auditing DSOs.  audit_list->next is the first\n-+   element.  */\n- static struct audit_list\n- {\n-   const char *name;\n-   struct audit_list *next;\n- } *audit_list;\n- \n-+/* Iterator for audit_list_string followed by audit_list.  */\n-+struct audit_list_iter\n-+{\n-+  /* Tail of audit_list_string still needing processing, or NULL.  */\n-+  const char *audit_list_tail;\n-+\n-+  /* The list element returned in the previous iteration.  NULL before\n-+     the first element.  */\n-+  struct audit_list *previous;\n-+\n-+  /* Scratch buffer for returning a name which is part of\n-+     audit_list_string.  */\n-+  char fname[SECURE_NAME_LIMIT];\n-+};\n-+\n-+/* Initialize an audit list iterator.  */\n-+static void\n-+audit_list_iter_init (struct audit_list_iter *iter)\n-+{\n-+  iter->audit_list_tail = audit_list_string;\n-+  iter->previous = NULL;\n-+}\n-+\n-+/* Iterate through both audit_list_string and audit_list.  */\n-+static const char *\n-+audit_list_iter_next (struct audit_list_iter *iter)\n-+{\n-+  if (iter->audit_list_tail != NULL)\n-+    {\n-+      /* First iterate over audit_list_string.  */\n-+      while (*iter->audit_list_tail != '\\0')\n-+\t{\n-+\t  /* Split audit list at colon.  */\n-+\t  size_t len = strcspn (iter->audit_list_tail, \":\");\n-+\t  if (len > 0 && len < sizeof (iter->fname))\n-+\t    {\n-+\t      memcpy (iter->fname, iter->audit_list_tail, len);\n-+\t      iter->fname[len] = '\\0';\n-+\t    }\n-+\t  else\n-+\t    /* Do not return this name to the caller.  */\n-+\t    iter->fname[0] = '\\0';\n-+\n-+\t  /* Skip over the substring and the following delimiter.  */\n-+\t  iter->audit_list_tail += len;\n-+\t  if (*iter->audit_list_tail == ':')\n-+\t    ++iter->audit_list_tail;\n-+\n-+\t  /* If the name is valid, return it.  */\n-+\t  if (dso_name_valid_for_suid (iter->fname))\n-+\t    return iter->fname;\n-+\t  /* Otherwise, wrap around and try the next name.  */\n-+\t}\n-+      /* Fall through to the procesing of audit_list.  */\n-+    }\n-+\n-+  if (iter->previous == NULL)\n-+    {\n-+      if (audit_list == NULL)\n-+\t/* No pre-parsed audit list.  */\n-+\treturn NULL;\n-+      /* Start of audit list.  The first list element is at\n-+\t audit_list->next (cyclic list).  */\n-+      iter->previous = audit_list->next;\n-+      return iter->previous->name;\n-+    }\n-+  if (iter->previous == audit_list)\n-+    /* Cyclic list wrap-around.  */\n-+    return NULL;\n-+  iter->previous = iter->previous->next;\n-+  return iter->previous->name;\n-+}\n-+\n- #ifndef HAVE_INLINED_SYSCALLS\n- /* Set nonzero during loading and initialization of executable and\n-    libraries, cleared before the executable's entry point runs.  This\n-@@ -1305,11 +1383,13 @@ of this helper program; chances are you did not intend to run this program.\\n\\\n-     GL(dl_rtld_map).l_tls_modid = _dl_next_tls_modid ();\n- \n-   /* If we have auditing DSOs to load, do it now.  */\n--  if (__glibc_unlikely (audit_list != NULL))\n-+  bool need_security_init = true;\n-+  if (__glibc_unlikely (audit_list != NULL)\n-+      || __glibc_unlikely (audit_list_string != NULL))\n-     {\n--      /* Iterate over all entries in the list.  The order is important.  */\n-       struct audit_ifaces *last_audit = NULL;\n--      struct audit_list *al = audit_list->next;\n-+      struct audit_list_iter al_iter;\n-+      audit_list_iter_init (&al_iter);\n- \n-       /* Since we start using the auditing DSOs right away we need to\n- \t initialize the data structures now.  */\n-@@ -1320,9 +1400,14 @@ of this helper program; chances are you did not intend to run this program.\\n\\\n- \t use different values (especially the pointer guard) and will\n- \t fail later on.  */\n-       security_init ();\n-+      need_security_init = false;\n- \n--      do\n-+      while (true)\n- \t{\n-+\t  const char *name = audit_list_iter_next (&al_iter);\n-+\t  if (name == NULL)\n-+\t    break;\n-+\n- \t  int tls_idx = GL(dl_tls_max_dtv_idx);\n- \n- \t  /* Now it is time to determine the layout of the static TLS\n-@@ -1331,7 +1416,7 @@ of this helper program; chances are you did not intend to run this program.\\n\\\n- \t     no DF_STATIC_TLS bit is set.  The reason is that we know\n- \t     glibc will use the static model.  */\n- \t  struct dlmopen_args dlmargs;\n--\t  dlmargs.fname = al->name;\n-+\t  dlmargs.fname = name;\n- \t  dlmargs.map = NULL;\n- \n- \t  const char *objname;\n-@@ -1344,7 +1429,7 @@ of this helper program; chances are you did not intend to run this program.\\n\\\n- \t    not_loaded:\n- \t      _dl_error_printf (\"\\\n- ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\\n\",\n--\t\t\t\tal->name, err_str);\n-+\t\t\t\tname, err_str);\n- \t      if (malloced)\n- \t\tfree ((char *) err_str);\n- \t    }\n-@@ -1448,10 +1533,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\\n\",\n- \t\t  goto not_loaded;\n- \t\t}\n- \t    }\n--\n--\t  al = al->next;\n- \t}\n--      while (al != audit_list->next);\n- \n-       /* If we have any auditing modules, announce that we already\n- \t have two objects loaded.  */\n-@@ -1715,7 +1797,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\\n\",\n-   if (tcbp == NULL)\n-     tcbp = init_tls ();\n- \n--  if (__glibc_likely (audit_list == NULL))\n-+  if (__glibc_likely (need_security_init))\n-     /* Initialize security features.  But only if we have not done it\n-        earlier.  */\n-     security_init ();\n-@@ -2346,9 +2428,7 @@ process_dl_audit (char *str)\n-   char *p;\n- \n-   while ((p = (strsep) (&str, \":\")) != NULL)\n--    if (p[0] != '\\0'\n--\t&& (__builtin_expect (! __libc_enable_secure, 1)\n--\t    || strchr (p, '/') == NULL))\n-+    if (dso_name_valid_for_suid (p))\n-       {\n- \t/* This is using the local malloc, not the system malloc.  The\n- \t   memory can never be freed.  */\n-@@ -2412,7 +2492,7 @@ process_envvars (enum mode *modep)\n- \t      break;\n- \t    }\n- \t  if (memcmp (envline, \"AUDIT\", 5) == 0)\n--\t    process_dl_audit (&envline[6]);\n-+\t    audit_list_string = &envline[6];\n- \t  break;\n- \n- \tcase 7:\n--- \n-2.11.0\n-\ndiff --git a/package/glibc/0005-fix-binutils-2-29-build.patch b/package/glibc/0005-fix-binutils-2-29-build.patch\ndeleted file mode 100644\nindex 47fcd2f..0000000\n--- a/package/glibc/0005-fix-binutils-2-29-build.patch\n+++ /dev/null\n@@ -1,65 +0,0 @@\n-From: H.J. Lu <hjl.tools@gmail.com>\n-Date: Fri, 23 Jun 2017 21:38:46 +0000 (-0700)\n-Subject: Avoid .symver on common symbols [BZ #21666]\n-X-Git-Tag: glibc-2.26~241\n-X-Git-Url: https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff_plain;h=388b4f1a02f3a801965028bbfcd48d905638b797\n-\n-Avoid .symver on common symbols [BZ #21666]\n-\n-The .symver directive on common symbol just creates a new common symbol,\n-not an alias and the newer assembler with the bug fix for\n-\n-https://sourceware.org/bugzilla/show_bug.cgi?id=21661\n-\n-will issue an error.  Before the fix, we got\n-\n-$ readelf -sW libc.so | grep \"loc[12s]\"\n-  5109: 00000000003a0608     8 OBJECT  LOCAL  DEFAULT   36 loc1\n-  5188: 00000000003a0610     8 OBJECT  LOCAL  DEFAULT   36 loc2\n-  5455: 00000000003a0618     8 OBJECT  LOCAL  DEFAULT   36 locs\n-  6575: 00000000003a05f0     8 OBJECT  GLOBAL DEFAULT   36 locs@GLIBC_2.2.5\n-  7156: 00000000003a05f8     8 OBJECT  GLOBAL DEFAULT   36 loc1@GLIBC_2.2.5\n-  7312: 00000000003a0600     8 OBJECT  GLOBAL DEFAULT   36 loc2@GLIBC_2.2.5\n-\n-in libc.so.  The versioned loc1, loc2 and locs have the wrong addresses.\n-After the fix, we got\n-\n-$ readelf -sW libc.so | grep \"loc[12s]\"\n-  6570: 000000000039e3b8     8 OBJECT  GLOBAL DEFAULT   34 locs@GLIBC_2.2.5\n-  7151: 000000000039e3c8     8 OBJECT  GLOBAL DEFAULT   34 loc1@GLIBC_2.2.5\n-  7307: 000000000039e3c0     8 OBJECT  GLOBAL DEFAULT   34 loc2@GLIBC_2.2.5\n-\n-\t[BZ #21666]\n-\t* misc/regexp.c (loc1): Add __attribute__ ((nocommon));\n-\t(loc2): Likewise.\n-\t(locs): Likewise.\n-\n-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>\n-[Backported from upstream commit\n-388b4f1a02f3a801965028bbfcd48d905638b797, to fix the build with\n-binutils 2.29.]\n----\n-diff --git a/misc/regexp.c b/misc/regexp.c\n-index 19d76c0..eaea7c3 100644\n---- a/misc/regexp.c\n-+++ b/misc/regexp.c\n-@@ -29,14 +29,15 @@\n- \n- #if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_23)\n- \n--/* Define the variables used for the interface.  */\n--char *loc1;\n--char *loc2;\n-+/* Define the variables used for the interface.  Avoid .symver on common\n-+   symbol, which just creates a new common symbol, not an alias.  */\n-+char *loc1 __attribute__ ((nocommon));\n-+char *loc2 __attribute__ ((nocommon));\n- compat_symbol (libc, loc1, loc1, GLIBC_2_0);\n- compat_symbol (libc, loc2, loc2, GLIBC_2_0);\n- \n- /* Although we do not support the use we define this variable as well.  */\n--char *locs;\n-+char *locs __attribute__ ((nocommon));\n- compat_symbol (libc, locs, locs, GLIBC_2_0);\n- \n- \ndiff --git a/package/glibc/0006-i686-Add-missing-IS_IN-libc-guards-to-vectorized-strcspn.patch b/package/glibc/0006-i686-Add-missing-IS_IN-libc-guards-to-vectorized-strcspn.patch\ndeleted file mode 100644\nindex eebf89e..0000000\n--- a/package/glibc/0006-i686-Add-missing-IS_IN-libc-guards-to-vectorized-strcspn.patch\n+++ /dev/null\n@@ -1,47 +0,0 @@\n-From patchwork Wed Jun 14 06:19:50 2017\n-Content-Type: text/plain; charset=\"utf-8\"\n-MIME-Version: 1.0\n-Content-Transfer-Encoding: 7bit\n-Subject: i686: Add missing IS_IN (libc) guards to vectorized strcspn\n-From: Florian Weimer <fweimer@redhat.com>\n-X-Patchwork-Id: 21003\n-Message-Id: <20170614061950.400FE4010728F@oldenburg.str.redhat.com>\n-To: libc-alpha@sourceware.org\n-Date: Wed, 14 Jun 2017 08:19:50 +0200\n-\n-Since commit d957c4d3fa48d685ff2726c605c988127ef99395 (i386: Compile\n-rtld-*.os with -mno-sse -mno-mmx -mfpmath=387), vector intrinsics can\n-no longer be used in ld.so, even if the compiled code never makes it\n-into the final ld.so link.  This commit adds the missing IS_IN (libc)\n-guard to the SSE 4.2 strcspn implementation, so that it can be used from\n-ld.so in the future.\n-\n-2017-06-14  Florian Weimer  <fweimer@redhat.com>\n-\n-\t* sysdeps/i386/i686/multiarch/strcspn-c.c: Add IS_IN (libc) guard.\n-\t* sysdeps/i386/i686/multiarch/varshift.c: Likewise.\n-\n-[Thomas: fixes a build issue of glibc on x86:\n-sysdeps/x86_64/multiarch/varshift.h:26:1: error: SSE vector return without SSE enabled changes the ABI]\n-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>\n-\n-diff --git a/sysdeps/i386/i686/multiarch/strcspn-c.c b/sysdeps/i386/i686/multiarch/strcspn-c.c\n-index 6d61e19..ec230fb 100644\n---- a/sysdeps/i386/i686/multiarch/strcspn-c.c\n-+++ b/sysdeps/i386/i686/multiarch/strcspn-c.c\n-@@ -1,2 +1,4 @@\n--#define __strcspn_sse2 __strcspn_ia32\n--#include <sysdeps/x86_64/multiarch/strcspn-c.c>\n-+#if IS_IN (libc)\n-+# define __strcspn_sse2 __strcspn_ia32\n-+# include <sysdeps/x86_64/multiarch/strcspn-c.c>\n-+#endif\n-diff --git a/sysdeps/i386/i686/multiarch/varshift.c b/sysdeps/i386/i686/multiarch/varshift.c\n-index 7760b96..6742a35 100644\n---- a/sysdeps/i386/i686/multiarch/varshift.c\n-+++ b/sysdeps/i386/i686/multiarch/varshift.c\n-@@ -1 +1,3 @@\n--#include <sysdeps/x86_64/multiarch/varshift.c>\n-+#if IS_IN (libc)\n-+# include <sysdeps/x86_64/multiarch/varshift.c>\n-+#endif\ndiff --git a/package/glibc/0006-sh4-trap.patch b/package/glibc/0006-sh4-trap.patch\ndeleted file mode 100644\nindex c986ac3..0000000\n--- a/package/glibc/0006-sh4-trap.patch\n+++ /dev/null\n@@ -1,318 +0,0 @@\n-commit db3d848e154b00071f4a5e729d5884efad410109\n-Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>\n-Date:   Wed Mar 15 15:44:59 2017 -0300\n-\n-    Build divdi3 only for architecture that required it\n-    \n-    As noted in [1], divdi3 object is only exported in a handful ABIs\n-    (i386, m68k, powerpc32, s390-32, and ia64), however it is built\n-    for all current architectures regardless.\n-    \n-    This patch refact the make rules for this object to so only the\n-    aforementioned architectures that actually require it builds it.\n-    \n-    Also, to avoid internal PLT calls to the exported symbol from the\n-    module, glibc uses an internal header (symbol-hacks.h) which is\n-    unrequired (and in fact breaks the build for architectures that\n-    intend to get symbol definitions from libgcc.a).  The patch also\n-    changes it to create its own header (divdi3-symbol-hacks.h) and\n-    adjust the architectures that require it accordingly.\n-    \n-    I checked the build/check (with run-built-tests=no) on the\n-    following architectures (which I think must cover all supported\n-    ABI/builds) using GCC 6.3:\n-    \n-    aarch64-linux-gnu\n-    alpha-linux-gnu\n-    arm-linux-gnueabihf\n-    hppa-linux-gnu\n-    ia64-linux-gnu\n-    m68k-linux-gnu\n-    microblaze-linux-gnu\n-    mips64-n32-linux-gnu\n-    mips-linux-gnu\n-    mips64-linux-gnu\n-    nios2-linux-gnu\n-    powerpc-linux-gnu\n-    powerpc-linux-gnu-power4\n-    powerpc64-linux-gnu\n-    powerpc64le-linux-gnu\n-    s390x-linux-gnu\n-    s390-linux-gnu\n-    sh4-linux-gnu\n-    sh4-linux-gnu-soft\n-    sparc64-linux-gnu\n-    sparcv9-linux-gnu\n-    tilegx-linux-gnu\n-    tilegx-linux-gnu-32\n-    tilepro-linux-gnu\n-    x86_64-linux-gnu\n-    x86_64-linux-gnu-x32\n-    i686-linux-gnu\n-    \n-    I only saw one regression on sparcv9-linux-gnu (extra PLT call to\n-    .udiv) which I address in next patch in the set.  It also correctly\n-    build SH with GCC 7.0.1 (without any regression from c89721e25d).\n-    \n-    [1] https://sourceware.org/ml/libc-alpha/2017-03/msg00243.html\n-    \n-Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>\n-\n-diff --git a/sysdeps/i386/symbol-hacks.h b/sysdeps/i386/symbol-hacks.h\n-new file mode 100644\n-index 0000000000..36a13c83f7\n---- /dev/null\n-+++ b/sysdeps/i386/symbol-hacks.h\n-@@ -0,0 +1,21 @@\n-+/* Hacks needed for symbol manipulation.  i386 version.\n-+   Copyright (C) 2017 Free Software Foundation, Inc.\n-+   This file is part of the GNU C Library.\n-+\n-+   The GNU C Library is free software; you can redistribute it and/or\n-+   modify it under the terms of the GNU Lesser General Public\n-+   License as published by the Free Software Foundation; either\n-+   version 2.1 of the License, or (at your option) any later version.\n-+\n-+   The GNU C Library is distributed in the hope that it will be useful,\n-+   but WITHOUT ANY WARRANTY; without even the implied warranty of\n-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n-+   Lesser General Public License for more details.\n-+\n-+   You should have received a copy of the GNU Lesser General Public\n-+   License along with the GNU C Library; if not, see\n-+   <http://www.gnu.org/licenses/>.  */\n-+\n-+#include <sysdeps/wordsize-32/divdi3-symbol-hacks.h>\n-+\n-+#include_next \"symbol-hacks.h\"\n-diff --git a/sysdeps/m68k/symbol-hacks.h b/sysdeps/m68k/symbol-hacks.h\n-new file mode 100644\n-index 0000000000..e449d29810\n---- /dev/null\n-+++ b/sysdeps/m68k/symbol-hacks.h\n-@@ -0,0 +1,21 @@\n-+/* Hacks needed for symbol manipulation.  m68k version.\n-+   Copyright (C) 2017 Free Software Foundation, Inc.\n-+   This file is part of the GNU C Library.\n-+\n-+   The GNU C Library is free software; you can redistribute it and/or\n-+   modify it under the terms of the GNU Lesser General Public\n-+   License as published by the Free Software Foundation; either\n-+   version 2.1 of the License, or (at your option) any later version.\n-+\n-+   The GNU C Library is distributed in the hope that it will be useful,\n-+   but WITHOUT ANY WARRANTY; without even the implied warranty of\n-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n-+   Lesser General Public License for more details.\n-+\n-+   You should have received a copy of the GNU Lesser General Public\n-+   License along with the GNU C Library; if not, see\n-+   <http://www.gnu.org/licenses/>.  */\n-+\n-+#include <sysdeps/wordsize-32/divdi3-symbol-hacks.h>\n-+\n-+#include_next \"symbol-hacks.h\"\n-diff --git a/sysdeps/powerpc/powerpc32/symbol-hacks.h b/sysdeps/powerpc/powerpc32/symbol-hacks.h\n-new file mode 100644\n-index 0000000000..dbb3141621\n---- /dev/null\n-+++ b/sysdeps/powerpc/powerpc32/symbol-hacks.h\n-@@ -0,0 +1,21 @@\n-+/* Hacks needed for symbol manipulation.  powerpc version.\n-+   Copyright (C) 2017 Free Software Foundation, Inc.\n-+   This file is part of the GNU C Library.\n-+\n-+   The GNU C Library is free software; you can redistribute it and/or\n-+   modify it under the terms of the GNU Lesser General Public\n-+   License as published by the Free Software Foundation; either\n-+   version 2.1 of the License, or (at your option) any later version.\n-+\n-+   The GNU C Library is distributed in the hope that it will be useful,\n-+   but WITHOUT ANY WARRANTY; without even the implied warranty of\n-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n-+   Lesser General Public License for more details.\n-+\n-+   You should have received a copy of the GNU Lesser General Public\n-+   License along with the GNU C Library; if not, see\n-+   <http://www.gnu.org/licenses/>.  */\n-+\n-+#include <sysdeps/wordsize-32/divdi3-symbol-hacks.h>\n-+\n-+#include_next \"symbol-hacks.h\"\n-diff --git a/sysdeps/s390/s390-32/symbol-hacks.h b/sysdeps/s390/s390-32/symbol-hacks.h\n-new file mode 100644\n-index 0000000000..585c42365a\n---- /dev/null\n-+++ b/sysdeps/s390/s390-32/symbol-hacks.h\n-@@ -0,0 +1,21 @@\n-+/* Hacks needed for symbol manipulation.  s390 version.\n-+   Copyright (C) 2017 Free Software Foundation, Inc.\n-+   This file is part of the GNU C Library.\n-+\n-+   The GNU C Library is free software; you can redistribute it and/or\n-+   modify it under the terms of the GNU Lesser General Public\n-+   License as published by the Free Software Foundation; either\n-+   version 2.1 of the License, or (at your option) any later version.\n-+\n-+   The GNU C Library is distributed in the hope that it will be useful,\n-+   but WITHOUT ANY WARRANTY; without even the implied warranty of\n-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n-+   Lesser General Public License for more details.\n-+\n-+   You should have received a copy of the GNU Lesser General Public\n-+   License along with the GNU C Library; if not, see\n-+   <http://www.gnu.org/licenses/>.  */\n-+\n-+#include <sysdeps/wordsize-32/divdi3-symbol-hacks.h>\n-+\n-+#include_next \"symbol-hacks.h\"\n-diff --git a/sysdeps/unix/sysv/linux/i386/Makefile b/sysdeps/unix/sysv/linux/i386/Makefile\n-index 6aac0dfe15..4080b8c966 100644\n---- a/sysdeps/unix/sysv/linux/i386/Makefile\n-+++ b/sysdeps/unix/sysv/linux/i386/Makefile\n-@@ -26,6 +26,11 @@ endif\n- \n- ifeq ($(subdir),csu)\n- sysdep-dl-routines += sysdep\n-+ifeq (yes,$(build-shared))\n-+sysdep_routines += divdi3\n-+shared-only-routines += divdi3\n-+CPPFLAGS-divdi3.c = -Din_divdi3_c\n-+endif\n- endif\n- \n- ifeq ($(subdir),nptl)\n-diff --git a/sysdeps/unix/sysv/linux/m68k/Makefile b/sysdeps/unix/sysv/linux/m68k/Makefile\n-index 5c50ce6927..ce1f696a6f 100644\n---- a/sysdeps/unix/sysv/linux/m68k/Makefile\n-+++ b/sysdeps/unix/sysv/linux/m68k/Makefile\n-@@ -4,6 +4,11 @@ m68k-syntax-flag = -DMOTOROLA_SYNTAX\n- \n- ifeq ($(subdir),csu)\n- sysdep_routines += m68k-helpers\n-+ifeq (yes,$(build-shared))\n-+sysdep_routines += divdi3\n-+shared-only-routines += divdi3\n-+CPPFLAGS-divdi3.c = -Din_divdi3_c\n-+endif\n- endif\n- \n- ifeq ($(subdir),misc)\n-diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile b/sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile\n-index 3d6c150582..1f45659ed1 100644\n---- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile\n-+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile\n-@@ -1,2 +1,10 @@\n- # See Makeconfig regarding the use of default-abi.\n- default-abi := 32\n-+\n-+ifeq ($(subdir),csu)\n-+ifeq (yes,$(build-shared))\n-+sysdep_routines += divdi3\n-+shared-only-routines += divdi3\n-+CPPFLAGS-divdi3.c = -Din_divdi3_c\n-+endif\n-+endif\n-diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/Makefile b/sysdeps/unix/sysv/linux/s390/s390-32/Makefile\n-index da3b3c76b4..fd8cf92633 100644\n---- a/sysdeps/unix/sysv/linux/s390/s390-32/Makefile\n-+++ b/sysdeps/unix/sysv/linux/s390/s390-32/Makefile\n-@@ -21,3 +21,11 @@ endif\n- ifeq ($(subdir),stdlib)\n- sysdep_routines += __makecontext_ret\n- endif\n-+\n-+ifeq ($(subdir),csu)\n-+ifeq (yes,$(build-shared))\n-+sysdep_routines += divdi3\n-+shared-only-routines += divdi3\n-+CPPFLAGS-divdi3.c = -Din_divdi3_c\n-+endif\n-+endif\n-diff --git a/sysdeps/wordsize-32/Makefile b/sysdeps/wordsize-32/Makefile\n-deleted file mode 100644\n-index 82beac44ed..0000000000\n---- a/sysdeps/wordsize-32/Makefile\n-+++ /dev/null\n-@@ -1,7 +0,0 @@\n--ifeq ($(subdir),csu)\n--ifeq (yes,$(build-shared))\n--sysdep_routines += divdi3\n--shared-only-routines += divdi3\n--CPPFLAGS-divdi3.c = -Din_divdi3_c\n--endif\n--endif\n-diff --git a/sysdeps/wordsize-32/divdi3-symbol-hacks.h b/sysdeps/wordsize-32/divdi3-symbol-hacks.h\n-new file mode 100644\n-index 0000000000..6c90cb796d\n---- /dev/null\n-+++ b/sysdeps/wordsize-32/divdi3-symbol-hacks.h\n-@@ -0,0 +1,31 @@\n-+/* Hacks needed for divdi3 symbol manipulation.\n-+   Copyright (C) 2004-2017 Free Software Foundation, Inc.\n-+   This file is part of the GNU C Library.\n-+\n-+   The GNU C Library is free software; you can redistribute it and/or\n-+   modify it under the terms of the GNU Lesser General Public\n-+   License as published by the Free Software Foundation; either\n-+   version 2.1 of the License, or (at your option) any later version.\n-+\n-+   The GNU C Library is distributed in the hope that it will be useful,\n-+   but WITHOUT ANY WARRANTY; without even the implied warranty of\n-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n-+   Lesser General Public License for more details.\n-+\n-+   You should have received a copy of the GNU Lesser General Public\n-+   License along with the GNU C Library; if not, see\n-+   <http://www.gnu.org/licenses/>.  */\n-+\n-+/* A very dirty trick: gcc emits references to __divdi3, __udivdi3,\n-+   __moddi3, and __umoddi3.  These functions are exported and\n-+   therefore we get PLTs.  Unnecessarily so.  Changing gcc is a big\n-+   task which might not be worth it so we play tricks with the\n-+   assembler.\n-+   Note: in_divdi3_c is only used to avoid symbol alias on divdi3\n-+   build itself.  */\n-+#if !defined __ASSEMBLER__ && !defined in_divdi3_c && IS_IN (libc) && defined SHARED\n-+asm (\"__divdi3 = __divdi3_internal\");\n-+asm (\"__udivdi3 = __udivdi3_internal\");\n-+asm (\"__moddi3 = __moddi3_internal\");\n-+asm (\"__umoddi3 = __umoddi3_internal\");\n-+#endif\n-diff --git a/sysdeps/wordsize-32/symbol-hacks.h b/sysdeps/wordsize-32/symbol-hacks.h\n-deleted file mode 100644\n-index 0aec1e0b97..0000000000\n---- a/sysdeps/wordsize-32/symbol-hacks.h\n-+++ /dev/null\n-@@ -1,31 +0,0 @@\n--/* Hacks needed for symbol manipulation.\n--   Copyright (C) 2004-2017 Free Software Foundation, Inc.\n--   This file is part of the GNU C Library.\n--\n--   The GNU C Library is free software; you can redistribute it and/or\n--   modify it under the terms of the GNU Lesser General Public\n--   License as published by the Free Software Foundation; either\n--   version 2.1 of the License, or (at your option) any later version.\n--\n--   The GNU C Library is distributed in the hope that it will be useful,\n--   but WITHOUT ANY WARRANTY; without even the implied warranty of\n--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n--   Lesser General Public License for more details.\n--\n--   You should have received a copy of the GNU Lesser General Public\n--   License along with the GNU C Library; if not, see\n--   <http://www.gnu.org/licenses/>.  */\n--\n--#include_next \"symbol-hacks.h\"\n--\n--/* A very dirty trick: gcc emits references to __divdi3, __udivdi3,\n--   __moddi3, and __umoddi3.  These functions are exported and\n--   therefore we get PLTs.  Unnecessarily so.  Changing gcc is a big\n--   task which might not be worth it so we play tricks with the\n--   assembler.  */\n--#if !defined __ASSEMBLER__ && !defined in_divdi3_c && IS_IN (libc) && defined SHARED\n--asm (\"__divdi3 = __divdi3_internal\");\n--asm (\"__udivdi3 = __udivdi3_internal\");\n--asm (\"__moddi3 = __moddi3_internal\");\n--asm (\"__umoddi3 = __umoddi3_internal\");\n--#endif\ndiff --git a/package/glibc/glibc.hash b/package/glibc/glibc.hash\nindex daaf014..afae10f 100644\n--- a/package/glibc/glibc.hash\n+++ b/package/glibc/glibc.hash\n@@ -1,2 +1,2 @@\n # Locally calculated after checking pgp signature (glibc)\n-sha256\t067bd9bb3390e79aa45911537d13c3721f1d9d3769931a30c2681bfee66f23a0\tglibc-2.25.tar.xz\n+sha256\te54e0a934cd2bc94429be79da5e9385898d2306b9eaf3c92d5a77af96190f6bd\tglibc-2.26.tar.xz\ndiff --git a/package/glibc/glibc.mk b/package/glibc/glibc.mk\nindex c9a6579..f5d0282 100644\n--- a/package/glibc/glibc.mk\n+++ b/package/glibc/glibc.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-GLIBC_VERSION = 2.25\n+GLIBC_VERSION = 2.26\n GLIBC_SITE = $(BR2_GNU_MIRROR)/libc\n GLIBC_SOURCE = glibc-$(GLIBC_VERSION).tar.xz\n GLIBC_SRC_SUBDIR = .\n",
    "prefixes": [
        "v2",
        "10/11"
    ]
}