tools/bpf: make libbpf _GNU_SOURCE friendly
Subsystems (4)
PATCH v2 1/1 tools/bpf: make libbpf _GNU_SOURCE friendly
During porting libbpf to bcc, I got some warnings like below:
...
[ 2%] Building C object src/cc/CMakeFiles/bpf-shared.dir/libbpf/src/libbpf.c.o /home/yhs/work/bcc2/src/cc/libbpf/src/libbpf.c:12:0:
warning: "_GNU_SOURCE" redefined [enabled by default]
#define _GNU_SOURCE
...
[ 3%] Building C object src/cc/CMakeFiles/bpf-shared.dir/libbpf/src/libbpf_errno.c.o /home/yhs/work/bcc2/src/cc/libbpf/src/libbpf_errno.c: In function ‘libbpf_strerror’:
/home/yhs/work/bcc2/src/cc/libbpf/src/libbpf_errno.c:45:7:
warning: assignment makes integer from pointer without a cast [enabled by default]
ret = strerror_r(err, buf, size);
...
bcc is built with _GNU_SOURCE defined and this caused the above warning. This patch intends to make libpf _GNU_SOURCE friendly by
. define _GNU_SOURCE in libbpf.c unless it is not defined . undefine _GNU_SOURCE as non-gnu version of strerror_r is expected.
--- tools/lib/bpf/libbpf.c | 2 ++ tools/lib/bpf/libbpf_errno.c | 1 + 2 files changed, 3 insertions(+)
Changelog:
v1 -> v2:
. undef _GNU_SOURCE instead of multiversioning strerror_r,
suggested by Jakub.
tools/lib/bpf/libbpf.c +2 -0
@@ -9,7 +9,9 @@* Copyright (C) 2017 Nicira, Inc. */ +#ifndef _GNU_SOURCE#define _GNU_SOURCE +#endif #include <stdlib.h> #include <stdio.h> #include <stdarg.h>
tools/lib/bpf/libbpf_errno.c +1 -0
@@ -7,6 +7,7 @@* Copyright (C) 2017 Nicira, Inc. */ +#undef _GNU_SOURCE#include <stdio.h> #include <string.h>
Signature · 1 line
2.17.1
Quoted 12 lines · Yonghong Song
During porting libbpf to bcc, I got some warnings like below:
...
[ 2%] Building C objectsrc/cc/CMakeFiles/bpf-shared.dir/libbpf/src/libbpf.c.o/home/yhs/work/bcc2/src/cc/libbpf/src/libbpf.c:12:0:
warning: "_GNU_SOURCE" redefined [enabled by default]
#define_GNU_SOURCE
...
[ 3%] Building C objectsrc/cc/CMakeFiles/bpf-shared.dir/libbpf/src/libbpf_errno.c.o/home/yhs/work/bcc2/src/cc/libbpf/src/libbpf_errno.c: In function ‘libbpf_strerror’:
/home/yhs/work/bcc2/src/cc/libbpf/src/libbpf_errno.c:45:7:
warning: assignment makes integer from pointer without a cast [enabled by default]ret = strerror_r(err, buf, size);
Quoted 8 lines
...
bcc is built with
_GNU_SOURCEdefined and this caused the above warning. This patch intends to make libpf_GNU_SOURCEfriendly by
. define_GNU_SOURCEinlibbpf.cunless it is not defined . undefine_GNU_SOURCEas non-gnu version ofstrerror_ris expected.Signed-off-by Yonghong Song <[email protected]>
FWIW :)
Quoted 20 lines · Jakub Kicinski
Quoted 19 lines · Yonghong Song
During porting libbpf to bcc, I got some warnings like below:
...
[ 2%] Building C objectsrc/cc/CMakeFiles/bpf-shared.dir/libbpf/src/libbpf.c.o/home/yhs/work/bcc2/src/cc/libbpf/src/libbpf.c:12:0:
warning: "_GNU_SOURCE" redefined [enabled by default]
#define_GNU_SOURCE
...
[ 3%] Building C objectsrc/cc/CMakeFiles/bpf-shared.dir/libbpf/src/libbpf_errno.c.o/home/yhs/work/bcc2/src/cc/libbpf/src/libbpf_errno.c: In function ‘libbpf_strerror’:
/home/yhs/work/bcc2/src/cc/libbpf/src/libbpf_errno.c:45:7:
warning: assignment makes integer from pointer without a cast [enabled by default]ret = strerror_r(err, buf, size);...
bcc is built with
_GNU_SOURCEdefined and this caused the above warning. This patch intends to make libpf_GNU_SOURCEfriendly by
. define_GNU_SOURCEinlibbpf.cunless it is not defined . undefine_GNU_SOURCEas non-gnu version ofstrerror_ris expected.
Quoted 6 lines
Quoted 1 line
Signed-off-by Yonghong Song <[email protected]>Acked-by Jakub Kicinski <[email protected]>FWIW :)
Applied, thanks.