[bpf-next] bpftool: Add missing quotes to libbpf bootstrap submake vars

Message ID 20230110014504.3120711-1-james.hilliard1@gmail.com
State New
Headers
Series [bpf-next] bpftool: Add missing quotes to libbpf bootstrap submake vars |

Commit Message

James Hilliard Jan. 10, 2023, 1:45 a.m. UTC
  When passing compiler variables like CC=$(HOSTCC) to a submake
we must ensure the variable is quoted in order to handle cases
where $(HOSTCC) may be multiple binaries.

For example when using ccache $HOSTCC may be:
"/usr/bin/ccache /usr/bin/gcc"

If we pass CC without quotes like CC=$(HOSTCC) only the first
"/usr/bin/ccache" part will be assigned to the CC variable which
will cause an error due to dropping the "/usr/bin/gcc" part of
the variable in the submake invocation.

This fixes errors such as:
/usr/bin/ccache: invalid option -- 'd'

Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
---
 tools/bpf/bpftool/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Quentin Monnet Jan. 10, 2023, 10:09 a.m. UTC | #1
2023-01-09 18:45 UTC-0700 ~ James Hilliard <james.hilliard1@gmail.com>
> When passing compiler variables like CC=$(HOSTCC) to a submake
> we must ensure the variable is quoted in order to handle cases
> where $(HOSTCC) may be multiple binaries.
> 
> For example when using ccache $HOSTCC may be:
> "/usr/bin/ccache /usr/bin/gcc"
> 
> If we pass CC without quotes like CC=$(HOSTCC) only the first
> "/usr/bin/ccache" part will be assigned to the CC variable which
> will cause an error due to dropping the "/usr/bin/gcc" part of
> the variable in the submake invocation.
> 
> This fixes errors such as:
> /usr/bin/ccache: invalid option -- 'd'
> 
> Signed-off-by: James Hilliard <james.hilliard1@gmail.com>


Acked-by: Quentin Monnet <quentin@isovalent.com>

Thanks
  
patchwork-bot+netdevbpf@kernel.org Jan. 10, 2023, 10:20 p.m. UTC | #2
Hello:

This patch was applied to bpf/bpf-next.git (master)
by Daniel Borkmann <daniel@iogearbox.net>:

On Mon,  9 Jan 2023 18:45:04 -0700 you wrote:
> When passing compiler variables like CC=$(HOSTCC) to a submake
> we must ensure the variable is quoted in order to handle cases
> where $(HOSTCC) may be multiple binaries.
> 
> For example when using ccache $HOSTCC may be:
> "/usr/bin/ccache /usr/bin/gcc"
> 
> [...]

Here is the summary with links:
  - [bpf-next] bpftool: Add missing quotes to libbpf bootstrap submake vars
    https://git.kernel.org/bpf/bpf-next/c/af0e26beaa69

You are awesome, thank you!
  

Patch

diff --git a/tools/bpf/bpftool/Makefile b/tools/bpf/bpftool/Makefile
index ab20ecc5acce..d40e31bc4c9d 100644
--- a/tools/bpf/bpftool/Makefile
+++ b/tools/bpf/bpftool/Makefile
@@ -53,7 +53,7 @@  $(LIBBPF_INTERNAL_HDRS): $(LIBBPF_HDRS_DIR)/%.h: $(BPF_DIR)/%.h | $(LIBBPF_HDRS_
 $(LIBBPF_BOOTSTRAP): $(wildcard $(BPF_DIR)/*.[ch] $(BPF_DIR)/Makefile) | $(LIBBPF_BOOTSTRAP_OUTPUT)
 	$(Q)$(MAKE) -C $(BPF_DIR) OUTPUT=$(LIBBPF_BOOTSTRAP_OUTPUT) \
 		DESTDIR=$(LIBBPF_BOOTSTRAP_DESTDIR:/=) prefix= \
-		ARCH= CROSS_COMPILE= CC=$(HOSTCC) LD=$(HOSTLD) AR=$(HOSTAR) $@ install_headers
+		ARCH= CROSS_COMPILE= CC="$(HOSTCC)" LD="$(HOSTLD)" AR="$(HOSTAR)" $@ install_headers
 
 $(LIBBPF_BOOTSTRAP_INTERNAL_HDRS): $(LIBBPF_BOOTSTRAP_HDRS_DIR)/%.h: $(BPF_DIR)/%.h | $(LIBBPF_BOOTSTRAP_HDRS_DIR)
 	$(call QUIET_INSTALL, $@)