mirror of
				https://github.com/torvalds/linux.git
				synced 2025-10-31 16:48:26 +02:00 
			
		
		
		
	bpf: Use $(pound) instead of \# in Makefiles
Recent-ish versions of make do no longer consider number signs ("#") as
comment symbols when they are inserted inside of a macro reference or in
a function invocation. In such cases, the symbols should not be escaped.
There are a few occurrences of "\#" in libbpf's and samples' Makefiles.
In the former, the backslash is harmless, because grep associates no
particular meaning to the escaped symbol and reads it as a regular "#".
In samples' Makefile, recent versions of make will pass the backslash
down to the compiler, making the probe fail all the time and resulting
in the display of a warning about "make headers_install" being required,
even after headers have been installed.
A similar issue has been addressed at some other locations by commit
9564a8cf42 ("Kbuild: fix # escaping in .cmd files for future Make").
Let's address it for libbpf's and samples' Makefiles in the same
fashion, by using a "$(pound)" variable (pulled from
tools/scripts/Makefile.include for libbpf, or re-defined for the
samples).
Reference for the change in make:
https://git.savannah.gnu.org/cgit/make.git/commit/?id=c6966b323811c37acedff05b57
Fixes: 2f38304127 ("libbpf: Make libbpf_version.h non-auto-generated")
Fixes: 07c3bbdb1a ("samples: bpf: print a warning about headers_install")
Signed-off-by: Quentin Monnet <quentin@isovalent.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20211006111049.20708-1-quentin@isovalent.com
			
			
This commit is contained in:
		
							parent
							
								
									90982e1356
								
							
						
					
					
						commit
						929bef4677
					
				
					 2 changed files with 5 additions and 3 deletions
				
			
		|  | @ -3,6 +3,8 @@ | |||
| BPF_SAMPLES_PATH ?= $(abspath $(srctree)/$(src)) | ||||
| TOOLS_PATH := $(BPF_SAMPLES_PATH)/../../tools | ||||
| 
 | ||||
| pound := \# | ||||
| 
 | ||||
| # List of programs to build
 | ||||
| tprogs-y := test_lru_dist | ||||
| tprogs-y += sock_example | ||||
|  | @ -232,7 +234,7 @@ endif | |||
| 
 | ||||
| # Don't evaluate probes and warnings if we need to run make recursively
 | ||||
| ifneq ($(src),) | ||||
| HDR_PROBE := $(shell printf "\#include <linux/types.h>\n struct list_head { int a; }; int main() { return 0; }" | \
 | ||||
| HDR_PROBE := $(shell printf "$(pound)include <linux/types.h>\n struct list_head { int a; }; int main() { return 0; }" | \
 | ||||
| 	$(CC) $(TPROGS_CFLAGS) $(TPROGS_LDFLAGS) -x c - \
 | ||||
| 	-o /dev/null 2>/dev/null && echo okay) | ||||
| 
 | ||||
|  |  | |||
|  | @ -208,8 +208,8 @@ check_abi: $(OUTPUT)libbpf.so $(VERSION_SCRIPT) | |||
| 		exit 1;							 \
 | ||||
| 	fi | ||||
| 
 | ||||
| HDR_MAJ_VERSION := $(shell grep -oE '^\#define LIBBPF_MAJOR_VERSION ([0-9]+)$$' libbpf_version.h | cut -d' ' -f3) | ||||
| HDR_MIN_VERSION := $(shell grep -oE '^\#define LIBBPF_MINOR_VERSION ([0-9]+)$$' libbpf_version.h | cut -d' ' -f3) | ||||
| HDR_MAJ_VERSION := $(shell grep -oE '^$(pound)define LIBBPF_MAJOR_VERSION ([0-9]+)$$' libbpf_version.h | cut -d' ' -f3) | ||||
| HDR_MIN_VERSION := $(shell grep -oE '^$(pound)define LIBBPF_MINOR_VERSION ([0-9]+)$$' libbpf_version.h | cut -d' ' -f3) | ||||
| 
 | ||||
| check_version: $(VERSION_SCRIPT) libbpf_version.h | ||||
| 	@if [ "$(HDR_MAJ_VERSION)" != "$(LIBBPF_MAJOR_VERSION)" ]; then        \
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Quentin Monnet
						Quentin Monnet