* [PATCH 00/15] kbuild: refactor headers_install and support compile-test of UAPI headers
@ 2019-06-04 10:13 Masahiro Yamada
2019-06-04 10:13 ` [PATCH 05/15] kbuild: add CONFIG_HEADERS_INSTALL and loosen the dependency of samples Masahiro Yamada
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Masahiro Yamada @ 2019-06-04 10:13 UTC (permalink / raw)
To: linux-kbuild
Cc: Randy Dunlap, Arnd Bergmann, David Howells, Sam Ravnborg,
Jani Nikula, Masahiro Yamada, linux-doc, Jonathan Corbet,
linux-riscv, Daniel Borkmann, linux-s390, Greentime Hu,
Helge Deller, Vineet Gupta, Palmer Dabbelt,
Christian Borntraeger, linux-snps-arc, Song Liu,
James E.J. Bottomley, Yonghong Song, Benjamin Herrenschmidt,
Michal Marek, Paul Mackerras, Martin KaFai Lau, Albert Ou,
Vasily Gorbik, linux-parisc, Alexei Starovoitov,
Michael Ellerman, Heiko Carstens, linux-kernel, Vincent Chen,
netdev, bpf, linuxppc-dev
Multiple people have suggested to compile-test UAPI headers.
Currently, Kbuild provides simple sanity checks by headers_check
but they are not enough to catch bugs.
The most recent patch I know is David Howells' work:
https://patchwork.kernel.org/patch/10590203/
I agree that we need better tests for UAPI headers,
but I want to integrate it in a clean way.
The idea that has been in my mind is to compile each header
to make sure the selfcontainedness.
Recently, Jani Nikula proposed a new syntax 'header-test-y'.
https://patchwork.kernel.org/patch/10947005/
So, I implemented UAPI compile-testing on top of that.
When adding a new feature, cleaning the code first is a
good practice.
[1] Remove headers_install_all
This target installs UAPI headers of all architectures
in a single tree.
It does not make sense to compile test of headers from
multiple arches at the same time. Hence, removed.
[2] Split header installation into 'make headers' and 'make headers_install'
To compile-test UAPI headers, we need a work-directory somewhere
to save objects and .*.cmd files.
usr/include/ will be the work-directory.
Since we cannot pollute the final destination of headers_install,
I split the header installation into two stages.
'make headers' will build up
the ready-to-install headers in usr/include,
which will be also used as a work-directory for the compile-test.
'make headers_install' will copy headers
from usr/include to $(INSTALL_HDR_PATH)/include.
[3] Support compile-test of UAPI headers
This is implemented in usr/include/Makefile
Jani Nikula (1):
kbuild: add support for ensuring headers are self-contained
Masahiro Yamada (14):
kbuild: remove headers_{install,check}_all
kbuild: remove stale dependency between Documentation/ and
headers_install
kbuild: make gdb_script depend on prepare0 instead of prepare
kbuild: fix Kconfig prompt of CONFIG_HEADERS_CHECK
kbuild: add CONFIG_HEADERS_INSTALL and loosen the dependency of
samples
kbuild: remove build_unifdef target in scripts/Makefile
kbuild: build all prerequisite of headers_install simultaneously
kbuild: add 'headers' target to build up ready-to-install uapi headers
kbuild: re-implement Makefile.headersinst without directory descending
kbuild: move hdr-inst shorthand to top Makefile
kbuild: simplify scripts/headers_install.sh
kbuild: deb-pkg: do not run headers_check
fixup: kbuild: add support for ensuring headers are self-contained
kbuild: compile test UAPI headers to ensure they are self-contained
Documentation/kbuild/headers_install.txt | 7 --
Documentation/kbuild/makefiles.txt | 13 ++-
Makefile | 56 +++++-----
arch/arc/configs/tb10x_defconfig | 1 +
arch/nds32/configs/defconfig | 1 +
arch/parisc/configs/a500_defconfig | 1 +
arch/parisc/configs/b180_defconfig | 1 +
arch/parisc/configs/c3000_defconfig | 1 +
arch/parisc/configs/default_defconfig | 1 +
arch/powerpc/configs/ppc6xx_defconfig | 1 +
arch/s390/configs/debug_defconfig | 1 +
include/uapi/{linux => }/Kbuild | 6 +-
init/Kconfig | 20 ++++
lib/Kconfig.debug | 25 +++--
samples/Kconfig | 14 ++-
samples/Makefile | 4 +-
scripts/Kbuild.include | 6 --
scripts/Makefile | 5 -
scripts/Makefile.build | 9 ++
scripts/Makefile.headersinst | 132 ++++++++++-------------
scripts/Makefile.lib | 3 +
scripts/cc-system-headers.sh | 8 ++
scripts/headers.sh | 29 -----
scripts/headers_install.sh | 48 ++++-----
scripts/package/builddeb | 2 +-
usr/.gitignore | 1 -
usr/Makefile | 2 +
usr/include/.gitignore | 3 +
usr/include/Makefile | 132 +++++++++++++++++++++++
29 files changed, 329 insertions(+), 204 deletions(-)
rename include/uapi/{linux => }/Kbuild (77%)
create mode 100755 scripts/cc-system-headers.sh
delete mode 100755 scripts/headers.sh
create mode 100644 usr/include/.gitignore
create mode 100644 usr/include/Makefile
--
2.17.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 05/15] kbuild: add CONFIG_HEADERS_INSTALL and loosen the dependency of samples
2019-06-04 10:13 [PATCH 00/15] kbuild: refactor headers_install and support compile-test of UAPI headers Masahiro Yamada
@ 2019-06-04 10:13 ` Masahiro Yamada
2019-06-05 2:37 ` [PATCH 00/15] kbuild: refactor headers_install and support compile-test of UAPI headers Masahiro Yamada
2019-06-18 15:46 ` Masahiro Yamada
2 siblings, 0 replies; 4+ messages in thread
From: Masahiro Yamada @ 2019-06-04 10:13 UTC (permalink / raw)
To: linux-kbuild
Cc: Randy Dunlap, Arnd Bergmann, David Howells, Sam Ravnborg,
Jani Nikula, Masahiro Yamada, linux-s390, Vasily Gorbik,
Greentime Hu, linux-parisc, James E.J. Bottomley, Helge Deller,
Vineet Gupta, linux-kernel, Vincent Chen, Michal Marek,
Paul Mackerras, Christian Borntraeger, Benjamin Herrenschmidt,
Michael Ellerman, linux-snps-arc, linuxppc-dev, Heiko Carstens
Commit 5318321d367c ("samples: disable CONFIG_SAMPLES for UML") used
a big hammer to fix the build errors under the samples/ directory,
while only some samples actually include uapi headers from usr/include.
Introduce CONFIG_HEADERS_INSTALL since 'depends on HEADERS_INSTALL' is
clearer than 'depends on !UML'. If this option is enabled, uapi headers
are installed before starting directory descending.
I added 'depends on HEADERS_INSTALL' to per-sample CONFIG options.
This allows UML to compile some samples.
$ make ARCH=um allmodconfig samples/
[ snip ]
CC [M] samples/configfs/configfs_sample.o
CC [M] samples/kfifo/bytestream-example.o
CC [M] samples/kfifo/dma-example.o
CC [M] samples/kfifo/inttype-example.o
CC [M] samples/kfifo/record-example.o
CC [M] samples/kobject/kobject-example.o
CC [M] samples/kobject/kset-example.o
CC [M] samples/trace_events/trace-events-sample.o
CC [M] samples/trace_printk/trace-printk.o
AR samples/vfio-mdev/built-in.a
AR samples/built-in.a
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
Makefile | 8 ++++----
arch/arc/configs/tb10x_defconfig | 1 +
arch/nds32/configs/defconfig | 1 +
arch/parisc/configs/a500_defconfig | 1 +
arch/parisc/configs/b180_defconfig | 1 +
arch/parisc/configs/c3000_defconfig | 1 +
arch/parisc/configs/default_defconfig | 1 +
arch/powerpc/configs/ppc6xx_defconfig | 1 +
arch/s390/configs/debug_defconfig | 1 +
lib/Kconfig.debug | 19 ++++++++++++++-----
samples/Kconfig | 14 +++++++++++---
samples/Makefile | 4 ++--
12 files changed, 39 insertions(+), 14 deletions(-)
diff --git a/Makefile b/Makefile
index 8348939765d3..ce5a9551860d 100644
--- a/Makefile
+++ b/Makefile
@@ -1053,9 +1053,6 @@ vmlinux: scripts/link-vmlinux.sh autoksyms_recursive $(vmlinux-deps) FORCE
targets := vmlinux
-# Some samples need headers_install.
-samples: headers_install
-
# The actual objects are generated when descending,
# make sure no implicit rule kicks in
$(sort $(vmlinux-deps)): $(vmlinux-dirs) ;
@@ -1199,6 +1196,10 @@ headers_check: headers_install
$(Q)$(MAKE) $(hdr-inst)=include/uapi dst=include HDRCHECK=1
$(Q)$(MAKE) $(hdr-inst)=arch/$(SRCARCH)/include/uapi dst=include HDRCHECK=1
+ifdef CONFIG_HEADERS_INSTALL
+prepare: headers_install
+endif
+
ifdef CONFIG_HEADERS_CHECK
all: headers_check
endif
@@ -1745,7 +1746,6 @@ build-dir = $(patsubst %/,%,$(dir $(build-target)))
PHONY += /
/: ./
-samples/: headers_install
%/: prepare FORCE
$(Q)$(MAKE) KBUILD_MODULES=1 $(build)=$(build-dir)
diff --git a/arch/arc/configs/tb10x_defconfig b/arch/arc/configs/tb10x_defconfig
index 5b5119d2b5d5..dc739bd093e3 100644
--- a/arch/arc/configs/tb10x_defconfig
+++ b/arch/arc/configs/tb10x_defconfig
@@ -94,6 +94,7 @@ CONFIG_CONFIGFS_FS=y
CONFIG_DEBUG_INFO=y
CONFIG_STRIP_ASM_SYMS=y
CONFIG_DEBUG_FS=y
+CONFIG_HEADERS_INSTALL=y
CONFIG_HEADERS_CHECK=y
CONFIG_DEBUG_SECTION_MISMATCH=y
CONFIG_MAGIC_SYSRQ=y
diff --git a/arch/nds32/configs/defconfig b/arch/nds32/configs/defconfig
index 65ce9259081b..40313a635075 100644
--- a/arch/nds32/configs/defconfig
+++ b/arch/nds32/configs/defconfig
@@ -92,6 +92,7 @@ CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_INFO_DWARF4=y
CONFIG_GDB_SCRIPTS=y
CONFIG_READABLE_ASM=y
+CONFIG_HEADERS_INSTALL=y
CONFIG_HEADERS_CHECK=y
CONFIG_DEBUG_SECTION_MISMATCH=y
CONFIG_MAGIC_SYSRQ=y
diff --git a/arch/parisc/configs/a500_defconfig b/arch/parisc/configs/a500_defconfig
index 5acb93dcaabf..390c0bc09179 100644
--- a/arch/parisc/configs/a500_defconfig
+++ b/arch/parisc/configs/a500_defconfig
@@ -167,6 +167,7 @@ CONFIG_NLS_ISO8859_1=m
CONFIG_NLS_ISO8859_15=m
CONFIG_NLS_UTF8=m
CONFIG_DEBUG_FS=y
+CONFIG_HEADERS_INSTALL=y
CONFIG_HEADERS_CHECK=y
CONFIG_MAGIC_SYSRQ=y
# CONFIG_DEBUG_BUGVERBOSE is not set
diff --git a/arch/parisc/configs/b180_defconfig b/arch/parisc/configs/b180_defconfig
index 83ffd161aec5..bdf1fe2b217f 100644
--- a/arch/parisc/configs/b180_defconfig
+++ b/arch/parisc/configs/b180_defconfig
@@ -91,6 +91,7 @@ CONFIG_NLS_ASCII=m
CONFIG_NLS_ISO8859_1=m
CONFIG_NLS_ISO8859_15=m
CONFIG_NLS_UTF8=m
+CONFIG_HEADERS_INSTALL=y
CONFIG_HEADERS_CHECK=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_KERNEL=y
diff --git a/arch/parisc/configs/c3000_defconfig b/arch/parisc/configs/c3000_defconfig
index 8d41a73bd71b..ed4d49575b38 100644
--- a/arch/parisc/configs/c3000_defconfig
+++ b/arch/parisc/configs/c3000_defconfig
@@ -140,6 +140,7 @@ CONFIG_NLS_ISO8859_1=m
CONFIG_NLS_ISO8859_15=m
CONFIG_NLS_UTF8=m
CONFIG_DEBUG_FS=y
+CONFIG_HEADERS_INSTALL=y
CONFIG_HEADERS_CHECK=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_MUTEXES=y
diff --git a/arch/parisc/configs/default_defconfig b/arch/parisc/configs/default_defconfig
index 52c9050a7c5c..fcfd9eaadf9b 100644
--- a/arch/parisc/configs/default_defconfig
+++ b/arch/parisc/configs/default_defconfig
@@ -184,6 +184,7 @@ CONFIG_NLS_KOI8_R=m
CONFIG_NLS_KOI8_U=m
CONFIG_NLS_UTF8=y
CONFIG_DEBUG_FS=y
+CONFIG_HEADERS_INSTALL=y
CONFIG_HEADERS_CHECK=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_KERNEL=y
diff --git a/arch/powerpc/configs/ppc6xx_defconfig b/arch/powerpc/configs/ppc6xx_defconfig
index 7c6baf6df139..463aa3e53084 100644
--- a/arch/powerpc/configs/ppc6xx_defconfig
+++ b/arch/powerpc/configs/ppc6xx_defconfig
@@ -1124,6 +1124,7 @@ CONFIG_NLS_KOI8_R=m
CONFIG_NLS_KOI8_U=m
CONFIG_DEBUG_INFO=y
CONFIG_UNUSED_SYMBOLS=y
+CONFIG_HEADERS_INSTALL=y
CONFIG_HEADERS_CHECK=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_KERNEL=y
diff --git a/arch/s390/configs/debug_defconfig b/arch/s390/configs/debug_defconfig
index b0920b35f87b..994e03fad424 100644
--- a/arch/s390/configs/debug_defconfig
+++ b/arch/s390/configs/debug_defconfig
@@ -586,6 +586,7 @@ CONFIG_GDB_SCRIPTS=y
CONFIG_FRAME_WARN=1024
CONFIG_READABLE_ASM=y
CONFIG_UNUSED_SYMBOLS=y
+CONFIG_HEADERS_INSTALL=y
CONFIG_HEADERS_CHECK=y
CONFIG_DEBUG_SECTION_MISMATCH=y
CONFIG_MAGIC_SYSRQ=y
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index 7cdcb962358c..6a6ea4219d1e 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -305,14 +305,23 @@ config DEBUG_FS
If unsure, say N.
+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.
+ This is unneeded for building the kernel itself, but needed for some
+ user-space program samples. It is also needed by some features such
+ as uapi header sanity checks.
+
config HEADERS_CHECK
bool "Run sanity checks on uapi headers when building 'all'"
- depends on !UML
+ depends on HEADERS_INSTALL
help
- This option will extract the user-visible kernel headers when
- building the 'all' target, and will run basic sanity checks on them to
- ensure that exported files do not attempt to include files which
- were not exported, etc.
+ This option will run basic sanity checks on uapi headers when
+ building the 'all' target, for example, ensure that they do not
+ attempt to include files which were not exported, etc.
If you're making modifications to header files which are
relevant for userspace, say 'Y', and check the headers
diff --git a/samples/Kconfig b/samples/Kconfig
index d63cc8a3e0df..71b5e833dd9e 100644
--- a/samples/Kconfig
+++ b/samples/Kconfig
@@ -1,7 +1,6 @@
# SPDX-License-Identifier: GPL-2.0-only
menuconfig SAMPLES
bool "Sample kernel code"
- depends on !UML
help
You can build and test sample kernel code here.
@@ -95,16 +94,24 @@ config SAMPLE_CONFIGFS
config SAMPLE_CONNECTOR
tristate "Build connector sample -- loadable modules only"
- depends on CONNECTOR && m
+ depends on CONNECTOR && HEADERS_INSTALL && m
help
When enabled, this builds both a sample kernel module for
the connector interface and a user space tool to communicate
with it.
See also Documentation/connector/connector.txt
+config SAMPLE_HIDRAW
+ bool "hidraw sample"
+ depends on HEADERS_INSTALL
+
+config SAMPLE_PIDFD
+ bool "pidfd sample"
+ depends on HEADERS_INSTALL
+
config SAMPLE_SECCOMP
bool "Build seccomp sample code"
- depends on SECCOMP_FILTER
+ depends on SECCOMP_FILTER && HEADERS_INSTALL
help
Build samples of seccomp filters using various methods of
BPF filter construction.
@@ -156,6 +163,7 @@ config SAMPLE_ANDROID_BINDERFS
config SAMPLE_VFS
bool "Build example programs that use new VFS system calls"
+ depends on HEADERS_INSTALL
help
Build example userspace programs that use new VFS system calls such
as mount API and statx(). Note that this is restricted to the x86
diff --git a/samples/Makefile b/samples/Makefile
index debf8925f06f..7d6e4ca28d69 100644
--- a/samples/Makefile
+++ b/samples/Makefile
@@ -4,14 +4,14 @@
obj-$(CONFIG_SAMPLE_ANDROID_BINDERFS) += binderfs/
obj-$(CONFIG_SAMPLE_CONFIGFS) += configfs/
obj-$(CONFIG_SAMPLE_CONNECTOR) += connector/
-subdir-y += hidraw
+subdir-$(CONFIG_SAMPLE_HIDRAW) += hidraw
obj-$(CONFIG_SAMPLE_HW_BREAKPOINT) += hw_breakpoint/
obj-$(CONFIG_SAMPLE_KDB) += kdb/
obj-$(CONFIG_SAMPLE_KFIFO) += kfifo/
obj-$(CONFIG_SAMPLE_KOBJECT) += kobject/
obj-$(CONFIG_SAMPLE_KPROBES) += kprobes/
obj-$(CONFIG_SAMPLE_LIVEPATCH) += livepatch/
-subdir-y += pidfd
+subdir-$(CONFIG_SAMPLE_PIDFD) += pidfd
obj-$(CONFIG_SAMPLE_QMI_CLIENT) += qmi/
obj-$(CONFIG_SAMPLE_RPMSG_CLIENT) += rpmsg/
subdir-$(CONFIG_SAMPLE_SECCOMP) += seccomp
--
2.17.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 00/15] kbuild: refactor headers_install and support compile-test of UAPI headers
2019-06-04 10:13 [PATCH 00/15] kbuild: refactor headers_install and support compile-test of UAPI headers Masahiro Yamada
2019-06-04 10:13 ` [PATCH 05/15] kbuild: add CONFIG_HEADERS_INSTALL and loosen the dependency of samples Masahiro Yamada
@ 2019-06-05 2:37 ` Masahiro Yamada
2019-06-18 15:46 ` Masahiro Yamada
2 siblings, 0 replies; 4+ messages in thread
From: Masahiro Yamada @ 2019-06-05 2:37 UTC (permalink / raw)
To: Linux Kbuild mailing list
Cc: Song Liu, open list:DOCUMENTATION, Benjamin Herrenschmidt,
Palmer Dabbelt, Heiko Carstens, Alexei Starovoitov,
David Howells, Paul Mackerras, linux-riscv, Vincent Chen,
Sam Ravnborg, linux-s390, Vasily Gorbik, Daniel Borkmann,
Jonathan Corbet, Michael Ellerman, Helge Deller,
Christian Borntraeger, Yonghong Song, arcml, Albert Ou,
Arnd Bergmann, Jani Nikula, Greentime Hu, James E.J. Bottomley,
Michal Marek, linux-parisc, Vineet Gupta, Randy Dunlap,
Linux Kernel Mailing List, Networking, bpf, linuxppc-dev,
Martin KaFai Lau
On Tue, Jun 4, 2019 at 7:15 PM Masahiro Yamada
<yamada.masahiro@socionext.com> wrote:
>
>
> Multiple people have suggested to compile-test UAPI headers.
>
> Currently, Kbuild provides simple sanity checks by headers_check
> but they are not enough to catch bugs.
>
> The most recent patch I know is David Howells' work:
> https://patchwork.kernel.org/patch/10590203/
>
> I agree that we need better tests for UAPI headers,
> but I want to integrate it in a clean way.
>
> The idea that has been in my mind is to compile each header
> to make sure the selfcontainedness.
For convenience, I pushed this series at
git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git
uapi-header-test-v1
(13/15 was replaced with v2)
If you want to test it quickly, please check-out it, then
$ make -j8 allmodconfig usr/
(As I noted in the commit log, you need to use
a compiler that provides <stdlib.h>, <sys/time.h>, etc.)
--
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 00/15] kbuild: refactor headers_install and support compile-test of UAPI headers
2019-06-04 10:13 [PATCH 00/15] kbuild: refactor headers_install and support compile-test of UAPI headers Masahiro Yamada
2019-06-04 10:13 ` [PATCH 05/15] kbuild: add CONFIG_HEADERS_INSTALL and loosen the dependency of samples Masahiro Yamada
2019-06-05 2:37 ` [PATCH 00/15] kbuild: refactor headers_install and support compile-test of UAPI headers Masahiro Yamada
@ 2019-06-18 15:46 ` Masahiro Yamada
2 siblings, 0 replies; 4+ messages in thread
From: Masahiro Yamada @ 2019-06-18 15:46 UTC (permalink / raw)
To: Linux Kbuild mailing list
Cc: Song Liu, open list:DOCUMENTATION, Benjamin Herrenschmidt,
Palmer Dabbelt, Heiko Carstens, Alexei Starovoitov,
David Howells, Paul Mackerras, linux-riscv, Vincent Chen,
Sam Ravnborg, linux-s390, Vasily Gorbik, Daniel Borkmann,
Jonathan Corbet, Michael Ellerman, Helge Deller,
Christian Borntraeger, Yonghong Song, arcml, Albert Ou,
Arnd Bergmann, Jani Nikula, Greentime Hu, James E.J. Bottomley,
Michal Marek, linux-parisc, Vineet Gupta, Randy Dunlap,
Linux Kernel Mailing List, Networking, bpf, linuxppc-dev,
Martin KaFai Lau
On Tue, Jun 4, 2019 at 7:15 PM Masahiro Yamada
<yamada.masahiro@socionext.com> wrote:
>
>
> Multiple people have suggested to compile-test UAPI headers.
>
> Currently, Kbuild provides simple sanity checks by headers_check
> but they are not enough to catch bugs.
>
> The most recent patch I know is David Howells' work:
> https://patchwork.kernel.org/patch/10590203/
>
> I agree that we need better tests for UAPI headers,
> but I want to integrate it in a clean way.
>
> The idea that has been in my mind is to compile each header
> to make sure the selfcontainedness.
>
> Recently, Jani Nikula proposed a new syntax 'header-test-y'.
> https://patchwork.kernel.org/patch/10947005/
>
> So, I implemented UAPI compile-testing on top of that.
>
> When adding a new feature, cleaning the code first is a
> good practice.
>
> [1] Remove headers_install_all
>
> This target installs UAPI headers of all architectures
> in a single tree.
> It does not make sense to compile test of headers from
> multiple arches at the same time. Hence, removed.
>
> [2] Split header installation into 'make headers' and 'make headers_install'
>
> To compile-test UAPI headers, we need a work-directory somewhere
> to save objects and .*.cmd files.
>
> usr/include/ will be the work-directory.
>
> Since we cannot pollute the final destination of headers_install,
>
> I split the header installation into two stages.
>
> 'make headers' will build up
> the ready-to-install headers in usr/include,
> which will be also used as a work-directory for the compile-test.
>
> 'make headers_install' will copy headers
> from usr/include to $(INSTALL_HDR_PATH)/include.
>
> [3] Support compile-test of UAPI headers
>
> This is implemented in usr/include/Makefile
>
>
> Jani Nikula (1):
> kbuild: add support for ensuring headers are self-contained
>
> Masahiro Yamada (14):
> kbuild: remove headers_{install,check}_all
> kbuild: remove stale dependency between Documentation/ and
> headers_install
> kbuild: make gdb_script depend on prepare0 instead of prepare
> kbuild: fix Kconfig prompt of CONFIG_HEADERS_CHECK
> kbuild: add CONFIG_HEADERS_INSTALL and loosen the dependency of
> samples
> kbuild: remove build_unifdef target in scripts/Makefile
> kbuild: build all prerequisite of headers_install simultaneously
> kbuild: add 'headers' target to build up ready-to-install uapi headers
> kbuild: re-implement Makefile.headersinst without directory descending
> kbuild: move hdr-inst shorthand to top Makefile
> kbuild: simplify scripts/headers_install.sh
> kbuild: deb-pkg: do not run headers_check
> fixup: kbuild: add support for ensuring headers are self-contained
> kbuild: compile test UAPI headers to ensure they are self-contained
Series, applied to linux-kbuild.
> Documentation/kbuild/headers_install.txt | 7 --
> Documentation/kbuild/makefiles.txt | 13 ++-
> Makefile | 56 +++++-----
> arch/arc/configs/tb10x_defconfig | 1 +
> arch/nds32/configs/defconfig | 1 +
> arch/parisc/configs/a500_defconfig | 1 +
> arch/parisc/configs/b180_defconfig | 1 +
> arch/parisc/configs/c3000_defconfig | 1 +
> arch/parisc/configs/default_defconfig | 1 +
> arch/powerpc/configs/ppc6xx_defconfig | 1 +
> arch/s390/configs/debug_defconfig | 1 +
> include/uapi/{linux => }/Kbuild | 6 +-
> init/Kconfig | 20 ++++
> lib/Kconfig.debug | 25 +++--
> samples/Kconfig | 14 ++-
> samples/Makefile | 4 +-
> scripts/Kbuild.include | 6 --
> scripts/Makefile | 5 -
> scripts/Makefile.build | 9 ++
> scripts/Makefile.headersinst | 132 ++++++++++-------------
> scripts/Makefile.lib | 3 +
> scripts/cc-system-headers.sh | 8 ++
> scripts/headers.sh | 29 -----
> scripts/headers_install.sh | 48 ++++-----
> scripts/package/builddeb | 2 +-
> usr/.gitignore | 1 -
> usr/Makefile | 2 +
> usr/include/.gitignore | 3 +
> usr/include/Makefile | 132 +++++++++++++++++++++++
> 29 files changed, 329 insertions(+), 204 deletions(-)
> rename include/uapi/{linux => }/Kbuild (77%)
> create mode 100755 scripts/cc-system-headers.sh
> delete mode 100755 scripts/headers.sh
> create mode 100644 usr/include/.gitignore
> create mode 100644 usr/include/Makefile
>
> --
> 2.17.1
>
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
--
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-06-18 15:46 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-04 10:13 [PATCH 00/15] kbuild: refactor headers_install and support compile-test of UAPI headers Masahiro Yamada
2019-06-04 10:13 ` [PATCH 05/15] kbuild: add CONFIG_HEADERS_INSTALL and loosen the dependency of samples Masahiro Yamada
2019-06-05 2:37 ` [PATCH 00/15] kbuild: refactor headers_install and support compile-test of UAPI headers Masahiro Yamada
2019-06-18 15:46 ` Masahiro Yamada
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).