Pull Kbuild updates from Masahiro Yamada:
 - add a shell script to get Clang version
 - improve portability of build scripts
 - drop always-enabled CONFIG_THIN_ARCHIVE and remove unused code
 - rename built-in.o which is now thin archive to built-in.a
 - process clean/build targets one by one to get along with -j option
 - simplify ld-option
 - improve building with CONFIG_TRIM_UNUSED_KSYMS
 - define KBUILD_MODNAME even for objects shared among multiple modules
 - avoid linking multiple instances of same objects from composite
   objects
 - move <linux/compiler_types.h> to c_flags to include it only for C
   files
 - clean-up various Makefiles
* tag 'kbuild-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (29 commits)
  kbuild: get <linux/compiler_types.h> out of <linux/kconfig.h>
  kbuild: clean up link rule of composite modules
  kbuild: clean up archive rule of built-in.a
  kbuild: remove partial section mismatch detection for built-in.a
  net: liquidio: clean up Makefile for simpler composite object handling
  lib: zstd: clean up Makefile for simpler composite object handling
  kbuild: link $(real-obj-y) instead of $(obj-y) into built-in.a
  kbuild: rename real-objs-y/m to real-obj-y/m
  kbuild: move modname and modname-multi close to modname_flags
  kbuild: simplify modname calculation
  kbuild: fix modname for composite modules
  kbuild: define KBUILD_MODNAME even if multiple modules share objects
  kbuild: remove unnecessary $(subst $(obj)/, , ...) in modname-multi
  kbuild: Use ls(1) instead of stat(1) to obtain file size
  kbuild: link vmlinux only once for CONFIG_TRIM_UNUSED_KSYMS
  kbuild: move include/config/ksym/* to include/ksym/*
  kbuild: move CONFIG_TRIM_UNUSED_KSYMS code unneeded for external module
  kbuild: restore autoksyms.h touch to the top Makefile
  kbuild: move 'scripts' target below
  kbuild: remove wrong 'touch' in adjust_autoksyms.sh
  ...
  data_end=$(($_edata_loc - $base_offset))
  
  # Make sure data occupies the last part of the file.
- file_end=$(stat -c "%s" "$XIPIMAGE")
+ file_end=$(${CONFIG_SHELL} "${srctree}/scripts/file-size.sh" "$XIPIMAGE")
  if [ "$file_end" != "$data_end" ]; then
        printf "end of xipImage doesn't match with _edata_loc (%#x vs %#x)\n" \
 -             $(($file_end + $base_offset)) $_edata_loc 2>&1
 +             $(($file_end + $base_offset)) $_edata_loc 1>&2
        exit 1;
  fi
  
 
  sed -n 's/^#define __KSYM_\(.*\) 1/\1/p' | tr "A-Z_" "a-z/" |
  while read sympath; do
        if [ -z "$sympath" ]; then continue; fi
-       depfile="include/config/ksym/${sympath}.h"
+       depfile="include/ksym/${sympath}.h"
        mkdir -p "$(dirname "$depfile")"
        touch "$depfile"
 +      # Filesystems with coarse time precision may create timestamps
 +      # equal to the one from a file that was very recently built and that
 +      # needs to be rebuild. Let's guard against that by making sure our
 +      # dep files are always newer than the first file we created here.
 +      while [ ! "$depfile" -nt "$new_ksyms_file" ]; do
 +              touch "$depfile"
 +      done
        echo $((count += 1))
  done | tail -1 )
  changed=${changed:-0}