Gentoo Archives: gentoo-dev

From: Georgy Yakovlev <gyakovlev@g.o>
To: gentoo-dev@l.g.o
Cc: dist-kernel@g.o, Georgy Yakovlev <gyakovlev@g.o>
Subject: [gentoo-dev] [PATCH 2/2] EXAMPLE, NOMERGE sys-kernel/gentoo-kernel: use ppc_pagesize expand
Date: Tue, 04 Jan 2022 23:56:39
Message-Id: 20220104235528.3995740-2-gyakovlev@gentoo.org
In Reply to: [gentoo-dev] [PATCH 1/2] profiles: add PPC_PAGESIZE use expand by Georgy Yakovlev
1 Signed-off-by: Georgy Yakovlev <gyakovlev@g.o>
2 ---
3 .../gentoo-kernel/gentoo-kernel-5.15.11.ebuild | 18 +++++++++++++++---
4 1 file changed, 15 insertions(+), 3 deletions(-)
5
6 diff --git a/sys-kernel/gentoo-kernel/gentoo-kernel-5.15.11.ebuild b/sys-kernel/gentoo-kernel/gentoo-kernel-5.15.11.ebuild
7 index e4ac32a7019..05ae8331c84 100644
8 --- a/sys-kernel/gentoo-kernel/gentoo-kernel-5.15.11.ebuild
9 +++ b/sys-kernel/gentoo-kernel/gentoo-kernel-5.15.11.ebuild
10 @@ -1,123 +1,135 @@
11 -# Copyright 2020-2021 Gentoo Authors
12 +# Copyright 2020-2022 Gentoo Authors
13 # Distributed under the terms of the GNU General Public License v2
14
15 EAPI=7
16
17 inherit kernel-build toolchain-funcs
18
19 MY_P=linux-${PV%.*}
20 GENPATCHES_P=genpatches-${PV%.*}-$(( ${PV##*.} + 2 ))
21 CONFIG_VER=5.15.10
22 CONFIG_HASH=4882b85cc85fb2b7df396c4d671cc6432596eca0
23 GENTOO_CONFIG_VER=5.15.5
24
25 DESCRIPTION="Linux kernel built with Gentoo patches"
26 HOMEPAGE="https://www.kernel.org/"
27 SRC_URI+=" https://cdn.kernel.org/pub/linux/kernel/v$(ver_cut 1).x/${MY_P}.tar.xz
28 https://dev.gentoo.org/~mpagano/dist/genpatches/${GENPATCHES_P}.base.tar.xz
29 https://dev.gentoo.org/~mpagano/dist/genpatches/${GENPATCHES_P}.extras.tar.xz
30 https://github.com/mgorny/gentoo-kernel-config/archive/v${GENTOO_CONFIG_VER}.tar.gz
31 -> gentoo-kernel-config-${GENTOO_CONFIG_VER}.tar.gz
32 amd64? (
33 https://src.fedoraproject.org/rpms/kernel/raw/${CONFIG_HASH}/f/kernel-x86_64-fedora.config
34 -> kernel-x86_64-fedora.config.${CONFIG_VER}
35 )
36 arm64? (
37 https://src.fedoraproject.org/rpms/kernel/raw/${CONFIG_HASH}/f/kernel-aarch64-fedora.config
38 -> kernel-aarch64-fedora.config.${CONFIG_VER}
39 )
40 ppc64? (
41 https://src.fedoraproject.org/rpms/kernel/raw/${CONFIG_HASH}/f/kernel-ppc64le-fedora.config
42 -> kernel-ppc64le-fedora.config.${CONFIG_VER}
43 )
44 x86? (
45 https://src.fedoraproject.org/rpms/kernel/raw/${CONFIG_HASH}/f/kernel-i686-fedora.config
46 -> kernel-i686-fedora.config.${CONFIG_VER}
47 )"
48 S=${WORKDIR}/${MY_P}
49
50 LICENSE="GPL-2"
51 KEYWORDS="amd64 ~arm arm64 ~ppc ppc64 ~x86"
52 -IUSE="debug hardened"
53 -REQUIRED_USE="arm? ( savedconfig )"
54 +IUSE="debug hardened ppc_pagesize_4K +ppc_pagesize_64K"
55 +REQUIRED_USE="
56 + arm? ( savedconfig )
57 + ppc64? ( ^^ ( ppc_pagesize_4K ppc_pagesize_64K ) )
58 +"
59
60 RDEPEND="
61 !sys-kernel/gentoo-kernel-bin:${SLOT}"
62 BDEPEND="
63 debug? ( dev-util/pahole )"
64 PDEPEND="
65 >=virtual/dist-kernel-${PV}"
66
67 QA_FLAGS_IGNORED="
68 usr/src/linux-.*/scripts/gcc-plugins/.*.so
69 usr/src/linux-.*/vmlinux
70 usr/src/linux-.*/arch/powerpc/kernel/vdso.*/vdso.*.so.dbg
71 "
72
73 src_prepare() {
74 local PATCHES=(
75 # meh, genpatches have no directory
76 "${WORKDIR}"/*.patch
77 )
78 default
79
80 local biendian=false
81
82 # prepare the default config
83 case ${ARCH} in
84 amd64)
85 cp "${DISTDIR}/kernel-x86_64-fedora.config.${CONFIG_VER}" .config || die
86 ;;
87 arm)
88 return
89 ;;
90 arm64)
91 cp "${DISTDIR}/kernel-aarch64-fedora.config.${CONFIG_VER}" .config || die
92 biendian=true
93 ;;
94 ppc)
95 # assume powermac/powerbook defconfig
96 # we still package.use.force savedconfig
97 cp "${WORKDIR}/${MY_P}/arch/powerpc/configs/pmac32_defconfig" .config || die
98 ;;
99 ppc64)
100 cp "${DISTDIR}/kernel-ppc64le-fedora.config.${CONFIG_VER}" .config || die
101 biendian=true
102 ;;
103 x86)
104 cp "${DISTDIR}/kernel-i686-fedora.config.${CONFIG_VER}" .config || die
105 ;;
106 *)
107 die "Unsupported arch ${ARCH}"
108 ;;
109 esac
110
111 local myversion="-gentoo-dist"
112 use hardened && myversion+="-hardened"
113 echo "CONFIG_LOCALVERSION=\"${myversion}\"" > "${T}"/version.config || die
114 local dist_conf_path="${WORKDIR}/gentoo-kernel-config-${GENTOO_CONFIG_VER}"
115
116 local merge_configs=(
117 "${T}"/version.config
118 "${dist_conf_path}"/base.config
119 )
120 use debug || merge_configs+=(
121 "${dist_conf_path}"/no-debug.config
122 )
123 if use hardened; then
124 merge_configs+=( "${dist_conf_path}"/hardened-base.config )
125
126 tc-is-gcc && merge_configs+=( "${dist_conf_path}"/hardened-gcc-plugins.config )
127
128 if [[ -f "${dist_conf_path}/hardened-${ARCH}.config" ]]; then
129 merge_configs+=( "${dist_conf_path}/hardened-${ARCH}.config" )
130 fi
131 fi
132
133 # this covers ppc64 and aarch64_be only for now
134 if [[ ${biendian} == true && $(tc-endian) == big ]]; then
135 merge_configs+=( "${dist_conf_path}/big-endian.config" )
136 fi
137
138 + if use ppc_pagesize_4K; then
139 + merge_configs+=( "${dist_conf_path}/ppc_pagesize_4K.config" )
140 + fi
141 +
142 + if use ppc_pagesize_64K; then
143 + merge_configs+=( "${dist_conf_path}/ppc_pagesize_64K.config" )
144 + fi
145 +
146 +
147 kernel-build_merge_configs "${merge_configs[@]}"
148 }
149 --
150 2.34.1