Add support for building ipaclones
While Fedora doesn't officially support kpatch, there's work being done to enable kpatch elsewhere. Add the packaging work but don't actually build anything.
This commit is contained in:
parent
1d23fdad0f
commit
c68fd73909
58
kernel.spec
58
kernel.spec
@ -133,6 +133,11 @@ Summary: The Linux kernel
|
|||||||
# gcov support
|
# gcov support
|
||||||
%define with_gcov %{?_with_gcov: 1} %{?!_with_gcov: 0}
|
%define with_gcov %{?_with_gcov: 1} %{?!_with_gcov: 0}
|
||||||
|
|
||||||
|
#
|
||||||
|
# ipa_clone support
|
||||||
|
%define with_ipaclones %{?_without_ipaclones: 0} %{?!_without_ipaclones: 1}
|
||||||
|
|
||||||
|
|
||||||
# Set debugbuildsenabled to 1 for production (build separate debug kernels)
|
# Set debugbuildsenabled to 1 for production (build separate debug kernels)
|
||||||
# and 0 for rawhide (all kernels are debug kernels).
|
# and 0 for rawhide (all kernels are debug kernels).
|
||||||
# See also 'make debug' and 'make release'.
|
# See also 'make debug' and 'make release'.
|
||||||
@ -144,6 +149,8 @@ Summary: The Linux kernel
|
|||||||
%define with_cross_headers 0
|
%define with_cross_headers 0
|
||||||
# no selftests for now
|
# no selftests for now
|
||||||
%define with_selftests 0
|
%define with_selftests 0
|
||||||
|
# no ipa_clone for now
|
||||||
|
%define with_ipaclones 0
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{with_verbose}
|
%if %{with_verbose}
|
||||||
@ -189,6 +196,16 @@ Summary: The Linux kernel
|
|||||||
%define with_kabidwchk 0
|
%define with_kabidwchk 0
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
# kpatch_kcflags are extra compiler flags applied to base kernel
|
||||||
|
# -fdump-ipa-clones is enabled only for base kernels on selected arches
|
||||||
|
%if %{with_ipaclones}
|
||||||
|
%ifarch x86_64 ppc64le
|
||||||
|
%define kpatch_kcflags -fdump-ipa-clones
|
||||||
|
%else
|
||||||
|
%define with_ipaclones 0
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
|
||||||
%define make_target bzImage
|
%define make_target bzImage
|
||||||
%define image_install_path boot
|
%define image_install_path boot
|
||||||
|
|
||||||
@ -750,6 +767,18 @@ This package provides kernel headers and makefiles sufficient to build modules\
|
|||||||
against the %{?2:%{2} }kernel package.\
|
against the %{?2:%{2} }kernel package.\
|
||||||
%{nil}
|
%{nil}
|
||||||
|
|
||||||
|
#
|
||||||
|
# kernel-<variant>-ipaclones-internal package
|
||||||
|
#
|
||||||
|
%define kernel_ipaclones_package() \
|
||||||
|
%package %{?1:%{1}-}ipaclones-internal\
|
||||||
|
Summary: *.ipa-clones files generated by -fdump-ipa-clones for kernel%{?1:-%{1}}\
|
||||||
|
Group: System Environment/Kernel\
|
||||||
|
AutoReqProv: no\
|
||||||
|
%description %{?1:%{1}-}ipaclones-internal\
|
||||||
|
This package provides *.ipa-clones files.\
|
||||||
|
%{nil}
|
||||||
|
|
||||||
#
|
#
|
||||||
# This macro creates a kernel-<subpackage>-modules-extra package.
|
# This macro creates a kernel-<subpackage>-modules-extra package.
|
||||||
# %%kernel_modules_extra_package <subpackage> <pretty-name>
|
# %%kernel_modules_extra_package <subpackage> <pretty-name>
|
||||||
@ -858,6 +887,10 @@ Linux operating system. The kernel handles the basic functions
|
|||||||
of the operating system: memory allocation, process allocation, device
|
of the operating system: memory allocation, process allocation, device
|
||||||
input and output, etc.
|
input and output, etc.
|
||||||
|
|
||||||
|
%if %{with_ipaclones}
|
||||||
|
%kernel_ipaclones_package
|
||||||
|
%endif
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
# do a few sanity-checks for --with *only builds
|
# do a few sanity-checks for --with *only builds
|
||||||
%if %{with_baseonly}
|
%if %{with_baseonly}
|
||||||
@ -1574,6 +1607,18 @@ BuildKernel() {
|
|||||||
|
|
||||||
# build a BLS config for this kernel
|
# build a BLS config for this kernel
|
||||||
%{SOURCE43} "$KernelVer" "$RPM_BUILD_ROOT" "%{?variant}"
|
%{SOURCE43} "$KernelVer" "$RPM_BUILD_ROOT" "%{?variant}"
|
||||||
|
|
||||||
|
%if %{with_ipaclones}
|
||||||
|
MAXPROCS=$(echo %{?_smp_mflags} | sed -n 's/-j\s*\([0-9]\+\)/\1/p')
|
||||||
|
if [ -z "$MAXPROCS" ]; then
|
||||||
|
MAXPROCS=1
|
||||||
|
fi
|
||||||
|
if [ "$Flavour" == "" ]; then
|
||||||
|
mkdir -p $RPM_BUILD_ROOT/$DevelDir-ipaclones
|
||||||
|
find . -name '*.ipa-clones' | xargs -i{} -r -n 1 -P $MAXPROCS install -m 644 -D "{}" "$RPM_BUILD_ROOT/$DevelDir-ipaclones/{}"
|
||||||
|
fi
|
||||||
|
%endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
###
|
###
|
||||||
@ -1985,6 +2030,19 @@ fi
|
|||||||
%kernel_variant_files %{_use_vdso} %{with_debug} debug
|
%kernel_variant_files %{_use_vdso} %{with_debug} debug
|
||||||
%kernel_variant_files %{use_vdso} %{with_pae} lpae
|
%kernel_variant_files %{use_vdso} %{with_pae} lpae
|
||||||
|
|
||||||
|
%define kernel_variant_ipaclones(k:) \
|
||||||
|
%if %{1}\
|
||||||
|
%if %{with_ipaclones}\
|
||||||
|
%{expand:%%files %{?2:%{2}-}ipaclones-internal}\
|
||||||
|
%defattr(-,root,root)\
|
||||||
|
%defverify(not mtime)\
|
||||||
|
/usr/src/kernels/%{KVERREL}%{?2:+%{2}}-ipaclones\
|
||||||
|
%endif\
|
||||||
|
%endif\
|
||||||
|
%{nil}
|
||||||
|
|
||||||
|
%kernel_variant_ipaclones %{with_up}
|
||||||
|
|
||||||
# plz don't put in a version string unless you're going to tag
|
# plz don't put in a version string unless you're going to tag
|
||||||
# and build.
|
# and build.
|
||||||
#
|
#
|
||||||
|
Loading…
Reference in New Issue
Block a user