Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

kbuild: rpm-pkg: fix build error with CONFIG_MODULES=n

When CONFIG_MODULES is disabled, 'make (bin)rpm-pkg' fails:

$ make allnoconfig binrpm-pkg
[ snip ]
error: File not found: .../linux/rpmbuild/BUILDROOT/kernel-6.10.0_rc3-1.i386/lib/modules/6.10.0-rc3/kernel
error: File not found: .../linux/rpmbuild/BUILDROOT/kernel-6.10.0_rc3-1.i386/lib/modules/6.10.0-rc3/modules.order

To make it work irrespective of CONFIG_MODULES, this commit specifies
the directory path, /lib/modules/%{KERNELRELEASE}, instead of individual
files.

However, doing so would cause new warnings:

warning: File listed twice: /lib/modules/6.10.0-rc3-dirty/modules.alias
warning: File listed twice: /lib/modules/6.10.0-rc3-dirty/modules.alias.bin
warning: File listed twice: /lib/modules/6.10.0-rc3-dirty/modules.builtin.alias.bin
warning: File listed twice: /lib/modules/6.10.0-rc3-dirty/modules.builtin.bin
warning: File listed twice: /lib/modules/6.10.0-rc3-dirty/modules.dep
warning: File listed twice: /lib/modules/6.10.0-rc3-dirty/modules.dep.bin
warning: File listed twice: /lib/modules/6.10.0-rc3-dirty/modules.devname
warning: File listed twice: /lib/modules/6.10.0-rc3-dirty/modules.softdep
warning: File listed twice: /lib/modules/6.10.0-rc3-dirty/modules.symbols
warning: File listed twice: /lib/modules/6.10.0-rc3-dirty/modules.symbols.bin

These files exist in /lib/modules/%{KERNELRELEASE} and are also explicitly
marked as %ghost.

Suppress depmod because depmod-generated files are not packaged.

Fixes: 615b3a3d2d41 ("kbuild: rpm-pkg: do not include depmod-generated files")
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>

+3 -5
+3 -5
scripts/package/kernel.spec
··· 57 57 %install 58 58 mkdir -p %{buildroot}/lib/modules/%{KERNELRELEASE} 59 59 cp $(%{make} %{makeflags} -s image_name) %{buildroot}/lib/modules/%{KERNELRELEASE}/vmlinuz 60 - %{make} %{makeflags} INSTALL_MOD_PATH=%{buildroot} modules_install 60 + # DEPMOD=true makes depmod no-op. We do not package depmod-generated files. 61 + %{make} %{makeflags} INSTALL_MOD_PATH=%{buildroot} DEPMOD=true modules_install 61 62 %{make} %{makeflags} INSTALL_HDR_PATH=%{buildroot}/usr headers_install 62 63 cp System.map %{buildroot}/lib/modules/%{KERNELRELEASE} 63 64 cp .config %{buildroot}/lib/modules/%{KERNELRELEASE}/config ··· 71 70 %endif 72 71 73 72 { 74 - for x in System.map config kernel modules.builtin \ 75 - modules.builtin.modinfo modules.order vmlinuz; do 76 - echo "/lib/modules/%{KERNELRELEASE}/${x}" 77 - done 73 + echo "/lib/modules/%{KERNELRELEASE}" 78 74 79 75 for x in alias alias.bin builtin.alias.bin builtin.bin dep dep.bin \ 80 76 devname softdep symbols symbols.bin; do