d6a4807f94
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>
57 lines
2.2 KiB
Diff
57 lines
2.2 KiB
Diff
From bb21afc362a3ecba07ab386a0bc4385e75fbd4b5 Mon Sep 17 00:00:00 2001
|
|
From: "Gabriel F. T. Gomes" <gftg@linux.vnet.ibm.com>
|
|
Date: Mon, 14 Aug 2017 17:51:51 -0300
|
|
Subject: [PATCH] Do not use generic selection in C++ mode
|
|
|
|
The logic to protect the use of generic selection (_Generic) does not
|
|
check for C or C++ mode, however, generic selection is a C-only
|
|
feature.
|
|
|
|
Tested for powerpc64le.
|
|
|
|
* misc/sys/cdefs.h (__HAVE_GENERIC_SELECTION): Define to 0, if
|
|
in C++ mode.
|
|
|
|
(cherry picked from commit 6913ad65e00bb32417ad39c41d292b976171e27e)
|
|
[Romain rebase on glibc 2.26]
|
|
Signed-off-by: Romain Naour <romain.naour@gmail.com>
|
|
---
|
|
misc/sys/cdefs.h | 19 ++++++++++---------
|
|
1 file changed, 10 insertions(+), 9 deletions(-)
|
|
|
|
diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h
|
|
index 06523bf..0c80821 100644
|
|
--- a/misc/sys/cdefs.h
|
|
+++ b/misc/sys/cdefs.h
|
|
@@ -464,17 +464,18 @@
|
|
# define __glibc_macro_warning(msg)
|
|
#endif
|
|
|
|
-/* Support for generic selection (ISO C11) is available in GCC since
|
|
- version 4.9. Previous versions do not provide generic selection,
|
|
- even though they might set __STDC_VERSION__ to 201112L, when in
|
|
- -std=c11 mode. Thus, we must check for !defined __GNUC__ when
|
|
- testing __STDC_VERSION__ for generic selection support.
|
|
+/* Generic selection (ISO C11) is a C-only feature, available in GCC
|
|
+ since version 4.9. Previous versions do not provide generic
|
|
+ selection, even though they might set __STDC_VERSION__ to 201112L,
|
|
+ when in -std=c11 mode. Thus, we must check for !defined __GNUC__
|
|
+ when testing __STDC_VERSION__ for generic selection support.
|
|
On the other hand, Clang also defines __GNUC__, so a clang-specific
|
|
check is required to enable the use of generic selection. */
|
|
-#if __GNUC_PREREQ (4, 9) \
|
|
- || __glibc_clang_has_extension (c_generic_selections) \
|
|
- || (!defined __GNUC__ && defined __STDC_VERSION__ \
|
|
- && __STDC_VERSION__ >= 201112L)
|
|
+#if !defined __cplusplus \
|
|
+ && (__GNUC_PREREQ (4, 9) \
|
|
+ || __glibc_clang_has_extension (c_generic_selections) \
|
|
+ || (!defined __GNUC__ && defined __STDC_VERSION__ \
|
|
+ && __STDC_VERSION__ >= 201112L))
|
|
# define __HAVE_GENERIC_SELECTION 1
|
|
#else
|
|
# define __HAVE_GENERIC_SELECTION 0
|
|
--
|
|
2.9.5
|
|
|