Message ID | 1490617217-30192-12-git-send-email-nicolas.dichtel@6wind.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, Mar 27, 2017 at 5:20 AM, Nicolas Dichtel <nicolas.dichtel@6wind.com> wrote: > This patch removes the need of subdir-y. Now all files/directories under > arch/<arch>/include/uapi/ are exported. > > The only change for userland is the layout of the command 'make > headers_install_all': directories asm-<arch> are replaced by arch-<arch>/. > Those new directories contains all files/directories of the specified arch. > > Note that only cris and tile have more directories than only asm: > - arch-v[10|32] for cris; > - arch for tile. > > Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> Starting with commit 61562f981e92 "uapi: export all arch specifics directories", a "make INSTALL_HDR_PATH=$root/usr headers_install" operation will delete standard glibc headers and others in $root/usr/include. Here's the snippet from the build process where it deletes system headers with this commit: CHK include/generated/uapi/linux/version.h INSTALL include/linux/nfsd (5 files) INSTALL include/linux (482 files) REMOVE libgen.h resolv.h paths.h syscall.h spawn.h unistd.h ar.h setjmp.h termio.h wchar.h semaphore.h fcntl.h fpu_control.h glob.h termios.h nss.h fmtmsg.h shadow.h crypt.h aio.h grp.h uchar.h libudev.h argz.h utime.h complex.h obstack.h argp.h math.h sched.h xlocale.h netdb.h link.h mqueue.h ulimit.h regex.h fstab.h sgtty.h iconv.h dirent.h inttypes.h pty.h locale.h utmp.h pthread.h gconv.h lastlog.h assert.h endian.h stdio_ext.h signal.h search.h ctype.h execinfo.h values.h re_comp.h libio.h ustat.h printf.h getopt.h time.h stab.h stdlib.h gshadow.h mntent.h stdc-predef.h libkmod.h memory.h nl_types.h mcheck.h errno.h poll.h fnmatch.h limits.h ucontext.h libintl.h envz.h stdio.h wait.h monetary.h _G_config.h dlfcn.h wordexp.h string.h pwd.h tar.h proc_service.h tgmath.h byteswap.h elf.h cpio.h aliases.h wctype.h ftw.h ieee754.h err.h langinfo.h fts.h features.h gnu-versions.h malloc.h regexp.h stdint.h ifaddrs.h syslog.h error.h a.out.h utmpx.h sysexits.h fenv.h ttyent.h alloca.h thread_db.h strings.h -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Mon, May 15, 2017 at 6:02 PM, Dan Williams <dan.j.williams@intel.com> wrote: > On Mon, Mar 27, 2017 at 5:20 AM, Nicolas Dichtel > <nicolas.dichtel@6wind.com> wrote: >> This patch removes the need of subdir-y. Now all files/directories under >> arch/<arch>/include/uapi/ are exported. >> >> The only change for userland is the layout of the command 'make >> headers_install_all': directories asm-<arch> are replaced by arch-<arch>/. >> Those new directories contains all files/directories of the specified arch. >> >> Note that only cris and tile have more directories than only asm: >> - arch-v[10|32] for cris; >> - arch for tile. >> >> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> > > Starting with commit 61562f981e92 "uapi: export all arch specifics > directories", a "make INSTALL_HDR_PATH=$root/usr headers_install" > operation will delete standard glibc headers and others in > $root/usr/include. Reverting commit 61562f981e92 fixes the problem for me. -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Dan, 2017-05-16 10:15 GMT+09:00 Dan Williams <dan.j.williams@intel.com>: > On Mon, May 15, 2017 at 6:02 PM, Dan Williams <dan.j.williams@intel.com> wrote: >> On Mon, Mar 27, 2017 at 5:20 AM, Nicolas Dichtel >> <nicolas.dichtel@6wind.com> wrote: >>> This patch removes the need of subdir-y. Now all files/directories under >>> arch/<arch>/include/uapi/ are exported. >>> >>> The only change for userland is the layout of the command 'make >>> headers_install_all': directories asm-<arch> are replaced by arch-<arch>/. >>> Those new directories contains all files/directories of the specified arch. >>> >>> Note that only cris and tile have more directories than only asm: >>> - arch-v[10|32] for cris; >>> - arch for tile. >>> >>> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> >> >> Starting with commit 61562f981e92 "uapi: export all arch specifics >> directories", a "make INSTALL_HDR_PATH=$root/usr headers_install" >> operation will delete standard glibc headers and others in >> $root/usr/include. > > Reverting commit 61562f981e92 fixes the problem for me. Thank you for your bug report. Could you check this? https://patchwork.kernel.org/patch/9728323/
diff --git a/Documentation/kbuild/makefiles.txt b/Documentation/kbuild/makefiles.txt index b9f7ca4e62ae..e18daca65ccd 100644 --- a/Documentation/kbuild/makefiles.txt +++ b/Documentation/kbuild/makefiles.txt @@ -49,7 +49,6 @@ This document describes the Linux kernel Makefiles. --- 7.3 generic-y --- 7.4 generated-y --- 7.5 mandatory-y - --- 7.6 subdir-y === 8 Kbuild Variables === 9 Makefile language @@ -1265,7 +1264,7 @@ The pre-processing does: - drop all sections that are kernel internal (guarded by ifdef __KERNEL__) All headers under include/uapi/, include/generated/uapi/, -arch/<arch>/include/uapi/asm/ and arch/<arch>/include/generated/uapi/asm/ +arch/<arch>/include/uapi/ and arch/<arch>/include/generated/uapi/ are exported. A Kbuild file may be defined under arch/<arch>/include/uapi/asm/ and @@ -1338,18 +1337,6 @@ See subsequent chapter for the syntax of the Kbuild file. The convention is to list one subdir per line and preferably in alphabetic order. - --- 7.6 subdir-y - - subdir-y may be used to specify a subdirectory to be exported. - - Example: - #arch/cris/include/uapi/asm/Kbuild - subdir-y += ../arch-v10/arch/ - subdir-y += ../arch-v32/arch/ - - The convention is to list one subdir per line and - preferably in alphabetic order. - === 8 Kbuild Variables The top Makefile exports the following variables: diff --git a/Makefile b/Makefile index 6ea27d9f1384..50547481ed5a 100644 --- a/Makefile +++ b/Makefile @@ -1131,7 +1131,7 @@ firmware_install: export INSTALL_HDR_PATH = $(objtree)/usr # If we do an all arch process set dst to asm-$(hdr-arch) -hdr-dst = $(if $(KBUILD_HEADERS), dst=include/asm-$(hdr-arch), dst=include/asm) +hdr-dst = $(if $(KBUILD_HEADERS), dst=include/arch-$(hdr-arch), dst=include) PHONY += archheaders archheaders: @@ -1152,7 +1152,7 @@ headers_install: __headers $(if $(wildcard $(srctree)/arch/$(hdr-arch)/include/uapi/asm/Kbuild),, \ $(error Headers not exportable for the $(SRCARCH) architecture)) $(Q)$(MAKE) $(hdr-inst)=include/uapi - $(Q)$(MAKE) $(hdr-inst)=arch/$(hdr-arch)/include/uapi/asm $(hdr-dst) + $(Q)$(MAKE) $(hdr-inst)=arch/$(hdr-arch)/include/uapi $(hdr-dst) PHONY += headers_check_all headers_check_all: headers_install_all @@ -1161,7 +1161,7 @@ headers_check_all: headers_install_all PHONY += headers_check headers_check: headers_install $(Q)$(MAKE) $(hdr-inst)=include/uapi HDRCHECK=1 - $(Q)$(MAKE) $(hdr-inst)=arch/$(hdr-arch)/include/uapi/asm $(hdr-dst) HDRCHECK=1 + $(Q)$(MAKE) $(hdr-inst)=arch/$(hdr-arch)/include/uapi/ $(hdr-dst) HDRCHECK=1 # --------------------------------------------------------------------------- # Kernel selftest diff --git a/arch/cris/include/uapi/asm/Kbuild b/arch/cris/include/uapi/asm/Kbuild index d0c5471856e0..b15bf6bc0e94 100644 --- a/arch/cris/include/uapi/asm/Kbuild +++ b/arch/cris/include/uapi/asm/Kbuild @@ -1,5 +1,2 @@ # UAPI Header export list include include/uapi/asm-generic/Kbuild.asm - -subdir-y += ../arch-v10/arch/ -subdir-y += ../arch-v32/arch/ diff --git a/arch/tile/include/uapi/asm/Kbuild b/arch/tile/include/uapi/asm/Kbuild index e0a50111e07f..0c74c3c5ebfa 100644 --- a/arch/tile/include/uapi/asm/Kbuild +++ b/arch/tile/include/uapi/asm/Kbuild @@ -2,5 +2,3 @@ include include/uapi/asm-generic/Kbuild.asm generic-y += ucontext.h - -subdir-y += ../arch diff --git a/scripts/Makefile.headersinst b/scripts/Makefile.headersinst index 20be1fbc19cc..6ba97a1f9c5a 100644 --- a/scripts/Makefile.headersinst +++ b/scripts/Makefile.headersinst @@ -2,7 +2,7 @@ # Installing headers # # All headers under include/uapi, include/generated/uapi, -# arch/<arch>/include/uapi/asm and arch/<arch>/include/generated/uapi/asm are +# arch/<arch>/include/uapi and arch/<arch>/include/generated/uapi are # exported. # They are preprocessed to remove __KERNEL__ section of the file. # @@ -30,7 +30,6 @@ installdir := $(INSTALL_HDR_PATH)/$(subst uapi/,,$(_dst)) srcdir := $(srctree)/$(obj) gendir := $(objtree)/$(gen) subdirs := $(patsubst $(srcdir)/%/.,%,$(wildcard $(srcdir)/*/.)) -subdirs += $(subdir-y) header-files := $(notdir $(wildcard $(srcdir)/*.h)) header-files += $(notdir $(wildcard $(srcdir)/*.agh)) header-files := $(filter-out $(no-export-headers), $(header-files))
This patch removes the need of subdir-y. Now all files/directories under arch/<arch>/include/uapi/ are exported. The only change for userland is the layout of the command 'make headers_install_all': directories asm-<arch> are replaced by arch-<arch>/. Those new directories contains all files/directories of the specified arch. Note that only cris and tile have more directories than only asm: - arch-v[10|32] for cris; - arch for tile. Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> --- Documentation/kbuild/makefiles.txt | 15 +-------------- Makefile | 6 +++--- arch/cris/include/uapi/asm/Kbuild | 3 --- arch/tile/include/uapi/asm/Kbuild | 2 -- scripts/Makefile.headersinst | 3 +-- 5 files changed, 5 insertions(+), 24 deletions(-)