mbox series

[GIT,PULL] Kbuild updates for v5.4-rc1

Message ID CAK7LNARsoed86dY75b_HNXXkCXRAKdMUGaEWUUca4BuGaZCwcg@mail.gmail.com (mailing list archive)
State New, archived
Headers show
Series [GIT,PULL] Kbuild updates for v5.4-rc1 | expand

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git

Message

Masahiro Yamada Sept. 15, 2019, 1:27 p.m. UTC
Hi Linus,

This is a Kbuild pull request for v5.4-rc1.
I am sending this a bit earlier.
Please pull it in when you open the merge window.

Thanks.


The following changes since commit d45331b00ddb179e291766617259261c112db872:

  Linux 5.3-rc4 (2019-08-11 13:26:41 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git
tags/kbuild-v5.4

for you to fetch changes up to 77564a4829ef6d309331d443ea6ceb065f3dc371:

  genksyms: convert to SPDX License Identifier for lex.l and parse.y
(2019-09-14 11:40:13 +0900)

----------------------------------------------------------------
Kbuild updates for v5.4

 - add modpost warn exported symbols marked as 'static' because 'static'
   and EXPORT_SYMBOL is an odd combination

 - break the build early if gold linker is used

 - optimize the Bison rule to produce .c and .h files by a single
   pattern rule

 - handle PREEMPT_RT in the module vermagic and UTS_VERSION

 - warn CONFIG options leaked to the user-space except existing ones

 - make single targets work properly

 - rebuild modules when module linker scripts are updated

 - split the module final link stage into scripts/Makefile.modfinal

 - fix the missed error code in merge_config.sh

 - improve the error message displayed on the attempt of the O= build
   in unclean source tree

 - remove 'clean-dirs' syntax

 - disable -Wimplicit-fallthrough warning for Clang

 - add CONFIG_CC_OPTIMIZE_FOR_SIZE_O3 for ARC

 - remove ARCH_{CPP,A,C}FLAGS variables

 - add $(BASH) to run bash scripts

 - change *CFLAGS_<basetarget>.o to take the relative path to $(obj)
   instead of the basename

 - stop suppressing Clang's -Wunused-function warnings when W=1

 - fix linux/export.h to avoid genksyms calculating CRC of trimmed
   exported symbols

 - misc cleanups

----------------------------------------------------------------
Denis Efremov (2):
      modpost: check for static EXPORT_SYMBOL* functions
      modpost: add NOFAIL to strndup

Guillaume Tucker (1):
      merge_config.sh: ignore unwanted grep errors

Heikki Krogerus (1):
      modpost: add guid_t type definition

Kees Cook (1):
      kbuild: Parameterize kallsyms generation and correct reporting

Mark Brown (1):
      merge_config.sh: Check error codes from make

Masahiro Yamada (54):
      kbuild: use $(basename ...) for cmd_asn1_compiler
      kbuild: make bison create C file and header in a single pattern rule
      kbuild: move flex and bison rules to Makefile.host
      kbuild: add [M] marker for build log of *.mod.o
      kbuild: treat an object as multi-used when $(foo-) is set
      kbuild: move the Module.symvers check for external module build
      kbuild: refactor part-of-module more
      kbuild: fix modkern_aflags implementation
      kbuild: remove 'make /' support
      kbuild: remove meaningless 'targets' in ./Kbuild
      kbuild: do not descend to ./Kbuild when cleaning
      kbuild: unset variables in top Makefile instead of setting 0
      kbuild: unify vmlinux-dirs and module-dirs rules
      kbuild: unify clean-dirs rule for in-kernel and external module
      kbuild: re-implement detection of CONFIG options leaked to user-space
      kbuild: make single targets work more correctly
      treewide: remove dummy Makefiles for single targets
      kbuild: move KBUILD_LDS, KBUILD_VMLINUX_{OBJS,LIBS} to makefiles.rst
      kbuild: rebuild modules when module linker scripts are updated
      kbuild: split final module linking out into Makefile.modfinal
      .gitignore: ignore modules.order explicitly
      kbuild: add CONFIG_ASM_MODVERSIONS
      kbuild: move modkern_{c,a}flags to Makefile.lib from Makefile.build
      kbuild: pkg: clean up package files/dirs from the top Makefile
      kbuild: pkg: add package targets to PHONY instead of FORCE
      kbuild: pkg: rename scripts/package/Makefile to scripts/Makefile.package
      kbuild: remove unneeded '+' marker from kselftest-merge
      docs: kbuild: fix invalid ReST syntax
      docs: kbuild: remove cc-ldoption from document again
      init/Kconfig: rework help of CONFIG_CC_OPTIMIZE_FOR_SIZE
      kbuild: remove unneeded comments and code from scripts/basic/Makefile
      kbuild: remove unneeded dependency for $(DOC_TARGETS)
      kbuild: get rid of $(realpath ...) from scripts/mkmakefile
      kbuild: remove 'Using ... as source for kernel' message
      kbuild: Inform user to pass ARCH= for make mrproper only when necessary
      kbuild: clarify where to run make mrproper when out-of-tree fails
      kbuild: move the clean srctree check to the outputmakefile target
      kbuild: remove prepare3 target
      kbuild: check clean srctree even earlier
      kbuild: remove clean-dirs syntax
      kbuild: remove unneeded '+' marker from cmd_clean
      kbuild: clean up subdir-ymn calculation in Makefile.clean
      kbuild,arc: add CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 for ARC
      kbuild: remove ARCH_{CPP,A,C}FLAGS
      kbuild: add $(BASH) to run scripts with bash-extension
      kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)
      kbuild: refactor scripts/Makefile.extrawarn
      kbuild: rename KBUILD_ENABLE_EXTRA_GCC_CHECKS to KBUILD_EXTRA_WARN
      kbuild: allow Clang to find unused static inline functions for W=1 build
      export.h: remove defined(__KERNEL__), which is no longer needed
      export.h, genksyms: do not make genksyms calculate CRC of trimmed symbols
      modpost: use MODULE_INFO() for __module_depends
      modpost: use __section in the output to *.mod.c
      genksyms: convert to SPDX License Identifier for lex.l and parse.y

Nathan Chancellor (1):
      kbuild: Do not enable -Wimplicit-fallthrough for clang for now

Thomas Gleixner (2):
      kbuild: Fail if gold linker is detected
      Kbuild: Handle PREEMPT_RT for version string and magic

 .gitignore                                                  |   2 +-
 Documentation/kbuild/kbuild.rst                             |  28 +--
 Documentation/kbuild/makefiles.rst                          |  67 +++---
 Kbuild                                                      |   7 -
 Makefile                                                    | 296
+++++++++++++-------------
 arch/Kconfig                                                |   7 +
 arch/alpha/Kconfig                                          |   1 +
 arch/arc/Makefile                                           |   8 -
 arch/arc/configs/axs101_defconfig                           |   1 +
 arch/arc/configs/axs103_defconfig                           |   1 +
 arch/arc/configs/axs103_smp_defconfig                       |   1 +
 arch/arc/configs/haps_hs_defconfig                          |   1 +
 arch/arc/configs/haps_hs_smp_defconfig                      |   1 +
 arch/arc/configs/hsdk_defconfig                             |   1 +
 arch/arc/configs/nps_defconfig                              |   1 +
 arch/arc/configs/nsim_700_defconfig                         |   1 +
 arch/arc/configs/nsim_hs_defconfig                          |   1 +
 arch/arc/configs/nsim_hs_smp_defconfig                      |   1 +
 arch/arc/configs/nsimosci_defconfig                         |   1 +
 arch/arc/configs/nsimosci_hs_defconfig                      |   1 +
 arch/arc/configs/nsimosci_hs_smp_defconfig                  |   1 +
 arch/arc/configs/tb10x_defconfig                            |   1 +
 arch/arc/configs/vdk_hs38_defconfig                         |   1 +
 arch/arc/configs/vdk_hs38_smp_defconfig                     |   1 +
 arch/arm/Makefile                                           |   2 +-
 arch/arm/kvm/Makefile                                       |   5 +-
 arch/arm64/Kconfig                                          |   1 +
 arch/arm64/Makefile                                         |   2 +-
 arch/ia64/Kconfig                                           |   1 +
 arch/ia64/Makefile                                          |   2 +-
 arch/m68k/Kconfig                                           |   1 +
 arch/m68k/Makefile                                          |   2 +-
 arch/mips/Kconfig                                           |   1 +
 arch/mips/boot/Makefile                                     |   2 +-
 arch/parisc/Makefile                                        |   2 +-
 arch/powerpc/Kconfig                                        |   1 +
 arch/powerpc/Makefile                                       |   2 +-
 arch/powerpc/Makefile.postlink                              |   2 +-
 arch/powerpc/kernel/prom_init_check.sh                      |   2 +-
 arch/riscv/Kconfig                                          |   1 +
 arch/riscv/Makefile                                         |   2 +-
 arch/s390/Kconfig                                           |   1 +
 arch/sparc/Kconfig                                          |   1 +
 arch/um/Kconfig                                             |   1 +
 arch/x86/Kconfig                                            |   1 +
 arch/x86/entry/vdso/Makefile                                |   3 +-
 drivers/gpu/drm/amd/display/dc/calcs/Makefile               |   6 +-
 drivers/gpu/drm/amd/display/dc/dcn20/Makefile               |   2 +-
 drivers/gpu/drm/amd/display/dc/dml/Makefile                 |  17 +-
 drivers/gpu/drm/amd/display/dc/dsc/Makefile                 |   7 +-
 drivers/gpu/drm/i915/Makefile                               |   2 +-
 drivers/net/ethernet/aquantia/atlantic/hw_atl/Makefile      |   2 -
 drivers/net/ethernet/mellanox/mlx5/core/accel/Makefile      |   2 -
 drivers/net/ethernet/mellanox/mlx5/core/diag/Makefile       |   2 -
 drivers/net/ethernet/mellanox/mlx5/core/en/Makefile         |   2 -
 drivers/net/ethernet/mellanox/mlx5/core/en/xsk/Makefile     |   1 -
 drivers/net/ethernet/mellanox/mlx5/core/en_accel/Makefile   |   2 -
 drivers/net/ethernet/mellanox/mlx5/core/fpga/Makefile       |   2 -
 drivers/net/ethernet/mellanox/mlx5/core/ipoib/Makefile      |   2 -
 drivers/net/ethernet/mellanox/mlx5/core/lib/Makefile        |   2 -
 drivers/net/ethernet/netronome/nfp/bpf/Makefile             |   2 -
 drivers/net/ethernet/netronome/nfp/flower/Makefile          |   2 -
 drivers/net/ethernet/netronome/nfp/nfpcore/Makefile         |   2 -
 drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000/Makefile |   2 -
 drivers/net/ethernet/netronome/nfp/nic/Makefile             |   2 -
 include/linux/compiler_types.h                              |  20 +-
 include/linux/export.h                                      |  42 ++--
 include/linux/vermagic.h                                    |   2 +
 init/Kconfig                                                |  26 ++-
 init/Makefile                                               |   5 +-
 kernel/Makefile                                             |   2 +-
 scripts/Kconfig.include                                     |   3 +
 scripts/Makefile                                            |   2 +-
 scripts/Makefile.build                                      |  73 ++++---
 scripts/Makefile.clean                                      |  31 +--
 scripts/Makefile.extrawarn                                  | 121 ++++++-----
 scripts/Makefile.host                                       |  39 +++-
 scripts/Makefile.lib                                        |  63 +++---
 scripts/Makefile.modfinal                                   |  60 ++++++
 scripts/Makefile.modpost                                    |  80 ++-----
 scripts/{package/Makefile => Makefile.package}              |  43 ++--
 scripts/basic/Makefile                                      |  14 +-
 scripts/genksyms/Makefile                                   |  11 +-
 scripts/genksyms/keywords.c                                 |   6 +-
 scripts/genksyms/lex.l                                      |  32 +--
 scripts/genksyms/parse.y                                    |  32 +--
 scripts/headers_install.sh                                  |  72 +++++++
 scripts/kconfig/Makefile                                    |  10 +-
 scripts/kconfig/merge_config.sh                             |  12 +-
 scripts/link-vmlinux.sh                                     |  38 ++--
 scripts/mkcompile_h                                         |   4 +-
 scripts/mkmakefile                                          |   4 +-
 scripts/mod/file2alias.c                                    |   5 +
 scripts/mod/modpost.c                                       |  48 ++++-
 usr/include/Makefile                                        |   4 +-
 95 files changed, 755 insertions(+), 680 deletions(-)
 delete mode 100644 drivers/net/ethernet/aquantia/atlantic/hw_atl/Makefile
 delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/accel/Makefile
 delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/diag/Makefile
 delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/Makefile
 delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/xsk/Makefile
 delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en_accel/Makefile
 delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/fpga/Makefile
 delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/ipoib/Makefile
 delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lib/Makefile
 delete mode 100644 drivers/net/ethernet/netronome/nfp/bpf/Makefile
 delete mode 100644 drivers/net/ethernet/netronome/nfp/flower/Makefile
 delete mode 100644 drivers/net/ethernet/netronome/nfp/nfpcore/Makefile
 delete mode 100644 drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000/Makefile
 delete mode 100644 drivers/net/ethernet/netronome/nfp/nic/Makefile
 create mode 100644 scripts/Makefile.modfinal
 rename scripts/{package/Makefile => Makefile.package} (92%)

Comments

Jessica Yu Sept. 17, 2019, 3:09 p.m. UTC | #1
+++ Masahiro Yamada [15/09/19 22:27 +0900]:
>Hi Linus,
>
>This is a Kbuild pull request for v5.4-rc1.
>I am sending this a bit earlier.
>Please pull it in when you open the merge window.
>
>Thanks.

Hi Masahiro, Linus,

There is a merge conflict between the kbuild and modules-next tree.

Specifically, commits

    69a94abb82e ("export.h, genksyms: do not make genksyms calculate CRC of trimmed symbols")

and

    9b9a3f20cbe ("kbuild: split final module linking out into Makefile.modfinal")

from the kbuild tree caused some conflicts in modules-next in
include/linux/export.h and scripts/Makefile.modpost. The conflict
caused by 69a94abb82e in export.h is *non* trivial whereas the latter
commit involving Makefile.modpost is trivial.

So there are a few options here..

Solution #1: Masahiro pops the topmost 4 commits (down to 69a94abb82e)
from kbuild/for-next and I take them resolved through modules-next.
This would only leave the trivial conflict in Makefile.modpost left.
Send Linus the modules-next tree with a trivial resolution for
Makefile.modpost.

Solution #2: 
Matthias Maennich staged a merge resolution from his tree
(https://github.com/metti/linux/tree/modules-next_linux-kbuild) so
another solution might be that I merge kbuild/for-next into
modules-next, take Matthias' (CC'd) conflict resolution including his
Signed-off-by, and then take that to Linus.

What would be most preferrable for you guys?

Thanks,

Jessica

>The following changes since commit d45331b00ddb179e291766617259261c112db872:
>
>  Linux 5.3-rc4 (2019-08-11 13:26:41 -0700)
>
>are available in the Git repository at:
>
>  git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git
>tags/kbuild-v5.4
>
>for you to fetch changes up to 77564a4829ef6d309331d443ea6ceb065f3dc371:
>
>  genksyms: convert to SPDX License Identifier for lex.l and parse.y
>(2019-09-14 11:40:13 +0900)
>
>----------------------------------------------------------------
>Kbuild updates for v5.4
>
> - add modpost warn exported symbols marked as 'static' because 'static'
>   and EXPORT_SYMBOL is an odd combination
>
> - break the build early if gold linker is used
>
> - optimize the Bison rule to produce .c and .h files by a single
>   pattern rule
>
> - handle PREEMPT_RT in the module vermagic and UTS_VERSION
>
> - warn CONFIG options leaked to the user-space except existing ones
>
> - make single targets work properly
>
> - rebuild modules when module linker scripts are updated
>
> - split the module final link stage into scripts/Makefile.modfinal
>
> - fix the missed error code in merge_config.sh
>
> - improve the error message displayed on the attempt of the O= build
>   in unclean source tree
>
> - remove 'clean-dirs' syntax
>
> - disable -Wimplicit-fallthrough warning for Clang
>
> - add CONFIG_CC_OPTIMIZE_FOR_SIZE_O3 for ARC
>
> - remove ARCH_{CPP,A,C}FLAGS variables
>
> - add $(BASH) to run bash scripts
>
> - change *CFLAGS_<basetarget>.o to take the relative path to $(obj)
>   instead of the basename
>
> - stop suppressing Clang's -Wunused-function warnings when W=1
>
> - fix linux/export.h to avoid genksyms calculating CRC of trimmed
>   exported symbols
>
> - misc cleanups
>
>----------------------------------------------------------------
>Denis Efremov (2):
>      modpost: check for static EXPORT_SYMBOL* functions
>      modpost: add NOFAIL to strndup
>
>Guillaume Tucker (1):
>      merge_config.sh: ignore unwanted grep errors
>
>Heikki Krogerus (1):
>      modpost: add guid_t type definition
>
>Kees Cook (1):
>      kbuild: Parameterize kallsyms generation and correct reporting
>
>Mark Brown (1):
>      merge_config.sh: Check error codes from make
>
>Masahiro Yamada (54):
>      kbuild: use $(basename ...) for cmd_asn1_compiler
>      kbuild: make bison create C file and header in a single pattern rule
>      kbuild: move flex and bison rules to Makefile.host
>      kbuild: add [M] marker for build log of *.mod.o
>      kbuild: treat an object as multi-used when $(foo-) is set
>      kbuild: move the Module.symvers check for external module build
>      kbuild: refactor part-of-module more
>      kbuild: fix modkern_aflags implementation
>      kbuild: remove 'make /' support
>      kbuild: remove meaningless 'targets' in ./Kbuild
>      kbuild: do not descend to ./Kbuild when cleaning
>      kbuild: unset variables in top Makefile instead of setting 0
>      kbuild: unify vmlinux-dirs and module-dirs rules
>      kbuild: unify clean-dirs rule for in-kernel and external module
>      kbuild: re-implement detection of CONFIG options leaked to user-space
>      kbuild: make single targets work more correctly
>      treewide: remove dummy Makefiles for single targets
>      kbuild: move KBUILD_LDS, KBUILD_VMLINUX_{OBJS,LIBS} to makefiles.rst
>      kbuild: rebuild modules when module linker scripts are updated
>      kbuild: split final module linking out into Makefile.modfinal
>      .gitignore: ignore modules.order explicitly
>      kbuild: add CONFIG_ASM_MODVERSIONS
>      kbuild: move modkern_{c,a}flags to Makefile.lib from Makefile.build
>      kbuild: pkg: clean up package files/dirs from the top Makefile
>      kbuild: pkg: add package targets to PHONY instead of FORCE
>      kbuild: pkg: rename scripts/package/Makefile to scripts/Makefile.package
>      kbuild: remove unneeded '+' marker from kselftest-merge
>      docs: kbuild: fix invalid ReST syntax
>      docs: kbuild: remove cc-ldoption from document again
>      init/Kconfig: rework help of CONFIG_CC_OPTIMIZE_FOR_SIZE
>      kbuild: remove unneeded comments and code from scripts/basic/Makefile
>      kbuild: remove unneeded dependency for $(DOC_TARGETS)
>      kbuild: get rid of $(realpath ...) from scripts/mkmakefile
>      kbuild: remove 'Using ... as source for kernel' message
>      kbuild: Inform user to pass ARCH= for make mrproper only when necessary
>      kbuild: clarify where to run make mrproper when out-of-tree fails
>      kbuild: move the clean srctree check to the outputmakefile target
>      kbuild: remove prepare3 target
>      kbuild: check clean srctree even earlier
>      kbuild: remove clean-dirs syntax
>      kbuild: remove unneeded '+' marker from cmd_clean
>      kbuild: clean up subdir-ymn calculation in Makefile.clean
>      kbuild,arc: add CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 for ARC
>      kbuild: remove ARCH_{CPP,A,C}FLAGS
>      kbuild: add $(BASH) to run scripts with bash-extension
>      kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)
>      kbuild: refactor scripts/Makefile.extrawarn
>      kbuild: rename KBUILD_ENABLE_EXTRA_GCC_CHECKS to KBUILD_EXTRA_WARN
>      kbuild: allow Clang to find unused static inline functions for W=1 build
>      export.h: remove defined(__KERNEL__), which is no longer needed
>      export.h, genksyms: do not make genksyms calculate CRC of trimmed symbols
>      modpost: use MODULE_INFO() for __module_depends
>      modpost: use __section in the output to *.mod.c
>      genksyms: convert to SPDX License Identifier for lex.l and parse.y
>
>Nathan Chancellor (1):
>      kbuild: Do not enable -Wimplicit-fallthrough for clang for now
>
>Thomas Gleixner (2):
>      kbuild: Fail if gold linker is detected
>      Kbuild: Handle PREEMPT_RT for version string and magic
>
> .gitignore                                                  |   2 +-
> Documentation/kbuild/kbuild.rst                             |  28 +--
> Documentation/kbuild/makefiles.rst                          |  67 +++---
> Kbuild                                                      |   7 -
> Makefile                                                    | 296
>+++++++++++++-------------
> arch/Kconfig                                                |   7 +
> arch/alpha/Kconfig                                          |   1 +
> arch/arc/Makefile                                           |   8 -
> arch/arc/configs/axs101_defconfig                           |   1 +
> arch/arc/configs/axs103_defconfig                           |   1 +
> arch/arc/configs/axs103_smp_defconfig                       |   1 +
> arch/arc/configs/haps_hs_defconfig                          |   1 +
> arch/arc/configs/haps_hs_smp_defconfig                      |   1 +
> arch/arc/configs/hsdk_defconfig                             |   1 +
> arch/arc/configs/nps_defconfig                              |   1 +
> arch/arc/configs/nsim_700_defconfig                         |   1 +
> arch/arc/configs/nsim_hs_defconfig                          |   1 +
> arch/arc/configs/nsim_hs_smp_defconfig                      |   1 +
> arch/arc/configs/nsimosci_defconfig                         |   1 +
> arch/arc/configs/nsimosci_hs_defconfig                      |   1 +
> arch/arc/configs/nsimosci_hs_smp_defconfig                  |   1 +
> arch/arc/configs/tb10x_defconfig                            |   1 +
> arch/arc/configs/vdk_hs38_defconfig                         |   1 +
> arch/arc/configs/vdk_hs38_smp_defconfig                     |   1 +
> arch/arm/Makefile                                           |   2 +-
> arch/arm/kvm/Makefile                                       |   5 +-
> arch/arm64/Kconfig                                          |   1 +
> arch/arm64/Makefile                                         |   2 +-
> arch/ia64/Kconfig                                           |   1 +
> arch/ia64/Makefile                                          |   2 +-
> arch/m68k/Kconfig                                           |   1 +
> arch/m68k/Makefile                                          |   2 +-
> arch/mips/Kconfig                                           |   1 +
> arch/mips/boot/Makefile                                     |   2 +-
> arch/parisc/Makefile                                        |   2 +-
> arch/powerpc/Kconfig                                        |   1 +
> arch/powerpc/Makefile                                       |   2 +-
> arch/powerpc/Makefile.postlink                              |   2 +-
> arch/powerpc/kernel/prom_init_check.sh                      |   2 +-
> arch/riscv/Kconfig                                          |   1 +
> arch/riscv/Makefile                                         |   2 +-
> arch/s390/Kconfig                                           |   1 +
> arch/sparc/Kconfig                                          |   1 +
> arch/um/Kconfig                                             |   1 +
> arch/x86/Kconfig                                            |   1 +
> arch/x86/entry/vdso/Makefile                                |   3 +-
> drivers/gpu/drm/amd/display/dc/calcs/Makefile               |   6 +-
> drivers/gpu/drm/amd/display/dc/dcn20/Makefile               |   2 +-
> drivers/gpu/drm/amd/display/dc/dml/Makefile                 |  17 +-
> drivers/gpu/drm/amd/display/dc/dsc/Makefile                 |   7 +-
> drivers/gpu/drm/i915/Makefile                               |   2 +-
> drivers/net/ethernet/aquantia/atlantic/hw_atl/Makefile      |   2 -
> drivers/net/ethernet/mellanox/mlx5/core/accel/Makefile      |   2 -
> drivers/net/ethernet/mellanox/mlx5/core/diag/Makefile       |   2 -
> drivers/net/ethernet/mellanox/mlx5/core/en/Makefile         |   2 -
> drivers/net/ethernet/mellanox/mlx5/core/en/xsk/Makefile     |   1 -
> drivers/net/ethernet/mellanox/mlx5/core/en_accel/Makefile   |   2 -
> drivers/net/ethernet/mellanox/mlx5/core/fpga/Makefile       |   2 -
> drivers/net/ethernet/mellanox/mlx5/core/ipoib/Makefile      |   2 -
> drivers/net/ethernet/mellanox/mlx5/core/lib/Makefile        |   2 -
> drivers/net/ethernet/netronome/nfp/bpf/Makefile             |   2 -
> drivers/net/ethernet/netronome/nfp/flower/Makefile          |   2 -
> drivers/net/ethernet/netronome/nfp/nfpcore/Makefile         |   2 -
> drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000/Makefile |   2 -
> drivers/net/ethernet/netronome/nfp/nic/Makefile             |   2 -
> include/linux/compiler_types.h                              |  20 +-
> include/linux/export.h                                      |  42 ++--
> include/linux/vermagic.h                                    |   2 +
> init/Kconfig                                                |  26 ++-
> init/Makefile                                               |   5 +-
> kernel/Makefile                                             |   2 +-
> scripts/Kconfig.include                                     |   3 +
> scripts/Makefile                                            |   2 +-
> scripts/Makefile.build                                      |  73 ++++---
> scripts/Makefile.clean                                      |  31 +--
> scripts/Makefile.extrawarn                                  | 121 ++++++-----
> scripts/Makefile.host                                       |  39 +++-
> scripts/Makefile.lib                                        |  63 +++---
> scripts/Makefile.modfinal                                   |  60 ++++++
> scripts/Makefile.modpost                                    |  80 ++-----
> scripts/{package/Makefile => Makefile.package}              |  43 ++--
> scripts/basic/Makefile                                      |  14 +-
> scripts/genksyms/Makefile                                   |  11 +-
> scripts/genksyms/keywords.c                                 |   6 +-
> scripts/genksyms/lex.l                                      |  32 +--
> scripts/genksyms/parse.y                                    |  32 +--
> scripts/headers_install.sh                                  |  72 +++++++
> scripts/kconfig/Makefile                                    |  10 +-
> scripts/kconfig/merge_config.sh                             |  12 +-
> scripts/link-vmlinux.sh                                     |  38 ++--
> scripts/mkcompile_h                                         |   4 +-
> scripts/mkmakefile                                          |   4 +-
> scripts/mod/file2alias.c                                    |   5 +
> scripts/mod/modpost.c                                       |  48 ++++-
> usr/include/Makefile                                        |   4 +-
> 95 files changed, 755 insertions(+), 680 deletions(-)
> delete mode 100644 drivers/net/ethernet/aquantia/atlantic/hw_atl/Makefile
> delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/accel/Makefile
> delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/diag/Makefile
> delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/Makefile
> delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/xsk/Makefile
> delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en_accel/Makefile
> delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/fpga/Makefile
> delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/ipoib/Makefile
> delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lib/Makefile
> delete mode 100644 drivers/net/ethernet/netronome/nfp/bpf/Makefile
> delete mode 100644 drivers/net/ethernet/netronome/nfp/flower/Makefile
> delete mode 100644 drivers/net/ethernet/netronome/nfp/nfpcore/Makefile
> delete mode 100644 drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000/Makefile
> delete mode 100644 drivers/net/ethernet/netronome/nfp/nic/Makefile
> create mode 100644 scripts/Makefile.modfinal
> rename scripts/{package/Makefile => Makefile.package} (92%)
>
>
>-- 
>Best Regards
>Masahiro Yamada
Masahiro Yamada Sept. 17, 2019, 5:26 p.m. UTC | #2
Hi Jessica, Linus,

On Wed, Sep 18, 2019 at 12:09 AM Jessica Yu <jeyu@kernel.org> wrote:
>
> +++ Masahiro Yamada [15/09/19 22:27 +0900]:
> >Hi Linus,
> >
> >This is a Kbuild pull request for v5.4-rc1.
> >I am sending this a bit earlier.
> >Please pull it in when you open the merge window.
> >
> >Thanks.
>
> Hi Masahiro, Linus,
>
> There is a merge conflict between the kbuild and modules-next tree.
>
> Specifically, commits
>
>     69a94abb82e ("export.h, genksyms: do not make genksyms calculate CRC of trimmed symbols")
>
> and
>
>     9b9a3f20cbe ("kbuild: split final module linking out into Makefile.modfinal")
>
> from the kbuild tree caused some conflicts in modules-next in
> include/linux/export.h and scripts/Makefile.modpost. The conflict
> caused by 69a94abb82e in export.h is *non* trivial whereas the latter
> commit involving Makefile.modpost is trivial.
>
> So there are a few options here..
>
> Solution #1: Masahiro pops the topmost 4 commits (down to 69a94abb82e)
> from kbuild/for-next and I take them resolved through modules-next.
> This would only leave the trivial conflict in Makefile.modpost left.
> Send Linus the modules-next tree with a trivial resolution for
> Makefile.modpost.


No. I do not like to do it.


Reason 1:
Commit 69a94abb82e is a bug fix.
On the other hand, the module name-space is a completely new feature.
Why must the bug-fix commit rebased on top of the new feature commits?

Reason 2:
If 69a94abb82e were moved to your branch,
its commit log would become really strange because the module-next branch
does not contain 15bfc2348d54




> Solution #2:
> Matthias Maennich staged a merge resolution from his tree
> (https://github.com/metti/linux/tree/modules-next_linux-kbuild) so
> another solution might be that I merge kbuild/for-next into
> modules-next, take Matthias' (CC'd) conflict resolution including his
> Signed-off-by, and then take that to Linus.

I do not mind this.  Please feel free to proceed.



But, if you do not mind, I can propose one more solution.

Solution #3

Linus will pull this Kbuild PR.

Then, Jessica will rebase the module-next branch on the latest Linus tree.

Because nothing in the modules-next branch has been tested in linux-next yet,
(the patches were queued after -rc8, but there was no linux-next
release last week)
there is no strong reason to keep them on v5.3-rc7, right?


Masahiro



> What would be most preferrable for you guys?
>
> Thanks,
>
> Jessica
>
> >The following changes since commit d45331b00ddb179e291766617259261c112db872:
> >
> >  Linux 5.3-rc4 (2019-08-11 13:26:41 -0700)
> >
> >are available in the Git repository at:
> >
> >  git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git
> >tags/kbuild-v5.4
> >
> >for you to fetch changes up to 77564a4829ef6d309331d443ea6ceb065f3dc371:
> >
> >  genksyms: convert to SPDX License Identifier for lex.l and parse.y
> >(2019-09-14 11:40:13 +0900)
> >
> >----------------------------------------------------------------
> >Kbuild updates for v5.4
> >
> > - add modpost warn exported symbols marked as 'static' because 'static'
> >   and EXPORT_SYMBOL is an odd combination
> >
> > - break the build early if gold linker is used
> >
> > - optimize the Bison rule to produce .c and .h files by a single
> >   pattern rule
> >
> > - handle PREEMPT_RT in the module vermagic and UTS_VERSION
> >
> > - warn CONFIG options leaked to the user-space except existing ones
> >
> > - make single targets work properly
> >
> > - rebuild modules when module linker scripts are updated
> >
> > - split the module final link stage into scripts/Makefile.modfinal
> >
> > - fix the missed error code in merge_config.sh
> >
> > - improve the error message displayed on the attempt of the O= build
> >   in unclean source tree
> >
> > - remove 'clean-dirs' syntax
> >
> > - disable -Wimplicit-fallthrough warning for Clang
> >
> > - add CONFIG_CC_OPTIMIZE_FOR_SIZE_O3 for ARC
> >
> > - remove ARCH_{CPP,A,C}FLAGS variables
> >
> > - add $(BASH) to run bash scripts
> >
> > - change *CFLAGS_<basetarget>.o to take the relative path to $(obj)
> >   instead of the basename
> >
> > - stop suppressing Clang's -Wunused-function warnings when W=1
> >
> > - fix linux/export.h to avoid genksyms calculating CRC of trimmed
> >   exported symbols
> >
> > - misc cleanups
> >
> >----------------------------------------------------------------
> >Denis Efremov (2):
> >      modpost: check for static EXPORT_SYMBOL* functions
> >      modpost: add NOFAIL to strndup
> >
> >Guillaume Tucker (1):
> >      merge_config.sh: ignore unwanted grep errors
> >
> >Heikki Krogerus (1):
> >      modpost: add guid_t type definition
> >
> >Kees Cook (1):
> >      kbuild: Parameterize kallsyms generation and correct reporting
> >
> >Mark Brown (1):
> >      merge_config.sh: Check error codes from make
> >
> >Masahiro Yamada (54):
> >      kbuild: use $(basename ...) for cmd_asn1_compiler
> >      kbuild: make bison create C file and header in a single pattern rule
> >      kbuild: move flex and bison rules to Makefile.host
> >      kbuild: add [M] marker for build log of *.mod.o
> >      kbuild: treat an object as multi-used when $(foo-) is set
> >      kbuild: move the Module.symvers check for external module build
> >      kbuild: refactor part-of-module more
> >      kbuild: fix modkern_aflags implementation
> >      kbuild: remove 'make /' support
> >      kbuild: remove meaningless 'targets' in ./Kbuild
> >      kbuild: do not descend to ./Kbuild when cleaning
> >      kbuild: unset variables in top Makefile instead of setting 0
> >      kbuild: unify vmlinux-dirs and module-dirs rules
> >      kbuild: unify clean-dirs rule for in-kernel and external module
> >      kbuild: re-implement detection of CONFIG options leaked to user-space
> >      kbuild: make single targets work more correctly
> >      treewide: remove dummy Makefiles for single targets
> >      kbuild: move KBUILD_LDS, KBUILD_VMLINUX_{OBJS,LIBS} to makefiles.rst
> >      kbuild: rebuild modules when module linker scripts are updated
> >      kbuild: split final module linking out into Makefile.modfinal
> >      .gitignore: ignore modules.order explicitly
> >      kbuild: add CONFIG_ASM_MODVERSIONS
> >      kbuild: move modkern_{c,a}flags to Makefile.lib from Makefile.build
> >      kbuild: pkg: clean up package files/dirs from the top Makefile
> >      kbuild: pkg: add package targets to PHONY instead of FORCE
> >      kbuild: pkg: rename scripts/package/Makefile to scripts/Makefile.package
> >      kbuild: remove unneeded '+' marker from kselftest-merge
> >      docs: kbuild: fix invalid ReST syntax
> >      docs: kbuild: remove cc-ldoption from document again
> >      init/Kconfig: rework help of CONFIG_CC_OPTIMIZE_FOR_SIZE
> >      kbuild: remove unneeded comments and code from scripts/basic/Makefile
> >      kbuild: remove unneeded dependency for $(DOC_TARGETS)
> >      kbuild: get rid of $(realpath ...) from scripts/mkmakefile
> >      kbuild: remove 'Using ... as source for kernel' message
> >      kbuild: Inform user to pass ARCH= for make mrproper only when necessary
> >      kbuild: clarify where to run make mrproper when out-of-tree fails
> >      kbuild: move the clean srctree check to the outputmakefile target
> >      kbuild: remove prepare3 target
> >      kbuild: check clean srctree even earlier
> >      kbuild: remove clean-dirs syntax
> >      kbuild: remove unneeded '+' marker from cmd_clean
> >      kbuild: clean up subdir-ymn calculation in Makefile.clean
> >      kbuild,arc: add CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 for ARC
> >      kbuild: remove ARCH_{CPP,A,C}FLAGS
> >      kbuild: add $(BASH) to run scripts with bash-extension
> >      kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)
> >      kbuild: refactor scripts/Makefile.extrawarn
> >      kbuild: rename KBUILD_ENABLE_EXTRA_GCC_CHECKS to KBUILD_EXTRA_WARN
> >      kbuild: allow Clang to find unused static inline functions for W=1 build
> >      export.h: remove defined(__KERNEL__), which is no longer needed
> >      export.h, genksyms: do not make genksyms calculate CRC of trimmed symbols
> >      modpost: use MODULE_INFO() for __module_depends
> >      modpost: use __section in the output to *.mod.c
> >      genksyms: convert to SPDX License Identifier for lex.l and parse.y
> >
> >Nathan Chancellor (1):
> >      kbuild: Do not enable -Wimplicit-fallthrough for clang for now
> >
> >Thomas Gleixner (2):
> >      kbuild: Fail if gold linker is detected
> >      Kbuild: Handle PREEMPT_RT for version string and magic
> >
> > .gitignore                                                  |   2 +-
> > Documentation/kbuild/kbuild.rst                             |  28 +--
> > Documentation/kbuild/makefiles.rst                          |  67 +++---
> > Kbuild                                                      |   7 -
> > Makefile                                                    | 296
> >+++++++++++++-------------
> > arch/Kconfig                                                |   7 +
> > arch/alpha/Kconfig                                          |   1 +
> > arch/arc/Makefile                                           |   8 -
> > arch/arc/configs/axs101_defconfig                           |   1 +
> > arch/arc/configs/axs103_defconfig                           |   1 +
> > arch/arc/configs/axs103_smp_defconfig                       |   1 +
> > arch/arc/configs/haps_hs_defconfig                          |   1 +
> > arch/arc/configs/haps_hs_smp_defconfig                      |   1 +
> > arch/arc/configs/hsdk_defconfig                             |   1 +
> > arch/arc/configs/nps_defconfig                              |   1 +
> > arch/arc/configs/nsim_700_defconfig                         |   1 +
> > arch/arc/configs/nsim_hs_defconfig                          |   1 +
> > arch/arc/configs/nsim_hs_smp_defconfig                      |   1 +
> > arch/arc/configs/nsimosci_defconfig                         |   1 +
> > arch/arc/configs/nsimosci_hs_defconfig                      |   1 +
> > arch/arc/configs/nsimosci_hs_smp_defconfig                  |   1 +
> > arch/arc/configs/tb10x_defconfig                            |   1 +
> > arch/arc/configs/vdk_hs38_defconfig                         |   1 +
> > arch/arc/configs/vdk_hs38_smp_defconfig                     |   1 +
> > arch/arm/Makefile                                           |   2 +-
> > arch/arm/kvm/Makefile                                       |   5 +-
> > arch/arm64/Kconfig                                          |   1 +
> > arch/arm64/Makefile                                         |   2 +-
> > arch/ia64/Kconfig                                           |   1 +
> > arch/ia64/Makefile                                          |   2 +-
> > arch/m68k/Kconfig                                           |   1 +
> > arch/m68k/Makefile                                          |   2 +-
> > arch/mips/Kconfig                                           |   1 +
> > arch/mips/boot/Makefile                                     |   2 +-
> > arch/parisc/Makefile                                        |   2 +-
> > arch/powerpc/Kconfig                                        |   1 +
> > arch/powerpc/Makefile                                       |   2 +-
> > arch/powerpc/Makefile.postlink                              |   2 +-
> > arch/powerpc/kernel/prom_init_check.sh                      |   2 +-
> > arch/riscv/Kconfig                                          |   1 +
> > arch/riscv/Makefile                                         |   2 +-
> > arch/s390/Kconfig                                           |   1 +
> > arch/sparc/Kconfig                                          |   1 +
> > arch/um/Kconfig                                             |   1 +
> > arch/x86/Kconfig                                            |   1 +
> > arch/x86/entry/vdso/Makefile                                |   3 +-
> > drivers/gpu/drm/amd/display/dc/calcs/Makefile               |   6 +-
> > drivers/gpu/drm/amd/display/dc/dcn20/Makefile               |   2 +-
> > drivers/gpu/drm/amd/display/dc/dml/Makefile                 |  17 +-
> > drivers/gpu/drm/amd/display/dc/dsc/Makefile                 |   7 +-
> > drivers/gpu/drm/i915/Makefile                               |   2 +-
> > drivers/net/ethernet/aquantia/atlantic/hw_atl/Makefile      |   2 -
> > drivers/net/ethernet/mellanox/mlx5/core/accel/Makefile      |   2 -
> > drivers/net/ethernet/mellanox/mlx5/core/diag/Makefile       |   2 -
> > drivers/net/ethernet/mellanox/mlx5/core/en/Makefile         |   2 -
> > drivers/net/ethernet/mellanox/mlx5/core/en/xsk/Makefile     |   1 -
> > drivers/net/ethernet/mellanox/mlx5/core/en_accel/Makefile   |   2 -
> > drivers/net/ethernet/mellanox/mlx5/core/fpga/Makefile       |   2 -
> > drivers/net/ethernet/mellanox/mlx5/core/ipoib/Makefile      |   2 -
> > drivers/net/ethernet/mellanox/mlx5/core/lib/Makefile        |   2 -
> > drivers/net/ethernet/netronome/nfp/bpf/Makefile             |   2 -
> > drivers/net/ethernet/netronome/nfp/flower/Makefile          |   2 -
> > drivers/net/ethernet/netronome/nfp/nfpcore/Makefile         |   2 -
> > drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000/Makefile |   2 -
> > drivers/net/ethernet/netronome/nfp/nic/Makefile             |   2 -
> > include/linux/compiler_types.h                              |  20 +-
> > include/linux/export.h                                      |  42 ++--
> > include/linux/vermagic.h                                    |   2 +
> > init/Kconfig                                                |  26 ++-
> > init/Makefile                                               |   5 +-
> > kernel/Makefile                                             |   2 +-
> > scripts/Kconfig.include                                     |   3 +
> > scripts/Makefile                                            |   2 +-
> > scripts/Makefile.build                                      |  73 ++++---
> > scripts/Makefile.clean                                      |  31 +--
> > scripts/Makefile.extrawarn                                  | 121 ++++++-----
> > scripts/Makefile.host                                       |  39 +++-
> > scripts/Makefile.lib                                        |  63 +++---
> > scripts/Makefile.modfinal                                   |  60 ++++++
> > scripts/Makefile.modpost                                    |  80 ++-----
> > scripts/{package/Makefile => Makefile.package}              |  43 ++--
> > scripts/basic/Makefile                                      |  14 +-
> > scripts/genksyms/Makefile                                   |  11 +-
> > scripts/genksyms/keywords.c                                 |   6 +-
> > scripts/genksyms/lex.l                                      |  32 +--
> > scripts/genksyms/parse.y                                    |  32 +--
> > scripts/headers_install.sh                                  |  72 +++++++
> > scripts/kconfig/Makefile                                    |  10 +-
> > scripts/kconfig/merge_config.sh                             |  12 +-
> > scripts/link-vmlinux.sh                                     |  38 ++--
> > scripts/mkcompile_h                                         |   4 +-
> > scripts/mkmakefile                                          |   4 +-
> > scripts/mod/file2alias.c                                    |   5 +
> > scripts/mod/modpost.c                                       |  48 ++++-
> > usr/include/Makefile                                        |   4 +-
> > 95 files changed, 755 insertions(+), 680 deletions(-)
> > delete mode 100644 drivers/net/ethernet/aquantia/atlantic/hw_atl/Makefile
> > delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/accel/Makefile
> > delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/diag/Makefile
> > delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/Makefile
> > delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/xsk/Makefile
> > delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en_accel/Makefile
> > delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/fpga/Makefile
> > delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/ipoib/Makefile
> > delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lib/Makefile
> > delete mode 100644 drivers/net/ethernet/netronome/nfp/bpf/Makefile
> > delete mode 100644 drivers/net/ethernet/netronome/nfp/flower/Makefile
> > delete mode 100644 drivers/net/ethernet/netronome/nfp/nfpcore/Makefile
> > delete mode 100644 drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000/Makefile
> > delete mode 100644 drivers/net/ethernet/netronome/nfp/nic/Makefile
> > create mode 100644 scripts/Makefile.modfinal
> > rename scripts/{package/Makefile => Makefile.package} (92%)
> >
> >
> >--
> >Best Regards
> >Masahiro Yamada
Jessica Yu Sept. 17, 2019, 6:01 p.m. UTC | #3
+++ Masahiro Yamada [18/09/19 02:26 +0900]:
>Hi Jessica, Linus,
>
>On Wed, Sep 18, 2019 at 12:09 AM Jessica Yu <jeyu@kernel.org> wrote:
>>
>> +++ Masahiro Yamada [15/09/19 22:27 +0900]:
>> >Hi Linus,
>> >
>> >This is a Kbuild pull request for v5.4-rc1.
>> >I am sending this a bit earlier.
>> >Please pull it in when you open the merge window.
>> >
>> >Thanks.
>>
>> Hi Masahiro, Linus,
>>
>> There is a merge conflict between the kbuild and modules-next tree.
>>
>> Specifically, commits
>>
>>     69a94abb82e ("export.h, genksyms: do not make genksyms calculate CRC of trimmed symbols")
>>
>> and
>>
>>     9b9a3f20cbe ("kbuild: split final module linking out into Makefile.modfinal")
>>
>> from the kbuild tree caused some conflicts in modules-next in
>> include/linux/export.h and scripts/Makefile.modpost. The conflict
>> caused by 69a94abb82e in export.h is *non* trivial whereas the latter
>> commit involving Makefile.modpost is trivial.
>>
>> So there are a few options here..
>>
>> Solution #1: Masahiro pops the topmost 4 commits (down to 69a94abb82e)
>> from kbuild/for-next and I take them resolved through modules-next.
>> This would only leave the trivial conflict in Makefile.modpost left.
>> Send Linus the modules-next tree with a trivial resolution for
>> Makefile.modpost.
>
>
>No. I do not like to do it.
>
>
>Reason 1:
>Commit 69a94abb82e is a bug fix.
>On the other hand, the module name-space is a completely new feature.
>Why must the bug-fix commit rebased on top of the new feature commits?
>
>Reason 2:
>If 69a94abb82e were moved to your branch,
>its commit log would become really strange because the module-next branch
>does not contain 15bfc2348d54

No problem, fair enough points.

>> Solution #2:
>> Matthias Maennich staged a merge resolution from his tree
>> (https://github.com/metti/linux/tree/modules-next_linux-kbuild) so
>> another solution might be that I merge kbuild/for-next into
>> modules-next, take Matthias' (CC'd) conflict resolution including his
>> Signed-off-by, and then take that to Linus.
>
>I do not mind this.  Please feel free to proceed.
>
>
>
>But, if you do not mind, I can propose one more solution.
>
>Solution #3
>
>Linus will pull this Kbuild PR.
>
>Then, Jessica will rebase the module-next branch on the latest Linus tree.
>
>Because nothing in the modules-next branch has been tested in linux-next yet,
>(the patches were queued after -rc8, but there was no linux-next
>release last week)
>there is no strong reason to keep them on v5.3-rc7, right?

Yikes, I did not catch Stephen Rothwell's email about pausing the
linux-next releases from Sept 5 until Sept 30
(https://lore.kernel.org/linux-next/20190904233443.3f73c46b@canb.auug.org.au/).

The modules-next namespace patches have been in since last Tuesday,
and my original plan was for them to catch at least a week of
linux-next time before sending the pull request. :-/ But that did not
happen due to the above.

So Linus, in light of the above realization, I'd say at this time - I
will still formally send a pull request with the merge conflicts
resolved with either solution #2 or #3, but merge at your own
discretion, it's fine to delay to the following release if you're
uncomfortable.

Thanks,

Jessica
Will Deacon Sept. 17, 2019, 6:16 p.m. UTC | #4
Hi Jessica,

On Tue, Sep 17, 2019 at 08:01:36PM +0200, Jessica Yu wrote:
> Yikes, I did not catch Stephen Rothwell's email about pausing the
> linux-next releases from Sept 5 until Sept 30
> (https://lore.kernel.org/linux-next/20190904233443.3f73c46b@canb.auug.org.au/).
> 
> The modules-next namespace patches have been in since last Tuesday,
> and my original plan was for them to catch at least a week of
> linux-next time before sending the pull request. :-/ But that did not
> happen due to the above.
> 
> So Linus, in light of the above realization, I'd say at this time - I
> will still formally send a pull request with the merge conflicts
> resolved with either solution #2 or #3, but merge at your own
> discretion, it's fine to delay to the following release if you're
> uncomfortable.

FWIW, when I've run into unexpected merge conflicts with other trees in the
past, I've found that it's usually sufficient just to include the resolution
as an inline diff in the pull request, rather than try to munge the tree
with merges or rebases.  Linus is pretty good at figuring it out, and with a
resolution to compare with, the damage is limited. The downside of the merge
is that it's fiddly to extract the changes and see what's actually being
pulled.

Also, it's not like the kbuild stuff has been in -next for ages, so this
would've been a late and messy conflict regardless.

Will
Jessica Yu Sept. 17, 2019, 6:48 p.m. UTC | #5
+++ Will Deacon [17/09/19 19:16 +0100]:
>Hi Jessica,
>
>On Tue, Sep 17, 2019 at 08:01:36PM +0200, Jessica Yu wrote:
>> Yikes, I did not catch Stephen Rothwell's email about pausing the
>> linux-next releases from Sept 5 until Sept 30
>> (https://lore.kernel.org/linux-next/20190904233443.3f73c46b@canb.auug.org.au/).
>>
>> The modules-next namespace patches have been in since last Tuesday,
>> and my original plan was for them to catch at least a week of
>> linux-next time before sending the pull request. :-/ But that did not
>> happen due to the above.
>>
>> So Linus, in light of the above realization, I'd say at this time - I
>> will still formally send a pull request with the merge conflicts
>> resolved with either solution #2 or #3, but merge at your own
>> discretion, it's fine to delay to the following release if you're
>> uncomfortable.
>
>FWIW, when I've run into unexpected merge conflicts with other trees in the
>past, I've found that it's usually sufficient just to include the resolution
>as an inline diff in the pull request, rather than try to munge the tree
>with merges or rebases.  Linus is pretty good at figuring it out, and with a
>resolution to compare with, the damage is limited. The downside of the merge
>is that it's fiddly to extract the changes and see what's actually being
>pulled.
>
>Also, it's not like the kbuild stuff has been in -next for ages, so this
>would've been a late and messy conflict regardless.

Hi Will!

Thanks a lot for the advice :-) The inline diff sounds like a good
idea. This is I believe only the second tree conflict I've encountered
so far so the tips are much appreciated.

Jessica
Masahiro Yamada Sept. 20, 2019, 3:38 a.m. UTC | #6
Hi Linus,

On Wed, Sep 18, 2019 at 3:48 AM Jessica Yu <jeyu@kernel.org> wrote:
>
> +++ Will Deacon [17/09/19 19:16 +0100]:
> >Hi Jessica,
> >
> >On Tue, Sep 17, 2019 at 08:01:36PM +0200, Jessica Yu wrote:
> >> Yikes, I did not catch Stephen Rothwell's email about pausing the
> >> linux-next releases from Sept 5 until Sept 30
> >> (https://lore.kernel.org/linux-next/20190904233443.3f73c46b@canb.auug.org.au/).
> >>
> >> The modules-next namespace patches have been in since last Tuesday,
> >> and my original plan was for them to catch at least a week of
> >> linux-next time before sending the pull request. :-/ But that did not
> >> happen due to the above.
> >>
> >> So Linus, in light of the above realization, I'd say at this time - I
> >> will still formally send a pull request with the merge conflicts
> >> resolved with either solution #2 or #3, but merge at your own
> >> discretion, it's fine to delay to the following release if you're
> >> uncomfortable.
> >
> >FWIW, when I've run into unexpected merge conflicts with other trees in the
> >past, I've found that it's usually sufficient just to include the resolution
> >as an inline diff in the pull request, rather than try to munge the tree
> >with merges or rebases.  Linus is pretty good at figuring it out, and with a
> >resolution to compare with, the damage is limited. The downside of the merge
> >is that it's fiddly to extract the changes and see what's actually being
> >pulled.
> >
> >Also, it's not like the kbuild stuff has been in -next for ages, so this
> >would've been a late and messy conflict regardless.
>
> Hi Will!
>
> Thanks a lot for the advice :-) The inline diff sounds like a good
> idea. This is I believe only the second tree conflict I've encountered
> so far so the tips are much appreciated.
>
> Jessica


How should we handle this?

If you pull this against the latest of your tree,
you will end up with manual merge for the following files:

scripts/link-vmlinux.sh
drivers/gpu/drm/amd/display/dc/calcs/Makefile
drivers/gpu/drm/amd/display/dc/dml/Makefile
drivers/gpu/drm/amd/display/dc/dsc/Makefile


They are solved in linux-next,
but I also double-checked it just in case.

I think the next-20190917 is correct,
but I noticed two things:


[1] linux-next modified the hashbang of scripts/link-vmlinux.sh
    (/bin/sh -> /bin/bash), but this change is unneeded

[2] I fixed up drivers/gpu/drm/amd/display/dc/dcn21/Makefile too.
    This is a non-obvious conflict, and not available in linux-next.
    I caught it in my build testing.


I solved the merge conflicts by myself,
and I attached the diff file.  (merge-diff.txt)


If you do not want to cope with those merge conflicts at all,
I will drop the three commits (8959e39272   54b8ae66ae  69a94abb82),
and I will re-send a pull request, which you will be able to pull cleanly.
I will rebase the offending 3 commits on top of your tree later.


Which do you prefer?
Please let me know your thought.

Thanks.


--
Best Regards
Masahiro Yamada
commit a3268b9f3811d651d99c474b628bd30eb2eead7b
Merge: 574cc4539762 77564a4829ef
Author: Masahiro Yamada <yamada.masahiro@socionext.com>
Date:   Fri Sep 20 11:43:11 2019 +0900

    Merge tag 'kbuild-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild into merge-test
    
    Kbuild updates for v5.4
    
     - add modpost warn exported symbols marked as 'static' because 'static'
       and EXPORT_SYMBOL is an odd combination
    
     - break the build early if gold linker is used
    
     - optimize the Bison rule to produce .c and .h files by a single
       pattern rule
    
     - handle PREEMPT_RT in the module vermagic and UTS_VERSION
    
     - warn CONFIG options leaked to the user-space except existing ones
    
     - make single targets work properly
    
     - rebuild modules when module linker scripts are updated
    
     - split the module final link stage into scripts/Makefile.modfinal
    
     - fix the missed error code in merge_config.sh
    
     - improve the error message displayed on the attempt of the O= build
       in unclean source tree
    
     - remove 'clean-dirs' syntax
    
     - disable -Wimplicit-fallthrough warning for Clang
    
     - add CONFIG_CC_OPTIMIZE_FOR_SIZE_O3 for ARC
    
     - remove ARCH_{CPP,A,C}FLAGS variables
    
     - add $(BASH) to run bash scripts
    
     - change *CFLAGS_<basetarget>.o to take the relative path to $(obj)
       instead of the basename
    
     - stop suppressing Clang's -Wunused-function warnings when W=1
    
     - fix linux/export.h to avoid genksyms calculating CRC of trimmed
       exported symbols
    
     - misc cleanups

diff --cc arch/ia64/Kconfig
index 9711cf730929,3dead116a6d7..685a3df126ca
--- a/arch/ia64/Kconfig
+++ b/arch/ia64/Kconfig
@@@ -10,15 -10,14 +10,16 @@@ config IA6
  	bool
  	select ARCH_MIGHT_HAVE_PC_PARPORT
  	select ARCH_MIGHT_HAVE_PC_SERIO
 -	select ACPI if (!IA64_HP_SIM)
 -	select ARCH_SUPPORTS_ACPI if (!IA64_HP_SIM)
 +	select ACPI
 +	select ACPI_NUMA if NUMA
 +	select ARCH_SUPPORTS_ACPI
  	select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI
  	select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI
 -	select FORCE_PCI if (!IA64_HP_SIM)
 +	select FORCE_PCI
  	select PCI_DOMAINS if PCI
 +	select PCI_MSI
  	select PCI_SYSCALL if PCI
+ 	select HAVE_ASM_MODVERSIONS
  	select HAVE_UNSTABLE_SCHED_CLOCK
  	select HAVE_EXIT_THREAD
  	select HAVE_IDE
diff --cc arch/riscv/Makefile
index 4f0a3d2018d2,426d989125a8..f5e914210245
--- a/arch/riscv/Makefile
+++ b/arch/riscv/Makefile
@@@ -52,11 -52,8 +52,11 @@@ ifeq ($(CONFIG_CMODEL_MEDANY),y
  	KBUILD_CFLAGS += -mcmodel=medany
  endif
  ifeq ($(CONFIG_MODULE_SECTIONS),y)
- 	KBUILD_LDFLAGS_MODULE += -T $(srctree)/arch/riscv/kernel/module.lds
+ 	KBUILD_LDS_MODULE += $(srctree)/arch/riscv/kernel/module.lds
  endif
 +ifeq ($(CONFIG_PERF_EVENTS),y)
 +        KBUILD_CFLAGS += -fno-omit-frame-pointer
 +endif
  
  KBUILD_CFLAGS_MODULE += $(call cc-option,-mno-relax)
  
diff --cc drivers/gpu/drm/amd/display/dc/calcs/Makefile
index 16614d73a5fc,d930df63772c..985633c08a26
--- a/drivers/gpu/drm/amd/display/dc/calcs/Makefile
+++ b/drivers/gpu/drm/amd/display/dc/calcs/Makefile
@@@ -32,13 -32,9 +32,13 @@@ endi
  
  calcs_ccflags := -mhard-float -msse $(cc_stack_align)
  
 +ifdef CONFIG_CC_IS_CLANG
 +calcs_ccflags += -msse2
 +endif
 +
- CFLAGS_dcn_calcs.o := $(calcs_ccflags)
- CFLAGS_dcn_calc_auto.o := $(calcs_ccflags)
- CFLAGS_dcn_calc_math.o := $(calcs_ccflags) -Wno-tautological-compare
+ CFLAGS_$(AMDDALPATH)/dc/calcs/dcn_calcs.o := $(calcs_ccflags)
+ CFLAGS_$(AMDDALPATH)/dc/calcs/dcn_calc_auto.o := $(calcs_ccflags)
+ CFLAGS_$(AMDDALPATH)/dc/calcs/dcn_calc_math.o := $(calcs_ccflags) -Wno-tautological-compare
  
  BW_CALCS = dce_calcs.o bw_fixed.o custom_float.o
  
diff --cc drivers/gpu/drm/amd/display/dc/dcn20/Makefile
index f57a3b281408,83635ad9124e..2b399cfa72e6
--- a/drivers/gpu/drm/amd/display/dc/dcn20/Makefile
+++ b/drivers/gpu/drm/amd/display/dc/dcn20/Makefile
@@@ -16,12 -16,8 +16,12 @@@ else ifneq ($(call cc-option, -mstack-a
  	cc_stack_align := -mstack-alignment=16
  endif
  
- CFLAGS_dcn20_resource.o := -mhard-float -msse $(cc_stack_align)
+ CFLAGS_$(AMDDALPATH)/dc/dcn20/dcn20_resource.o := -mhard-float -msse $(cc_stack_align)
  
 +ifdef CONFIG_CC_IS_CLANG
 +CFLAGS_dcn20_resource.o += -msse2
 +endif
 +
  AMD_DAL_DCN20 = $(addprefix $(AMDDALPATH)/dc/dcn20/,$(DCN20))
  
  AMD_DISPLAY_FILES += $(AMD_DAL_DCN20)
diff --cc drivers/gpu/drm/amd/display/dc/dcn21/Makefile
index b2b39090fb57,000000000000..8cd9de8b1a7a
mode 100644,000000..100644
--- a/drivers/gpu/drm/amd/display/dc/dcn21/Makefile
+++ b/drivers/gpu/drm/amd/display/dc/dcn21/Makefile
@@@ -1,10 -1,0 +1,10 @@@
 +#
 +# Makefile for DCN21.
 +
 +DCN21 = dcn21_hubp.o dcn21_hubbub.o dcn21_resource.o
 +
- CFLAGS_dcn21_resource.o := -mhard-float -msse -mpreferred-stack-boundary=4
++CFLAGS_$(AMDDALPATH)/dc/dcn21/dcn21_resource.o := -mhard-float -msse -mpreferred-stack-boundary=4
 +
 +AMD_DAL_DCN21 = $(addprefix $(AMDDALPATH)/dc/dcn21/,$(DCN21))
 +
 +AMD_DISPLAY_FILES += $(AMD_DAL_DCN21)
diff --cc drivers/gpu/drm/amd/display/dc/dml/Makefile
index af2a864a6da0,83792e2c0f0e..5b2a65b42403
--- a/drivers/gpu/drm/amd/display/dc/dml/Makefile
+++ b/drivers/gpu/drm/amd/display/dc/dml/Makefile
@@@ -32,29 -32,16 +32,26 @@@ endi
  
  dml_ccflags := -mhard-float -msse $(cc_stack_align)
  
 +ifdef CONFIG_CC_IS_CLANG
 +dml_ccflags += -msse2
 +endif
 +
- CFLAGS_display_mode_lib.o := $(dml_ccflags)
+ CFLAGS_$(AMDDALPATH)/dc/dml/display_mode_lib.o := $(dml_ccflags)
  
  ifdef CONFIG_DRM_AMD_DC_DCN2_0
- CFLAGS_display_mode_vba.o := $(dml_ccflags)
- CFLAGS_display_mode_vba_20.o := $(dml_ccflags)
- CFLAGS_display_rq_dlg_calc_20.o := $(dml_ccflags)
- CFLAGS_display_mode_vba_20v2.o := $(dml_ccflags)
- CFLAGS_display_rq_dlg_calc_20v2.o := $(dml_ccflags)
+ CFLAGS_$(AMDDALPATH)/dc/dml/display_mode_vba.o := $(dml_ccflags)
+ CFLAGS_$(AMDDALPATH)/dc/dml/dcn20/display_mode_vba_20.o := $(dml_ccflags)
+ CFLAGS_$(AMDDALPATH)/dc/dml/dcn20/display_rq_dlg_calc_20.o := $(dml_ccflags)
++CFLAGS_$(AMDDALPATH)/dc/dml/dcn20/display_mode_vba_20v2.o := $(dml_ccflags)
++CFLAGS_$(AMDDALPATH)/dc/dml/dcn20/display_rq_dlg_calc_20v2.o := $(dml_ccflags)
 +endif
 +ifdef CONFIG_DRM_AMD_DC_DCN2_1
- CFLAGS_display_mode_vba_21.o := $(dml_ccflags)
- CFLAGS_display_rq_dlg_calc_21.o := $(dml_ccflags)
++CFLAGS_$(AMDDALPATH)/dc/dml/dcn21/display_mode_vba_21.o := $(dml_ccflags)
++CFLAGS_$(AMDDALPATH)/dc/dml/dcn21/display_rq_dlg_calc_21.o := $(dml_ccflags)
  endif
- ifdef CONFIG_DRM_AMD_DCN3AG
- CFLAGS_display_mode_vba_3ag.o := $(dml_ccflags)
- endif
- CFLAGS_dml1_display_rq_dlg_calc.o := $(dml_ccflags)
- CFLAGS_display_rq_dlg_helpers.o := $(dml_ccflags)
- CFLAGS_dml_common_defs.o := $(dml_ccflags)
+ CFLAGS_$(AMDDALPATH)/dc/dml/dml1_display_rq_dlg_calc.o := $(dml_ccflags)
+ CFLAGS_$(AMDDALPATH)/dc/dml/display_rq_dlg_helpers.o := $(dml_ccflags)
+ CFLAGS_$(AMDDALPATH)/dc/dml/dml_common_defs.o := $(dml_ccflags)
  
  DML = display_mode_lib.o display_rq_dlg_helpers.o dml1_display_rq_dlg_calc.o \
  	dml_common_defs.o
diff --cc drivers/gpu/drm/amd/display/dc/dsc/Makefile
index 17db603f2d1f,c3922d6e7696..b456cd23c6fa
--- a/drivers/gpu/drm/amd/display/dc/dsc/Makefile
+++ b/drivers/gpu/drm/amd/display/dc/dsc/Makefile
@@@ -9,14 -9,9 +9,13 @@@ endi
  
  dsc_ccflags := -mhard-float -msse $(cc_stack_align)
  
 +ifdef CONFIG_CC_IS_CLANG
 +dsc_ccflags += -msse2
 +endif
 +
- CFLAGS_rc_calc.o := $(dsc_ccflags)
- CFLAGS_rc_calc_dpi.o := $(dsc_ccflags)
- CFLAGS_codec_main_amd.o := $(dsc_ccflags)
- CFLAGS_dc_dsc.o := $(dsc_ccflags)
+ CFLAGS_$(AMDDALPATH)/dc/dsc/rc_calc.o := $(dsc_ccflags)
+ CFLAGS_$(AMDDALPATH)/dc/dsc/rc_calc_dpi.o := $(dsc_ccflags)
+ CFLAGS_$(AMDDALPATH)/dc/dsc/dc_dsc.o := $(dsc_ccflags)
  
  DSC = dc_dsc.o rc_calc.o rc_calc_dpi.o
  
diff --cc scripts/link-vmlinux.sh
index 8c59970a09dc,2438a9faf3f1..fc656ce5e594
--- a/scripts/link-vmlinux.sh
+++ b/scripts/link-vmlinux.sh
@@@ -56,17 -56,14 +56,18 @@@ modpost_link(
  }
  
  # Link of vmlinux
 -# ${1} - optional extra .o files
 -# ${2} - output file
 +# ${1} - output file
 +# ${2}, ${3}, ... - optional extra .o files
  vmlinux_link()
  {
 -	info LD ${2}
++	info LD ${1}
  	local lds="${objtree}/${KBUILD_LDS}"
 +	local output=${1}
  	local objects
  
 +	# skip output file argument
 +	shift
 +
  	if [ "${SRCARCH}" != "um" ]; then
  		objects="--whole-archive			\
  			${KBUILD_VMLINUX_OBJS}			\
@@@ -157,6 -139,18 +158,18 @@@ kallsyms(
  	${CC} ${aflags} -c -o ${2} ${afile}
  }
  
+ # Perform one step in kallsyms generation, including temporary linking of
+ # vmlinux.
+ kallsyms_step()
+ {
+ 	kallsymso_prev=${kallsymso}
+ 	kallsymso=.tmp_kallsyms${1}.o
+ 	kallsyms_vmlinux=.tmp_vmlinux${1}
+ 
 -	vmlinux_link "${kallsymso_prev}" ${kallsyms_vmlinux}
++	vmlinux_link ${kallsyms_vmlinux} "${kallsymso_prev}" ${btf_vmlinux_bin_o}
+ 	kallsyms ${kallsyms_vmlinux} ${kallsymso}
+ }
+ 
  # Create map file with all symbols from ${1}
  # See mksymap for additional details
  mksysmap()
@@@ -235,14 -228,8 +248,15 @@@ ${MAKE} -f "${srctree}/scripts/Makefile
  info MODINFO modules.builtin.modinfo
  ${OBJCOPY} -j .modinfo -O binary vmlinux.o modules.builtin.modinfo
  
 +btf_vmlinux_bin_o=""
 +if [ -n "${CONFIG_DEBUG_INFO_BTF}" ]; then
 +	if gen_btf .tmp_vmlinux.btf .btf.vmlinux.bin.o ; then
 +		btf_vmlinux_bin_o=.btf.vmlinux.bin.o
 +	fi
 +fi
 +
  kallsymso=""
+ kallsymso_prev=""
  kallsyms_vmlinux=""
  if [ -n "${CONFIG_KALLSYMS}" ]; then
  
@@@ -293,8 -268,11 +295,7 @@@
  	fi
  fi
  
- info LD vmlinux
 -vmlinux_link "${kallsymso}" vmlinux
 -
 -if [ -n "${CONFIG_DEBUG_INFO_BTF}" ]; then
 -	gen_btf vmlinux
 -fi
 +vmlinux_link vmlinux "${kallsymso}" "${btf_vmlinux_bin_o}"
  
  if [ -n "${CONFIG_BUILDTIME_EXTABLE_SORT}" ]; then
  	info SORTEX vmlinux
Linus Torvalds Sept. 20, 2019, 3:40 p.m. UTC | #7
On Thu, Sep 19, 2019 at 8:48 PM Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> No problem. I'm used to merges, and I appreciate the heads-up.

Heh. The Kbuild merge turns out to be painful for other trees too. I
suspect the module tree isn't going to be any worse than the
DEBUG_INFO_BTF conflict.

             Linus
pr-tracker-bot@kernel.org Sept. 20, 2019, 4:35 p.m. UTC | #8
The pull request you sent on Sun, 15 Sep 2019 22:27:05 +0900:

> git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git tags/kbuild-v5.4

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/d7b0827f28ab3a4fd65864451ffefa695e3255fd

Thank you!