summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/libcgroup
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2022-08-23 23:34:39 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-08-25 11:07:33 +0100
commit095024552cafd2aa926b968a876cecb08e63df18 (patch)
treee13bc03548e05f4b87e32c42a3de0fc9c640aa12 /meta/recipes-core/libcgroup
parenta53722b962e79e0831c0fba24ef7c1cfda24971a (diff)
downloadopenembedded-core-095024552cafd2aa926b968a876cecb08e63df18.tar.gz
libcgroup: Use GNU strerror_r only when its available
This patch ensures that a fallback to use XSI compliant strerror_r when GNU extention is not implemented, which fixes the case when building with musl Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core/libcgroup')
-rw-r--r--meta/recipes-core/libcgroup/libcgroup/0001-api-Use-GNU-strerror_r-when-available.patch55
-rw-r--r--meta/recipes-core/libcgroup/libcgroup_3.0.0.bb4
2 files changed, 58 insertions, 1 deletions
diff --git a/meta/recipes-core/libcgroup/libcgroup/0001-api-Use-GNU-strerror_r-when-available.patch b/meta/recipes-core/libcgroup/libcgroup/0001-api-Use-GNU-strerror_r-when-available.patch
new file mode 100644
index 0000000000..96321d2970
--- /dev/null
+++ b/meta/recipes-core/libcgroup/libcgroup/0001-api-Use-GNU-strerror_r-when-available.patch
@@ -0,0 +1,55 @@
+From d190c0c548b3219b75e4c399aa89186e77bbe270 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 23 Aug 2022 20:03:09 -0700
+Subject: [PATCH] api: Use GNU strerror_r when available
+
+GNU strerror_r is only available in glibc, musl impelents the XSI
+version which is slightly different, therefore check if GNU version is
+available before using it, otherwise use the XSI compliant version.
+
+Upstream-Status: Submitted [https://github.com/libcgroup/libcgroup/pull/236]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 5 +++++
+ src/api.c | 8 ++++++--
+ 2 files changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b68c655..831866d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -183,6 +183,11 @@ AC_FUNC_REALLOC
+ AC_FUNC_STAT
+ AC_CHECK_FUNCS([getmntent hasmntopt memset mkdir rmdir strdup])
+
++orig_CFLAGS="$CFLAGS"
++CFLAGS="$CFLAGS -D_GNU_SOURCE"
++AC_FUNC_STRERROR_R
++CFLAGS="$orig_CFLAGS"
++
+ AC_SEARCH_LIBS(
+ [fts_open],
+ [fts],
+diff --git a/src/api.c b/src/api.c
+index 5c6de11..06aa1d6 100644
+--- a/src/api.c
++++ b/src/api.c
+@@ -4571,9 +4571,13 @@ const char *cgroup_strerror(int code)
+ {
+ int idx = code % ECGROUPNOTCOMPILED;
+
+- if (code == ECGOTHER)
++ if (code == ECGOTHER) {
++#ifdef STRERROR_R_CHAR_P
+ return strerror_r(cgroup_get_last_errno(), errtext, MAXLEN);
+-
++#else
++ return strerror_r(cgroup_get_last_errno(), errtext, sizeof (errtext)) ? "unknown error" : errtext;
++#endif
++ }
+ if (idx >= sizeof(cgroup_strerror_codes)/sizeof(cgroup_strerror_codes[0]))
+ return "Invalid error code";
+
+--
+2.37.2
+
diff --git a/meta/recipes-core/libcgroup/libcgroup_3.0.0.bb b/meta/recipes-core/libcgroup/libcgroup_3.0.0.bb
index efd887844d..f3e841246f 100644
--- a/meta/recipes-core/libcgroup/libcgroup_3.0.0.bb
+++ b/meta/recipes-core/libcgroup/libcgroup_3.0.0.bb
@@ -11,7 +11,9 @@ inherit autotools pkgconfig
DEPENDS = "bison-native flex-native"
-SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v3.0/${BP}.tar.gz"
+SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v3.0/${BP}.tar.gz \
+ file://0001-api-Use-GNU-strerror_r-when-available.patch \
+"
SRC_URI[sha256sum] = "8d284d896fca1c981b55850e92acd3ad9648a69227c028dda7ae3402af878edd"
UPSTREAM_CHECK_URI = "https://github.com/libcgroup/libcgroup/releases/"