diff options
author | Khem Raj <raj.khem@gmail.com> | 2022-08-23 23:34:39 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-08-25 11:07:33 +0100 |
commit | 095024552cafd2aa926b968a876cecb08e63df18 (patch) | |
tree | e13bc03548e05f4b87e32c42a3de0fc9c640aa12 /meta/recipes-core/libcgroup | |
parent | a53722b962e79e0831c0fba24ef7c1cfda24971a (diff) | |
download | openembedded-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.patch | 55 | ||||
-rw-r--r-- | meta/recipes-core/libcgroup/libcgroup_3.0.0.bb | 4 |
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/" |