2 # Ignore double dash in version for rpmbuild
3 %define _wrong_version_format_terminate_build 0
5 %define config_name tizen_%{target_board}_defconfig
6 %define buildarch riscv
7 %define variant %{buildarch}-%{target_board}
9 Name: %{variant}-linux-kernel
10 Summary: The Linux Kernel for RISC-V %{target_board}
14 ExclusiveArch: riscv64
16 Vendor: The Linux Community
17 URL: https://www.kernel.org
18 Source0: linux-kernel-%{version}.tar.xz
19 BuildRoot: %{_tmppath}/%{name}-%{PACKAGE_VERSION}-root
21 %define fullVersion %{version}-%{target_board}
24 BuildRequires: module-init-tools
27 BuildRequires: libopenssl1.1-devel
28 BuildRequires: libunwind-devel
29 BuildRequires: libdw-devel
30 BuildRequires: libelf-devel
31 BuildRequires: elfutils
32 BuildRequires: xz-devel
33 BuildRequires: binutils-devel
34 BuildRequires: python3
38 Provides: %{variant}-kernel-uname-r = %{fullVersion}
39 Provides: linux-kernel = %{version}-%{release}
41 %description -n %{variant}-linux-kernel
42 This package contains the Linux kernel for Tizen (arch %{buildarch}, target board %{target_board})
46 %package -n %{variant}-linux-kernel-modules
47 Summary: Kernel modules for %{target_board}
49 Provides: %{variant}-kernel-modules = %{fullVersion}
50 Provides: %{variant}-kernel-modules-uname-r = %{fullVersion}
52 %description -n %{variant}-linux-kernel-modules
53 Kernel-modules includes the loadable kernel modules(.ko files) for %{target_board}
57 %package -n %{variant}-linux-kernel-devel
59 Summary: Linux support kernel map and etc for other packages
61 Provides: %{variant}-kernel-devel = %{fullVersion}
62 Provides: %{variant}-kernel-devel-uname-r = %{fullVersion}
64 %description -n %{variant}-linux-kernel-devel
65 This package provides kernel map and etc information.
68 %package -n %{variant}-linux-kernel-headers
70 Summary: Linux support headers for userspace development
72 Provides: kernel-headers-tizen-dev
74 %description -n %{variant}-linux-kernel-headers
75 This package provides userspaces headers from the Linux kernel. These
76 headers are used by the installed headers for GNU glibc and other system
79 %package -n %{variant}-linux-kernel-perf
80 Summary: The perf performance counter tool
82 Provides: perf = %{version}
84 %description -n %{variant}-linux-kernel-perf
85 This package provides the "perf" tool that can be used to monitor performance
86 counter events as well as various kernel internal events.
92 %{?asan:/usr/bin/gcc-unforce-options}
93 %{?ubsan:/usr/bin/gcc-unforce-options}
95 # distinguish binaries for different variants
96 echo "-%{variant}" > localversion-tizen
98 # extract uapi headers
99 make headers_install %{?_smp_mflags}
102 make %{config_name} %{?_smp_mflags}
105 make -s -C tools/lib/traceevent %{?_smp_mflags}
106 make -s -C tools/perf EXTRA_CFLAGS="-fPIE -rdynamic" %{?_smp_mflags}
108 # Build Image/Image.gz
112 make modules %{?_smp_mflags}
115 QA_SKIP_BUILD_ROOT="DO_NOT_WANT"; export QA_SKIP_BUILD_ROOT
117 # Destination directories
118 mkdir -p %{buildroot}/boot
119 mkdir -p %{buildroot}/lib/modules
122 %if 0%{?board_visionfive2}
123 install -m 644 arch/%{buildarch}/boot/dts/starfive/jh7110*.dtb %{buildroot}/boot/
125 mkdir -p %{buildroot}/boot/overlays
127 # Install kernel headers
128 make headers_install %{?_smp_mflags} INSTALL_HDR_PATH=%{buildroot}/usr
130 install -m 644 arch/%{buildarch}/boot/Image %{buildroot}/boot/Image
133 make -s -C tools/perf EXTRA_CFLAGS="-fPIE -rdynamic" DESTDIR=%{buildroot}/usr install
134 rm -rf %{buildroot}/usr/etc
135 rm -rf %{buildroot}/usr/lib/debug
136 rm -rf %{buildroot}/usr/lib/perf
137 rm -rf %{buildroot}/usr/share
140 make INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=%{buildroot} modules_install
142 # Copy files for devel package
143 mkdir -p %{buildroot}/boot/kernel/devel/kernel-devel-%{variant}
145 --include "/scripts/**.c" \
146 --exclude "/debug*.list" \
147 --exclude "/documentation.list" \
148 --exclude "/*.manifest" \
149 --exclude "/packaging/" \
150 --exclude "/.gbs.conf" \
151 --exclude "/.git**" \
152 --exclude ".gitignore" \
154 --exclude ".tmp_vmlinux*" \
155 --exclude ".*dtb*tmp" \
158 --exclude "vmlinux" \
161 --exclude "Image.gz" \
167 --exclude "/build/" \
168 ./ %{buildroot}/boot/kernel/devel/kernel-devel-%{variant}
173 %files -n %{variant}-linux-kernel-modules
174 /lib/modules/%{version}-%{variant}
176 %files -n %{variant}-linux-kernel-devel
179 %files -n %{variant}-linux-kernel
182 %if 0%{?board_visionfive2}
186 %files -n %{variant}-linux-kernel-headers
189 %files -n %{variant}-linux-kernel-perf
193 /usr/lib/traceevent/*