It's useful to build samples/* with UML and the only blocker is the artificial incompatibility with CONFIG_HEADERS_INSTALL.
Allow the headers_install target with ARCH=um, which then allow building samples (and tests using them) with UML too:
printf 'CONFIG_SAMPLES=y\nCONFIG_HEADERS_INSTALL=y\nCONFIG_SAMPLE_LANDLOCK=y\n' >.config make ARCH=um olddefconfig headers_install make ARCH=um samples/landlock/
Cc: Anton Ivanov anton.ivanov@cambridgegreys.com Cc: Johannes Berg johannes@sipsolutions.net Cc: Masahiro Yamada masahiroy@kernel.org Cc: Nathan Chancellor nathan@kernel.org Cc: Nicolas Schier nicolas@fjasle.eu Cc: Richard Weinberger richard@nod.at Fixes: 1b620d539ccc ("kbuild: disable header exports for UML in a straightforward way") Signed-off-by: Mickaël Salaün mic@digikod.net --- Makefile | 1 - lib/Kconfig.debug | 1 - 2 files changed, 2 deletions(-)
diff --git a/Makefile b/Makefile index e5b8a8832c0c..6e2cce16a2a3 100644 --- a/Makefile +++ b/Makefile @@ -1355,7 +1355,6 @@ hdr-inst := -f $(srctree)/scripts/Makefile.headersinst obj
PHONY += headers headers: $(version_h) scripts_unifdef uapi-asm-generic archheaders archscripts - $(if $(filter um, $(SRCARCH)), $(error Headers not exportable for UML)) $(Q)$(MAKE) $(hdr-inst)=include/uapi $(Q)$(MAKE) $(hdr-inst)=arch/$(SRCARCH)/include/uapi
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index f3d723705879..fac1208f48e4 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -473,7 +473,6 @@ config READABLE_ASM
config HEADERS_INSTALL bool "Install uapi headers to usr/include" - depends on !UML help This option will install uapi headers (headers exported to user-space) into the usr/include directory for use during the kernel build.
On Wed, Dec 18, 2024 at 12:51:23PM +0100, Mickaël Salaün wrote:
It's useful to build samples/* with UML and the only blocker is the artificial incompatibility with CONFIG_HEADERS_INSTALL.
Allow the headers_install target with ARCH=um, which then allow building samples (and tests using them) with UML too:
printf 'CONFIG_SAMPLES=y\nCONFIG_HEADERS_INSTALL=y\nCONFIG_SAMPLE_LANDLOCK=y\n' >.config make ARCH=um olddefconfig headers_install make ARCH=um samples/landlock/
Cc: Anton Ivanov anton.ivanov@cambridgegreys.com Cc: Johannes Berg johannes@sipsolutions.net Cc: Masahiro Yamada masahiroy@kernel.org Cc: Nathan Chancellor nathan@kernel.org Cc: Nicolas Schier nicolas@fjasle.eu Cc: Richard Weinberger richard@nod.at Fixes: 1b620d539ccc ("kbuild: disable header exports for UML in a straightforward way") Signed-off-by: Mickaël Salaün mic@digikod.net
Makefile | 1 - lib/Kconfig.debug | 1 - 2 files changed, 2 deletions(-)
Thanks, looks good to me.
Reviewed-by: Nicolas Schier n.schier@avm.de
On Wed, Dec 18, 2024 at 8:51 PM Mickaël Salaün mic@digikod.net wrote:
It's useful to build samples/* with UML and the only blocker is the artificial incompatibility with CONFIG_HEADERS_INSTALL.
Allow the headers_install target with ARCH=um, which then allow building samples (and tests using them) with UML too:
printf 'CONFIG_SAMPLES=y\nCONFIG_HEADERS_INSTALL=y\nCONFIG_SAMPLE_LANDLOCK=y\n' >.config make ARCH=um olddefconfig headers_install make ARCH=um samples/landlock/
Cc: Anton Ivanov anton.ivanov@cambridgegreys.com Cc: Johannes Berg johannes@sipsolutions.net Cc: Masahiro Yamada masahiroy@kernel.org Cc: Nathan Chancellor nathan@kernel.org Cc: Nicolas Schier nicolas@fjasle.eu Cc: Richard Weinberger richard@nod.at Fixes: 1b620d539ccc ("kbuild: disable header exports for UML in a straightforward way") Signed-off-by: Mickaël Salaün mic@digikod.net
Makefile | 1 - lib/Kconfig.debug | 1 - 2 files changed, 2 deletions(-)
diff --git a/Makefile b/Makefile index e5b8a8832c0c..6e2cce16a2a3 100644 --- a/Makefile +++ b/Makefile @@ -1355,7 +1355,6 @@ hdr-inst := -f $(srctree)/scripts/Makefile.headersinst obj
PHONY += headers headers: $(version_h) scripts_unifdef uapi-asm-generic archheaders archscripts
$(if $(filter um, $(SRCARCH)), $(error Headers not exportable for UML)) $(Q)$(MAKE) $(hdr-inst)=include/uapi $(Q)$(MAKE) $(hdr-inst)=arch/$(SRCARCH)/include/uapi
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index f3d723705879..fac1208f48e4 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -473,7 +473,6 @@ config READABLE_ASM
config HEADERS_INSTALL bool "Install uapi headers to usr/include"
depends on !UML help This option will install uapi headers (headers exported to user-space) into the usr/include directory for use during the kernel build.
-- 2.47.1
This patch was not even compile-tested.
Apply this patch. Enable CONFIG_HEADERS_INSTALL and CONFIG_UAPI_HEADERS_TEST. "make ARCH=um" and see the errors.
The reason is obvious, UML is a kernel. No such userspace.
On Tue, Feb 11, 2025 at 06:44:30PM +0900, Masahiro Yamada wrote:
On Wed, Dec 18, 2024 at 8:51 PM Mickaël Salaün mic@digikod.net wrote:
It's useful to build samples/* with UML and the only blocker is the artificial incompatibility with CONFIG_HEADERS_INSTALL.
Allow the headers_install target with ARCH=um, which then allow building samples (and tests using them) with UML too:
printf 'CONFIG_SAMPLES=y\nCONFIG_HEADERS_INSTALL=y\nCONFIG_SAMPLE_LANDLOCK=y\n' >.config make ARCH=um olddefconfig headers_install make ARCH=um samples/landlock/
Cc: Anton Ivanov anton.ivanov@cambridgegreys.com Cc: Johannes Berg johannes@sipsolutions.net Cc: Masahiro Yamada masahiroy@kernel.org Cc: Nathan Chancellor nathan@kernel.org Cc: Nicolas Schier nicolas@fjasle.eu Cc: Richard Weinberger richard@nod.at Fixes: 1b620d539ccc ("kbuild: disable header exports for UML in a straightforward way") Signed-off-by: Mickaël Salaün mic@digikod.net
Makefile | 1 - lib/Kconfig.debug | 1 - 2 files changed, 2 deletions(-)
diff --git a/Makefile b/Makefile index e5b8a8832c0c..6e2cce16a2a3 100644 --- a/Makefile +++ b/Makefile @@ -1355,7 +1355,6 @@ hdr-inst := -f $(srctree)/scripts/Makefile.headersinst obj
PHONY += headers headers: $(version_h) scripts_unifdef uapi-asm-generic archheaders archscripts
$(if $(filter um, $(SRCARCH)), $(error Headers not exportable for UML)) $(Q)$(MAKE) $(hdr-inst)=include/uapi $(Q)$(MAKE) $(hdr-inst)=arch/$(SRCARCH)/include/uapi
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index f3d723705879..fac1208f48e4 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -473,7 +473,6 @@ config READABLE_ASM
config HEADERS_INSTALL bool "Install uapi headers to usr/include"
depends on !UML help This option will install uapi headers (headers exported to user-space) into the usr/include directory for use during the kernel build.
-- 2.47.1
This patch was not even compile-tested.
Apply this patch. Enable CONFIG_HEADERS_INSTALL and CONFIG_UAPI_HEADERS_TEST. "make ARCH=um" and see the errors.
The reason is obvious, UML is a kernel. No such userspace.
oh, I sorry. I should have seen that when reviewing, but confused myself as I missed the UAPI_HEADERS_TEST and just looked at a "successful" run of 'make headers_install'.
Kind regards, Nicolas
linux-kselftest-mirror@lists.linaro.org