RISCV: configs: tizen_visionfive2: Enable FTRACE_SYSCALLS switch
[platform/kernel/linux-starfive.git] / packaging / linux-visionfive2.spec
1 %define target_board visionfive2
2 %define board_visionfive2 1
3
4 # Ignore double dash in version for rpmbuild
5 %define _wrong_version_format_terminate_build 0
6
7 %define config_name tizen_%{target_board}_defconfig
8 %define buildarch riscv
9 %define variant %{buildarch}-%{target_board}
10
11 Name: %{variant}-linux-kernel
12 Summary: The Linux Kernel for RISC-V %{target_board}
13 Version: 6.6.17
14 Release: 0
15 License: GPL-2.0
16 ExclusiveArch: riscv64
17 Group: System/Kernel
18 Vendor: The Linux Community
19 URL: https://www.kernel.org
20 Source0:   linux-kernel-%{version}.tar.xz
21 BuildRoot: %{_tmppath}/%{name}-%{PACKAGE_VERSION}-root
22
23 %define fullVersion %{version}-%{target_board}
24
25 BuildRequires: bc
26 BuildRequires: module-init-tools
27 BuildRequires: bison
28 BuildRequires: flex
29 BuildRequires: pkgconfig(openssl3)
30 BuildRequires: libunwind-devel
31 BuildRequires: libdw-devel
32 BuildRequires: libelf-devel
33 BuildRequires: elfutils
34 BuildRequires: xz-devel
35 BuildRequires: binutils-devel
36 BuildRequires: python3
37 BuildRequires: rsync
38 BuildRequires: python3-devel
39
40 # kernel
41 Provides: %{variant}-kernel-uname-r = %{fullVersion}
42 Provides: linux-kernel = %{version}-%{release}
43
44 %description -n %{variant}-linux-kernel
45 This package contains the Linux kernel for Tizen (arch %{buildarch}, target board %{target_board})
46
47 # modules
48
49 %package -n %{variant}-linux-kernel-modules
50 Summary: Kernel modules for %{target_board}
51 Group: System/Kernel
52 Provides: %{variant}-kernel-modules = %{fullVersion}
53 Provides: %{variant}-kernel-modules-uname-r = %{fullVersion}
54
55 %description -n %{variant}-linux-kernel-modules
56 Kernel-modules includes the loadable kernel modules(.ko files) for %{target_board}
57
58 # devel
59
60 %package -n %{variant}-linux-kernel-devel
61 License: GPL-2.0
62 Summary: Linux support kernel map and etc for other packages
63 Group: System/Kernel
64 Provides: %{variant}-kernel-devel = %{fullVersion}
65 Provides: %{variant}-kernel-devel-uname-r = %{fullVersion}
66
67 %description -n %{variant}-linux-kernel-devel
68 This package provides kernel map and etc information.
69
70 #headers
71 %package -n %{variant}-linux-kernel-headers
72 License: GPL-2.0
73 Summary: Linux support headers for userspace development
74 Group: System/Kernel
75 Provides: kernel-headers-tizen-dev
76
77 %description -n %{variant}-linux-kernel-headers
78 This package provides userspaces headers from the Linux kernel. These
79 headers are used by the installed headers for GNU glibc and other system
80  libraries.
81
82 %package -n %{variant}-linux-kernel-perf
83 Summary: The perf performance counter tool
84 Group: System/Kernel
85 Provides: perf = %{version}
86
87 %description -n %{variant}-linux-kernel-perf
88 This package provides the "perf" tool that can be used to monitor performance
89 counter events as well as various kernel internal events.
90
91 %prep
92 %setup -q -n linux-kernel-%{version}
93
94 %build
95 %{?asan:/usr/bin/gcc-unforce-options}
96 %{?ubsan:/usr/bin/gcc-unforce-options}
97
98 # distinguish binaries for different variants
99 echo "-%{variant}" > localversion-tizen
100
101 # extract uapi headers
102 make headers_install %{?_smp_mflags}
103
104 # Set config file
105 make %{config_name} %{?_smp_mflags}
106
107 # Build perf
108 make -s -C tools/perf EXTRA_CFLAGS="-fPIE -rdynamic" %{?_smp_mflags} NO_LIBTRACEEVENT=1
109
110 # Build Image/Image.gz
111 make %{?_smp_mflags}
112
113 # Build modules
114 make  modules %{?_smp_mflags}
115
116 %install
117 QA_SKIP_BUILD_ROOT="DO_NOT_WANT"; export QA_SKIP_BUILD_ROOT
118
119 # Destination directories
120 mkdir -p %{buildroot}/boot
121 mkdir -p %{buildroot}/lib/modules
122
123 # Install kernel DTB
124 %if 0%{?board_visionfive2}
125 install -m 644 arch/%{buildarch}/boot/dts/starfive/jh7110*.dtb %{buildroot}/boot/
126 %endif
127 mkdir -p %{buildroot}/boot/overlays
128
129 # Install kernel headers
130 make headers_install %{?_smp_mflags} INSTALL_HDR_PATH=%{buildroot}/usr
131
132 install -m 644 arch/%{buildarch}/boot/Image %{buildroot}/boot/Image
133
134 # Install perf
135 make -s -C tools/perf EXTRA_CFLAGS="-fPIE -rdynamic" DESTDIR=%{buildroot}/usr install NO_LIBTRACEEVENT=1
136 rm -rf %{buildroot}/usr/etc
137 rm -rf %{buildroot}/usr/lib/debug
138 rm -rf %{buildroot}/usr/lib/perf
139 rm -rf %{buildroot}/usr/share
140
141 # Install modules
142 make INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=%{buildroot} modules_install
143
144 # Copy files for devel package
145 mkdir -p %{buildroot}/boot/kernel/devel/kernel-devel-%{variant}
146 rsync -r \
147   --include "/scripts/**.c" \
148   --exclude "/debug*.list" \
149   --exclude "/documentation.list" \
150   --exclude "/*.manifest" \
151   --exclude "/packaging/" \
152   --exclude "/.gbs.conf" \
153   --exclude "/.git**" \
154   --exclude ".gitignore" \
155   --exclude "*\.c" \
156   --exclude ".tmp_vmlinux*" \
157   --exclude ".*dtb*tmp" \
158   --exclude ".*dtb" \
159   --exclude "*.*tmp" \
160   --exclude "vmlinux" \
161   --exclude "Image" \
162   --exclude "zImage" \
163   --exclude "Image.gz" \
164   --exclude "*.cmd" \
165   --exclude "*.ko" \
166   --exclude "*.o" \
167   --exclude "*.S" \
168   --exclude "*.HEX" \
169   --exclude "/build/" \
170   ./  %{buildroot}/boot/kernel/devel/kernel-devel-%{variant}
171
172 %clean
173 rm -rf %{buildroot}
174
175 %files -n %{variant}-linux-kernel-modules
176 /lib/modules/%{version}-%{variant}
177
178 %files -n %{variant}-linux-kernel-devel
179 /boot/kernel/devel/
180
181 %files -n %{variant}-linux-kernel
182 %license COPYING
183 /boot/Image
184 %if 0%{?board_visionfive2}
185 /boot/jh7110*.dtb
186 %endif
187
188 %files -n %{variant}-linux-kernel-headers
189 /usr/include/*
190
191 %files -n %{variant}-linux-kernel-perf
192 %license COPYING
193 /usr/bin/*
194 /usr/libexec/*