Fix LLVM feature detection

bpftool disassembler optionally uses LLVM to improve its capabilities.
Unfortunately, even if llvm-devel is installed, the feature detection of
LLVM doesn't work:

    Auto-detecting system features:
    ...                         clang-bpf-co-re: [ on  ]
    ...                                    llvm: [ OFF ]
    ...                                  libcap: [ on  ]
    ...                                  libbfd: [ on  ]

The reason is that the feature detection tries to compile a simple C++
program and link it against libLLVM which fails as LDFLAGS contains -pie
while CXXFLAGS does not contain -fpie.

Fix this by setting EXTRA_CXXFLAGS from the bpftool build.

Signed-off-by: Viktor Malik <vmalik@redhat.com>
This commit is contained in:
Viktor Malik 2025-03-05 14:16:50 +01:00
parent c9256c9993
commit ef71bece85
No known key found for this signature in database
GPG Key ID: AF7A2E1F6EE74FB3

View File

@ -44,7 +44,7 @@ manipulation of eBPF programs and maps.
# We need to use vmlinux.h from kernel-devel rather than the one from the running system
%define kernel_version %(rpm -q --qf "%%{VERSION}-%%{RELEASE}.%%{ARCH}" kernel-devel)
pushd tools/bpf/bpftool
%make_build EXTRA_CFLAGS="%{build_cflags}" EXTRA_LDFLAGS="%{build_ldflags}" VMLINUX_H="/usr/src/kernels/%{kernel_version}/vmlinux.h"
%make_build EXTRA_CFLAGS="%{build_cflags}" EXTRA_CXXFLAGS="%{build_cflags}" EXTRA_LDFLAGS="%{build_ldflags}" VMLINUX_H="/usr/src/kernels/%{kernel_version}/vmlinux.h"
%install
pushd tools/bpf/bpftool