1 |
Signed-off-by: Michał Górny <mgorny@g.o> |
2 |
--- |
3 |
eclass/kernel-build.eclass | 43 +++++++++++++++++++++++--------------- |
4 |
1 file changed, 26 insertions(+), 17 deletions(-) |
5 |
|
6 |
diff --git a/eclass/kernel-build.eclass b/eclass/kernel-build.eclass |
7 |
index 7cada85e79fe..5b595048d4d0 100644 |
8 |
--- a/eclass/kernel-build.eclass |
9 |
+++ b/eclass/kernel-build.eclass |
10 |
@@ -150,10 +150,14 @@ kernel-build_src_test() { |
11 |
emake O="${WORKDIR}"/build "${MAKEARGS[@]}" \ |
12 |
INSTALL_MOD_PATH="${T}" "${targets[@]}" |
13 |
|
14 |
- local ver="${PV}${KV_LOCALVERSION}" |
15 |
- kernel-install_test "${ver}" \ |
16 |
+ local dir_ver=${PV}${KV_LOCALVERSION} |
17 |
+ local relfile=${WORKDIR}/build/include/config/kernel.release |
18 |
+ local module_ver |
19 |
+ module_ver=$(<"${relfile}") || die |
20 |
+ |
21 |
+ kernel-install_test "${module_ver}" \ |
22 |
"${WORKDIR}/build/$(dist-kernel_get_image_path)" \ |
23 |
- "${T}/lib/modules/${ver}" |
24 |
+ "${T}/lib/modules/${module_ver}" |
25 |
} |
26 |
|
27 |
# @FUNCTION: kernel-build_src_install |
28 |
@@ -177,14 +181,15 @@ kernel-build_src_install() { |
29 |
# note: we're using mv rather than doins to save space and time |
30 |
# install main and arch-specific headers first, and scripts |
31 |
local kern_arch=$(tc-arch-kernel) |
32 |
- local ver="${PV}${KV_LOCALVERSION}" |
33 |
- dodir "/usr/src/linux-${ver}/arch/${kern_arch}" |
34 |
- mv include scripts "${ED}/usr/src/linux-${ver}/" || die |
35 |
+ local dir_ver=${PV}${KV_LOCALVERSION} |
36 |
+ local kernel_dir=/usr/src/linux-${dir_ver} |
37 |
+ dodir "${kernel_dir}/arch/${kern_arch}" |
38 |
+ mv include scripts "${ED}${kernel_dir}/" || die |
39 |
mv "arch/${kern_arch}/include" \ |
40 |
- "${ED}/usr/src/linux-${ver}/arch/${kern_arch}/" || die |
41 |
+ "${ED}${kernel_dir}/arch/${kern_arch}/" || die |
42 |
# some arches need module.lds linker script to build external modules |
43 |
if [[ -f arch/${kern_arch}/kernel/module.lds ]]; then |
44 |
- insinto "/usr/src/linux-${ver}/arch/${kern_arch}/kernel" |
45 |
+ insinto "${kernel_dir}/arch/${kern_arch}/kernel" |
46 |
doins "arch/${kern_arch}/kernel/module.lds" |
47 |
fi |
48 |
|
49 |
@@ -192,7 +197,7 @@ kernel-build_src_install() { |
50 |
find -type f '!' '(' -name 'Makefile*' -o -name 'Kconfig*' ')' \ |
51 |
-delete || die |
52 |
find -type l -delete || die |
53 |
- cp -p -R * "${ED}/usr/src/linux-${ver}/" || die |
54 |
+ cp -p -R * "${ED}${kernel_dir}/" || die |
55 |
|
56 |
cd "${WORKDIR}" || die |
57 |
# strip out-of-source build stuffs from modprep |
58 |
@@ -203,31 +208,35 @@ kernel-build_src_install() { |
59 |
'(' -name '.*' -a -not -name '.config' ')' \ |
60 |
')' -delete || die |
61 |
rm modprep/source || die |
62 |
- cp -p -R modprep/. "${ED}/usr/src/linux-${ver}"/ || die |
63 |
+ cp -p -R modprep/. "${ED}${kernel_dir}"/ || die |
64 |
|
65 |
# install the kernel and files needed for module builds |
66 |
- insinto "/usr/src/linux-${ver}" |
67 |
+ insinto "${kernel_dir}" |
68 |
doins build/{System.map,Module.symvers} |
69 |
local image_path=$(dist-kernel_get_image_path) |
70 |
- cp -p "build/${image_path}" "${ED}/usr/src/linux-${ver}/${image_path}" || die |
71 |
+ cp -p "build/${image_path}" "${ED}${kernel_dir}/${image_path}" || die |
72 |
|
73 |
# building modules fails with 'vmlinux has no symtab?' if stripped |
74 |
- use ppc64 && dostrip -x "/usr/src/linux-${ver}/${image_path}" |
75 |
+ use ppc64 && dostrip -x "${kernel_dir}/${image_path}" |
76 |
|
77 |
# Install vmlinux with debuginfo when requested |
78 |
if use debug; then |
79 |
if [[ "${image_path}" != "vmlinux" ]]; then |
80 |
- mv "build/vmlinux" "${ED}/usr/src/linux-${ver}/vmlinux" || die |
81 |
+ mv "build/vmlinux" "${ED}${kernel_dir}/vmlinux" || die |
82 |
fi |
83 |
- dostrip -x "/usr/src/linux-${ver}/vmlinux" |
84 |
+ dostrip -x "${kernel_dir}/vmlinux" |
85 |
fi |
86 |
|
87 |
# strip empty directories |
88 |
find "${D}" -type d -empty -exec rmdir {} + || die |
89 |
|
90 |
+ local relfile=${ED}${kernel_dir}/include/config/kernel.release |
91 |
+ local module_ver |
92 |
+ module_ver=$(<"${relfile}") || die |
93 |
+ |
94 |
# fix source tree and build dir symlinks |
95 |
- dosym ../../../usr/src/linux-${ver} /lib/modules/${ver}/build |
96 |
- dosym ../../../usr/src/linux-${ver} /lib/modules/${ver}/source |
97 |
+ dosym "../../../${kernel_dir}" "/lib/modules/${module_ver}/build" |
98 |
+ dosym "../../../${kernel_dir}" "/lib/modules/${module_ver}/source" |
99 |
|
100 |
save_config build/.config |
101 |
} |
102 |
-- |
103 |
2.38.1 |