linux-stable/tools
Daniel T. Lee a0356372f4 libbpf: fix samples/bpf build failure due to undefined UINT32_MAX
[ Upstream commit 32e621e554 ]

Currently, building bpf samples will cause the following error.

    ./tools/lib/bpf/bpf.h:132:27: error: 'UINT32_MAX' undeclared here (not in a function) ..
     #define BPF_LOG_BUF_SIZE (UINT32_MAX >> 8) /* verifier maximum in kernels <= 5.1 */
                               ^
    ./samples/bpf/bpf_load.h:31:25: note: in expansion of macro 'BPF_LOG_BUF_SIZE'
     extern char bpf_log_buf[BPF_LOG_BUF_SIZE];
                             ^~~~~~~~~~~~~~~~

Due to commit 4519efa6f8 ("libbpf: fix BPF_LOG_BUF_SIZE off-by-one error")
hard-coded size of BPF_LOG_BUF_SIZE has been replaced with UINT32_MAX which is
defined in <stdint.h> header.

Even with this change, bpf selftests are running fine since these are built
with clang and it includes header(-idirafter) from clang/6.0.0/include.
(it has <stdint.h>)

    clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/include \
    -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.0/include -idirafter /usr/include/x86_64-linux-gnu \
    -Wno-compare-distinct-pointer-types -O2 -target bpf -emit-llvm -c progs/test_sysctl_prog.c -o - | \
    llc -march=bpf -mcpu=generic  -filetype=obj -o /linux/tools/testing/selftests/bpf/test_sysctl_prog.o

But bpf samples are compiled with GCC, and it only searches and includes
headers declared at the target file. As '#include <stdint.h>' hasn't been
declared in tools/lib/bpf/bpf.h, it causes build failure of bpf samples.

    gcc -Wp,-MD,./samples/bpf/.sockex3_user.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes \
    -O2 -fomit-frame-pointer -std=gnu89 -I./usr/include -I./tools/lib/ -I./tools/testing/selftests/bpf/ \
    -I./tools/  lib/ -I./tools/include -I./tools/perf -c -o ./samples/bpf/sockex3_user.o ./samples/bpf/sockex3_user.c;

This commit add declaration of '#include <stdint.h>' to tools/lib/bpf/bpf.h
to fix this problem.

Signed-off-by: Daniel T. Lee <danieltimlee@gmail.com>
Acked-by: Yonghong Song <yhs@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-05-31 06:47:22 -07:00
..
accounting License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
arch tools headers: Synchronise x86 cpufeatures.h for L1TF additions 2018-08-15 18:13:01 +02:00
build tools: build: Use HOSTLDFLAGS with fixdep 2018-08-24 13:09:17 +02:00
cgroup tools: fix cross-compile var clobbering 2019-01-13 10:01:02 +01:00
firewire License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
gpio tools: fix cross-compile var clobbering 2019-01-13 10:01:02 +01:00
hv Tools: hv: kvp: Fix a warning of buffer overflow with gcc 8.0.1 2019-02-12 19:45:58 +01:00
iio tools: fix cross-compile var clobbering 2019-01-13 10:01:02 +01:00
include tools include: Adopt linux/bits.h 2019-04-27 09:35:41 +02:00
kvm/kvm_stat tools/kvm_stat: fix handling of invalid paths in debugfs provider 2018-10-10 08:54:20 +02:00
laptop tools: fix cross-compile var clobbering 2019-01-13 10:01:02 +01:00
leds tools: fix cross-compile var clobbering 2019-01-13 10:01:02 +01:00
lib libbpf: fix samples/bpf build failure due to undefined UINT32_MAX 2019-05-31 06:47:22 -07:00
net bpf: fix uninitialized variable in bpf tools 2018-06-21 04:02:49 +09:00
nfsd License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
objtool objtool: Allow AR to be overridden with HOSTAR 2019-05-25 18:25:26 +02:00
pci License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pcmcia License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
perf perf bench numa: Add define for RUSAGE_THREAD if not present 2019-05-25 18:25:36 +02:00
power x86/msr-index: Cleanup bit defines 2019-05-14 19:18:42 +02:00
scripts tools: fix cross-compile var clobbering 2019-01-13 10:01:02 +01:00
spi tools: fix cross-compile var clobbering 2019-01-13 10:01:02 +01:00
testing selftests/net: correct the return value for run_netsocktests 2019-05-16 19:42:24 +02:00
thermal/tmon tools/thermal: tmon: fix for segfault 2018-05-30 07:52:28 +02:00
time
usb usbip: fix vhci_hcd controller counting 2019-04-20 09:15:05 +02:00
virtio virtio: fix test build after uio.h change 2019-01-13 10:01:01 +01:00
vm tools: fix cross-compile var clobbering 2019-01-13 10:01:02 +01:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00