Re: [PATCH] bpftool: Fix bootstrapping during a cross compilation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jun 08, 2022 at 05:49:41PM +0100, Quentin Monnet wrote:
> 2022-06-08 14:29 UTC+0000 ~ Shahab Vahedi <Shahab.Vahedi@xxxxxxxxxxxx>
> > 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@xxxxxxxxxxxx>
> > ---
> >  tools/bpf/bpftool/Makefile | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/tools/bpf/bpftool/Makefile b/tools/bpf/bpftool/Makefile
> > index c6d2c77d0252..c19e0e4c41bd 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) $@ 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, $@)
> 
> +Cc Jean-Philippe
> 
> Looks good to me, thank you!
> Reviewed-by: Quentin Monnet <quentin@xxxxxxxxxxxxx>

Thanks, it makes sense to me as well

Reviewed-by: Jean-Philippe Brucker <jean-philippe@xxxxxxxxxx>



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux