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