From 11fd8dc6ffb8d403c22644f7f00b761d90e8b20d Mon Sep 17 00:00:00 2001 From: Adrian Bunk Date: Thu, 16 May 2019 10:48:34 +0300 Subject: 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 Signed-off-by: Richard Purdie --- .../0001-unistd.h-Add-TEMP_FAILURE_RETRY.patch | 36 ++++++++++++++++++++++ meta/recipes-core/musl/musl_git.bb | 1 + ...de-alternatives-for-glibc-assumptions-hel.patch | 30 +----------------- 3 files changed, 38 insertions(+), 29 deletions(-) create mode 100644 meta/recipes-core/musl/musl/0001-unistd.h-Add-TEMP_FAILURE_RETRY.patch (limited to 'meta') 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 @@ +From 19cbebc3fa33c6a1a71a6036da4d67c98f859f06 Mon Sep 17 00:00:00 2001 +From: Adrian Bunk +Date: Wed, 15 May 2019 16:08:33 +0300 +Subject: unistd.h: Add TEMP_FAILURE_RETRY + +Signed-off-by: Adrian Bunk +Upstream-Status: Inappropriate [oe-specific] +--- + include/unistd.h | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/include/unistd.h b/include/unistd.h +index 9485da7a..8a75af57 100644 +--- a/include/unistd.h ++++ b/include/unistd.h +@@ -460,6 +460,17 @@ int eaccess(const char *, int); + #define _CS_V6_ENV 1148 + #define _CS_V7_ENV 1149 + ++#ifdef _GNU_SOURCE ++#ifndef TEMP_FAILURE_RETRY ++# define TEMP_FAILURE_RETRY(expression) \ ++ (__extension__ \ ++ ({ long int __result; \ ++ do __result = (long int) (expression); \ ++ while (__result == -1L && errno == EINTR); \ ++ __result; })) ++#endif ++#endif ++ + #ifdef __cplusplus + } + #endif +-- +2.20.1 + 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}" SRC_URI = "git://git.musl-libc.org/musl \ file://0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch \ file://0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch \ + file://0001-unistd.h-Add-TEMP_FAILURE_RETRY.patch \ " 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 #include #include #include -@@ -51,6 +51,16 @@ +@@ -51,6 +51,8 @@ #else # error "Unknown byte order" #endif -+#ifndef TEMP_FAILURE_RETRY -+#define TEMP_FAILURE_RETRY(expression) \ -+ (__extension__ \ -+ ({ long int __result; \ -+ do __result = (long int) (expression); \ -+ while (__result == -1L && errno == EINTR); \ -+ __result; })) -+#endif + +#define error(status, errno, ...) err(status, __VA_ARGS__) @@ -141,26 +133,6 @@ index 56e6105..f4a0649 100644 #include "../libdw/libdwP.h" /* DWARF_E_* values are here. */ #include "../libelf/libelfP.h" #include "system.h" -diff --git a/libdwfl/libdwfl_crc32_file.c b/libdwfl/libdwfl_crc32_file.c -index f849128..6f0aca1 100644 ---- a/libdwfl/libdwfl_crc32_file.c -+++ b/libdwfl/libdwfl_crc32_file.c -@@ -29,6 +29,15 @@ - # include - #endif - -+#ifndef TEMP_FAILURE_RETRY -+#define TEMP_FAILURE_RETRY(expression) \ -+ (__extension__ \ -+ ({ long int __result; \ -+ do __result = (long int) (expression); \ -+ while (__result == -1L && errno == EINTR); \ -+ __result; })) -+#endif -+ - #define crc32_file attribute_hidden __libdwfl_crc32_file - #define crc32 __libdwfl_crc32 - #include diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c index 360e4ee..b5aa397 100644 --- a/libdwfl/linux-kernel-modules.c -- cgit v1.2.3-54-g00ecf