Skip to content

Commit ca83c61

Browse files
committed
Merge tag 'kbuild-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
Pull Kbuild updates from Masahiro Yamada: - 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_KALLSYMS and CONFIG_DEBUG_INFO_BTF - 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 * tag 'kbuild-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (65 commits) kbuild: doc: gcc to CC change kallsyms: change sym_entry::percpu_absolute to bool type kallsyms: unify seq and start_pos fields of struct sym_entry kallsyms: add more original symbol type/name in comment lines kallsyms: use \t instead of a tab in printf() kallsyms: avoid repeated calculation of array size for markers kbuild: add script and target to generate pacman package modpost: use generic macros for hash table implementation kbuild: move some helper headers from scripts/kconfig/ to scripts/include/ Makefile: add comment to discourage tools/* addition for kernel builds kbuild: clean up scripts/remove-stale-files kconfig: recursive checks drop file/lineno kbuild: rpm-pkg: introduce a simple changelog section for kernel.spec kallsyms: get rid of code for absolute kallsyms kbuild: Create INSTALL_PATH directory if it does not exist kbuild: Abort make on install failures kconfig: remove 'e1' and 'e2' macros from expression deduplication kconfig: remove SYMBOL_CHOICEVAL flag kconfig: add const qualifiers to several function arguments kconfig: call expr_eliminate_yn() at least once in expr_eliminate_dups() ...
2 parents 643af93 + 13c239a commit ca83c61

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+1016
-1467
lines changed

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,12 @@ modules.order
9292
#
9393
/tar-install/
9494

95+
#
96+
# pacman files (make pacman-pkg)
97+
#
98+
/PKGBUILD
99+
/pacman/
100+
95101
#
96102
# We don't want to ignore the following even if they are dot-files
97103
#

Documentation/kbuild/kconfig-language.rst

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -409,16 +409,9 @@ choices::
409409
"endchoice"
410410

411411
This defines a choice group and accepts any of the above attributes as
412-
options. A choice can only be of type bool or tristate. If no type is
413-
specified for a choice, its type will be determined by the type of
414-
the first choice element in the group or remain unknown if none of the
415-
choice elements have a type specified, as well.
416-
417-
While a boolean choice only allows a single config entry to be
418-
selected, a tristate choice also allows any number of config entries
419-
to be set to 'm'. This can be used if multiple drivers for a single
420-
hardware exists and only a single driver can be compiled/loaded into
421-
the kernel, but all drivers can be compiled as modules.
412+
options.
413+
414+
A choice only allows a single config entry to be selected.
422415

423416
comment::
424417

Documentation/kbuild/makefiles.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -578,7 +578,7 @@ cc-option
578578
Note: cc-option uses KBUILD_CFLAGS for $(CC) options
579579

580580
cc-option-yn
581-
cc-option-yn is used to check if gcc supports a given option
581+
cc-option-yn is used to check if $(CC) supports a given option
582582
and return "y" if supported, otherwise "n".
583583

584584
Example::
@@ -596,7 +596,7 @@ cc-option-yn
596596
Note: cc-option-yn uses KBUILD_CFLAGS for $(CC) options
597597

598598
cc-disable-warning
599-
cc-disable-warning checks if gcc supports a given warning and returns
599+
cc-disable-warning checks if $(CC) supports a given warning and returns
600600
the commandline switch to disable it. This special function is needed,
601601
because gcc 4.4 and later accept any unknown -Wno-* option and only
602602
warn about it if there is another warning in the source file.
@@ -606,7 +606,7 @@ cc-disable-warning
606606
KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
607607

608608
In the above example, -Wno-unused-but-set-variable will be added to
609-
KBUILD_CFLAGS only if gcc really accepts it.
609+
KBUILD_CFLAGS only if $(CC) really accepts it.
610610

611611
gcc-min-version
612612
gcc-min-version tests if the value of $(CONFIG_GCC_VERSION) is greater than

Documentation/process/changes.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ GNU C 5.1 gcc --version
3333
Clang/LLVM (optional) 13.0.1 clang --version
3434
Rust (optional) 1.78.0 rustc --version
3535
bindgen (optional) 0.65.1 bindgen --version
36-
GNU make 3.82 make --version
36+
GNU make 4.0 make --version
3737
bash 4.2 bash --version
3838
binutils 2.25 ld -v
3939
flex 2.5.35 flex --version
@@ -112,7 +112,7 @@ It depends on ``libclang``.
112112
Make
113113
----
114114

115-
You will need GNU make 3.82 or later to build the kernel.
115+
You will need GNU make 4.0 or later to build the kernel.
116116

117117
Bash
118118
----

MAINTAINERS

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12117,6 +12117,7 @@ F: scripts/Makefile*
1211712117
F: scripts/basic/
1211812118
F: scripts/clang-tools/
1211912119
F: scripts/dummy-tools/
12120+
F: scripts/include/
1212012121
F: scripts/mk*
1212112122
F: scripts/mod/
1212212123
F: scripts/package/
@@ -12172,6 +12173,13 @@ F: include/uapi/linux/nfsd/
1217212173
F: include/uapi/linux/sunrpc/
1217312174
F: net/sunrpc/
1217412175

12176+
KERNEL PACMAN PACKAGING (in addition to generic KERNEL BUILD)
12177+
M: Thomas Weißschuh <linux@weissschuh.net>
12178+
R: Christian Heusel <christian@heusel.eu>
12179+
R: Nathan Chancellor <nathan@kernel.org>
12180+
S: Maintained
12181+
F: scripts/package/PKGBUILD
12182+
1217512183
KERNEL REGRESSIONS
1217612184
M: Thorsten Leemhuis <linux@leemhuis.info>
1217712185
L: regressions@lists.linux.dev

Makefile

Lines changed: 14 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ NAME = Baby Opossum Posse
1111
# Comments in this file are targeted only to the developer, do not
1212
# expect to learn how to build the kernel reading this file.
1313

14-
ifeq ($(filter undefine,$(.FEATURES)),)
15-
$(error GNU Make >= 3.82 is required. Your Make version is $(MAKE_VERSION))
14+
ifeq ($(filter output-sync,$(.FEATURES)),)
15+
$(error GNU Make >= 4.0 is required. Your Make version is $(MAKE_VERSION))
1616
endif
1717

1818
$(if $(filter __%, $(MAKECMDGOALS)), \
@@ -93,15 +93,7 @@ endif
9393

9494
# If the user is running make -s (silent mode), suppress echoing of
9595
# commands
96-
# make-4.0 (and later) keep single letter options in the 1st word of MAKEFLAGS.
97-
98-
ifeq ($(filter 3.%,$(MAKE_VERSION)),)
99-
short-opts := $(firstword -$(MAKEFLAGS))
100-
else
101-
short-opts := $(filter-out --%,$(MAKEFLAGS))
102-
endif
103-
104-
ifneq ($(findstring s,$(short-opts)),)
96+
ifneq ($(findstring s,$(firstword -$(MAKEFLAGS))),)
10597
quiet=silent_
10698
override KBUILD_VERBOSE :=
10799
endif
@@ -201,14 +193,6 @@ ifneq ($(words $(subst :, ,$(abs_srctree))), 1)
201193
$(error source directory cannot contain spaces or colons)
202194
endif
203195

204-
ifneq ($(filter 3.%,$(MAKE_VERSION)),)
205-
# 'MAKEFLAGS += -rR' does not immediately become effective for GNU Make 3.x
206-
# We need to invoke sub-make to avoid implicit rules in the top Makefile.
207-
need-sub-make := 1
208-
# Cancel implicit rules for this Makefile.
209-
$(this-makefile): ;
210-
endif
211-
212196
export sub_make_done := 1
213197

214198
endif # sub_make_done
@@ -474,8 +458,10 @@ export rust_common_flags := --edition=2021 \
474458
-Dclippy::no_mangle_with_rust_abi \
475459
-Wclippy::dbg_macro
476460

477-
KBUILD_HOSTCFLAGS := $(KBUILD_USERHOSTCFLAGS) $(HOST_LFS_CFLAGS) $(HOSTCFLAGS)
478-
KBUILD_HOSTCXXFLAGS := -Wall -O2 $(HOST_LFS_CFLAGS) $(HOSTCXXFLAGS)
461+
KBUILD_HOSTCFLAGS := $(KBUILD_USERHOSTCFLAGS) $(HOST_LFS_CFLAGS) \
462+
$(HOSTCFLAGS) -I $(srctree)/scripts/include
463+
KBUILD_HOSTCXXFLAGS := -Wall -O2 $(HOST_LFS_CFLAGS) $(HOSTCXXFLAGS) \
464+
-I $(srctree)/scripts/include
479465
KBUILD_HOSTRUSTFLAGS := $(rust_common_flags) -O -Cstrip=debuginfo \
480466
-Zallow-features= $(HOSTRUSTFLAGS)
481467
KBUILD_HOSTLDFLAGS := $(HOST_LFS_LDFLAGS) $(HOSTLDFLAGS)
@@ -1344,6 +1330,12 @@ prepare: tools/bpf/resolve_btfids
13441330
endif
13451331
endif
13461332

1333+
# The tools build system is not a part of Kbuild and tends to introduce
1334+
# its own unique issues. If you need to integrate a new tool into Kbuild,
1335+
# please consider locating that tool outside the tools/ tree and using the
1336+
# standard Kbuild "hostprogs" syntax instead of adding a new tools/* entry
1337+
# here. See Documentation/kbuild/makefiles.rst for details.
1338+
13471339
PHONY += resolve_btfids_clean
13481340

13491341
resolve_btfids_O = $(abspath $(objtree))/tools/bpf/resolve_btfids
@@ -1497,7 +1489,7 @@ CLEAN_FILES += vmlinux.symvers modules-only.symvers \
14971489
# Directories & files removed with 'make mrproper'
14981490
MRPROPER_FILES += include/config include/generated \
14991491
arch/$(SRCARCH)/include/generated .objdiff \
1500-
debian snap tar-install \
1492+
debian snap tar-install PKGBUILD pacman \
15011493
.config .config.old .version \
15021494
Module.symvers \
15031495
certs/signing_key.pem \

arch/arm/Kconfig

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1483,7 +1483,8 @@ config ARM_ATAG_DTB_COMPAT
14831483
from the ATAG list and store it at run time into the appended DTB.
14841484

14851485
choice
1486-
prompt "Kernel command line type" if ARM_ATAG_DTB_COMPAT
1486+
prompt "Kernel command line type"
1487+
depends on ARM_ATAG_DTB_COMPAT
14871488
default ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER
14881489

14891490
config ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER
@@ -1512,7 +1513,8 @@ config CMDLINE
15121513
memory size and the root device (e.g., mem=64M root=/dev/nfs).
15131514

15141515
choice
1515-
prompt "Kernel command line type" if CMDLINE != ""
1516+
prompt "Kernel command line type"
1517+
depends on CMDLINE != ""
15161518
default CMDLINE_FROM_BOOTLOADER
15171519

15181520
config CMDLINE_FROM_BOOTLOADER

arch/arm/boot/install.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
# $3 - kernel map file
1818
# $4 - default install path (blank if root directory)
1919

20+
set -e
21+
2022
if [ "$(basename $2)" = "zImage" ]; then
2123
# Compressed install
2224
echo "Installing compressed kernel"

arch/arm64/Kconfig

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2290,7 +2290,8 @@ config CMDLINE
22902290
root device (e.g. root=/dev/nfs).
22912291

22922292
choice
2293-
prompt "Kernel command line type" if CMDLINE != ""
2293+
prompt "Kernel command line type"
2294+
depends on CMDLINE != ""
22942295
default CMDLINE_FROM_BOOTLOADER
22952296
help
22962297
Choose how the kernel will handle the provided default kernel

arch/arm64/boot/install.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
# $3 - kernel map file
1818
# $4 - default install path (blank if root directory)
1919

20+
set -e
21+
2022
if [ "$(basename $2)" = "Image.gz" ] || [ "$(basename $2)" = "vmlinuz.efi" ]
2123
then
2224
# Compressed install

0 commit comments

Comments
 (0)