diff options
author | Adrian Bunk <bunk@stusta.de> | 2019-05-16 10:48:34 +0300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-05-16 16:35:12 +0100 |
commit | 11fd8dc6ffb8d403c22644f7f00b761d90e8b20d (patch) | |
tree | 42fc0eed0e36a5d549e1d9aea6bf182032ff5d3f | |
parent | f91866aaf13d350431f6ccac3fc941072a4ad80d (diff) | |
download | poky-11fd8dc6ffb8d403c22644f7f00b761d90e8b20d.tar.gz |
musl: Add TEMP_FAILURE_RETRY from glibc
Patch it into musl instead of patching all users
(currently elfutils and next ofono).
(From OE-Core rev: 0c68c621d3b8690e3a346170006f75b032511a8a)
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
3 files changed, 38 insertions, 29 deletions
diff --git a/meta/recipes-core/musl/musl/0001-unistd.h-Add-TEMP_FAILURE_RETRY.patch b/meta/recipes-core/musl/musl/0001-unistd.h-Add-TEMP_FAILURE_RETRY.patch new file mode 100644 index 0000000000..4d48d61651 --- /dev/null +++ b/meta/recipes-core/musl/musl/0001-unistd.h-Add-TEMP_FAILURE_RETRY.patch | |||
@@ -0,0 +1,36 @@ | |||
1 | From 19cbebc3fa33c6a1a71a6036da4d67c98f859f06 Mon Sep 17 00:00:00 2001 | ||
2 | From: Adrian Bunk <bunk@stusta.de> | ||
3 | Date: Wed, 15 May 2019 16:08:33 +0300 | ||
4 | Subject: unistd.h: Add TEMP_FAILURE_RETRY | ||
5 | |||
6 | Signed-off-by: Adrian Bunk <bunk@stusta.de> | ||
7 | Upstream-Status: Inappropriate [oe-specific] | ||
8 | --- | ||
9 | include/unistd.h | 11 +++++++++++ | ||
10 | 1 file changed, 11 insertions(+) | ||
11 | |||
12 | diff --git a/include/unistd.h b/include/unistd.h | ||
13 | index 9485da7a..8a75af57 100644 | ||
14 | --- a/include/unistd.h | ||
15 | +++ b/include/unistd.h | ||
16 | @@ -460,6 +460,17 @@ int eaccess(const char *, int); | ||
17 | #define _CS_V6_ENV 1148 | ||
18 | #define _CS_V7_ENV 1149 | ||
19 | |||
20 | +#ifdef _GNU_SOURCE | ||
21 | +#ifndef TEMP_FAILURE_RETRY | ||
22 | +# define TEMP_FAILURE_RETRY(expression) \ | ||
23 | + (__extension__ \ | ||
24 | + ({ long int __result; \ | ||
25 | + do __result = (long int) (expression); \ | ||
26 | + while (__result == -1L && errno == EINTR); \ | ||
27 | + __result; })) | ||
28 | +#endif | ||
29 | +#endif | ||
30 | + | ||
31 | #ifdef __cplusplus | ||
32 | } | ||
33 | #endif | ||
34 | -- | ||
35 | 2.20.1 | ||
36 | |||
diff --git a/meta/recipes-core/musl/musl_git.bb b/meta/recipes-core/musl/musl_git.bb index 1e324804e1..2b433aed8c 100644 --- a/meta/recipes-core/musl/musl_git.bb +++ b/meta/recipes-core/musl/musl_git.bb | |||
@@ -15,6 +15,7 @@ PV = "${BASEVER}+git${SRCPV}" | |||
15 | SRC_URI = "git://git.musl-libc.org/musl \ | 15 | SRC_URI = "git://git.musl-libc.org/musl \ |
16 | file://0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch \ | 16 | file://0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch \ |
17 | file://0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch \ | 17 | file://0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch \ |
18 | file://0001-unistd.h-Add-TEMP_FAILURE_RETRY.patch \ | ||
18 | " | 19 | " |
19 | 20 | ||
20 | S = "${WORKDIR}/git" | 21 | S = "${WORKDIR}/git" |
diff --git a/meta/recipes-devtools/elfutils/files/0008-build-Provide-alternatives-for-glibc-assumptions-hel.patch b/meta/recipes-devtools/elfutils/files/0008-build-Provide-alternatives-for-glibc-assumptions-hel.patch index a4f301d9da..10cdac646c 100644 --- a/meta/recipes-devtools/elfutils/files/0008-build-Provide-alternatives-for-glibc-assumptions-hel.patch +++ b/meta/recipes-devtools/elfutils/files/0008-build-Provide-alternatives-for-glibc-assumptions-hel.patch | |||
@@ -64,18 +64,10 @@ index 292082b..308a762 100644 | |||
64 | #include <stddef.h> | 64 | #include <stddef.h> |
65 | #include <stdint.h> | 65 | #include <stdint.h> |
66 | #include <sys/param.h> | 66 | #include <sys/param.h> |
67 | @@ -51,6 +51,16 @@ | 67 | @@ -51,6 +51,8 @@ |
68 | #else | 68 | #else |
69 | # error "Unknown byte order" | 69 | # error "Unknown byte order" |
70 | #endif | 70 | #endif |
71 | +#ifndef TEMP_FAILURE_RETRY | ||
72 | +#define TEMP_FAILURE_RETRY(expression) \ | ||
73 | + (__extension__ \ | ||
74 | + ({ long int __result; \ | ||
75 | + do __result = (long int) (expression); \ | ||
76 | + while (__result == -1L && errno == EINTR); \ | ||
77 | + __result; })) | ||
78 | +#endif | ||
79 | + | 71 | + |
80 | +#define error(status, errno, ...) err(status, __VA_ARGS__) | 72 | +#define error(status, errno, ...) err(status, __VA_ARGS__) |
81 | 73 | ||
@@ -141,26 +133,6 @@ index 56e6105..f4a0649 100644 | |||
141 | #include "../libdw/libdwP.h" /* DWARF_E_* values are here. */ | 133 | #include "../libdw/libdwP.h" /* DWARF_E_* values are here. */ |
142 | #include "../libelf/libelfP.h" | 134 | #include "../libelf/libelfP.h" |
143 | #include "system.h" | 135 | #include "system.h" |
144 | diff --git a/libdwfl/libdwfl_crc32_file.c b/libdwfl/libdwfl_crc32_file.c | ||
145 | index f849128..6f0aca1 100644 | ||
146 | --- a/libdwfl/libdwfl_crc32_file.c | ||
147 | +++ b/libdwfl/libdwfl_crc32_file.c | ||
148 | @@ -29,6 +29,15 @@ | ||
149 | # include <config.h> | ||
150 | #endif | ||
151 | |||
152 | +#ifndef TEMP_FAILURE_RETRY | ||
153 | +#define TEMP_FAILURE_RETRY(expression) \ | ||
154 | + (__extension__ \ | ||
155 | + ({ long int __result; \ | ||
156 | + do __result = (long int) (expression); \ | ||
157 | + while (__result == -1L && errno == EINTR); \ | ||
158 | + __result; })) | ||
159 | +#endif | ||
160 | + | ||
161 | #define crc32_file attribute_hidden __libdwfl_crc32_file | ||
162 | #define crc32 __libdwfl_crc32 | ||
163 | #include <libdwflP.h> | ||
164 | diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c | 136 | diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c |
165 | index 360e4ee..b5aa397 100644 | 137 | index 360e4ee..b5aa397 100644 |
166 | --- a/libdwfl/linux-kernel-modules.c | 138 | --- a/libdwfl/linux-kernel-modules.c |