Skip to content

Commit

Permalink
collectd: fix musl builds (ipc module)
Browse files Browse the repository at this point in the history
src/ipc.c uses shm_info.used_ids which musl only provides when
_GNU_SOURCE is defined.

The issue has been fixed upstream, but the fix is not in their
latest 5.5.0 release. Adding their patch as a temporary fix
to be removed on the next version bump.

collectd/collectd#1147
collectd/collectd@3e38483

Fixes
http://autobuild.buildroot.net/results/e981c08f01d2916246a17b1dc112e8b3e8c628e2/

Signed-off-by: Alex Suykov <alex.suykov@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
  • Loading branch information
arsv authored and jacmet committed Nov 26, 2015
1 parent ac43476 commit 0240baa
Showing 1 changed file with 28 additions and 0 deletions.
28 changes: 28 additions & 0 deletions package/collectd/0002-ipc-enable-gnu-source.patch
@@ -0,0 +1,28 @@
https://github.com/collectd/collectd/commit/3e3848349b753d78a0b1d19648fb394866856bda

ipc: enable _GNU_SOURCE to fix build with musl libc

This fixes compile the compile error:

> ipc.c:154:49: error: 'struct shm_info' has no member named 'used_ids'
> ipc_submit_g("shm", "segments", NULL, shm_info.used_ids);
> ^

Fixes #1147

Signed-off-by: Alex Suykov <alex.suykov@gmail.com>

diff --git a/src/ipc.c b/src/ipc.c
index 3763f24..b403847 100644
--- a/src/ipc.c
+++ b/src/ipc.c
@@ -32,6 +32,9 @@
#include "configfile.h"

#if KERNEL_LINUX
+ /* _GNU_SOURCE is needed for struct shm_info.used_ids on musl libc */
+# define _GNU_SOURCE
+
/* X/OPEN tells us to use <sys/{types,ipc,sem}.h> for semctl() */
/* X/OPEN tells us to use <sys/{types,ipc,msg}.h> for msgctl() */
/* X/OPEN tells us to use <sys/{types,ipc,shm}.h> for shmctl() */

0 comments on commit 0240baa

Please sign in to comment.