• Shahab Vahedi's avatar
    bpftool: Fix bootstrapping during a cross compilation · 0b817059
    Shahab Vahedi authored
    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: default avatarShahab Vahedi <shahab@synopsys.com>
    Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
    Reviewed-by: default avatarQuentin 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
    0b817059
Makefile 7.96 KB