mirror of
https://github.com/torvalds/linux.git
synced 2024-11-21 19:41:42 +00:00
kbuild: rpm-pkg: disable kernel-devel package when cross-compiling
Since commitf1d87664b8
("kbuild: cross-compile linux-headers package when possible"), 'make binrpm-pkg' may attempt to cross-compile the kernel-devel package, but it fails under certain circumstances. For example, when CONFIG_MODULE_SIG_FORMAT is enabled on openSUSE Tumbleweed, the following command fails: $ make ARCH=arm64 CROSS_COMPILE=aarch64-suse-linux- binrpm-pkg [ snip ] Rebuilding host programs with aarch64-suse-linux-gcc... HOSTCC /home/masahiro/ref/linux/rpmbuild/BUILDROOT/kernel-6.12.0_rc4-1.aarch64/usr/src/kernels/6.12.0-rc4/scripts/kallsyms HOSTCC /home/masahiro/ref/linux/rpmbuild/BUILDROOT/kernel-6.12.0_rc4-1.aarch64/usr/src/kernels/6.12.0-rc4/scripts/sorttable HOSTCC /home/masahiro/ref/linux/rpmbuild/BUILDROOT/kernel-6.12.0_rc4-1.aarch64/usr/src/kernels/6.12.0-rc4/scripts/asn1_compiler HOSTCC /home/masahiro/ref/linux/rpmbuild/BUILDROOT/kernel-6.12.0_rc4-1.aarch64/usr/src/kernels/6.12.0-rc4/scripts/sign-file /home/masahiro/ref/linux/rpmbuild/BUILDROOT/kernel-6.12.0_rc4-1.aarch64/usr/src/kernels/6.12.0-rc4/scripts/sign-file.c:25:10: fatal error: openssl/opensslv.h: No such file or directory 25 | #include <openssl/opensslv.h> | ^~~~~~~~~~~~~~~~~~~~ compilation terminated. I believe this issue is less common on Fedora because the disto's cross- compilier cannot link user-space programs. Hence, CONFIG_CC_CAN_LINK is unset. On Fedora 40, the package information explains this limitation clearly: $ dnf info gcc-aarch64-linux-gnu [ snip ] Description : Cross-build GNU C compiler. : : Only building kernels is currently supported. Support for cross-building : user space programs is not currently provided as that would massively multiply : the number of packages. Anyway, cross-compiling RPM packages is somewhat challenging. This commit disables the kernel-devel package when cross-compiling because I did not come up with a better solution. Fixes:f1d87664b8
("kbuild: cross-compile linux-headers package when possible") Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Reviewed-by: Nathan Chancellor <nathan@kernel.org>
This commit is contained in:
parent
4b60a56555
commit
cb08a02659
@ -62,6 +62,10 @@ rpm-sources: linux.tar.gz
|
|||||||
|
|
||||||
PHONY += rpm-pkg srcrpm-pkg binrpm-pkg
|
PHONY += rpm-pkg srcrpm-pkg binrpm-pkg
|
||||||
|
|
||||||
|
ifneq ($(CC),$(HOSTCC))
|
||||||
|
rpm-no-devel = --without=devel
|
||||||
|
endif
|
||||||
|
|
||||||
rpm-pkg: private build-type := a
|
rpm-pkg: private build-type := a
|
||||||
srcrpm-pkg: private build-type := s
|
srcrpm-pkg: private build-type := s
|
||||||
binrpm-pkg: private build-type := b
|
binrpm-pkg: private build-type := b
|
||||||
@ -72,7 +76,8 @@ rpm-pkg srcrpm-pkg binrpm-pkg: rpmbuild/SPECS/kernel.spec
|
|||||||
--define='_topdir $(abspath rpmbuild)' \
|
--define='_topdir $(abspath rpmbuild)' \
|
||||||
$(if $(filter a b, $(build-type)), \
|
$(if $(filter a b, $(build-type)), \
|
||||||
--target $(UTS_MACHINE)-linux --build-in-place --noprep --define='_smp_mflags %{nil}' \
|
--target $(UTS_MACHINE)-linux --build-in-place --noprep --define='_smp_mflags %{nil}' \
|
||||||
$$(rpm -q rpm >/dev/null 2>&1 || echo --nodeps)) \
|
$$(rpm -q rpm >/dev/null 2>&1 || echo --nodeps) \
|
||||||
|
$(rpm-no-devel)) \
|
||||||
$(RPMOPTS))
|
$(RPMOPTS))
|
||||||
|
|
||||||
# deb-pkg srcdeb-pkg bindeb-pkg
|
# deb-pkg srcdeb-pkg bindeb-pkg
|
||||||
|
Loading…
Reference in New Issue
Block a user