Hi Yonghong, I love your patch! Yet something to improve: [auto build test ERROR on bpf-next/master] url: https://github.com/0day-ci/linux/commits/Yonghong-Song/compute-bpf_skc_to_-helper-socket-btf-ids-at-build-time/20200718-025117 base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master config: x86_64-rhel-7.6-kselftests (attached as .config) compiler: gcc-9 (Debian 9.3.0-14) 9.3.0 reproduce (this is a W=1 build): # 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 All error/warnings (new ones prefixed by >>): In file included from kernel/bpf/btf.c:21: >> kernel/bpf/btf.c:3625:13: warning: array 'bpf_ctx_convert_btf_id' assumed to have one element 3625 | BTF_ID_LIST(bpf_ctx_convert_btf_id) | ^~~~~~~~~~~~~~~~~~~~~~ include/linux/btf_ids.h:69:12: note: in definition of macro 'BTF_ID_LIST' 69 | static u32 name[]; | ^~~~ /tmp/ccYr5IvF.s: Assembler messages: /tmp/ccYr5IvF.s:23808: Error: symbol `bpf_ctx_convert_btf_id' is already defined -- In file included from kernel/bpf/stackmap.c:12: >> kernel/bpf/stackmap.c:580:13: warning: array 'bpf_get_task_stack_btf_ids' assumed to have one element 580 | BTF_ID_LIST(bpf_get_task_stack_btf_ids) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/btf_ids.h:69:12: note: in definition of macro 'BTF_ID_LIST' 69 | static u32 name[]; | ^~~~ /tmp/ccjqxVG0.s: Assembler messages: >> /tmp/ccjqxVG0.s:4352: Error: symbol `bpf_get_task_stack_btf_ids' is already defined -- In file included from net/core/filter.c:78: >> net/core/filter.c:3783:13: warning: array 'bpf_skb_output_btf_ids' assumed to have one element 3783 | BTF_ID_LIST(bpf_skb_output_btf_ids) | ^~~~~~~~~~~~~~~~~~~~~~ include/linux/btf_ids.h:69:12: note: in definition of macro 'BTF_ID_LIST' 69 | static u32 name[]; | ^~~~ >> net/core/filter.c:4179:13: warning: array 'bpf_xdp_output_btf_ids' assumed to have one element 4179 | BTF_ID_LIST(bpf_xdp_output_btf_ids) | ^~~~~~~~~~~~~~~~~~~~~~ include/linux/btf_ids.h:69:12: note: in definition of macro 'BTF_ID_LIST' 69 | static u32 name[]; | ^~~~ /tmp/ccAPtQBF.s: Assembler messages: >> /tmp/ccAPtQBF.s:67210: Error: symbol `bpf_xdp_output_btf_ids' is already defined >> /tmp/ccAPtQBF.s:67358: Error: symbol `bpf_skb_output_btf_ids' is already defined -- In file included from net/core/filter.c:78: >> net/core/filter.c:3783:13: warning: array 'bpf_skb_output_btf_ids' assumed to have one element 3783 | BTF_ID_LIST(bpf_skb_output_btf_ids) | ^~~~~~~~~~~~~~~~~~~~~~ include/linux/btf_ids.h:69:12: note: in definition of macro 'BTF_ID_LIST' 69 | static u32 name[]; | ^~~~ >> net/core/filter.c:4179:13: warning: array 'bpf_xdp_output_btf_ids' assumed to have one element 4179 | BTF_ID_LIST(bpf_xdp_output_btf_ids) | ^~~~~~~~~~~~~~~~~~~~~~ include/linux/btf_ids.h:69:12: note: in definition of macro 'BTF_ID_LIST' 69 | static u32 name[]; | ^~~~ /tmp/cc5vDkeD.s: Assembler messages: /tmp/cc5vDkeD.s:67210: Error: symbol `bpf_xdp_output_btf_ids' is already defined /tmp/cc5vDkeD.s:67358: Error: symbol `bpf_skb_output_btf_ids' is already defined -- kernel/trace/bpf_trace.c: In function '____bpf_trace_printk': kernel/trace/bpf_trace.c:538:2: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] 538 | return __BPF_TP_EMIT(); | ^~~~~~ kernel/trace/bpf_trace.c:538:2: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] kernel/trace/bpf_trace.c:538:2: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] kernel/trace/bpf_trace.c:538:2: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] kernel/trace/bpf_trace.c:538:2: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] kernel/trace/bpf_trace.c:538:2: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] kernel/trace/bpf_trace.c:538:2: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] kernel/trace/bpf_trace.c:538:2: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] kernel/trace/bpf_trace.c:538:2: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] kernel/trace/bpf_trace.c:538:2: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] kernel/trace/bpf_trace.c:538:2: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] kernel/trace/bpf_trace.c:538:2: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] kernel/trace/bpf_trace.c:538:2: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] kernel/trace/bpf_trace.c:538:2: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] kernel/trace/bpf_trace.c:538:2: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] kernel/trace/bpf_trace.c:538:2: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] kernel/trace/bpf_trace.c:538:2: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] kernel/trace/bpf_trace.c:538:2: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] kernel/trace/bpf_trace.c:538:2: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] kernel/trace/bpf_trace.c:538:2: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] kernel/trace/bpf_trace.c:538:2: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] kernel/trace/bpf_trace.c:538:2: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] kernel/trace/bpf_trace.c:538:2: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] kernel/trace/bpf_trace.c:538:2: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] kernel/trace/bpf_trace.c:538:2: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] kernel/trace/bpf_trace.c:538:2: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] kernel/trace/bpf_trace.c:538:2: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] In file included from kernel/trace/bpf_trace.c:17: kernel/trace/bpf_trace.c: At top level: >> kernel/trace/bpf_trace.c:746:13: warning: array 'bpf_seq_printf_btf_ids' assumed to have one element 746 | BTF_ID_LIST(bpf_seq_printf_btf_ids) | ^~~~~~~~~~~~~~~~~~~~~~ include/linux/btf_ids.h:69:12: note: in definition of macro 'BTF_ID_LIST' 69 | static u32 name[]; | ^~~~ >> kernel/trace/bpf_trace.c:766:13: warning: array 'bpf_seq_write_btf_ids' assumed to have one element 766 | BTF_ID_LIST(bpf_seq_write_btf_ids) | ^~~~~~~~~~~~~~~~~~~~~ include/linux/btf_ids.h:69:12: note: in definition of macro 'BTF_ID_LIST' 69 | static u32 name[]; | ^~~~ /tmp/ccD742Hy.s: Assembler messages: >> /tmp/ccD742Hy.s:18358: Error: symbol `bpf_seq_write_btf_ids' is already defined >> /tmp/ccD742Hy.s:18376: Error: symbol `bpf_seq_printf_btf_ids' is already defined -- In file included from kernel/bpf/stackmap.c:12: >> kernel/bpf/stackmap.c:580:13: warning: array 'bpf_get_task_stack_btf_ids' assumed to have one element 580 | BTF_ID_LIST(bpf_get_task_stack_btf_ids) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/btf_ids.h:69:12: note: in definition of macro 'BTF_ID_LIST' 69 | static u32 name[]; | ^~~~ /tmp/cc3dyWIM.s: Assembler messages: /tmp/cc3dyWIM.s:4352: Error: symbol `bpf_get_task_stack_btf_ids' is already defined -- In file included from kernel/bpf/btf.c:21: >> kernel/bpf/btf.c:3625:13: warning: array 'bpf_ctx_convert_btf_id' assumed to have one element 3625 | BTF_ID_LIST(bpf_ctx_convert_btf_id) | ^~~~~~~~~~~~~~~~~~~~~~ include/linux/btf_ids.h:69:12: note: in definition of macro 'BTF_ID_LIST' 69 | static u32 name[]; | ^~~~ /tmp/ccCr2PU4.s: Assembler messages: /tmp/ccCr2PU4.s:23808: Error: symbol `bpf_ctx_convert_btf_id' is already defined --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org