LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: "Daniel T. Lee" <danieltimlee@gmail.com>,
	Yonghong Song <yhs@fb.com>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Sasha Levin <sashal@kernel.org>,
	netdev@vger.kernel.org, bpf@vger.kernel.org
Subject: [PATCH AUTOSEL 4.14 035/167] libbpf: fix samples/bpf build failure due to undefined UINT32_MAX
Date: Wed, 22 May 2019 15:26:30 -0400	[thread overview]
Message-ID: <20190522192842.25858-35-sashal@kernel.org> (raw)
In-Reply-To: <20190522192842.25858-1-sashal@kernel.org>

From: "Daniel T. Lee" <danieltimlee@gmail.com>

[ Upstream commit 32e621e55496a0009f44fe4914cd4a23cade4984 ]

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 4519efa6f8ea ("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>
---
 tools/lib/bpf/bpf.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/lib/bpf/bpf.h b/tools/lib/bpf/bpf.h
index b8ea5843c39ee..e9423d6af9332 100644
--- a/tools/lib/bpf/bpf.h
+++ b/tools/lib/bpf/bpf.h
@@ -23,6 +23,7 @@
 
 #include <linux/bpf.h>
 #include <stddef.h>
+#include <stdint.h>
 
 int bpf_create_map_node(enum bpf_map_type map_type, int key_size,
 			int value_size, int max_entries, __u32 map_flags,
-- 
2.20.1


  parent reply	other threads:[~2019-05-22 19:39 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-22 19:25 [PATCH AUTOSEL 4.14 001/167] gfs2: Fix lru_count going negative Sasha Levin
2019-05-22 19:25 ` [PATCH AUTOSEL 4.14 002/167] cxgb4: Fix error path in cxgb4_init_module Sasha Levin
2019-05-22 19:25 ` [PATCH AUTOSEL 4.14 003/167] NFS: make nfs_match_client killable Sasha Levin
2019-05-22 19:25 ` [PATCH AUTOSEL 4.14 004/167] IB/hfi1: Fix WQ_MEM_RECLAIM warning Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 005/167] gfs2: Fix occasional glock use-after-free Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 006/167] mmc: core: Verify SD bus width Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 007/167] tools/bpf: fix perf build error with uClibc (seen on ARC) Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 008/167] dmaengine: tegra210-dma: free dma controller in remove() Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 009/167] net: ena: gcc 8: fix compilation warning Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 010/167] orangefs: truncate before updating size Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 011/167] pinctrl: zte: fix leaked of_node references Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 012/167] ASoC: hdmi-codec: unlock the device on startup errors Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 013/167] leds: avoid races with workqueue Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 014/167] powerpc/perf: Return accordingly on invalid chip-id in Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 015/167] powerpc/boot: Fix missing check of lseek() return value Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 016/167] ASoC: imx: fix fiq dependencies Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 017/167] spi: pxa2xx: fix SCR (divisor) calculation Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 018/167] brcm80211: potential NULL dereference in brcmf_cfg80211_vndr_cmds_dcmd_handler() Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 019/167] ACPI / property: fix handling of data_nodes in acpi_get_next_subnode() Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 020/167] ARM: vdso: Remove dependency with the arch_timer driver internals Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 021/167] arm64: Fix compiler warning from pte_unmap() with -Wunused-but-set-variable Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 022/167] sched/cpufreq: Fix kobject memleak Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 023/167] scsi: qla2xxx: Fix a qla24xx_enable_msix() error path Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 024/167] scsi: qla2xxx: Fix abort handling in tcm_qla2xxx_write_pending() Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 025/167] scsi: qla2xxx: Avoid that lockdep complains about unsafe locking in tcm_qla2xxx_close_session() Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 026/167] Btrfs: fix data bytes_may_use underflow with fallocate due to failed quota reserve Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 027/167] btrfs: fix panic during relocation after ENOSPC before writeback happens Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 028/167] btrfs: Don't panic when we can't find a root key Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 029/167] iwlwifi: pcie: don't crash on invalid RX interrupt Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 030/167] rtc: 88pm860x: prevent use-after-free on device remove Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 031/167] scsi: qedi: Abort ep termination if offload not scheduled Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 032/167] w1: fix the resume command API Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 033/167] dmaengine: pl330: _stop: clear interrupt status Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 034/167] mac80211/cfg80211: update bss channel on channel switch Sasha Levin
2019-05-22 19:26 ` Sasha Levin [this message]
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 036/167] driver core: platform: Fix the usage of platform device name(pdev->name) Sasha Levin
2019-05-22 20:05   ` Greg Kroah-Hartman
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 037/167] ASoC: fsl_sai: Update is_slave_mode with correct value Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 038/167] mwifiex: prevent an array overflow Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 039/167] net: cw1200: fix a NULL pointer dereference Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 040/167] at76c50x-usb: Don't register led_trigger if usb_register_driver failed Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 041/167] ssb: Fix possible NULL pointer dereference in ssb_host_pcmcia_exit Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 042/167] crypto: sun4i-ss - Fix invalid calculation of hash end Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 043/167] bcache: return error immediately in bch_journal_replay() Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 044/167] bcache: fix failure in journal relplay Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 045/167] bcache: add failure check to run_cache_set() for journal replay Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 046/167] bcache: avoid clang -Wunintialized warning Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 047/167] RDMA/cma: Consider scope_id while binding to ipv6 ll address Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 048/167] vfio-ccw: Do not call flush_workqueue while holding the spinlock Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 049/167] vfio-ccw: Release any channel program when releasing/removing vfio-ccw mdev Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 050/167] x86/build: Move _etext to actual end of .text Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 051/167] smpboot: Place the __percpu annotation correctly Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 052/167] x86/mm: Remove in_nmi() warning from 64-bit implementation of vmalloc_fault() Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 053/167] mm/uaccess: Use 'unsigned long' to placate UBSAN warnings on older GCC versions Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 054/167] HID: logitech-hidpp: use RAP instead of FAP to get the protocol version Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 055/167] pinctrl: pistachio: fix leaked of_node references Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 056/167] pinctrl: samsung: " Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 057/167] clk: rockchip: undo several noc and special clocks as critical on rk3288 Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 058/167] dmaengine: at_xdmac: remove BUG_ON macro in tasklet Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 059/167] media: coda: clear error return value before picture run Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 060/167] media: ov6650: Move v4l2_clk_get() to ov6650_video_probe() helper Sasha Levin
2019-05-22 19:26 ` [PATCH AUTOSEL 4.14 061/167] media: au0828: stop video streaming only when last user stops Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190522192842.25858-35-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=danieltimlee@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=yhs@fb.com \
    --subject='Re: [PATCH AUTOSEL 4.14 035/167] libbpf: fix samples/bpf build failure due to undefined UINT32_MAX' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).