forked from mirrors/linux
		
	samples: bpf: print a warning about headers_install
It seems like periodically someone posts patches to "fix"
header includes.  The issue is that samples expect the
include path to have the uAPI headers (from usr/) first,
and then tools/ headers, so that locally installed uAPI
headers take precedence.  This means that if users didn't
run headers_install they will see all sort of strange
compilation errors, e.g.:
  HOSTCC  samples/bpf/test_lru_dist
  samples/bpf/test_lru_dist.c:39:8: error: redefinition of ‘struct list_head’
   struct list_head {
          ^~~~~~~~~
   In file included from samples/bpf/test_lru_dist.c:9:0:
   ../tools/include/linux/types.h:69:8: note: originally defined here
    struct list_head {
           ^~~~~~~~~
Try to detect this situation, and print a helpful warning.
v2: just use HOSTCC (Jiong).
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Reviewed-by: Quentin Monnet <quentin.monnet@netronome.com>
Acked-by: Martin KaFai Lau <kafai@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
			
			
This commit is contained in:
		
							parent
							
								
									6685699e4e
								
							
						
					
					
						commit
						07c3bbdb1a
					
				
					 1 changed files with 9 additions and 0 deletions
				
			
		|  | @ -206,6 +206,15 @@ HOSTCC = $(CROSS_COMPILE)gcc | |||
| CLANG_ARCH_ARGS = -target $(ARCH) | ||||
| endif | ||||
| 
 | ||||
| HDR_PROBE := $(shell echo "\#include <linux/types.h>\n struct list_head { int a; }; int main() { return 0; }" | \
 | ||||
| 	$(HOSTCC) $(KBUILD_HOSTCFLAGS) -x c - -o /dev/null 2>/dev/null && \
 | ||||
| 	echo okay) | ||||
| 
 | ||||
| ifeq ($(HDR_PROBE),) | ||||
| $(warning WARNING: Detected possible issues with include path.) | ||||
| $(warning WARNING: Please install kernel headers locally (make headers_install).) | ||||
| endif | ||||
| 
 | ||||
| BTF_LLC_PROBE := $(shell $(LLC) -march=bpf -mattr=help 2>&1 | grep dwarfris) | ||||
| BTF_PAHOLE_PROBE := $(shell $(BTF_PAHOLE) --help 2>&1 | grep BTF) | ||||
| BTF_OBJCOPY_PROBE := $(shell $(LLVM_OBJCOPY) --help 2>&1 | grep -i 'usage.*llvm') | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Jakub Kicinski
						Jakub Kicinski