|
@@ -1,96 +0,0 @@
|
|
|
-From 189f777ea4829bede0bf92f572c22fe1f2c37522 Mon Sep 17 00:00:00 2001
|
|
|
-From: Shahab Vahedi <Shahab.Vahedi@synopsys.com>
|
|
|
-Date: Wed, 8 Jun 2022 14:29:28 +0000
|
|
|
-Subject: [PATCH] bpftool: Fix bootstrapping during a cross compilation
|
|
|
-
|
|
|
-This change adjusts the Makefile to use "HOSTAR" as the archive tool
|
|
|
-to keep the sanity of the build process for the bootstrap part in
|
|
|
-check. For the rationale, please continue reading.
|
|
|
-
|
|
|
-When cross compiling bpftool with buildroot, it leads to an invocation
|
|
|
-like:
|
|
|
-
|
|
|
-$ AR="/path/to/buildroot/host/bin/arc-linux-gcc-ar" \
|
|
|
- CC="/path/to/buildroot/host/bin/arc-linux-gcc" \
|
|
|
- ...
|
|
|
- make
|
|
|
-
|
|
|
-Which in return fails while building the bootstrap section:
|
|
|
-
|
|
|
-----------------------------------8<----------------------------------
|
|
|
-
|
|
|
- make: Entering directory '/src/bpftool-v6.7.0/src'
|
|
|
- ... libbfd: [ on ]
|
|
|
- ... disassembler-four-args: [ on ]
|
|
|
- ... zlib: [ on ]
|
|
|
- ... libcap: [ OFF ]
|
|
|
- ... clang-bpf-co-re: [ on ] <-- triggers bootstrap
|
|
|
-
|
|
|
- .
|
|
|
- .
|
|
|
- .
|
|
|
-
|
|
|
- LINK /src/bpftool-v6.7.0/src/bootstrap/bpftool
|
|
|
- /usr/bin/ld: /src/bpftool-v6.7.0/src/bootstrap/libbpf/libbpf.a:
|
|
|
- error adding symbols: archive has no index; run ranlib
|
|
|
- to add one
|
|
|
- collect2: error: ld returned 1 exit status
|
|
|
- make: *** [Makefile:211: /src/bpftool-v6.7.0/src/bootstrap/bpftool]
|
|
|
- Error 1
|
|
|
- make: *** Waiting for unfinished jobs....
|
|
|
- AR /src/bpftool-v6.7.0/src/libbpf/libbpf.a
|
|
|
- make[1]: Leaving directory '/src/bpftool-v6.7.0/libbpf/src'
|
|
|
- make: Leaving directory '/src/bpftool-v6.7.0/src'
|
|
|
-
|
|
|
----------------------------------->8----------------------------------
|
|
|
-
|
|
|
-This occurs because setting "AR" confuses the build process for the
|
|
|
-bootstrap section and it calls "arc-linux-gcc-ar" to create and index
|
|
|
-"libbpf.a" instead of the host "ar".
|
|
|
-
|
|
|
-Signed-off-by: Shahab Vahedi <shahab@synopsys.com>
|
|
|
-Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
|
|
|
-Reviewed-by: Quentin Monnet <quentin@isovalent.com>
|
|
|
-Cc: Jean-Philippe Brucker <jean-philippe@linaro.org>
|
|
|
-Link: https://lore.kernel.org/bpf/8d297f0c-cfd0-ef6f-3970-6dddb3d9a87a@synopsys.com
|
|
|
-Upstream: https://github.com/libbpf/bpftool/commit/189f777ea4829bede0bf92f572c22fe1f2c37522
|
|
|
-
|
|
|
-This is an adapted version, else it won't be possible to cross compile
|
|
|
-bpftool if "clang-bpf-co-re" feature is enabled.
|
|
|
----
|
|
|
- src/Makefile | 2 +-
|
|
|
- src/Makefile.include | 2 ++
|
|
|
- 2 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
-
|
|
|
-diff --git a/src/Makefile b/src/Makefile
|
|
|
-index b657502..b8b0808 100644
|
|
|
---- a/src/Makefile
|
|
|
-+++ b/src/Makefile
|
|
|
-@@ -51,7 +51,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) OBJDIR=$(patsubst %/,%,$(LIBBPF_BOOTSTRAP_OUTPUT)) \
|
|
|
- PREFIX=$(LIBBPF_BOOTSTRAP_DESTDIR:/=) \
|
|
|
-- ARCH= CROSS_COMPILE= CC=$(HOSTCC) LD=$(HOSTLD) $@ 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, $@)
|
|
|
---- a/src/Makefile.include
|
|
|
-+++ b/src/Makefile.include
|
|
|
-@@ -12,11 +12,13 @@
|
|
|
- ifneq ($(LLVM),)
|
|
|
- $(if $(findstring default,$(origin CC)),$(eval CC := clang$(LLVM_VERSION)))
|
|
|
- $(if $(findstring default,$(origin LD)),$(eval LD := ld.lld$(LLVM_VERSION)))
|
|
|
-+ HOSTAR ?= llvm-ar
|
|
|
- HOSTCC ?= clang
|
|
|
- HOSTLD ?= ld.lld
|
|
|
- else
|
|
|
- $(if $(findstring default,$(origin CC)),$(eval CC = $(CROSS_COMPILE)$(CC)))
|
|
|
- $(if $(findstring default,$(origin LD)),$(eval LD = $(CROSS_COMPILE)$(LD)))
|
|
|
-+ HOSTAR ?= ar
|
|
|
- HOSTCC ?= gcc
|
|
|
- HOSTLD ?= ld
|
|
|
- endif
|
|
|
---
|
|
|
-2.35.3
|
|
|
-
|