Merge tag 'kbuild-uapi-v4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/masahi...
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 11 May 2017 03:45:36 +0000 (20:45 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 11 May 2017 03:45:36 +0000 (20:45 -0700)
Pull Kbuild UAPI updates from Masahiro Yamada:
 "Improvement of headers_install by Nicolas Dichtel.

  It has been long since the introduction of uapi directories, but the
  de-coupling of exported headers has not been completed. Headers listed
  in header-y are exported whether they exist in uapi directories or
  not. His work fixes this inconsistency.

  All (and only) headers under uapi directories are now exported. The
  asm-generic wrappers are still exceptions, but this is a big step
  forward"

* tag 'kbuild-uapi-v4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
  arch/include: remove empty Kbuild files
  uapi: export all arch specifics directories
  uapi: export all headers under uapi directories
  smc_diag.h: fix include from userland
  btrfs_tree.h: fix include from userland
  uapi: includes linux/types.h before exporting files
  Makefile.headersinst: remove destination-y option
  Makefile.headersinst: cleanup input files
  x86: stop exporting msr-index.h to userland
  nios2: put setup.h in uapi
  h8300: put bitsperlong.h in uapi

1  2 
Makefile

diff --combined Makefile
+++ b/Makefile
@@@ -632,9 -632,13 +632,9 @@@ include arch/$(SRCARCH)/Makefil
  KBUILD_CFLAGS += $(call cc-option,-fno-delete-null-pointer-checks,)
  KBUILD_CFLAGS += $(call cc-disable-warning,frame-address,)
  
 -ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION
 -KBUILD_CFLAGS += $(call cc-option,-ffunction-sections,)
 -KBUILD_CFLAGS += $(call cc-option,-fdata-sections,)
 -endif
 -
  ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
 -KBUILD_CFLAGS += -Os $(call cc-disable-warning,maybe-uninitialized,)
 +KBUILD_CFLAGS += $(call cc-option,-Oz,-Os)
 +KBUILD_CFLAGS += $(call cc-disable-warning,maybe-uninitialized,)
  else
  ifdef CONFIG_PROFILE_ALL_BRANCHES
  KBUILD_CFLAGS += -O2 $(call cc-disable-warning,maybe-uninitialized,)
@@@ -694,16 -698,8 +694,16 @@@ endi
  KBUILD_CFLAGS += $(stackp-flag)
  
  ifeq ($(cc-name),clang)
 +ifneq ($(CROSS_COMPILE),)
 +CLANG_TARGET  := -target $(notdir $(CROSS_COMPILE:%-=%))
 +GCC_TOOLCHAIN := $(realpath $(dir $(shell which $(LD)))/..)
 +endif
 +ifneq ($(GCC_TOOLCHAIN),)
 +CLANG_GCC_TC  := -gcc-toolchain $(GCC_TOOLCHAIN)
 +endif
 +KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC)
 +KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC)
  KBUILD_CPPFLAGS += $(call cc-option,-Qunused-arguments,)
 -KBUILD_CPPFLAGS += $(call cc-option,-Wno-unknown-warning-option,)
  KBUILD_CFLAGS += $(call cc-disable-warning, unused-variable)
  KBUILD_CFLAGS += $(call cc-disable-warning, format-invalid-specifier)
  KBUILD_CFLAGS += $(call cc-disable-warning, gnu)
@@@ -714,12 -710,10 +714,12 @@@ KBUILD_CFLAGS += $(call cc-disable-warn
  # See modpost pattern 2
  KBUILD_CFLAGS += $(call cc-option, -mno-global-merge,)
  KBUILD_CFLAGS += $(call cc-option, -fcatch-undefined-behavior)
 +KBUILD_CFLAGS += $(call cc-option, -no-integrated-as)
 +KBUILD_AFLAGS += $(call cc-option, -no-integrated-as)
  else
  
  # These warnings generated too much noise in a regular build.
 -# Use make W=1 to enable them (see scripts/Makefile.build)
 +# Use make W=1 to enable them (see scripts/Makefile.extrawarn)
  KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
  KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable)
  endif
@@@ -779,11 -773,6 +779,11 @@@ ifdef CONFIG_DEBUG_SECTION_MISMATC
  KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions-called-once)
  endif
  
 +ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION
 +KBUILD_CFLAGS += $(call cc-option,-ffunction-sections,)
 +KBUILD_CFLAGS += $(call cc-option,-fdata-sections,)
 +endif
 +
  # arch Makefile may override CC so keep this after arch Makefile is included
  NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
  CHECKFLAGS     += $(NOSTDINC_FLAGS)
@@@ -812,9 -801,6 +812,9 @@@ KBUILD_CFLAGS   += $(call cc-option,-We
  # enforce correct pointer usage
  KBUILD_CFLAGS   += $(call cc-option,-Werror=incompatible-pointer-types)
  
 +# Require designated initializers for all marked structures
 +KBUILD_CFLAGS   += $(call cc-option,-Werror=designated-init)
 +
  # use the deterministic mode of AR if available
  KBUILD_ARFLAGS := $(call ar-option,D)
  
@@@ -829,7 -815,7 +829,7 @@@ KBUILD_AFLAGS   += $(ARCH_AFLAGS)   $(K
  KBUILD_CFLAGS   += $(ARCH_CFLAGS)   $(KCFLAGS)
  
  # Use --build-id when available.
 -LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,\
 +LDFLAGS_BUILD_ID := $(patsubst -Wl$(comma)%,%,\
                              $(call cc-ldoption, -Wl$(comma)--build-id,))
  KBUILD_LDFLAGS_MODULE += $(LDFLAGS_BUILD_ID)
  LDFLAGS_vmlinux += $(LDFLAGS_BUILD_ID)
@@@ -1142,7 -1128,7 +1142,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:
@@@ -1163,7 -1149,7 +1163,7 @@@ headers_install: __header
        $(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
  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
@@@ -1329,8 -1315,8 +1329,8 @@@ PHONY += distclea
  distclean: mrproper
        @find $(srctree) $(RCS_FIND_IGNORE) \
                \( -name '*.orig' -o -name '*.rej' -o -name '*~' \
 -              -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
 -              -o -name '.*.rej' -o -name '*%'  -o -name 'core' \) \
 +              -o -name '*.bak' -o -name '#*#' -o -name '*%' \
 +              -o -name 'core' \) \
                -type f -print | xargs rm -f
  
  
@@@ -1375,8 -1361,6 +1375,8 @@@ help
        @echo  '                    (default: $$(INSTALL_MOD_PATH)/lib/firmware)'
        @echo  '  dir/            - Build all files in dir and below'
        @echo  '  dir/file.[ois]  - Build specified target only'
 +      @echo  '  dir/file.ll     - Build the LLVM assembly file'
 +      @echo  '                    (requires compiler support for LLVM assembly generation)'
        @echo  '  dir/file.lst    - Build specified mixed source/assembly target only'
        @echo  '                    (requires a recent binutils and recent build (System.map))'
        @echo  '  dir/file.ko     - Build module including final link'
@@@ -1565,7 -1549,6 +1565,7 @@@ clean: $(clean-dirs
                -o -name '*.symtypes' -o -name 'modules.order' \
                -o -name modules.builtin -o -name '.tmp_*.o.*' \
                -o -name '*.c.[012]*.*' \
 +              -o -name '*.ll' \
                -o -name '*.gcno' \) -type f -print | xargs rm -f
  
  # Generate tags for editors
@@@ -1669,8 -1652,6 +1669,8 @@@ endi
        $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
  %.symtypes: %.c prepare scripts FORCE
        $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
 +%.ll: %.c prepare scripts FORCE
 +      $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
  
  # Modules
  /: prepare scripts FORCE