All of lore.kernel.org
 help / color / mirror / Atom feed
* [jolsa-perf:bpf/d_path 2/11] tools/lib/bpf/btf.h:244:24: error: 'BTF_KIND_FUNC' undeclared; did you mean
@ 2020-06-16 13:09 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2020-06-16 13:09 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 15100 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git bpf/d_path
head:   686910572925427af4fbcc0fffdff0dd0904de64
commit: 1ebb9a6880b2e1d1ade270367e023cb3ed074b6f [2/11] bpf: Compile btfid tool at kernel compilation start
config: x86_64-rhel-7.6-kselftests (attached as .config)
compiler: gcc-9 (Debian 9.3.0-13) 9.3.0
reproduce (this is a W=1 build):
        git checkout 1ebb9a6880b2e1d1ade270367e023cb3ed074b6f
        # save the attached .config to linux build tree
        make W=1 ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All error/warnings (new ones prefixed by >>, old ones prefixed by <<):

In file included from btfid.c:51:
tools/lib/bpf/btf.h: In function 'btf_kflag':
>> tools/lib/bpf/btf.h:168:9: warning: implicit declaration of function 'BTF_INFO_KFLAG'; did you mean 'BTF_INFO_KIND'? [-Wimplicit-function-declaration]
168 |  return BTF_INFO_KFLAG(t->info);
|         ^~~~~~~~~~~~~~
|         BTF_INFO_KIND
tools/lib/bpf/btf.h: In function 'btf_is_func':
>> tools/lib/bpf/btf.h:244:24: error: 'BTF_KIND_FUNC' undeclared (first use in this function); did you mean 'BTF_KIND_UNKN'?
244 |  return btf_kind(t) == BTF_KIND_FUNC;
|                        ^~~~~~~~~~~~~
|                        BTF_KIND_UNKN
tools/lib/bpf/btf.h:244:24: note: each undeclared identifier is reported only once for each function it appears in
tools/lib/bpf/btf.h: In function 'btf_is_func_proto':
>> tools/lib/bpf/btf.h:249:24: error: 'BTF_KIND_FUNC_PROTO' undeclared (first use in this function); did you mean 'BTF_KIND_UNION'?
249 |  return btf_kind(t) == BTF_KIND_FUNC_PROTO;
|                        ^~~~~~~~~~~~~~~~~~~
|                        BTF_KIND_UNION
tools/lib/bpf/btf.h: In function 'btf_is_var':
>> tools/lib/bpf/btf.h:254:24: error: 'BTF_KIND_VAR' undeclared (first use in this function); did you mean 'BTF_KIND_PTR'?
254 |  return btf_kind(t) == BTF_KIND_VAR;
|                        ^~~~~~~~~~~~
|                        BTF_KIND_PTR
tools/lib/bpf/btf.h: In function 'btf_is_datasec':
>> tools/lib/bpf/btf.h:259:24: error: 'BTF_KIND_DATASEC' undeclared (first use in this function); did you mean 'BTF_KIND_PTR'?
259 |  return btf_kind(t) == BTF_KIND_DATASEC;
|                        ^~~~~~~~~~~~~~~~
|                        BTF_KIND_PTR
tools/lib/bpf/btf.h: In function 'btf_member_bit_offset':
>> tools/lib/bpf/btf.h:299:17: warning: implicit declaration of function 'BTF_MEMBER_BIT_OFFSET' [-Wimplicit-function-declaration]
299 |  return kflag ? BTF_MEMBER_BIT_OFFSET(m->offset) : m->offset;
|                 ^~~~~~~~~~~~~~~~~~~~~
tools/lib/bpf/btf.h: In function 'btf_member_bitfield_size':
>> tools/lib/bpf/btf.h:311:17: warning: implicit declaration of function 'BTF_MEMBER_BITFIELD_SIZE' [-Wimplicit-function-declaration]
311 |  return kflag ? BTF_MEMBER_BITFIELD_SIZE(m->offset) : 0;
|                 ^~~~~~~~~~~~~~~~~~~~~~~~
btfid.c: In function 'symbols_resolve':
>> btfid.c:443:36: error: 'BTF_KIND_FUNC' undeclared (first use in this function); did you mean 'BTF_KIND_UNKN'?
443 |   if (BTF_INFO_KIND(type->info) == BTF_KIND_FUNC && nr_funcs) {
|                                    ^~~~~~~~~~~~~
|                                    BTF_KIND_UNKN
mv: cannot stat 'tools/bpf/btfid/.btfid.o.tmp': No such file or directory
make[4]: *** [tools/build/Makefile.build:97: tools/bpf/btfid/btfid.o] Error 1
make[4]: Target '__build' not remade because of errors.
make[3]: *** [Makefile:59: tools/bpf/btfid/btfid-in.o] Error 2
make[3]: Target 'all' not remade because of errors.
make[2]: *** [Makefile:71: bpf/btfid] Error 2
make[1]: *** [Makefile:1892: tools/bpf/btfid] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [Makefile:185: __sub-make] Error 2
make: Target 'prepare' not remade because of errors.

vim +244 tools/lib/bpf/btf.h

ef20a9b27c66278 Andrii Nakryiko 2019-08-07  165  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  166  static inline bool btf_kflag(const struct btf_type *t)
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  167  {
ef20a9b27c66278 Andrii Nakryiko 2019-08-07 @168  	return BTF_INFO_KFLAG(t->info);
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  169  }
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  170  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  171  static inline bool btf_is_int(const struct btf_type *t)
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  172  {
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  173  	return btf_kind(t) == BTF_KIND_INT;
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  174  }
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  175  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  176  static inline bool btf_is_ptr(const struct btf_type *t)
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  177  {
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  178  	return btf_kind(t) == BTF_KIND_PTR;
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  179  }
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  180  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  181  static inline bool btf_is_array(const struct btf_type *t)
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  182  {
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  183  	return btf_kind(t) == BTF_KIND_ARRAY;
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  184  }
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  185  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  186  static inline bool btf_is_struct(const struct btf_type *t)
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  187  {
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  188  	return btf_kind(t) == BTF_KIND_STRUCT;
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  189  }
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  190  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  191  static inline bool btf_is_union(const struct btf_type *t)
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  192  {
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  193  	return btf_kind(t) == BTF_KIND_UNION;
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  194  }
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  195  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  196  static inline bool btf_is_composite(const struct btf_type *t)
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  197  {
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  198  	__u16 kind = btf_kind(t);
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  199  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  200  	return kind == BTF_KIND_STRUCT || kind == BTF_KIND_UNION;
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  201  }
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  202  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  203  static inline bool btf_is_enum(const struct btf_type *t)
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  204  {
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  205  	return btf_kind(t) == BTF_KIND_ENUM;
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  206  }
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  207  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  208  static inline bool btf_is_fwd(const struct btf_type *t)
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  209  {
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  210  	return btf_kind(t) == BTF_KIND_FWD;
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  211  }
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  212  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  213  static inline bool btf_is_typedef(const struct btf_type *t)
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  214  {
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  215  	return btf_kind(t) == BTF_KIND_TYPEDEF;
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  216  }
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  217  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  218  static inline bool btf_is_volatile(const struct btf_type *t)
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  219  {
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  220  	return btf_kind(t) == BTF_KIND_VOLATILE;
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  221  }
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  222  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  223  static inline bool btf_is_const(const struct btf_type *t)
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  224  {
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  225  	return btf_kind(t) == BTF_KIND_CONST;
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  226  }
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  227  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  228  static inline bool btf_is_restrict(const struct btf_type *t)
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  229  {
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  230  	return btf_kind(t) == BTF_KIND_RESTRICT;
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  231  }
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  232  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  233  static inline bool btf_is_mod(const struct btf_type *t)
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  234  {
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  235  	__u16 kind = btf_kind(t);
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  236  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  237  	return kind == BTF_KIND_VOLATILE ||
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  238  	       kind == BTF_KIND_CONST ||
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  239  	       kind == BTF_KIND_RESTRICT;
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  240  }
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  241  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  242  static inline bool btf_is_func(const struct btf_type *t)
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  243  {
ef20a9b27c66278 Andrii Nakryiko 2019-08-07 @244  	return btf_kind(t) == BTF_KIND_FUNC;
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  245  }
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  246  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  247  static inline bool btf_is_func_proto(const struct btf_type *t)
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  248  {
ef20a9b27c66278 Andrii Nakryiko 2019-08-07 @249  	return btf_kind(t) == BTF_KIND_FUNC_PROTO;
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  250  }
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  251  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  252  static inline bool btf_is_var(const struct btf_type *t)
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  253  {
ef20a9b27c66278 Andrii Nakryiko 2019-08-07 @254  	return btf_kind(t) == BTF_KIND_VAR;
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  255  }
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  256  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  257  static inline bool btf_is_datasec(const struct btf_type *t)
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  258  {
ef20a9b27c66278 Andrii Nakryiko 2019-08-07 @259  	return btf_kind(t) == BTF_KIND_DATASEC;
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  260  }
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  261  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  262  static inline __u8 btf_int_encoding(const struct btf_type *t)
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  263  {
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  264  	return BTF_INT_ENCODING(*(__u32 *)(t + 1));
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  265  }
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  266  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  267  static inline __u8 btf_int_offset(const struct btf_type *t)
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  268  {
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  269  	return BTF_INT_OFFSET(*(__u32 *)(t + 1));
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  270  }
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  271  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  272  static inline __u8 btf_int_bits(const struct btf_type *t)
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  273  {
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  274  	return BTF_INT_BITS(*(__u32 *)(t + 1));
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  275  }
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  276  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  277  static inline struct btf_array *btf_array(const struct btf_type *t)
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  278  {
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  279  	return (struct btf_array *)(t + 1);
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  280  }
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  281  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  282  static inline struct btf_enum *btf_enum(const struct btf_type *t)
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  283  {
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  284  	return (struct btf_enum *)(t + 1);
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  285  }
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  286  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  287  static inline struct btf_member *btf_members(const struct btf_type *t)
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  288  {
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  289  	return (struct btf_member *)(t + 1);
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  290  }
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  291  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  292  /* Get bit offset of a member with specified index. */
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  293  static inline __u32 btf_member_bit_offset(const struct btf_type *t,
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  294  					  __u32 member_idx)
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  295  {
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  296  	const struct btf_member *m = btf_members(t) + member_idx;
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  297  	bool kflag = btf_kflag(t);
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  298  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07 @299  	return kflag ? BTF_MEMBER_BIT_OFFSET(m->offset) : m->offset;
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  300  }
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  301  /*
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  302   * Get bitfield size of a member, assuming t is BTF_KIND_STRUCT or
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  303   * BTF_KIND_UNION. If member is not a bitfield, zero is returned.
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  304   */
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  305  static inline __u32 btf_member_bitfield_size(const struct btf_type *t,
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  306  					     __u32 member_idx)
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  307  {
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  308  	const struct btf_member *m = btf_members(t) + member_idx;
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  309  	bool kflag = btf_kflag(t);
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  310  
ef20a9b27c66278 Andrii Nakryiko 2019-08-07 @311  	return kflag ? BTF_MEMBER_BITFIELD_SIZE(m->offset) : 0;
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  312  }
ef20a9b27c66278 Andrii Nakryiko 2019-08-07  313  

:::::: The code at line 244 was first introduced by commit
:::::: ef20a9b27c66278ac2f85006db8ea11d5f61a781 libbpf: add helpers for working with BTF types

:::::: TO: Andrii Nakryiko <andriin@fb.com>
:::::: CC: Alexei Starovoitov <ast@kernel.org>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 49972 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-06-16 13:09 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-16 13:09 [jolsa-perf:bpf/d_path 2/11] tools/lib/bpf/btf.h:244:24: error: 'BTF_KIND_FUNC' undeclared; did you mean kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.