Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/809149/?format=api
{ "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" ] }