All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] systemd: Add another fix for using XSI strerror_r
@ 2023-01-25  4:03 Khem Raj
  2023-01-25  4:03 ` [PATCH 2/3] texinfo: Add missing rdep on needed perl-modules Khem Raj
  2023-01-25  4:03 ` [PATCH 3/3] elfutils: Remove funcretval test from run-native-test.sh for now Khem Raj
  0 siblings, 2 replies; 4+ messages in thread
From: Khem Raj @ 2023-01-25  4:03 UTC (permalink / raw)
  To: openembedded-core; +Cc: Khem Raj

This makes systemd continue to work on musl

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 ...util-Make-STRERROR-portable-for-musl.patch | 42 +++++++++++++++++++
 meta/recipes-core/systemd/systemd_252.4.bb    |  1 +
 2 files changed, 43 insertions(+)
 create mode 100644 meta/recipes-core/systemd/systemd/0001-errno-util-Make-STRERROR-portable-for-musl.patch

diff --git a/meta/recipes-core/systemd/systemd/0001-errno-util-Make-STRERROR-portable-for-musl.patch b/meta/recipes-core/systemd/systemd/0001-errno-util-Make-STRERROR-portable-for-musl.patch
new file mode 100644
index 0000000000..2fb8985ad1
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0001-errno-util-Make-STRERROR-portable-for-musl.patch
@@ -0,0 +1,42 @@
+From f66b5c802ce0a3310f5580cfc1b02446f8087568 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 23 Jan 2023 23:39:46 -0800
+Subject: [PATCH] errno-util: Make STRERROR portable for musl
+
+Sadly, systemd has decided to use yet another GNU extention in a macro
+lets make this such that we can use XSI compliant strerror_r() for
+non-glibc hosts
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/basic/errno-util.h | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/src/basic/errno-util.h b/src/basic/errno-util.h
+index 091f99c590..eb5c1f9961 100644
+--- a/src/basic/errno-util.h
++++ b/src/basic/errno-util.h
+@@ -14,8 +14,16 @@
+  * https://stackoverflow.com/questions/34880638/compound-literal-lifetime-and-if-blocks
+  *
+  * Note that we use the GNU variant of strerror_r() here. */
+-#define STRERROR(errnum) strerror_r(abs(errnum), (char[ERRNO_BUF_LEN]){}, ERRNO_BUF_LEN)
+-
++static inline const char * STRERROR(int errnum);
++
++static inline const char * STRERROR(int errnum) {
++#ifdef __GLIBC__
++        return strerror_r(abs(errnum), (char[ERRNO_BUF_LEN]){}, ERRNO_BUF_LEN);
++#else
++        static __thread char buf[ERRNO_BUF_LEN];
++        return strerror_r(abs(errnum), buf, ERRNO_BUF_LEN) ? "unknown error" : buf;
++#endif
++}
+ /* A helper to print an error message or message for functions that return 0 on EOF.
+  * Note that we can't use ({ … }) to define a temporary variable, so errnum is
+  * evaluated twice. */
+-- 
+2.39.1
+
diff --git a/meta/recipes-core/systemd/systemd_252.4.bb b/meta/recipes-core/systemd/systemd_252.4.bb
index d291a2a9a1..e6c873f53b 100644
--- a/meta/recipes-core/systemd/systemd_252.4.bb
+++ b/meta/recipes-core/systemd/systemd_252.4.bb
@@ -50,6 +50,7 @@ SRC_URI_MUSL = "\
                file://0002-Add-sys-stat.h-for-S_IFDIR.patch \
                file://0001-Adjust-for-musl-headers.patch \
                file://0001-test-bus-error-strerror-is-assumed-to-be-GNU-specifi.patch \
+               file://0001-errno-util-Make-STRERROR-portable-for-musl.patch \
                "
 
 PAM_PLUGINS = " \
-- 
2.39.1



^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-01-25 17:36 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-25  4:03 [PATCH 1/3] systemd: Add another fix for using XSI strerror_r Khem Raj
2023-01-25  4:03 ` [PATCH 2/3] texinfo: Add missing rdep on needed perl-modules Khem Raj
2023-01-25 17:36   ` [OE-core] " Alexandre Belloni
2023-01-25  4:03 ` [PATCH 3/3] elfutils: Remove funcretval test from run-native-test.sh for now Khem Raj

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.