From: Viktor Malik <vma...@redhat.com>

redhat/spec: Fix BPF selftests build with PIE

JIRA: https://issues.redhat.com/browse/RHEL-48593

Upstream status: RHEL-only

BPF selftests build fails b/c some compiler and linker options (namely
-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 and
-specs=/usr/lib/rpm/redhat/redhat-hardened-ld) are not passed to
sub-makes for bpftool and libbpf. This, for instance, causes that
libbpf.a is not build as PIE and other binaries cannot link against it.

Fix the problem by passing the default compiler/linker options via
EXTRA_CFLAGS/EXTRA_LDFLAGS to the selftests build. They are then
correctly propagated to sub-makes.

Signed-off-by: Viktor Malik <vma...@redhat.com>

diff --git a/redhat/kernel.spec.template b/redhat/kernel.spec.template
index blahblah..blahblah 100644
--- a/redhat/kernel.spec.template
+++ b/redhat/kernel.spec.template
@@ -3254,7 +3254,7 @@ pushd tools/testing/selftests
 %endif
 
 %{log_msg "main selftests compile"}
-%{make} %{?_smp_mflags} EXTRA_CXXFLAGS="${RPM_OPT_FLAGS}" ARCH=$Arch V=1 
TARGETS="bpf cgroup kmod mm net net/forwarding net/mptcp net/netfilter 
net/packetdrill tc-testing memfd drivers/net/bonding iommu cachestat 
pid_namespace rlimits timens pidfd" SKIP_TARGETS="" $force_targets 
INSTALL_PATH=%{buildroot}%{_libexecdir}/kselftests VMLINUX_H="${RPM_VMLINUX_H}" 
install
+%{make} %{?_smp_mflags} EXTRA_CFLAGS="${RPM_OPT_FLAGS}" 
EXTRA_CXXFLAGS="${RPM_OPT_FLAGS}" EXTRA_LDFLAGS="%{__global_ldflags}" 
ARCH=$Arch V=1 TARGETS="bpf cgroup kmod mm net net/forwarding net/mptcp 
net/netfilter net/packetdrill tc-testing memfd drivers/net/bonding iommu 
cachestat pid_namespace rlimits timens pidfd" SKIP_TARGETS="" $force_targets 
INSTALL_PATH=%{buildroot}%{_libexecdir}/kselftests VMLINUX_H="${RPM_VMLINUX_H}" 
install
 
 %ifarch %{klptestarches}
        # kernel livepatching selftest test_modules will build against

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/3958

-- 
_______________________________________________
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to