diff options
Diffstat (limited to 'meta')
4 files changed, 2 insertions, 253 deletions
diff --git a/meta/recipes-core/uclibc/uclibc-git.inc b/meta/recipes-core/uclibc/uclibc-git.inc index b84912ba7a..a5c4b5e2ff 100644 --- a/meta/recipes-core/uclibc/uclibc-git.inc +++ b/meta/recipes-core/uclibc/uclibc-git.inc | |||
@@ -1,15 +1,12 @@ | |||
1 | SRCREV = "d1b81113b43a6d26dec4e0e58a380895d121006e" | 1 | SRCREV = "0ad73077c230093ae004829da44418597f330c6a" |
2 | 2 | ||
3 | PV = "1.0.9+git${SRCPV}" | 3 | PV = "1.0.10+git${SRCPV}" |
4 | 4 | ||
5 | FILESEXTRAPATHS =. "${FILE_DIRNAME}/uclibc-git:" | 5 | FILESEXTRAPATHS =. "${FILE_DIRNAME}/uclibc-git:" |
6 | 6 | ||
7 | SRC_URI = "git://uclibc-ng.org/git/uclibc-ng;branch=1.0 \ | 7 | SRC_URI = "git://uclibc-ng.org/git/uclibc-ng;branch=1.0 \ |
8 | file://0001-Disable-lrount_tes-function.patch \ | 8 | file://0001-Disable-lrount_tes-function.patch \ |
9 | file://0001-Revert-glibc-compat-bump-glibc-minor-version.patch \ | ||
10 | file://0002-Add-implementation-for-copysignl-for-ppc.patch \ | ||
11 | file://0003-Add-argp-implementation.patch \ | 9 | file://0003-Add-argp-implementation.patch \ |
12 | file://libc-stdlib-canonicalize_file_name-memory-leak.patch \ | ||
13 | file://uClibc.machine \ | 10 | file://uClibc.machine \ |
14 | file://uClibc.distro \ | 11 | file://uClibc.distro \ |
15 | file://obstack.cfg \ | 12 | file://obstack.cfg \ |
diff --git a/meta/recipes-core/uclibc/uclibc-git/0001-Revert-glibc-compat-bump-glibc-minor-version.patch b/meta/recipes-core/uclibc/uclibc-git/0001-Revert-glibc-compat-bump-glibc-minor-version.patch deleted file mode 100644 index 72d010932a..0000000000 --- a/meta/recipes-core/uclibc/uclibc-git/0001-Revert-glibc-compat-bump-glibc-minor-version.patch +++ /dev/null | |||
@@ -1,28 +0,0 @@ | |||
1 | From f9f566849ad0785b2fd3fd6c4c5d324f9f822aac Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Sun, 13 Dec 2015 17:25:11 +0000 | ||
4 | Subject: [PATCH] Revert "glibc compat: bump glibc minor version" | ||
5 | |||
6 | This reverts commit 4ff3a6c8eb91db71d6dc3d2932b66e848bd20ac3. | ||
7 | --- | ||
8 | Upstream-Status: Inappropriate [ OE-Specific ] | ||
9 | |||
10 | include/features.h | 2 +- | ||
11 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
12 | |||
13 | diff --git a/include/features.h b/include/features.h | ||
14 | index f6fbbf4..dcf1348 100644 | ||
15 | --- a/include/features.h | ||
16 | +++ b/include/features.h | ||
17 | @@ -393,7 +393,7 @@ uClibc was built without large file support enabled. | ||
18 | these macros to test for features in specific releases. */ | ||
19 | /* Don't do it, if you want to keep uClibc happy. */ | ||
20 | #define __GLIBC__ 2 | ||
21 | -#define __GLIBC_MINOR__ 10 | ||
22 | +#define __GLIBC_MINOR__ 2 | ||
23 | #endif | ||
24 | |||
25 | #define __GLIBC_PREREQ(maj, min) \ | ||
26 | -- | ||
27 | 2.6.4 | ||
28 | |||
diff --git a/meta/recipes-core/uclibc/uclibc-git/0002-Add-implementation-for-copysignl-for-ppc.patch b/meta/recipes-core/uclibc/uclibc-git/0002-Add-implementation-for-copysignl-for-ppc.patch deleted file mode 100644 index d4275c997e..0000000000 --- a/meta/recipes-core/uclibc/uclibc-git/0002-Add-implementation-for-copysignl-for-ppc.patch +++ /dev/null | |||
@@ -1,125 +0,0 @@ | |||
1 | From 5d362074e5975b150a35bcfa77eab1bfa4e30de7 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Sun, 16 Aug 2015 20:50:56 -0700 | ||
4 | Subject: [PATCH 2/7] Add implementation for copysignl for ppc | ||
5 | |||
6 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
7 | --- | ||
8 | Upstream-Status: Pending | ||
9 | |||
10 | libc/sysdeps/linux/powerpc/Makefile.arch | 2 +- | ||
11 | libc/sysdeps/linux/powerpc/copysignl.c | 89 ++++++++++++++++++++++++++++++++ | ||
12 | 2 files changed, 90 insertions(+), 1 deletion(-) | ||
13 | create mode 100644 libc/sysdeps/linux/powerpc/copysignl.c | ||
14 | |||
15 | diff --git a/libc/sysdeps/linux/powerpc/Makefile.arch b/libc/sysdeps/linux/powerpc/Makefile.arch | ||
16 | index 4fbcb11..7c09c87 100644 | ||
17 | --- a/libc/sysdeps/linux/powerpc/Makefile.arch | ||
18 | +++ b/libc/sysdeps/linux/powerpc/Makefile.arch | ||
19 | @@ -5,7 +5,7 @@ | ||
20 | # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. | ||
21 | # | ||
22 | |||
23 | -CSRC-y := __syscall_error.c ioctl.c | ||
24 | +CSRC-y := __syscall_error.c ioctl.c copysignl.c | ||
25 | |||
26 | SSRC-y := \ | ||
27 | __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S brk.S \ | ||
28 | diff --git a/libc/sysdeps/linux/powerpc/copysignl.c b/libc/sysdeps/linux/powerpc/copysignl.c | ||
29 | new file mode 100644 | ||
30 | index 0000000..000f653 | ||
31 | --- /dev/null | ||
32 | +++ b/libc/sysdeps/linux/powerpc/copysignl.c | ||
33 | @@ -0,0 +1,89 @@ | ||
34 | +/* s_copysignl.c -- long double version of s_copysign.c. | ||
35 | + * Conversion to long double by Ulrich Drepper, | ||
36 | + * Cygnus Support, drepper@cygnus.com. | ||
37 | + */ | ||
38 | + | ||
39 | +/* | ||
40 | + * ==================================================== | ||
41 | + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. | ||
42 | + * | ||
43 | + * Developed at SunPro, a Sun Microsystems, Inc. business. | ||
44 | + * Permission to use, copy, modify, and distribute this | ||
45 | + * software is freely granted, provided that this notice | ||
46 | + * is preserved. | ||
47 | + * ==================================================== | ||
48 | + */ | ||
49 | + | ||
50 | +/* | ||
51 | + * copysignl(long double x, long double y) | ||
52 | + * copysignl(x,y) returns a value with the magnitude of x and | ||
53 | + * with the sign bit of y. | ||
54 | + */ | ||
55 | + | ||
56 | +#include <endian.h> | ||
57 | +#include <stdint.h> | ||
58 | + | ||
59 | +#if __FLOAT_WORD_ORDER == BIG_ENDIAN | ||
60 | + | ||
61 | +typedef union | ||
62 | +{ | ||
63 | + long double value; | ||
64 | + struct | ||
65 | + { | ||
66 | + int sign_exponent:16; | ||
67 | + unsigned int empty:16; | ||
68 | + uint32_t msw; | ||
69 | + uint32_t lsw; | ||
70 | + } parts; | ||
71 | +} ieee_long_double_shape_type; | ||
72 | + | ||
73 | +#endif | ||
74 | + | ||
75 | +#if __FLOAT_WORD_ORDER == LITTLE_ENDIAN | ||
76 | + | ||
77 | +typedef union | ||
78 | +{ | ||
79 | + long double value; | ||
80 | + struct | ||
81 | + { | ||
82 | + uint32_t lsw; | ||
83 | + uint32_t msw; | ||
84 | + int sign_exponent:16; | ||
85 | + unsigned int empty:16; | ||
86 | + } parts; | ||
87 | +} ieee_long_double_shape_type; | ||
88 | + | ||
89 | +#endif | ||
90 | + | ||
91 | +/* Get int from the exponent of a long double. */ | ||
92 | + | ||
93 | +#define GET_LDOUBLE_EXP(exp,d) \ | ||
94 | +do { \ | ||
95 | + ieee_long_double_shape_type ge_u; \ | ||
96 | + ge_u.value = (d); \ | ||
97 | + (exp) = ge_u.parts.sign_exponent; \ | ||
98 | +} while (0) | ||
99 | + | ||
100 | +/* Set exponent of a long double from an int. */ | ||
101 | + | ||
102 | +#define SET_LDOUBLE_EXP(d,exp) \ | ||
103 | +do { \ | ||
104 | + ieee_long_double_shape_type se_u; \ | ||
105 | + se_u.value = (d); \ | ||
106 | + se_u.parts.sign_exponent = (exp); \ | ||
107 | + (d) = se_u.value; \ | ||
108 | +} while (0) | ||
109 | + | ||
110 | +long double copysignl(long double x, long double y); | ||
111 | +libc_hidden_proto(copysignl); | ||
112 | + | ||
113 | +long double copysignl(long double x, long double y) | ||
114 | +{ | ||
115 | + uint32_t es1,es2; | ||
116 | + GET_LDOUBLE_EXP(es1,x); | ||
117 | + GET_LDOUBLE_EXP(es2,y); | ||
118 | + SET_LDOUBLE_EXP(x,(es1&0x7fff)|(es2&0x8000)); | ||
119 | + return x; | ||
120 | +} | ||
121 | + | ||
122 | +libc_hidden_def(copysignl); | ||
123 | -- | ||
124 | 2.1.4 | ||
125 | |||
diff --git a/meta/recipes-core/uclibc/uclibc-git/libc-stdlib-canonicalize_file_name-memory-leak.patch b/meta/recipes-core/uclibc/uclibc-git/libc-stdlib-canonicalize_file_name-memory-leak.patch deleted file mode 100644 index 83d21e2ec7..0000000000 --- a/meta/recipes-core/uclibc/uclibc-git/libc-stdlib-canonicalize_file_name-memory-leak.patch +++ /dev/null | |||
@@ -1,95 +0,0 @@ | |||
1 | From patchwork Wed Oct 21 06:02:30 2015 | ||
2 | Content-Type: text/plain; charset="utf-8" | ||
3 | MIME-Version: 1.0 | ||
4 | Content-Transfer-Encoding: 7bit | ||
5 | Subject: libc/stdlib: canonicalize_file_name() memory leak | ||
6 | From: =?utf-8?q?Wojciech_Nizi=C5=84ski?= <niziak@spox.org> | ||
7 | X-Patchwork-Id: 533608 | ||
8 | Message-Id: <loom.20151021T080015-833@post.gmane.org> | ||
9 | To: uclibc@uclibc.org | ||
10 | Date: Wed, 21 Oct 2015 06:02:30 +0000 (UTC) | ||
11 | |||
12 | System based on Buildroot 2014.11 | ||
13 | Linux 3.10.88 | ||
14 | uclibc 0.9.33.2 (also with 1.0.2) | ||
15 | systemd 216 | ||
16 | gcc 4.8.3 (also with 4.9.2) | ||
17 | |||
18 | Bug: | ||
19 | After 2 days system is out of memory. PID 1 (systemd) is allocating. | ||
20 | over 120MB od RAM.. | ||
21 | Just after reboot PID 1 is taking only about 600kB. | ||
22 | |||
23 | How to reproduce: | ||
24 | With every systemd service reload or restart, heap of PID 1 grows. | ||
25 | Try with command: | ||
26 | watch -n1 \ | ||
27 | 'systemctl stop systemd-sysctl ; grep heap /proc/1/smaps -A15; free' | ||
28 | |||
29 | Source of bug: | ||
30 | |||
31 | Uclibc's canonicalize_file_name() is allocating temprary buffer of. | ||
32 | 4kB (PATH_MAX), and passing it to realpath() as second argument.. | ||
33 | Function canonicalize... is not checking if realpath() fails and. | ||
34 | memory is lost. | ||
35 | |||
36 | Backtrace: | ||
37 | #0 malloc (bytes=4096) at libc/stdlib/malloc-standard/malloc.c:844 | ||
38 | #1 canonicalize_file_name. | ||
39 | (name="/etc/systemd/system/systemd-sysctl.service.d") at. | ||
40 | libc/stdlib/canonicalize.c:30 | ||
41 | #2 path_strv_resolve (...) at src/shared/path-util.c:275 | ||
42 | |||
43 | Solution: | ||
44 | Do not use temporary buffer like in eglibc. | ||
45 | Function realpath() will be responsible for allocation. | ||
46 | |||
47 | From: Wojciech Nizinski <w.nizinski@grinn-global.com> | ||
48 | Date: Tue, 20 Oct 2015 14:08:09 +0200 | ||
49 | Subject: [PATCH]libc/stdlib: canonicalize_file_name() memory leak | ||
50 | |||
51 | Uclibc's canonicalize_file_name() is allocating temprary buffer of 4kB | ||
52 | (PATH_MAX), and passing it to realpath() as second argument. Function is | ||
53 | not checking if realpath() fails and memory is lost. | ||
54 | --- | ||
55 | Upstream-Status: Submitted | ||
56 | |||
57 | libc/stdlib/canonicalize.c | 21 +-------------------- | ||
58 | 1 file changed, 1 insertion(+), 20 deletions(-) | ||
59 | |||
60 | diff --git a/libc/stdlib/canonicalize.c b/libc/stdlib/canonicalize.c | ||
61 | index 06e710a..da09d58 100644 | ||
62 | --- a/libc/stdlib/canonicalize.c | ||
63 | +++ b/libc/stdlib/canonicalize.c | ||
64 | @@ -9,30 +9,11 @@ | ||
65 | */ | ||
66 | |||
67 | #include <stdlib.h> | ||
68 | -#include <limits.h> | ||
69 | |||
70 | #ifdef __USE_GNU | ||
71 | |||
72 | -#ifndef PATH_MAX | ||
73 | -# ifdef _POSIX_VERSION | ||
74 | -# define PATH_MAX _POSIX_PATH_MAX | ||
75 | -# else | ||
76 | -# ifdef MAXPATHLEN | ||
77 | -# define PATH_MAX MAXPATHLEN | ||
78 | -# else | ||
79 | -# define PATH_MAX 1024 | ||
80 | -# endif | ||
81 | -# endif | ||
82 | -#endif | ||
83 | - | ||
84 | char * canonicalize_file_name (const char *name) | ||
85 | { | ||
86 | - char *buf = (char *) malloc(PATH_MAX); | ||
87 | - | ||
88 | - if(unlikely(buf == NULL)) | ||
89 | - return NULL; | ||
90 | - | ||
91 | - *buf='\0'; | ||
92 | - return realpath (name, buf); | ||
93 | + return realpath (name, NULL); | ||
94 | } | ||
95 | #endif | ||