Hi Arnaldo, On Mon, 2017-03-06 at 16:38 -0300, Arnaldo Carvalho de Melo wrote: > From: Arnaldo Carvalho de Melo <a...@redhat.com> > > When building with clang on a musl libc system, Alpine Linux, we end up > hitting a problem where memset() is used but its prototype is not > present, add it to avoid this: > > bench/futex-wake.c:99:3: error: implicitly declaring library function > 'memset' with type 'void *(void *, int, unsigned long)' > [-Werror,-Wimplicit-function-declaration] > CPU_ZERO(&cpu); > ^ > /usr/include/sched.h:127:23: note: expanded from macro 'CPU_ZERO' > #define CPU_ZERO(set) CPU_ZERO_S(sizeof(cpu_set_t),set) > ^ > /usr/include/sched.h:110:30: note: expanded from macro 'CPU_ZERO_S' > #define CPU_ZERO_S(size,set) memset(set,0,size) > ^ > bench/futex-wake.c:99:3: note: include the header <string.h> or explicitly > provide a declaration for 'memset'
In my opinion the musl <shed.h> header file should include <string.h>. I've reported the issue to the musl mailing list: http://www.openwall.com/lists/musl/2017/09/08/1 > Found while updating my test build containers to build perf with clang in more > systems. > > Cc: Adrian Hunter <adrian.hun...@intel.com> > Cc: David Ahern <dsah...@gmail.com> > Cc: Davidlohr Bueso <d...@stgolabs.net> > Cc: Jiri Olsa <jo...@kernel.org> > Cc: Namhyung Kim <namhy...@kernel.org> > Cc: Wang Nan <wangn...@huawei.com> > Link: http://lkml.kernel.org/n/tip-jh10vaz2r98zl6gm5iau8...@git.kernel.org > Signed-off-by: Arnaldo Carvalho de Melo <a...@redhat.com> > --- > tools/perf/bench/futex-hash.c | 1 + > tools/perf/bench/futex-lock-pi.c | 1 + > tools/perf/bench/futex-requeue.c | 1 + > tools/perf/bench/futex-wake-parallel.c | 1 + > tools/perf/bench/futex-wake.c | 1 + > 5 files changed, 5 insertions(+) > > diff --git a/tools/perf/bench/futex-hash.c b/tools/perf/bench/futex-hash.c > index da04b8c5568a..2499e1b0c6fb 100644 > --- a/tools/perf/bench/futex-hash.c > +++ b/tools/perf/bench/futex-hash.c > @@ -9,6 +9,7 @@ > */ > > /* For the CLR_() macros */ > +#include <string.h> > #include <pthread.h> > > #include <errno.h> > diff --git a/tools/perf/bench/futex-lock-pi.c > b/tools/perf/bench/futex-lock-pi.c > index 91877777ec6e..a20814d94af1 100644 > --- a/tools/perf/bench/futex-lock-pi.c > +++ b/tools/perf/bench/futex-lock-pi.c > @@ -3,6 +3,7 @@ > */ > > /* For the CLR_() macros */ > +#include <string.h> > #include <pthread.h> > > #include <signal.h> > diff --git a/tools/perf/bench/futex-requeue.c > b/tools/perf/bench/futex-requeue.c > index 2b9705a8734c..9fad1e4fcd3e 100644 > --- a/tools/perf/bench/futex-requeue.c > +++ b/tools/perf/bench/futex-requeue.c > @@ -9,6 +9,7 @@ > */ > > /* For the CLR_() macros */ > +#include <string.h> > #include <pthread.h> > > #include <signal.h> > diff --git a/tools/perf/bench/futex-wake-parallel.c > b/tools/perf/bench/futex-wake-parallel.c > index 2c8fa67ad537..40f5fcf1d120 100644 > --- a/tools/perf/bench/futex-wake-parallel.c > +++ b/tools/perf/bench/futex-wake-parallel.c > @@ -8,6 +8,7 @@ > */ > > /* For the CLR_() macros */ > +#include <string.h> > #include <pthread.h> > > #include <signal.h> > diff --git a/tools/perf/bench/futex-wake.c b/tools/perf/bench/futex-wake.c > index e246b1b8388a..789490281ae3 100644 > --- a/tools/perf/bench/futex-wake.c > +++ b/tools/perf/bench/futex-wake.c > @@ -9,6 +9,7 @@ > */ > > /* For the CLR_() macros */ > +#include <string.h> > #include <pthread.h> > > #include <signal.h> Best regards, Jörg Krause