• Quentin Monnet's avatar
    bpf: Use $(pound) instead of \# in Makefiles · 929bef46
    Quentin Monnet authored
    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
    9564a8cf ("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: 2f383041 ("libbpf: Make libbpf_version.h non-auto-generated")
    Fixes: 07c3bbdb ("samples: bpf: print a warning about headers_install")
    Signed-off-by: default avatarQuentin Monnet <quentin@isovalent.com>
    Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
    Link: https://lore.kernel.org/bpf/20211006111049.20708-1-quentin@isovalent.com
    929bef46
Makefile 9.99 KB