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:08:06 +0100
commit9db33550d549815dbed9e82ff3023b37f891add6 (patch)
tree7e3677a962ff672395621936d3ab1739f2b7ece9 /meta/recipes-core/libcgroup
parentb3a8a63fdc452abf3d890eaab7e211095bad5571 (diff)
downloadpoky-9db33550d549815dbed9e82ff3023b37f891add6.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 (From OE-Core rev: 095024552cafd2aa926b968a876cecb08e63df18) 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 @@
1From d190c0c548b3219b75e4c399aa89186e77bbe270 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 23 Aug 2022 20:03:09 -0700
4Subject: [PATCH] api: Use GNU strerror_r when available
5
6GNU strerror_r is only available in glibc, musl impelents the XSI
7version which is slightly different, therefore check if GNU version is
8available before using it, otherwise use the XSI compliant version.
9
10Upstream-Status: Submitted [https://github.com/libcgroup/libcgroup/pull/236]
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12---
13 configure.ac | 5 +++++
14 src/api.c | 8 ++++++--
15 2 files changed, 11 insertions(+), 2 deletions(-)
16
17diff --git a/configure.ac b/configure.ac
18index b68c655..831866d 100644
19--- a/configure.ac
20+++ b/configure.ac
21@@ -183,6 +183,11 @@ AC_FUNC_REALLOC
22 AC_FUNC_STAT
23 AC_CHECK_FUNCS([getmntent hasmntopt memset mkdir rmdir strdup])
24
25+orig_CFLAGS="$CFLAGS"
26+CFLAGS="$CFLAGS -D_GNU_SOURCE"
27+AC_FUNC_STRERROR_R
28+CFLAGS="$orig_CFLAGS"
29+
30 AC_SEARCH_LIBS(
31 [fts_open],
32 [fts],
33diff --git a/src/api.c b/src/api.c
34index 5c6de11..06aa1d6 100644
35--- a/src/api.c
36+++ b/src/api.c
37@@ -4571,9 +4571,13 @@ const char *cgroup_strerror(int code)
38 {
39 int idx = code % ECGROUPNOTCOMPILED;
40
41- if (code == ECGOTHER)
42+ if (code == ECGOTHER) {
43+#ifdef STRERROR_R_CHAR_P
44 return strerror_r(cgroup_get_last_errno(), errtext, MAXLEN);
45-
46+#else
47+ return strerror_r(cgroup_get_last_errno(), errtext, sizeof (errtext)) ? "unknown error" : errtext;
48+#endif
49+ }
50 if (idx >= sizeof(cgroup_strerror_codes)/sizeof(cgroup_strerror_codes[0]))
51 return "Invalid error code";
52
53--
542.37.2
55
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
11 11
12DEPENDS = "bison-native flex-native" 12DEPENDS = "bison-native flex-native"
13 13
14SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v3.0/${BP}.tar.gz" 14SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v3.0/${BP}.tar.gz \
15 file://0001-api-Use-GNU-strerror_r-when-available.patch \
16"
15 17
16SRC_URI[sha256sum] = "8d284d896fca1c981b55850e92acd3ad9648a69227c028dda7ae3402af878edd" 18SRC_URI[sha256sum] = "8d284d896fca1c981b55850e92acd3ad9648a69227c028dda7ae3402af878edd"
17UPSTREAM_CHECK_URI = "https://github.com/libcgroup/libcgroup/releases/" 19UPSTREAM_CHECK_URI = "https://github.com/libcgroup/libcgroup/releases/"