Hi Linus, Please pull Kbuild updates for v5.8-rc1 Some commit dates are very new because I fixed up some typos in a comment line and commit description. That is why some commit hashes are missing in linux-next. Other than the typos, they were tested in linux-next. The following changes since commit 2ef96a5bb12be62ef75b5828c0aab838ebb29cb8: Linux 5.7-rc5 (2020-05-10 15:16:58 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git tags/kbuild-v5.8 for you to fetch changes up to 8dfb61dcbaceb19a5ded5e9c9dcf8d05acc32294: kbuild: add variables for compression tools (2020-06-06 23:42:01 +0900) ---------------------------------------------------------------- Kbuild updates for v5.8 - fix warnings in 'make clean' for ARCH=um, hexagon, h8300, unicore32 - ensure to rebuild all objects when the compiler is upgraded - exclude system headers from dependency tracking and fixdep processing - fix potential bit-size mismatch between the kernel and BPF user-mode helper - add the new syntax 'userprogs' to build user-space programs for the target architecture (the same arch as the kernel) - compile user-space sample code under samples/ for the target arch instead of the host arch - make headers_install fail if a CONFIG option is leaked to user-space - sanitize the output format of scripts/checkstack.pl - handle ARM 'push' instruction in scripts/checkstack.pl - error out before modpost if a module name conflict is found - error out when multiple directories are passed to M= because this feature is broken for a long time - add CONFIG_DEBUG_INFO_COMPRESSED to support compressed debug info - a lot of cleanups of modpost - dump vmlinux symbols out into vmlinux.symvers, and reuse it in the second pass of modpost - do not run the second pass of modpost if nothing in modules is updated - install modules.builtin(.modinfo) by 'make install' as well as by 'make modules_install' because it is useful even when CONFIG_MODULES=n - add new command line variables, GZIP, BZIP2, LZOP, LZMA, LZ4, and XZ to allow users to use alternatives such as pigz, pbzip2, etc. ---------------------------------------------------------------- Denis Efremov (1): kbuild: add variables for compression tools Gustavo A. R. Silva (1): modpost,fixdep: Replace zero-length array with flexible-array Jonas Zeiger (1): Makefile: install modules.builtin even if CONFIG_MODULES=n Maninder Singh (4): scripts/checkstack.pl: don't display $dre as different entity scripts/checkstack.pl: Add argument to print stacks greather than value. scripts/checkstack.pl: add arm push handling for stack usage scripts/checkstack.pl: fix arm sp regex Masahiro Yamada (84): um: do not evaluate compiler's library path when cleaning hexagon: suppress error message for 'make clean' h8300: suppress error messages for 'make clean' unicore32: do not evaluate compiler's library path when cleaning kbuild: use $(CC_VERSION_TEXT) to evaluate CC_IS_GCC and CC_IS_CLANG kbuild: ensure full rebuild when the compiler is updated kbuild: use -MMD instead of -MD to exclude system headers from dependency kbuild: use CONFIG_CC_VERSION_TEXT to construct LINUX_COMPILER macro Revert "objtool: Skip samples subdirectory" kbuild: remove '/' target kbuild: remove unused AS assignment kbuild: determine the output format of DTC by the target suffix kbuild: warn if always, hostprogs-y, or hostprogs-m is used bpfilter: match bit size of bpfilter_umh to that of the kernel bpfilter: check if $(CC) can link static libc in Kconfig kbuild: add infrastructure to build userspace programs bpfilter: use 'userprogs' syntax to build bpfilter_umh samples: seccomp: build sample programs for target architecture kbuild: doc: document the new syntax 'userprogs' samples: uhid: build sample program for target architecture samples: hidraw: build sample program for target architecture samples: connector: build sample program for target architecture samples: vfs: build sample programs for target architecture samples: pidfd: build sample program for target architecture samples: mei: build sample program for target architecture samples: auxdisplay: use 'userprogs' syntax samples: timers: use 'userprogs' syntax samples: watchdog: use 'userprogs' syntax kbuild: invoke syncconfig if autoconf.h is missing kbuild: remove misleading stale FIXME comment kbuild: remove {CLEAN,MRPROPER,DISTCLEAN}_DIRS gcc-plugins: remove always-false $(if ...) in Makefile kbuild: add this-makefile as a shorthand for $(lastword $(MAKEFILE_LIST)) kbuild: error out if targets prefixed with '__' are directly run kbuild: make module name conflict fatal error kbuild: doc: remove documentation about copying Module.symvers around kbuild: remove ifdef builtin-target / lib-target kbuild: clear KBUILD_MODULES in top Makefile if CONFIG_MODULES=n kbuild: move subdir-obj-y to scripts/Makefile.build kbuild: rename subdir-obj-y to subdir-builtin kbuild: make modules.order rule consistent with built-in.a kbuild: disallow multi-word in M= or KBUILD_EXTMOD modpost: fix potential segmentation fault for addend_i386_rel() modpost: refactor sech_name() kbuild: force to build vmlinux if CONFIG_MODVERSION=y kbuild: merge two 'ifdef CONFIG_TRIM_UNUSED_KSYMS' blocks kbuild: refactor subdir-ym calculation kbuild: refactor tagets caluculation for KBUILD_{BUILTIN,KBUILD_MODULES} kbuild: merge init-y into core-y kbuild: merge net-y and virt-y into drivers-y kbuild: refactor KBUILD_VMLINUX_{OBJS,LIBS} calculation kbuild: update modules.order only when contained modules are updated modpost: fix -i (--ignore-errors) MAKEFLAGS detection modpost: move -T option close to the modpost command modpost: pass -N option only for modules modpost modpost: load KBUILD_EXTRA_SYMBOLS files in order modpost: track if the symbol origin is a dump file or ELF object modpost: allow to pass -i option multiple times to remove -e option modpost: rename ext_sym_list to dump_list modpost: re-add -e to set external_module flag modpost: print symbol dump file as the build target in short log modpost: refactor -i option calculation modpost: generate vmlinux.symvers and reuse it for the second modpost modpost: invoke modpost only when input files are updated modpost: show warning if vmlinux is not found when processing modules modpost: show warning if any of symbol dump files is missing modpost: drop RCS/CVS $Revision handling in MODULE_VERSION() modpost: do not call get_modinfo() for vmlinux(.o) modpost: add read_text_file() and get_line() helpers modpost: fix potential mmap'ed file overrun in get_src_version() modpost: avoid false-positive file open error modpost: use read_text_file() and get_line() for reading text files modpost: remove get_next_text() and make {grab,release_}file static modpost: remove -s option modpost: move -d option in scripts/Makefile.modpost modpost: remove mod->is_dot_o struct member modpost: remove is_vmlinux() call in check_for_{gpl_usage,unused}() modpost: add mod->is_vmlinux struct member modpost: remove mod->skip struct member modpost: set have_vmlinux in new_module() modpost: strip .o from modname before calling new_module() modpost: remove is_vmlinux() helper modpost: change elf_info->size to size_t kbuild: doc: rename LDFLAGS to KBUILD_LDFLAGS Nick Desaulniers (1): Makefile: support compressed debug info Sam Ravnborg (1): samples: uhid: fix warnings in uhid-example Siddharth Gupta (1): scripts: headers_install: Exit with error on config leak Valdis Kletnieks (1): bpfilter: document build requirements for bpfilter_umh ashimida (1): mksysmap: Fix the mismatch of '.L' symbols in System.map .gitignore | 1 + Documentation/dontdiff | 1 + Documentation/kbuild/makefiles.rst | 187 +++++++++++---- Documentation/kbuild/modules.rst | 12 - Kconfig | 2 - Makefile | 217 ++++++++++------- arch/arm/Makefile | 2 - arch/arm/boot/deflate_xip_data.sh | 2 +- arch/arm64/Makefile | 2 - arch/h8300/boot/compressed/Makefile | 2 +- arch/hexagon/Makefile | 2 +- arch/ia64/Makefile | 2 +- arch/m68k/Makefile | 8 +- arch/parisc/Makefile | 2 +- arch/um/Makefile | 2 +- arch/um/drivers/Makefile | 4 +- arch/unicore32/lib/Makefile | 4 +- include/linux/kconfig.h | 2 + init/Kconfig | 30 ++- init/Makefile | 2 +- kernel/gen_kheaders.sh | 2 +- lib/Kconfig.debug | 17 ++ net/bpfilter/Kconfig | 6 +- net/bpfilter/Makefile | 11 +- samples/Kconfig | 26 +- samples/Makefile | 5 +- samples/auxdisplay/Makefile | 11 +- samples/connector/Makefile | 12 +- samples/hidraw/Makefile | 9 +- samples/mei/Makefile | 9 +- samples/pidfd/Makefile | 8 +- samples/seccomp/Makefile | 42 +--- samples/timers/Makefile | 17 +- samples/uhid/.gitignore | 2 + samples/uhid/Makefile | 9 +- samples/uhid/uhid-example.c | 4 +- samples/vfs/Makefile | 11 +- samples/watchdog/Makefile | 10 +- scripts/Kbuild.include | 2 +- scripts/Makefile.build | 67 +++--- scripts/Makefile.clean | 2 +- scripts/Makefile.host | 4 +- scripts/Makefile.lib | 79 +++--- scripts/Makefile.modpost | 75 ++++-- scripts/Makefile.package | 8 +- scripts/Makefile.userprogs | 45 ++++ scripts/basic/fixdep.c | 2 +- scripts/checkstack.pl | 87 ++++--- scripts/gcc-plugins/Makefile | 2 +- scripts/headers_install.sh | 11 +- scripts/link-vmlinux.sh | 2 - scripts/mkcompile_h | 3 +- scripts/mksysmap | 2 +- scripts/mod/modpost.c | 386 ++++++++++++++---------------- scripts/mod/modpost.h | 19 +- scripts/mod/sumversion.c | 117 ++------- scripts/modules-check.sh | 16 +- scripts/package/buildtar | 6 +- scripts/xz_wrap.sh | 2 +- usr/include/Makefile | 6 +- 60 files changed, 883 insertions(+), 757 deletions(-) create mode 100644 samples/uhid/.gitignore create mode 100644 scripts/Makefile.userprogs -- Best Regards Masahiro Yamada