mbox series

[GIT,PULL] Kbuild updates for v6.11-rc1

Message ID CAK7LNATbZgv6JNzSXznOm47oNUXku430-taoK4iE1G0YcBy4Lw@mail.gmail.com (mailing list archive)
State New
Headers show
Series [GIT,PULL] Kbuild updates for v6.11-rc1 | expand

Pull-request

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

Message

Masahiro Yamada July 23, 2024, 7:44 p.m. UTC
Hello Linus,

Please pull Kbuild updates for v6.11-rc1




You will get a merge conflict in scripts/Makefile.lib

It is a conflict between the following two commits:
 49636c5680b977d8a39263c6c8db6061c427346e
 712aba5543b88996bc4682086471076fbf048927

The resolution exists in linux-next.


Thank you.





The following changes since commit 256abd8e550ce977b728be79a74e1729438b4948:

  Linux 6.10-rc7 (2024-07-07 14:23:46 -0700)

are available in the Git repository at:

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

for you to fetch changes up to 13c239a2c088e91e453d26517b562c9a116444fa:

  kbuild: doc: gcc to CC change (2024-07-24 01:18:25 +0900)

----------------------------------------------------------------
Kbuild updates for v6.11

 - Remove tristate choice support from Kconfig

 - Stop using the PROVIDE() directive in the linker script

 - Reduce the number of links for the combination of CONFIG_DEBUG_INFO_BTF
   and CONFIG_KALLSYMS

 - Enable the warning for symbol reference to .exit.* sections by default

 - Fix warnings in RPM package builds

 - Improve scripts/make_fit.py to generate a FIT image with separate base
   DTB and overlays

 - Improve choice value calculation in Kconfig

 - Fix conditional prompt behavior in choice in Kconfig

 - Remove support for the uncommon EMAIL environment variable in Debian
   package builds

 - Remove support for the uncommon "name <email>" form for the DEBEMAIL
   environment variable

 - Raise the minimum supported GNU Make version to 4.0

 - Remove stale code for the absolute kallsyms

 - Move header files commonly used for host programs to scripts/include/

 - Introduce the pacman-pkg target to generate a pacman package used in
   Arch Linux

 - Clean up Kconfig

----------------------------------------------------------------
Chen-Yu Tsai (1):
      scripts/make_fit: Support decomposing DTBs

HONG Yifan (1):
      kconfig: recursive checks drop file/lineno

Ivan Davydov (1):
      kbuild: doc: gcc to CC change

Jann Horn (1):
      kallsyms: get rid of code for absolute kallsyms

Masahiro Yamada (55):
      initramfs: shorten cmd_initfs in usr/Makefile
      kconfig: qconf: remove initial call to conf_changed()
      kconfig: gconf: remove unnecessary forward declarations
      kconfig: gconf: move conf_changed() definition up
      kconfig: pass new conf_changed value to the callback
      kconfig: remove tristate choice support
      kconfig: refactor conf_set_all_new_symbols() to reduce indentation level
      kconfig: refactor conf_write_defconfig() to reduce indentation level
      kbuild: refactor variables in scripts/link-vmlinux.sh
      kbuild: remove PROVIDE() for kallsyms symbols
      kbuild: merge temporary vmlinux for BTF and kallsyms
      kconfig: add -e and -u options to *conf-cfg.sh scripts
      kconfig: remove unneeded code in expr_compare_type()
      kconfig: add fallthrough comments to expr_compare_type()
      kconfig: introduce choice_set_value() helper
      kconfig: remember the current choice while parsing the choice block
      kbuild: move init/build-version to scripts/
      kconfig: import list_move(_tail) and list_for_each_entry_reverse macros
      kconfig: refactor choice value calculation
      kconfig: remove sym_get_choice_value()
      kconfig: remove conf_unsaved in conf_read_simple()
      kconfig: change sym_choice_default() to take the choice menu
      kconfig: use menu_list_for_each_sym() in sym_choice_default()
      kconfig: remove expr_list_for_each_sym() macro
      kconfig: use sym_get_choice_menu() in sym_check_print_recursive()
      kconfig: use sym_get_choice_menu() in sym_check_choice_deps()
      kconfig: use sym_get_choice_menu() in sym_check_deps()
      kconfig: remove P_CHOICE property
      kconfig: remove E_LIST expression type
      treewide: change conditional prompt for choices to 'depends on'
      kconfig: fix conditional prompt behavior for choice
      kconfig: improve error message for dependency between choice members
      kconfig: improve error message for recursive dependency in choice
      kconfig: refactor error messages in sym_check_print_recursive()
      kbuild: deb-pkg: remove support for EMAIL environment variable
      kbuild: deb-pkg: remove support for "name <email>" form for DEBEMAIL
      kbuild: package: add -e and -u options to some shell scripts
      kbuild: avoid build error when single DTB is turned into composite DTB
      kbuild: raise the minimum GNU Make requirement to 4.0
      modpost: remove self-definitions of R_ARM_* macros
      modpost: rename R_ARM_THM_CALL to R_ARM_THM_PC22
      kbuild: deb-pkg: use default string when variable is unset or null
      kconfig: call expr_eliminate_yn() at least once in expr_eliminate_dups()
      kconfig: add const qualifiers to several function arguments
      kconfig: remove SYMBOL_CHOICEVAL flag
      kconfig: remove 'e1' and 'e2' macros from expression deduplication
      kbuild: clean up scripts/remove-stale-files
      Makefile: add comment to discourage tools/* addition for kernel builds
      kbuild: move some helper headers from scripts/kconfig/ to scripts/include/
      modpost: use generic macros for hash table implementation
      kallsyms: avoid repeated calculation of array size for markers
      kallsyms: use \t instead of a tab in printf()
      kallsyms: add more original symbol type/name in comment lines
      kallsyms: unify seq and start_pos fields of struct sym_entry
      kallsyms: change sym_entry::percpu_absolute to bool type

Rafael Aquini (2):
      kbuild: rpm-pkg: make sure to have versioned 'Obsoletes' for kernel.spec
      kbuild: rpm-pkg: introduce a simple changelog section for kernel.spec

Thomas Weißschuh (1):
      kbuild: add script and target to generate pacman package

Uwe Kleine-König (1):
      modpost: Enable section warning from *driver to .exit.text

Zhang Bingwu (2):
      kbuild: Abort make on install failures
      kbuild: Create INSTALL_PATH directory if it does not exist

 .gitignore                                                    |   6 +
 Documentation/kbuild/kconfig-language.rst                     |  11 +-
 Documentation/kbuild/makefiles.rst                            |   6 +-
 Documentation/process/changes.rst                             |   4 +-
 MAINTAINERS                                                   |   8 +
 Makefile                                                      |  36 ++--
 arch/arm/Kconfig                                              |   6 +-
 arch/arm/boot/install.sh                                      |   2 +
 arch/arm64/Kconfig                                            |   3 +-
 arch/arm64/boot/install.sh                                    |   2 +
 arch/m68k/install.sh                                          |   2 +
 arch/mips/Kconfig                                             |   6 +-
 arch/nios2/boot/install.sh                                    |   2 +
 arch/parisc/install.sh                                        |   2 +
 arch/powerpc/Kconfig                                          |   3 +-
 arch/riscv/Kconfig                                            |   3 +-
 arch/riscv/boot/install.sh                                    |   2 +
 arch/s390/boot/install.sh                                     |   2 +
 arch/sparc/boot/install.sh                                    |   2 +
 arch/x86/boot/install.sh                                      |   2 +
 fs/jffs2/Kconfig                                              |   3 +-
 include/asm-generic/vmlinux.lds.h                             |  19 --
 init/Kconfig                                                  |  18 --
 init/Makefile                                                 |   2 +-
 kernel/kallsyms.c                                             |   5 +-
 kernel/kallsyms_internal.h                                    |   6 -
 kernel/vmcore_info.c                                          |   4 -
 scripts/Kbuild.include                                        |   2 +-
 scripts/Makefile.lib                                          |   7 +-
 scripts/Makefile.package                                      |  14 ++
 {init => scripts}/build-version                               |   0
 scripts/{kconfig => include}/array_size.h                     |   0
 scripts/{kconfig => include}/hashtable.h                      |   0
 scripts/{kconfig => include}/list.h                           |  53 ++++++
 scripts/{kconfig => include}/list_types.h                     |   0
 scripts/install.sh                                            |   4 +
 scripts/kallsyms.c                                            | 125
++++++-------
 scripts/kconfig/conf.c                                        | 238
++++++++++--------------
 scripts/kconfig/confdata.c                                    | 127
++++---------
 scripts/kconfig/expr.c                                        | 128
++++++-------
 scripts/kconfig/expr.h                                        |  29 ++-
 scripts/kconfig/gconf-cfg.sh                                  |   2 +
 scripts/kconfig/gconf.c                                       |  26 ++-
 scripts/kconfig/internal.h                                    |   2 +-
 scripts/kconfig/lkc.h                                         |  34 ++--
 scripts/kconfig/lkc_proto.h                                   |  16 +-
 scripts/kconfig/mconf-cfg.sh                                  |   2 +
 scripts/kconfig/mconf.c                                       |  38 ++--
 scripts/kconfig/menu.c                                        | 111
++----------
 scripts/kconfig/mnconf-common.c                               |   2 +-
 scripts/kconfig/mnconf-common.h                               |   2 +
 scripts/kconfig/nconf-cfg.sh                                  |   2 +
 scripts/kconfig/nconf.c                                       |  38 ++--
 scripts/kconfig/parser.y                                      |  45 ++---
 scripts/kconfig/preprocess.c                                  |   4 +-
 scripts/kconfig/qconf-cfg.sh                                  |   2 +
 scripts/kconfig/qconf.cc                                      |  20 +--
 scripts/kconfig/qconf.h                                       |   2 +-
 scripts/kconfig/symbol.c                                      | 369
++++++++++++++++++++------------------
 scripts/kconfig/tests/choice/Kconfig                          |  17 --
 scripts/kconfig/tests/choice/__init__.py                      |  10 --
 scripts/kconfig/tests/choice/alldef_expected_config           |   3 -
 scripts/kconfig/tests/choice/allmod_expected_config           |   3 -
 scripts/kconfig/tests/choice/allno_expected_config            |   3 -
 scripts/kconfig/tests/choice/allyes_expected_config           |   3 -
 scripts/kconfig/tests/choice/oldask0_expected_stdout          |   4 -
 scripts/kconfig/tests/choice/oldask1_config                   |   1 -
 scripts/kconfig/tests/choice/oldask1_expected_stdout          |   9 -
 scripts/kconfig/tests/choice_value_with_m_dep/Kconfig         |  21 ---
 scripts/kconfig/tests/choice_value_with_m_dep/__init__.py     |  16 --
 scripts/kconfig/tests/choice_value_with_m_dep/config          |   2 -
 scripts/kconfig/tests/choice_value_with_m_dep/expected_config |   3 -
 scripts/kconfig/tests/choice_value_with_m_dep/expected_stdout |   4 -
 scripts/kconfig/tests/err_recursive_dep/expected_stderr       |  36 ++--
 scripts/kconfig/tests/inter_choice/Kconfig                    |  25 ---
 scripts/kconfig/tests/inter_choice/__init__.py                |  15 --
 scripts/kconfig/tests/inter_choice/defconfig                  |   1 -
 scripts/kconfig/tests/inter_choice/expected_config            |   4 -
 scripts/kconfig/util.c                                        |   4 +-
 scripts/link-vmlinux.sh                                       | 105 ++++++-----
 scripts/make_fit.py                                           |  86 ++++++---
 scripts/mod/list.h                                            | 213
----------------------
 scripts/mod/modpost.c                                         |  67 +------
 scripts/mod/modpost.h                                         |   2 +-
 scripts/package/PKGBUILD                                      | 108 +++++++++++
 scripts/package/builddeb                                      |   2 +-
 scripts/package/buildtar                                      |   2 +-
 scripts/package/gen-diff-patch                                |   2 +
 scripts/package/install-extmod-build                          |   5 +-
 scripts/package/kernel.spec                                   |   2 +-
 scripts/package/mkdebian                                      |  44 ++---
 scripts/package/mkspec                                        |  27 ++-
 scripts/remove-stale-files                                    |  18 --
 tools/perf/tests/vmlinux-kallsyms.c                           |   1 -
 usr/Makefile                                                  |   4 +-
 95 files changed, 1016 insertions(+), 1467 deletions(-)
 rename {init => scripts}/build-version (100%)
 rename scripts/{kconfig => include}/array_size.h (100%)
 rename scripts/{kconfig => include}/hashtable.h (100%)
 rename scripts/{kconfig => include}/list.h (81%)
 rename scripts/{kconfig => include}/list_types.h (100%)
 delete mode 100644 scripts/kconfig/tests/choice/oldask1_config
 delete mode 100644 scripts/kconfig/tests/choice/oldask1_expected_stdout
 delete mode 100644 scripts/kconfig/tests/choice_value_with_m_dep/Kconfig
 delete mode 100644 scripts/kconfig/tests/choice_value_with_m_dep/__init__.py
 delete mode 100644 scripts/kconfig/tests/choice_value_with_m_dep/config
 delete mode 100644
scripts/kconfig/tests/choice_value_with_m_dep/expected_config
 delete mode 100644
scripts/kconfig/tests/choice_value_with_m_dep/expected_stdout
 delete mode 100644 scripts/kconfig/tests/inter_choice/Kconfig
 delete mode 100644 scripts/kconfig/tests/inter_choice/__init__.py
 delete mode 100644 scripts/kconfig/tests/inter_choice/defconfig
 delete mode 100644 scripts/kconfig/tests/inter_choice/expected_config
 delete mode 100644 scripts/mod/list.h
 create mode 100644 scripts/package/PKGBUILD

Comments

pr-tracker-bot@kernel.org July 23, 2024, 9:40 p.m. UTC | #1
The pull request you sent on Wed, 24 Jul 2024 04:44:06 +0900:

> git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git tags/kbuild-v6.11

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

Thank you!
Linus Torvalds July 23, 2024, 9:49 p.m. UTC | #2
On Tue, 23 Jul 2024 at 12:44, Masahiro Yamada <masahiroy@kernel.org> wrote:
>
> You will get a merge conflict in scripts/Makefile.lib

So the merge conflict certainly wasn't too bad, but I really don't
love the complex  fdtoverlay command duplication.

Strangely enough, there's a simplification for the DT_CHECK_CMD case
(used only once), but not for this creation case (now duplicate).

I didn't do it as part of the merge, but may I suggest adding something like

  DT_CREATE_CMD = $(objtree)/scripts/dtc/fdtoverlay -i $(filter %.dtb
%.dtbo, $^) -o

and then using

   $(DT_CREATE_CMD) $@

to pair up with the existing "$(DT_CHECK_CMD) $@" logic?

Or something along those lines?

(And no, I didn't check whether maybe the argument order for the
'fdtoverlay' script might matter, or something like that - I don't
think it does, but I did *not* test the above suggestion or really try
to think about it deeply, just mostly a reaction against the command
duplication particularly when there is now a comment about the
subtlety of the arguments)

             Linus
Masahiro Yamada July 25, 2024, 7:29 p.m. UTC | #3
Hi Linus,


On Wed, Jul 24, 2024 at 6:49 AM Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> On Tue, 23 Jul 2024 at 12:44, Masahiro Yamada <masahiroy@kernel.org> wrote:
> >
> > You will get a merge conflict in scripts/Makefile.lib
>
> So the merge conflict certainly wasn't too bad, but I really don't
> love the complex  fdtoverlay command duplication.
>
> Strangely enough, there's a simplification for the DT_CHECK_CMD case
> (used only once), but not for this creation case (now duplicate).
>
> I didn't do it as part of the merge, but may I suggest adding something like
>
>   DT_CREATE_CMD = $(objtree)/scripts/dtc/fdtoverlay -i $(filter %.dtb
> %.dtbo, $^) -o
>
> and then using
>
>    $(DT_CREATE_CMD) $@
>
> to pair up with the existing "$(DT_CHECK_CMD) $@" logic?
>
> Or something along those lines?



I deduplicated the code in a slightly different way.


https://lore.kernel.org/lkml/20240725192317.258132-1-masahiroy@kernel.org/T/#u


Anyway, this is not an urgent issue. I will include it in my next pull request.



>
> (And no, I didn't check whether maybe the argument order for the
> 'fdtoverlay' script might matter, or something like that - I don't
> think it does, but I did *not* test the above suggestion or really try
> to think about it deeply, just mostly a reaction against the command
> duplication particularly when there is now a comment about the
> subtlety of the arguments)
>
>              Linus


--
Best Regards
Masahiro Yamada
Linus Torvalds July 25, 2024, 7:44 p.m. UTC | #4
On Thu, 25 Jul 2024 at 12:30, Masahiro Yamada <masahiroy@kernel.org> wrote:
>
> I deduplicated the code in a slightly different way.

Thanks, looks fine (from just a quick look at the patch),

           Linus