summaryrefslogtreecommitdiffstats
path: root/package/glibc/0001-sh-Fix-building-with-gcc5-6.patch
diff options
context:
space:
mode:
authorRomain Naour <romain.naour@gmail.com>2017-09-23 23:24:06 +0200
committerArnout Vandecappelle (Essensium/Mind) <arnout@mind.be>2017-09-27 22:58:52 +0200
commitd6a4807f9473b4322e96b77169ffcd6d9cd84170 (patch)
treea73b88df132da464c204f11a0c4f17d514aad33e /package/glibc/0001-sh-Fix-building-with-gcc5-6.patch
parentffbd8dfb8a1fcbc0cb209f8ede4841c543524525 (diff)
downloadbuildroot-d6a4807f9473b4322e96b77169ffcd6d9cd84170.tar.gz
buildroot-d6a4807f9473b4322e96b77169ffcd6d9cd84170.zip
package/glibc: bump to 2.26
Drop upstream patch: 0001-sh-Fix-building-with-gcc5-6.patch https://sourceware.org/git/?p=glibc.git;a=commit;h=d40dbe722f004f999b589de776f7e57e564dda01 0002-CVE-2017-1000366-Ignore-LD_LIBRARY_PATH-for-AT_SECUR.patch https://sourceware.org/git/?p=glibc.git;a=commit;h=f6110a8fee2ca36f8e2d2abecf3cba9fa7b8ea7d 0003-ld.so-Reject-overly-long-LD_PRELOAD-path-elements.patch https://sourceware.org/git/?p=glibc.git;a=commit;h=6d0ba622891bed9d8394eef1935add53003b12e8 0004-ld.so-Reject-overly-long-LD_AUDIT-path-elements.patch https://sourceware.org/git/?p=glibc.git;a=commit;h=81b82fb966ffbd94353f793ad17116c6088dedd9 0005-fix-binutils-2-29-build.patch https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff_plain;h=388b4f1a02f3a801965028bbfcd48d905638b797 0006-i686-Add-missing-IS_IN-libc-guards-to-vectorized-strcspn.patch https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff_plain;h=69052a3a95da37169a08f9e59b2cc1808312753c 0006-sh4-trap.patch https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff_plain;h=db3d848e154b00071f4a5e729d5884efad410109 But 2.26 version introduced quite a few regressions on x86, x86_64 and powerpc64le when float128 support was added. All these issues are now fixed in the glibc 2.26 stable branch. Backport patches from glibc 2.26 stable branch related to bug 21930. Take all patches listed in this bug report in order to have all fix for this issue [1] [2]. Fixes gnuradio build: [...]/sysroot/usr/include/boost/functional/hash/detail/hash_float.hpp: In function ‘std::size_t boost::hash_detail::float_hash_value(T)’: [...]/sysroot/usr/include/boost/functional/hash/detail/hash_float.hpp:210:21: error: expected primary-expression before ‘float’ switch (fpclassify(v)) ^ [...]/sysroot/usr/include/boost/functional/hash/detail/hash_float.hpp:210:21: error: expected primary-expression before ‘long’ switch (fpclassify(v)) ^ [...]/sysroot/usr/include/boost/functional/hash/detail/hash_float.hpp:210:21: error: found ‘:’ in nested-name-specifier, expected ‘::’ switch (fpclassify(v)) ^ [...]/sysroot/usr/include/boost/functional/hash/detail/hash_float.hpp:210:21: error: ‘_Float128’ is not a class or namespace switch (fpclassify(v)) ^ [...]/sysroot/usr/include/boost/functional/hash/detail/hash_float.hpp:210:21: error: ‘_Generic’ was not declared in this scope switch (fpclassify(v)) ^ Also backport fix for glibc bug 22146. Without this patch some C++ applications (jsoncpp, mesa3d and kodi) fail to build due to an issue while building the toolchain. A test in the libstdc++ configure script fail when -Os and float128 are used. See the bug report for details [3]. [1] https://sourceware.org/ml/libc-alpha/2017-08/msg00586.html [2] https://sourceware.org/bugzilla/show_bug.cgi?id=21930 [3] https://sourceware.org/bugzilla/show_bug.cgi?id=22146 Signed-off-by: Romain Naour <romain.naour@gmail.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Tested-by: Bernd Kuhls <bernd.kuhls@t-online.de> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Diffstat (limited to 'package/glibc/0001-sh-Fix-building-with-gcc5-6.patch')
-rw-r--r--package/glibc/0001-sh-Fix-building-with-gcc5-6.patch56
1 files changed, 0 insertions, 56 deletions
diff --git a/package/glibc/0001-sh-Fix-building-with-gcc5-6.patch b/package/glibc/0001-sh-Fix-building-with-gcc5-6.patch
deleted file mode 100644
index fa43bddc8c..0000000000
--- a/package/glibc/0001-sh-Fix-building-with-gcc5-6.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 3840d4c2add1dd282f5f01fa51720b2d5b8fd8d2 Mon Sep 17 00:00:00 2001
-From: Alexey Neyman <stilor@att.net>
-Date: Wed, 8 Feb 2017 16:00:57 -0200
-Subject: [PATCH] sh: Fix building with gcc5/6
-
-Build glibc for sh4-unknown-linux-gnu currently fails if one's
-using GCC5/6: in dl-conflict.c, the elf_machine_rela() function
-is called with NULL as its 3rd argument, sym. The implementation
-of that function in sysdeps/sh/dl-machine.h dereferences that pointer:
-
-const Elf32_Sym *const refsym = sym;
-...
-if (map == &GL(dl_rtld_map))
- value -= map->l_addr + refsym->st_value + reloc->r_addend;
-
-GCC discovers a null pointer dereference, and in accordance with
--fdelete-null-pointer-checks (which is enabled in -O2) replaces this
-code with a trap - which, as SH does not implement a trap pattern in
-GCC, evaluates to an abort() call. This abort() call pulls many more
-objects from libc_nonshared.a, eventually resulting in link failure
-due to multiple definitions for a number of symbols.
-
-As far as I see, the conditional before this code is always false in
-rtld: _dl_resolve_conflicts() is called with main_map as the first
-argument, not GL(_dl_rtld_map), but since that call is in yet another
-compilation unit, GCC does not know about it. Patch that wraps this
-conditional into !defined RESOLVE_CONFLICT_FIND_MAP attached.
-
- * sysdeps/sh/dl-machine.h (elf_machine_rela): The condition
- in R_SH_DIR32 case is always false when inlined from
- dl-conflict.c. Ifdef out to prevent GCC from insertin an
- abort() call.
-
-[Waldemar: backport of
-https://sourceware.org/git/?p=glibc.git;a=commit;h=d40dbe722f004f999b589de776f7e57e564dda01.]
-Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
----
- sysdeps/sh/dl-machine.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/sysdeps/sh/dl-machine.h b/sysdeps/sh/dl-machine.h
-index 449deea..2b468af 100644
---- a/sysdeps/sh/dl-machine.h
-+++ b/sysdeps/sh/dl-machine.h
-@@ -389,7 +389,7 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
- break;
- case R_SH_DIR32:
- {
--#ifndef RTLD_BOOTSTRAP
-+#if !defined RTLD_BOOTSTRAP && !defined RESOLVE_CONFLICT_FIND_MAP
- /* This is defined in rtld.c, but nowhere in the static
- libc.a; make the reference weak so static programs can
- still link. This declaration cannot be done when
---
-2.7.4
-
OpenPOWER on IntegriCloud