glibc: bump default to version 2.24
PATCH 1/4 glibc: bump default to version 2.24
--- package/glibc/Config.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
package/glibc/Config.in +1 -1
@@ -8,7 +8,7 @@ config BR2_PACKAGE_GLIBC choice prompt "glibc version" - default BR2_GLIBC_VERSION_2_23 + default BR2_GLIBC_VERSION_2_24 config BR2_GLIBC_VERSION_2_22 bool "2.22"
Signature · 1 line
2.10.2
PATCH 2/4 glibc: add version 2.25
--- package/glibc/Config.in | 7 ++++++- package/glibc/glibc.hash | 1 + 2 files changed, 7 insertions(+), 1 deletion(-)
package/glibc/Config.in +6 -1
@@ -24,7 +24,11 @@ config BR2_GLIBC_VERSION_2_24 # See: https://sourceware.org/ml/libc-alpha/2016-08/msg00212.html depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2 -comment "glibc-2.24 needs kernel headers >= 3.2" +config BR2_GLIBC_VERSION_2_25 + bool "2.25" + depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2 + +comment "glibc-2.24+ needs kernel headers >= 3.2" depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2 endchoice
@@ -36,3 +40,4 @@ config BR2_GLIBC_VERSION_STRING default "2.22" if BR2_GLIBC_VERSION_2_22 default "2.23" if BR2_GLIBC_VERSION_2_23 default "2.24" if BR2_GLIBC_VERSION_2_24 + default "2.25" if BR2_GLIBC_VERSION_2_25
package/glibc/glibc.hash +1 -0
@@ -2,3 +2,4 @@ sha256 eb731406903befef1d8f878a46be75ef862b9056ab0cde1626d08a7a05328948 glibc-2.22.tar.xz sha256 94efeb00e4603c8546209cefb3e1a50a5315c86fa9b078b6fad758e187ce13e9 glibc-2.23.tar.xz sha256 99d4a3e8efd144d71488e478f62587578c0f4e1fa0b4eed47ee3d4975ebeb5d3 glibc-2.24.tar.xz +sha256 067bd9bb3390e79aa45911537d13c3721f1d9d3769931a30c2681bfee66f23a0 glibc-2.25.tar.xz
Signature · 1 line
2.10.2
PATCH 3/4 glibc: drop version 2.22
In reply to Gustavo ZacariasWe don't want a dozen glibc versions and there's no particular reason to keep this old version around so drop it.
--- package/glibc/2.22/0001-fix-CVE-2015-7547.patch | 236 --------------------- .../0002-microblaze-include-unix-sysdep.h.patch | 43 ---- package/glibc/2.22/0003-fix-CVE-2016-3075.patch | 44 ---- ...-fix-wrong-vfork-aliases-in-libpthread.so.patch | 76 ------- ...more-fixes-to-the-vfork-aliases-in-libpth.patch | 122 ----------- package/glibc/Config.in | 6 - package/glibc/glibc.hash | 1 - 7 files changed, 528 deletions(-) delete mode 100644 package/glibc/2.22/0001-fix-CVE-2015-7547.patch delete mode 100644 package/glibc/2.22/0002-microblaze-include-unix-sysdep.h.patch delete mode 100644 package/glibc/2.22/0003-fix-CVE-2016-3075.patch delete mode 100644 package/glibc/2.22/0004-MIPS-SPARC-fix-wrong-vfork-aliases-in-libpthread.so.patch delete mode 100644 package/glibc/2.22/0005-MIPS-SPARC-more-fixes-to-the-vfork-aliases-in-libpth.patch
package/glibc/2.22/0001-fix-CVE-2015-7547.patch deleted +0 -236
@@ -1,236 +0,0 @@ -Fetched from gentoo glibc patchball -Original patch filename: 10_all_glibc-CVE-2015-7547.patch -Based on: https://sourceware.org/ml/libc-alpha/2016-02/msg00416.html - -Fixes: -CVE-2015-7547 - glibc getaddrinfo stack-based buffer overflow. - -Signed-off-by: Gustavo Zacarias <[email protected]> - ---- a/resolv/nss_dns/dns-host.c -+++ b/resolv/nss_dns/dns-host.c -@@ -1031,7 +1031,10 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname, - int h_namelen = 0; - - if (ancount == 0) -- return NSS_STATUS_NOTFOUND; -+ { -+ *h_errnop = HOST_NOT_FOUND; -+ return NSS_STATUS_NOTFOUND; -+ } - - while (ancount-- > 0 && cp < end_of_message && had_error == 0) - { -@@ -1208,7 +1211,14 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname, - /* Special case here: if the resolver sent a result but it only - contains a CNAME while we are looking for a T_A or T_AAAA record, - we fail with NOTFOUND instead of TRYAGAIN. */ -- return canon == NULL ? NSS_STATUS_TRYAGAIN : NSS_STATUS_NOTFOUND; -+ if (canon != NULL) -+ { -+ *h_errnop = HOST_NOT_FOUND; -+ return NSS_STATUS_NOTFOUND; -+ } -+ -+ *h_errnop = NETDB_INTERNAL; -+ return NSS_STATUS_TRYAGAIN; - } - - -@@ -1242,8 +1252,15 @@ gaih_getanswer (const querybuf *answer1, int anslen1, const querybuf *answer2, - &pat, &buffer, &buflen, - errnop, h_errnop, ttlp, - &first); -+ /* Use the second response status in some cases. */ - if (status != NSS_STATUS_SUCCESS && status2 != NSS_STATUS_NOTFOUND) - status = status2; -+ /* Do not return a truncated second response (unless it was -+ unavoidable e.g. unrecoverable TRYAGAIN). */ -+ if (status == NSS_STATUS_SUCCESS -+ && (status2 == NSS_STATUS_TRYAGAIN -+ && *errnop == ERANGE && *h_errnop != NO_RECOVERY)) -+ status = NSS_STATUS_TRYAGAIN; - } - - return status; ---- a/resolv/res_query.c -+++ b/resolv/res_query.c -@@ -396,6 +396,7 @@ __libc_res_nsearch(res_state statp, - { - free (*answerp2); - *answerp2 = NULL; -+ *nanswerp2 = 0; - *answerp2_malloced = 0; - } - } -@@ -447,6 +448,7 @@ __libc_res_nsearch(res_state statp, - { - free (*answerp2); - *answerp2 = NULL; -+ *nanswerp2 = 0; - *answerp2_malloced = 0; - } - -@@ -521,6 +523,7 @@ __libc_res_nsearch(res_state statp, - { - free (*answerp2); - *answerp2 = NULL; -+ *nanswerp2 = 0; - *answerp2_malloced = 0; - } - if (saved_herrno != -1) ---- a/resolv/res_send.c -+++ b/resolv/res_send.c -@@ -639,11 +639,7 @@ send_vc(res_state statp, - { - const HEADER *hp = (HEADER *) buf; - const HEADER *hp2 = (HEADER *) buf2; -- u_char *ans = *ansp; -- int orig_anssizp = *anssizp; -- // XXX REMOVE -- // int anssiz = *anssizp; -- HEADER *anhp = (HEADER *) ans; -+ HEADER *anhp = (HEADER *) *ansp; - struct sockaddr *nsap = get_nsaddr (statp, ns); - int truncating, connreset, n; - /* On some architectures compiler might emit a warning indicating -@@ -767,35 +763,6 @@ send_vc(res_state statp, - assert (anscp != NULL || ansp2 == NULL); - thisresplenp = &resplen; - } else { -- if (*anssizp != MAXPACKET) { -- /* No buffer allocated for the first -- reply. We can try to use the rest -- of the user-provided buffer. */ --#if __GNUC_PREREQ (4, 7) -- DIAG_PUSH_NEEDS_COMMENT; -- DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized"); --#endif --#if _STRING_ARCH_unaligned -- *anssizp2 = orig_anssizp - resplen; -- *ansp2 = *ansp + resplen; --#else -- int aligned_resplen -- = ((resplen + __alignof__ (HEADER) - 1) -- & ~(__alignof__ (HEADER) - 1)); -- *anssizp2 = orig_anssizp - aligned_resplen; -- *ansp2 = *ansp + aligned_resplen; --#endif --#if __GNUC_PREREQ (4, 7) -- DIAG_POP_NEEDS_COMMENT; --#endif -- } else { -- /* The first reply did not fit into the -- user-provided buffer. Maybe the second -- answer will. */ -- *anssizp2 = orig_anssizp; -- *ansp2 = *ansp; -- } -- - thisanssizp = anssizp2; - thisansp = ansp2; - thisresplenp = resplen2; -@@ -804,10 +771,14 @@ send_vc(res_state statp, - anhp = (HEADER *) *thisansp; - - *thisresplenp = rlen; -- if (rlen > *thisanssizp) { -- /* Yes, we test ANSCP here. If we have two buffers -- both will be allocatable. */ -- if (__glibc_likely (anscp != NULL)) { -+ /* Is the answer buffer too small? */ -+ if (*thisanssizp < rlen) { -+ /* If the current buffer is not the the static -+ user-supplied buffer then we can reallocate -+ it. */ -+ if (thisansp != NULL && thisansp != ansp) { -+ /* Always allocate MAXPACKET, callers expect -+ this specific size. */ - u_char *newp = malloc (MAXPACKET); - if (newp == NULL) { - *terrno = ENOMEM; -@@ -957,8 +928,6 @@ send_dg(res_state statp, - { - const HEADER *hp = (HEADER *) buf; - const HEADER *hp2 = (HEADER *) buf2; -- u_char *ans = *ansp; -- int orig_anssizp = *anssizp; - struct timespec now, timeout, finish; - struct pollfd pfd[1]; - int ptimeout; -@@ -1154,50 +1123,48 @@ send_dg(res_state statp, - assert (anscp != NULL || ansp2 == NULL); - thisresplenp = &resplen; - } else { -- if (*anssizp != MAXPACKET) { -- /* No buffer allocated for the first -- reply. We can try to use the rest -- of the user-provided buffer. */ --#if _STRING_ARCH_unaligned -- *anssizp2 = orig_anssizp - resplen; -- *ansp2 = *ansp + resplen; --#else -- int aligned_resplen -- = ((resplen + __alignof__ (HEADER) - 1) -- & ~(__alignof__ (HEADER) - 1)); -- *anssizp2 = orig_anssizp - aligned_resplen; -- *ansp2 = *ansp + aligned_resplen; --#endif -- } else { -- /* The first reply did not fit into the -- user-provided buffer. Maybe the second -- answer will. */ -- *anssizp2 = orig_anssizp; -- *ansp2 = *ansp; -- } -- - thisanssizp = anssizp2; - thisansp = ansp2; - thisresplenp = resplen2; - } - - if (*thisanssizp < MAXPACKET -- /* Yes, we test ANSCP here. If we have two buffers -- both will be allocatable. */ -- && anscp -+ /* If the current buffer is not the the static -+ user-supplied buffer then we can reallocate -+ it. */ -+ && (thisansp != NULL && thisansp != ansp) - #ifdef FIONREAD -+ /* Is the size too small? */ - && (ioctl (pfd[0].fd, FIONREAD, thisresplenp) < 0 - || *thisanssizp < *thisresplenp) - #endif - ) { -+ /* Always allocate MAXPACKET, callers expect -+ this specific size. */ - u_char *newp = malloc (MAXPACKET); - if (newp != NULL) { -- *anssizp = MAXPACKET; -- *thisansp = ans = newp; -+ *thisanssizp = MAXPACKET; -+ *thisansp = newp; - if (thisansp == ansp2) - *ansp2_malloced = 1; - } - } -+ /* We could end up with truncation if anscp was NULL -+ (not allowed to change caller's buffer) and the -+ response buffer size is too small. This isn't a -+ reliable way to detect truncation because the ioctl -+ may be an inaccurate report of the UDP message size. -+ Therefore we use this only to issue debug output. -+ To do truncation accurately with UDP we need -+ MSG_TRUNC which is only available on Linux. We -+ can abstract out the Linux-specific feature in the -+ future to detect truncation. */ -+ if (__glibc_unlikely (*thisanssizp < *thisresplenp)) { -+ Dprint(statp->options & RES_DEBUG, -+ (stdout, ";; response may be truncated (UDP)\n") -+ ); -+ } -+ - HEADER *anhp = (HEADER *) *thisansp; - socklen_t fromlen = sizeof(struct sockaddr_in6); - assert (sizeof(from) <= fromlen);
package/glibc/2.22/0002-microblaze-include-unix-sysdep.h.patch deleted +0 -43
43 lines not on this page · raw message
package/glibc/2.22/0003-fix-CVE-2016-3075.patch deleted +0 -44
44 lines not on this page · raw message
package/glibc/2.22/0004-MIPS-SPARC-fix-wrong-vfork-aliases-in-libpthread.so.patch deleted +0 -76
76 lines not on this page · raw message
package/glibc/2.22/0005-MIPS-SPARC-more-fixes-to-the-vfork-aliases-in-libpth.patch deleted +0 -122
122 lines not on this page · raw message
package/glibc/Config.in +0 -6
@@ -10,11 +10,6 @@ choice prompt "glibc version" default BR2_GLIBC_VERSION_2_24 -config BR2_GLIBC_VERSION_2_22 - bool "2.22" - # Too old to build with gcc >= 6.x - depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_6 - config BR2_GLIBC_VERSION_2_23 bool "2.23"
@@ -37,7 +32,6 @@ endif config BR2_GLIBC_VERSION_STRING string - default "2.22" if BR2_GLIBC_VERSION_2_22 default "2.23" if BR2_GLIBC_VERSION_2_23 default "2.24" if BR2_GLIBC_VERSION_2_24 default "2.25" if BR2_GLIBC_VERSION_2_25
package/glibc/glibc.hash +0 -1
@@ -1,5 +1,4 @@ # Locally calculated after checking pgp signature (glibc) -sha256 eb731406903befef1d8f878a46be75ef862b9056ab0cde1626d08a7a05328948 glibc-2.22.tar.xz sha256 94efeb00e4603c8546209cefb3e1a50a5315c86fa9b078b6fad758e187ce13e9 glibc-2.23.tar.xz sha256 99d4a3e8efd144d71488e478f62587578c0f4e1fa0b4eed47ee3d4975ebeb5d3 glibc-2.24.tar.xz sha256 067bd9bb3390e79aa45911537d13c3721f1d9d3769931a30c2681bfee66f23a0 glibc-2.25.tar.xz
Signature · 1 line
2.10.2
PATCH 4/4 fontconfig: add build fix for glibc 2.25
In reply to Gustavo Zacarias--- ...ts-with-integer-width-macros-from-TS-1866.patch | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 package/fontconfig/0001-Avoid-conflicts-with-integer-width-macros-from-TS-1866.patch
package/fontconfig/0001-Avoid-conflicts-with-integer-width-macros-from-TS-1866.patch new file +50 -0
@@ -0,0 +1,50 @@ +From 1ab5258f7c2abfafcd63a760ca08bf93591912da Mon Sep 17 00:00:00 2001 +From: Khem Raj <[email protected]> +Date: Wed, 14 Dec 2016 16:11:05 -0800 +Subject: [PATCH] Avoid conflicts with integer width macros from TS + 18661-1:2014 + +glibc 2.25+ has now defined these macros in <limits.h> +https://sourceware.org/git/?p=glibc.git;a=commit;h=5b17fd0da62bf923cb61d1bb7b08cf2e1f1f9c1a + +Create an alias for FC_CHAR_WIDTH for ABI compatibility + +Signed-off-by: Khem Raj <[email protected]> +Signed-off-by: Gustavo Zacarias <[email protected]> +--- +Patch status: upstream + + fontconfig/fontconfig.h | 3 ++- + src/fcobjs.h | 2 +- + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h +index 5c72b22..070a557 100644 +--- a/fontconfig/fontconfig.h ++++ b/fontconfig/fontconfig.h +@@ -128,7 +128,8 @@ typedef int FcBool; + #define FC_USER_CACHE_FILE ".fonts.cache-" FC_CACHE_VERSION + + /* Adjust outline rasterizer */ +-#define FC_CHAR_WIDTH "charwidth" /* Int */ ++#define FC_CHARWIDTH "charwidth" /* Int */ ++#define FC_CHAR_WIDTH FC_CHARWIDTH + #define FC_CHAR_HEIGHT "charheight"/* Int */ + #define FC_MATRIX "matrix" /* FcMatrix */ + +diff --git a/src/fcobjs.h b/src/fcobjs.h +index 1fc4f65..d27864b 100644 +--- a/src/fcobjs.h ++++ b/src/fcobjs.h +@@ -51,7 +51,7 @@ FC_OBJECT (DPI, FcTypeDouble, NULL) + FC_OBJECT (RGBA, FcTypeInteger, NULL) + FC_OBJECT (SCALE, FcTypeDouble, NULL) + FC_OBJECT (MINSPACE, FcTypeBool, NULL) +-FC_OBJECT (CHAR_WIDTH, FcTypeInteger, NULL) ++FC_OBJECT (CHARWIDTH, FcTypeInteger, NULL) + FC_OBJECT (CHAR_HEIGHT, FcTypeInteger, NULL) + FC_OBJECT (MATRIX, FcTypeMatrix, NULL) + FC_OBJECT (CHARSET, FcTypeCharSet, FcCompareCharSet) +-- +2.10.2 +
Signature · 1 line
2.10.2
PATCH 4/4 fontconfig: add build fix for glibc 2.25
Hello,
Quoted 5 lines · Gustavo Zacarias
Signed-off-by Gustavo Zacarias <[email protected]>--- ...ts-with-integer-width-macros-from-TS-1866.patch | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 package/fontconfig/0001-Avoid-conflicts-with-integer-width-macros-from-TS-1866.patch
This seems to break the build of fontconfig, because it causes a file generated by gperf to be regenerated, or something like that:
http://autobuild.buildroot.net/results/fcd/fcd27645f47f28b989bebfec2d65f5fdb72329c6/build-end.log
http://autobuild.buildroot.net/results/054/054b56978bd75980658fecb44d46416fa60ac98b/build-end.log
Could you have a look?
Thanks,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH 1/4 glibc: bump default to version 2.24
In reply to Gustavo ZacariasHello,
Quoted 4 lines · Gustavo Zacarias
Signed-off-by Gustavo Zacarias <[email protected]>--- package/glibc/Config.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
I've applied the entire series to the master branch. On PATCH 3/4 removing glibc 2.22, I've added an entry in Config.in.legacy, like we normally do when removing gcc/binutils versions.
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com