mirror of
https://github.com/Dasharo/linux.git
synced 2026-03-06 15:25:10 -08:00
Merge tag 'kbuild-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
Pull Kbuild updates from Masahiro Yamada:
- Generate a list of built DTB files (arch/*/boot/dts/dtbs-list)
- Use more threads when building Debian packages in parallel
- Fix warnings shown during the RPM kernel package uninstallation
- Change OBJECT_FILES_NON_STANDARD_*.o etc. to take a relative path to
Makefile
- Support GCC's -fmin-function-alignment flag
- Fix a null pointer dereference bug in modpost
- Add the DTB support to the RPM package
- Various fixes and cleanups in Kconfig
* tag 'kbuild-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (67 commits)
kconfig: tests: test dependency after shuffling choices
kconfig: tests: add a test for randconfig with dependent choices
kconfig: tests: support KCONFIG_SEED for the randconfig runner
kbuild: rpm-pkg: add dtb files in kernel rpm
kconfig: remove unneeded menu_is_visible() call in conf_write_defconfig()
kconfig: check prompt for choice while parsing
kconfig: lxdialog: remove unused dialog colors
kconfig: lxdialog: fix button color for blackbg theme
modpost: fix null pointer dereference
kbuild: remove GCC's default -Wpacked-bitfield-compat flag
kbuild: unexport abs_srctree and abs_objtree
kbuild: Move -Wenum-{compare-conditional,enum-conversion} into W=1
kconfig: remove named choice support
kconfig: use linked list in get_symbol_str() to iterate over menus
kconfig: link menus to a symbol
kbuild: fix inconsistent indentation in top Makefile
kbuild: Use -fmin-function-alignment when available
alpha: merge two entries for CONFIG_ALPHA_GAMMA
alpha: merge two entries for CONFIG_ALPHA_EV4
kbuild: change DTC_FLAGS_<basetarget>.o to take the path relative to $(obj)
...
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -52,6 +52,7 @@
|
||||
*.xz
|
||||
*.zst
|
||||
Module.symvers
|
||||
dtbs-list
|
||||
modules.order
|
||||
|
||||
#
|
||||
|
||||
@@ -393,7 +393,7 @@ of C0, which doesn't depend on M::
|
||||
|
||||
choices::
|
||||
|
||||
"choice" [symbol]
|
||||
"choice"
|
||||
<choice options>
|
||||
<choice block>
|
||||
"endchoice"
|
||||
@@ -412,10 +412,6 @@ the kernel, but all drivers can be compiled as modules.
|
||||
|
||||
A choice accepts another option "optional", which allows to set the
|
||||
choice to 'n' and no entry needs to be selected.
|
||||
If no [symbol] is associated with a choice, then you can not have multiple
|
||||
definitions of that choice. If a [symbol] is associated to the choice,
|
||||
then you may define the same choice (i.e. with the same entries) in another
|
||||
place.
|
||||
|
||||
comment::
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
===================
|
||||
Kconfig make config
|
||||
===================
|
||||
=================================
|
||||
Configuration targets and editors
|
||||
=================================
|
||||
|
||||
This file contains some assistance for using `make *config`.
|
||||
This file contains some assistance for using ``make *config``.
|
||||
|
||||
Use "make help" to list all of the possible configuration targets.
|
||||
Use ``make help`` to list all of the possible configuration targets.
|
||||
|
||||
The xconfig ('qconf'), menuconfig ('mconf'), and nconfig ('nconf')
|
||||
programs also have embedded help text. Be sure to check that for
|
||||
@@ -12,8 +12,9 @@ navigation, search, and other general help text.
|
||||
|
||||
The gconfig ('gconf') program has limited help text.
|
||||
|
||||
|
||||
General
|
||||
-------
|
||||
=======
|
||||
|
||||
New kernel releases often introduce new config symbols. Often more
|
||||
important, new kernel releases may rename config symbols. When
|
||||
@@ -24,118 +25,102 @@ symbols have been introduced.
|
||||
|
||||
To see a list of new config symbols, use::
|
||||
|
||||
cp user/some/old.config .config
|
||||
make listnewconfig
|
||||
cp user/some/old.config .config
|
||||
make listnewconfig
|
||||
|
||||
and the config program will list any new symbols, one per line.
|
||||
|
||||
Alternatively, you can use the brute force method::
|
||||
|
||||
make oldconfig
|
||||
scripts/diffconfig .config.old .config | less
|
||||
make oldconfig
|
||||
scripts/diffconfig .config.old .config | less
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Environment variables for `*config`
|
||||
Environment variables
|
||||
=====================
|
||||
|
||||
KCONFIG_CONFIG
|
||||
--------------
|
||||
This environment variable can be used to specify a default kernel config
|
||||
file name to override the default name of ".config".
|
||||
Environment variables for ``*config``:
|
||||
|
||||
KCONFIG_DEFCONFIG_LIST
|
||||
----------------------
|
||||
``KCONFIG_CONFIG``
|
||||
This environment variable can be used to specify a default kernel config
|
||||
file name to override the default name of ".config".
|
||||
|
||||
This environment variable specifies a list of config files which can be used
|
||||
as a base configuration in case the .config does not exist yet. Entries in
|
||||
the list are separated with whitespaces to each other, and the first one
|
||||
that exists is used.
|
||||
``KCONFIG_DEFCONFIG_LIST``
|
||||
This environment variable specifies a list of config files which can be
|
||||
used as a base configuration in case the .config does not exist yet.
|
||||
Entries in the list are separated with whitespaces to each other, and
|
||||
the first one that exists is used.
|
||||
|
||||
KCONFIG_OVERWRITECONFIG
|
||||
-----------------------
|
||||
If you set KCONFIG_OVERWRITECONFIG in the environment, Kconfig will not
|
||||
break symlinks when .config is a symlink to somewhere else.
|
||||
``KCONFIG_OVERWRITECONFIG``
|
||||
If you set KCONFIG_OVERWRITECONFIG in the environment, Kconfig will not
|
||||
break symlinks when .config is a symlink to somewhere else.
|
||||
|
||||
KCONFIG_WARN_UNKNOWN_SYMBOLS
|
||||
----------------------------
|
||||
This environment variable makes Kconfig warn about all unrecognized
|
||||
symbols in the config input.
|
||||
``KCONFIG_WARN_UNKNOWN_SYMBOLS``
|
||||
This environment variable makes Kconfig warn about all unrecognized
|
||||
symbols in the config input.
|
||||
|
||||
KCONFIG_WERROR
|
||||
--------------
|
||||
If set, Kconfig treats warnings as errors.
|
||||
``KCONFIG_WERROR``
|
||||
If set, Kconfig treats warnings as errors.
|
||||
|
||||
`CONFIG_`
|
||||
---------
|
||||
If you set `CONFIG_` in the environment, Kconfig will prefix all symbols
|
||||
with its value when saving the configuration, instead of using the default,
|
||||
`CONFIG_`.
|
||||
``CONFIG_``
|
||||
If you set ``CONFIG_`` in the environment, Kconfig will prefix all symbols
|
||||
with its value when saving the configuration, instead of using the
|
||||
default, ``CONFIG_``.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Environment variables for ``{allyes/allmod/allno/rand}config``:
|
||||
|
||||
Environment variables for '{allyes/allmod/allno/rand}config'
|
||||
``KCONFIG_ALLCONFIG``
|
||||
The allyesconfig/allmodconfig/allnoconfig/randconfig variants can also
|
||||
use the environment variable KCONFIG_ALLCONFIG as a flag or a filename
|
||||
that contains config symbols that the user requires to be set to a
|
||||
specific value. If KCONFIG_ALLCONFIG is used without a filename where
|
||||
KCONFIG_ALLCONFIG == "" or KCONFIG_ALLCONFIG == "1", ``make *config``
|
||||
checks for a file named "all{yes/mod/no/def/random}.config"
|
||||
(corresponding to the ``*config`` command that was used) for symbol values
|
||||
that are to be forced. If this file is not found, it checks for a
|
||||
file named "all.config" to contain forced values.
|
||||
|
||||
KCONFIG_ALLCONFIG
|
||||
-----------------
|
||||
(partially based on lkml email from/by Rob Landley, re: miniconfig)
|
||||
This enables you to create "miniature" config (miniconfig) or custom
|
||||
config files containing just the config symbols that you are interested
|
||||
in. Then the kernel config system generates the full .config file,
|
||||
including symbols of your miniconfig file.
|
||||
|
||||
--------------------------------------------------
|
||||
This ``KCONFIG_ALLCONFIG`` file is a config file which contains
|
||||
(usually a subset of all) preset config symbols. These variable
|
||||
settings are still subject to normal dependency checks.
|
||||
|
||||
The allyesconfig/allmodconfig/allnoconfig/randconfig variants can also
|
||||
use the environment variable KCONFIG_ALLCONFIG as a flag or a filename
|
||||
that contains config symbols that the user requires to be set to a
|
||||
specific value. If KCONFIG_ALLCONFIG is used without a filename where
|
||||
KCONFIG_ALLCONFIG == "" or KCONFIG_ALLCONFIG == "1", `make *config`
|
||||
checks for a file named "all{yes/mod/no/def/random}.config"
|
||||
(corresponding to the `*config` command that was used) for symbol values
|
||||
that are to be forced. If this file is not found, it checks for a
|
||||
file named "all.config" to contain forced values.
|
||||
Examples::
|
||||
|
||||
This enables you to create "miniature" config (miniconfig) or custom
|
||||
config files containing just the config symbols that you are interested
|
||||
in. Then the kernel config system generates the full .config file,
|
||||
including symbols of your miniconfig file.
|
||||
KCONFIG_ALLCONFIG=custom-notebook.config make allnoconfig
|
||||
|
||||
This 'KCONFIG_ALLCONFIG' file is a config file which contains
|
||||
(usually a subset of all) preset config symbols. These variable
|
||||
settings are still subject to normal dependency checks.
|
||||
or::
|
||||
|
||||
Examples::
|
||||
KCONFIG_ALLCONFIG=mini.config make allnoconfig
|
||||
|
||||
KCONFIG_ALLCONFIG=custom-notebook.config make allnoconfig
|
||||
or::
|
||||
|
||||
or::
|
||||
make KCONFIG_ALLCONFIG=mini.config allnoconfig
|
||||
|
||||
KCONFIG_ALLCONFIG=mini.config make allnoconfig
|
||||
These examples will disable most options (allnoconfig) but enable or
|
||||
disable the options that are explicitly listed in the specified
|
||||
mini-config files.
|
||||
|
||||
or::
|
||||
Environment variables for ``randconfig``:
|
||||
|
||||
make KCONFIG_ALLCONFIG=mini.config allnoconfig
|
||||
``KCONFIG_SEED``
|
||||
You can set this to the integer value used to seed the RNG, if you want
|
||||
to somehow debug the behaviour of the kconfig parser/frontends.
|
||||
If not set, the current time will be used.
|
||||
|
||||
These examples will disable most options (allnoconfig) but enable or
|
||||
disable the options that are explicitly listed in the specified
|
||||
mini-config files.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Environment variables for 'randconfig'
|
||||
|
||||
KCONFIG_SEED
|
||||
------------
|
||||
You can set this to the integer value used to seed the RNG, if you want
|
||||
to somehow debug the behaviour of the kconfig parser/frontends.
|
||||
If not set, the current time will be used.
|
||||
|
||||
KCONFIG_PROBABILITY
|
||||
-------------------
|
||||
This variable can be used to skew the probabilities. This variable can
|
||||
be unset or empty, or set to three different formats:
|
||||
``KCONFIG_PROBABILITY``
|
||||
This variable can be used to skew the probabilities. This variable can
|
||||
be unset or empty, or set to three different formats:
|
||||
|
||||
======================= ================== =====================
|
||||
KCONFIG_PROBABILITY y:n split y:m:n split
|
||||
KCONFIG_PROBABILITY y:n split y:m:n split
|
||||
======================= ================== =====================
|
||||
unset or empty 50 : 50 33 : 33 : 34
|
||||
N N : 100-N N/2 : N/2 : 100-N
|
||||
unset or empty 50 : 50 33 : 33 : 34
|
||||
N N : 100-N N/2 : N/2 : 100-N
|
||||
[1] N:M N+M : 100-(N+M) N : M : 100-(N+M)
|
||||
[2] N:M:L N : 100-N M : L : 100-(M+L)
|
||||
======================= ================== =====================
|
||||
@@ -149,112 +134,98 @@ that:
|
||||
|
||||
Examples::
|
||||
|
||||
KCONFIG_PROBABILITY=10
|
||||
10% of booleans will be set to 'y', 90% to 'n'
|
||||
5% of tristates will be set to 'y', 5% to 'm', 90% to 'n'
|
||||
KCONFIG_PROBABILITY=15:25
|
||||
40% of booleans will be set to 'y', 60% to 'n'
|
||||
15% of tristates will be set to 'y', 25% to 'm', 60% to 'n'
|
||||
KCONFIG_PROBABILITY=10:15:15
|
||||
10% of booleans will be set to 'y', 90% to 'n'
|
||||
15% of tristates will be set to 'y', 15% to 'm', 70% to 'n'
|
||||
KCONFIG_PROBABILITY=10
|
||||
10% of booleans will be set to 'y', 90% to 'n'
|
||||
5% of tristates will be set to 'y', 5% to 'm', 90% to 'n'
|
||||
KCONFIG_PROBABILITY=15:25
|
||||
40% of booleans will be set to 'y', 60% to 'n'
|
||||
15% of tristates will be set to 'y', 25% to 'm', 60% to 'n'
|
||||
KCONFIG_PROBABILITY=10:15:15
|
||||
10% of booleans will be set to 'y', 90% to 'n'
|
||||
15% of tristates will be set to 'y', 15% to 'm', 70% to 'n'
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Environment variables for ``syncconfig``:
|
||||
|
||||
Environment variables for 'syncconfig'
|
||||
``KCONFIG_NOSILENTUPDATE``
|
||||
If this variable has a non-blank value, it prevents silent kernel
|
||||
config updates (requires explicit updates).
|
||||
|
||||
KCONFIG_NOSILENTUPDATE
|
||||
----------------------
|
||||
If this variable has a non-blank value, it prevents silent kernel
|
||||
config updates (requires explicit updates).
|
||||
``KCONFIG_AUTOCONFIG``
|
||||
This environment variable can be set to specify the path & name of the
|
||||
"auto.conf" file. Its default value is "include/config/auto.conf".
|
||||
|
||||
KCONFIG_AUTOCONFIG
|
||||
------------------
|
||||
This environment variable can be set to specify the path & name of the
|
||||
"auto.conf" file. Its default value is "include/config/auto.conf".
|
||||
``KCONFIG_AUTOHEADER``
|
||||
This environment variable can be set to specify the path & name of the
|
||||
"autoconf.h" (header) file.
|
||||
Its default value is "include/generated/autoconf.h".
|
||||
|
||||
KCONFIG_AUTOHEADER
|
||||
------------------
|
||||
This environment variable can be set to specify the path & name of the
|
||||
"autoconf.h" (header) file.
|
||||
Its default value is "include/generated/autoconf.h".
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
menuconfig
|
||||
----------
|
||||
|
||||
SEARCHING for CONFIG symbols
|
||||
==========
|
||||
|
||||
Searching in menuconfig:
|
||||
|
||||
The Search function searches for kernel configuration symbol
|
||||
names, so you have to know something close to what you are
|
||||
looking for.
|
||||
The Search function searches for kernel configuration symbol
|
||||
names, so you have to know something close to what you are
|
||||
looking for.
|
||||
|
||||
Example::
|
||||
Example::
|
||||
|
||||
/hotplug
|
||||
This lists all config symbols that contain "hotplug",
|
||||
e.g., HOTPLUG_CPU, MEMORY_HOTPLUG.
|
||||
/hotplug
|
||||
This lists all config symbols that contain "hotplug",
|
||||
e.g., HOTPLUG_CPU, MEMORY_HOTPLUG.
|
||||
|
||||
For search help, enter / followed by TAB-TAB (to highlight
|
||||
<Help>) and Enter. This will tell you that you can also use
|
||||
regular expressions (regexes) in the search string, so if you
|
||||
are not interested in MEMORY_HOTPLUG, you could try::
|
||||
For search help, enter / followed by TAB-TAB (to highlight
|
||||
<Help>) and Enter. This will tell you that you can also use
|
||||
regular expressions (regexes) in the search string, so if you
|
||||
are not interested in MEMORY_HOTPLUG, you could try::
|
||||
|
||||
/^hotplug
|
||||
/^hotplug
|
||||
|
||||
When searching, symbols are sorted thus:
|
||||
When searching, symbols are sorted thus:
|
||||
|
||||
- first, exact matches, sorted alphabetically (an exact match
|
||||
is when the search matches the complete symbol name);
|
||||
- then, other matches, sorted alphabetically.
|
||||
- first, exact matches, sorted alphabetically (an exact match
|
||||
is when the search matches the complete symbol name);
|
||||
- then, other matches, sorted alphabetically.
|
||||
|
||||
For example: ^ATH.K matches:
|
||||
For example, ^ATH.K matches:
|
||||
|
||||
ATH5K ATH9K ATH5K_AHB ATH5K_DEBUG [...] ATH6KL ATH6KL_DEBUG
|
||||
[...] ATH9K_AHB ATH9K_BTCOEX_SUPPORT ATH9K_COMMON [...]
|
||||
ATH5K ATH9K ATH5K_AHB ATH5K_DEBUG [...] ATH6KL ATH6KL_DEBUG
|
||||
[...] ATH9K_AHB ATH9K_BTCOEX_SUPPORT ATH9K_COMMON [...]
|
||||
|
||||
of which only ATH5K and ATH9K match exactly and so are sorted
|
||||
first (and in alphabetical order), then come all other symbols,
|
||||
sorted in alphabetical order.
|
||||
of which only ATH5K and ATH9K match exactly and so are sorted
|
||||
first (and in alphabetical order), then come all other symbols,
|
||||
sorted in alphabetical order.
|
||||
|
||||
In this menu, pressing the key in the (#) prefix will jump
|
||||
directly to that location. You will be returned to the current
|
||||
search results after exiting this new menu.
|
||||
In this menu, pressing the key in the (#) prefix will jump
|
||||
directly to that location. You will be returned to the current
|
||||
search results after exiting this new menu.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
User interface options for 'menuconfig':
|
||||
|
||||
User interface options for 'menuconfig'
|
||||
``MENUCONFIG_COLOR``
|
||||
It is possible to select different color themes using the variable
|
||||
MENUCONFIG_COLOR. To select a theme use::
|
||||
|
||||
MENUCONFIG_COLOR
|
||||
----------------
|
||||
It is possible to select different color themes using the variable
|
||||
MENUCONFIG_COLOR. To select a theme use::
|
||||
make MENUCONFIG_COLOR=<theme> menuconfig
|
||||
|
||||
make MENUCONFIG_COLOR=<theme> menuconfig
|
||||
Available themes are::
|
||||
|
||||
Available themes are::
|
||||
- mono => selects colors suitable for monochrome displays
|
||||
- blackbg => selects a color scheme with black background
|
||||
- classic => theme with blue background. The classic look
|
||||
- bluetitle => a LCD friendly version of classic. (default)
|
||||
|
||||
- mono => selects colors suitable for monochrome displays
|
||||
- blackbg => selects a color scheme with black background
|
||||
- classic => theme with blue background. The classic look
|
||||
- bluetitle => a LCD friendly version of classic. (default)
|
||||
``MENUCONFIG_MODE``
|
||||
This mode shows all sub-menus in one large tree.
|
||||
|
||||
MENUCONFIG_MODE
|
||||
---------------
|
||||
This mode shows all sub-menus in one large tree.
|
||||
Example::
|
||||
|
||||
Example::
|
||||
make MENUCONFIG_MODE=single_menu menuconfig
|
||||
|
||||
make MENUCONFIG_MODE=single_menu menuconfig
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
nconfig
|
||||
-------
|
||||
=======
|
||||
|
||||
nconfig is an alternate text-based configurator. It lists function
|
||||
keys across the bottom of the terminal (window) that execute commands.
|
||||
@@ -266,61 +237,59 @@ Use F1 for Global help or F3 for the Short help menu.
|
||||
|
||||
Searching in nconfig:
|
||||
|
||||
You can search either in the menu entry "prompt" strings
|
||||
or in the configuration symbols.
|
||||
You can search either in the menu entry "prompt" strings
|
||||
or in the configuration symbols.
|
||||
|
||||
Use / to begin a search through the menu entries. This does
|
||||
not support regular expressions. Use <Down> or <Up> for
|
||||
Next hit and Previous hit, respectively. Use <Esc> to
|
||||
terminate the search mode.
|
||||
Use / to begin a search through the menu entries. This does
|
||||
not support regular expressions. Use <Down> or <Up> for
|
||||
Next hit and Previous hit, respectively. Use <Esc> to
|
||||
terminate the search mode.
|
||||
|
||||
F8 (SymSearch) searches the configuration symbols for the
|
||||
given string or regular expression (regex).
|
||||
F8 (SymSearch) searches the configuration symbols for the
|
||||
given string or regular expression (regex).
|
||||
|
||||
In the SymSearch, pressing the key in the (#) prefix will
|
||||
jump directly to that location. You will be returned to the
|
||||
current search results after exiting this new menu.
|
||||
In the SymSearch, pressing the key in the (#) prefix will
|
||||
jump directly to that location. You will be returned to the
|
||||
current search results after exiting this new menu.
|
||||
|
||||
NCONFIG_MODE
|
||||
------------
|
||||
This mode shows all sub-menus in one large tree.
|
||||
Environment variables:
|
||||
|
||||
Example::
|
||||
``NCONFIG_MODE``
|
||||
This mode shows all sub-menus in one large tree.
|
||||
|
||||
make NCONFIG_MODE=single_menu nconfig
|
||||
Example::
|
||||
|
||||
make NCONFIG_MODE=single_menu nconfig
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
xconfig
|
||||
-------
|
||||
=======
|
||||
|
||||
Searching in xconfig:
|
||||
|
||||
The Search function searches for kernel configuration symbol
|
||||
names, so you have to know something close to what you are
|
||||
looking for.
|
||||
The Search function searches for kernel configuration symbol
|
||||
names, so you have to know something close to what you are
|
||||
looking for.
|
||||
|
||||
Example::
|
||||
Example::
|
||||
|
||||
Ctrl-F hotplug
|
||||
Ctrl-F hotplug
|
||||
|
||||
or::
|
||||
or::
|
||||
|
||||
Menu: File, Search, hotplug
|
||||
Menu: File, Search, hotplug
|
||||
|
||||
lists all config symbol entries that contain "hotplug" in
|
||||
the symbol name. In this Search dialog, you may change the
|
||||
config setting for any of the entries that are not grayed out.
|
||||
You can also enter a different search string without having
|
||||
to return to the main menu.
|
||||
lists all config symbol entries that contain "hotplug" in
|
||||
the symbol name. In this Search dialog, you may change the
|
||||
config setting for any of the entries that are not grayed out.
|
||||
You can also enter a different search string without having
|
||||
to return to the main menu.
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
gconfig
|
||||
-------
|
||||
=======
|
||||
|
||||
Searching in gconfig:
|
||||
|
||||
There is no search command in gconfig. However, gconfig does
|
||||
have several different viewing choices, modes, and options.
|
||||
There is no search command in gconfig. However, gconfig does
|
||||
have several different viewing choices, modes, and options.
|
||||
|
||||
49
Makefile
49
Makefile
@@ -39,8 +39,8 @@ __all:
|
||||
# prepare rule.
|
||||
|
||||
this-makefile := $(lastword $(MAKEFILE_LIST))
|
||||
export abs_srctree := $(realpath $(dir $(this-makefile)))
|
||||
export abs_objtree := $(CURDIR)
|
||||
abs_srctree := $(realpath $(dir $(this-makefile)))
|
||||
abs_objtree := $(CURDIR)
|
||||
|
||||
ifneq ($(sub_make_done),1)
|
||||
|
||||
@@ -295,51 +295,51 @@ single-build :=
|
||||
|
||||
ifneq ($(filter $(no-dot-config-targets), $(MAKECMDGOALS)),)
|
||||
ifeq ($(filter-out $(no-dot-config-targets), $(MAKECMDGOALS)),)
|
||||
need-config :=
|
||||
need-config :=
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(filter $(no-sync-config-targets), $(MAKECMDGOALS)),)
|
||||
ifeq ($(filter-out $(no-sync-config-targets), $(MAKECMDGOALS)),)
|
||||
may-sync-config :=
|
||||
may-sync-config :=
|
||||
endif
|
||||
endif
|
||||
|
||||
need-compiler := $(may-sync-config)
|
||||
|
||||
ifneq ($(KBUILD_EXTMOD),)
|
||||
may-sync-config :=
|
||||
may-sync-config :=
|
||||
endif
|
||||
|
||||
ifeq ($(KBUILD_EXTMOD),)
|
||||
ifneq ($(filter %config,$(MAKECMDGOALS)),)
|
||||
config-build := 1
|
||||
ifneq ($(words $(MAKECMDGOALS)),1)
|
||||
mixed-build := 1
|
||||
endif
|
||||
ifneq ($(filter %config,$(MAKECMDGOALS)),)
|
||||
config-build := 1
|
||||
ifneq ($(words $(MAKECMDGOALS)),1)
|
||||
mixed-build := 1
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# We cannot build single targets and the others at the same time
|
||||
ifneq ($(filter $(single-targets), $(MAKECMDGOALS)),)
|
||||
single-build := 1
|
||||
single-build := 1
|
||||
ifneq ($(filter-out $(single-targets), $(MAKECMDGOALS)),)
|
||||
mixed-build := 1
|
||||
mixed-build := 1
|
||||
endif
|
||||
endif
|
||||
|
||||
# For "make -j clean all", "make -j mrproper defconfig all", etc.
|
||||
ifneq ($(filter $(clean-targets),$(MAKECMDGOALS)),)
|
||||
ifneq ($(filter-out $(clean-targets),$(MAKECMDGOALS)),)
|
||||
mixed-build := 1
|
||||
endif
|
||||
ifneq ($(filter-out $(clean-targets),$(MAKECMDGOALS)),)
|
||||
mixed-build := 1
|
||||
endif
|
||||
endif
|
||||
|
||||
# install and modules_install need also be processed one by one
|
||||
ifneq ($(filter install,$(MAKECMDGOALS)),)
|
||||
ifneq ($(filter modules_install,$(MAKECMDGOALS)),)
|
||||
mixed-build := 1
|
||||
endif
|
||||
ifneq ($(filter modules_install,$(MAKECMDGOALS)),)
|
||||
mixed-build := 1
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef mixed-build
|
||||
@@ -965,8 +965,15 @@ export CC_FLAGS_CFI
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_FUNCTION_ALIGNMENT),0)
|
||||
# Set the minimal function alignment. Use the newer GCC option
|
||||
# -fmin-function-alignment if it is available, or fall back to -falign-funtions.
|
||||
# See also CONFIG_CC_HAS_SANE_FUNCTION_ALIGNMENT.
|
||||
ifdef CONFIG_CC_HAS_MIN_FUNCTION_ALIGNMENT
|
||||
KBUILD_CFLAGS += -fmin-function-alignment=$(CONFIG_FUNCTION_ALIGNMENT)
|
||||
else
|
||||
KBUILD_CFLAGS += -falign-functions=$(CONFIG_FUNCTION_ALIGNMENT)
|
||||
endif
|
||||
endif
|
||||
|
||||
# arch Makefile may override CC so keep this after arch Makefile is included
|
||||
NOSTDINC_FLAGS += -nostdinc
|
||||
@@ -1384,7 +1391,7 @@ ifneq ($(dtstree),)
|
||||
|
||||
PHONY += dtbs dtbs_prepare dtbs_install dtbs_check
|
||||
dtbs: dtbs_prepare
|
||||
$(Q)$(MAKE) $(build)=$(dtstree)
|
||||
$(Q)$(MAKE) $(build)=$(dtstree) need-dtbslist=1
|
||||
|
||||
# include/config/kernel.release is actually needed when installing DTBs because
|
||||
# INSTALL_DTBS_PATH contains $(KERNELRELEASE). However, we do not want to make
|
||||
@@ -1402,7 +1409,7 @@ endif
|
||||
dtbs_check: dtbs
|
||||
|
||||
dtbs_install:
|
||||
$(Q)$(MAKE) $(dtbinst)=$(dtstree) dst=$(INSTALL_DTBS_PATH)
|
||||
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.dtbinst obj=$(dtstree)
|
||||
|
||||
ifdef CONFIG_OF_EARLY_FLATTREE
|
||||
all: dtbs
|
||||
@@ -1923,7 +1930,7 @@ clean: $(clean-dirs)
|
||||
-o -name '*.ko.*' \
|
||||
-o -name '*.dtb' -o -name '*.dtbo' \
|
||||
-o -name '*.dtb.S' -o -name '*.dtbo.S' \
|
||||
-o -name '*.dt.yaml' \
|
||||
-o -name '*.dt.yaml' -o -name 'dtbs-list' \
|
||||
-o -name '*.dwo' -o -name '*.lst' \
|
||||
-o -name '*.su' -o -name '*.mod' \
|
||||
-o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \
|
||||
|
||||
12
arch/Kconfig
12
arch/Kconfig
@@ -1597,4 +1597,16 @@ config FUNCTION_ALIGNMENT
|
||||
default 4 if FUNCTION_ALIGNMENT_4B
|
||||
default 0
|
||||
|
||||
config CC_HAS_MIN_FUNCTION_ALIGNMENT
|
||||
# Detect availability of the GCC option -fmin-function-alignment which
|
||||
# guarantees minimal alignment for all functions, unlike
|
||||
# -falign-functions which the compiler ignores for cold functions.
|
||||
def_bool $(cc-option, -fmin-function-alignment=8)
|
||||
|
||||
config CC_HAS_SANE_FUNCTION_ALIGNMENT
|
||||
# Set if the guaranteed alignment with -fmin-function-alignment is
|
||||
# available or extra care is required in the kernel. Clang provides
|
||||
# strict alignment always, even with -falign-functions.
|
||||
def_bool CC_HAS_MIN_FUNCTION_ALIGNMENT || CC_IS_CLANG
|
||||
|
||||
endmenu
|
||||
|
||||
@@ -339,6 +339,7 @@ config ALPHA_EV4
|
||||
bool
|
||||
depends on ALPHA_JENSEN || (ALPHA_SABLE && !ALPHA_GAMMA) || ALPHA_LYNX || ALPHA_NORITAKE && !ALPHA_PRIMO || ALPHA_MIKASA && !ALPHA_PRIMO || ALPHA_CABRIOLET || ALPHA_AVANTI_CH || ALPHA_EB64P_CH || ALPHA_XL || ALPHA_NONAME || ALPHA_EB66 || ALPHA_EB66P || ALPHA_P2K
|
||||
default y if !ALPHA_LYNX
|
||||
default y if !ALPHA_EV5
|
||||
|
||||
config ALPHA_LCA
|
||||
bool
|
||||
@@ -366,10 +367,6 @@ config ALPHA_EV5
|
||||
bool "EV5 CPU(s) (model 5/xxx)?" if ALPHA_LYNX
|
||||
default y if ALPHA_RX164 || ALPHA_RAWHIDE || ALPHA_MIATA || ALPHA_LX164 || ALPHA_SX164 || ALPHA_RUFFIAN || ALPHA_SABLE && ALPHA_GAMMA || ALPHA_NORITAKE && ALPHA_PRIMO || ALPHA_MIKASA && ALPHA_PRIMO || ALPHA_PC164 || ALPHA_TAKARA || ALPHA_EB164 || ALPHA_ALCOR
|
||||
|
||||
config ALPHA_EV4
|
||||
bool
|
||||
default y if ALPHA_LYNX && !ALPHA_EV5
|
||||
|
||||
config ALPHA_CIA
|
||||
bool
|
||||
depends on ALPHA_MIATA || ALPHA_LX164 || ALPHA_SX164 || ALPHA_RUFFIAN || ALPHA_NORITAKE && ALPHA_PRIMO || ALPHA_MIKASA && ALPHA_PRIMO || ALPHA_PC164 || ALPHA_TAKARA || ALPHA_EB164 || ALPHA_ALCOR
|
||||
@@ -394,16 +391,12 @@ config ALPHA_PRIMO
|
||||
Say Y if you have an AS 1000 5/xxx or an AS 1000A 5/xxx.
|
||||
|
||||
config ALPHA_GAMMA
|
||||
bool "EV5 CPU(s) (model 5/xxx)?"
|
||||
depends on ALPHA_SABLE
|
||||
bool "EV5 CPU(s) (model 5/xxx)?" if ALPHA_SABLE
|
||||
depends on ALPHA_SABLE || ALPHA_LYNX
|
||||
default ALPHA_LYNX
|
||||
help
|
||||
Say Y if you have an AS 2000 5/xxx or an AS 2100 5/xxx.
|
||||
|
||||
config ALPHA_GAMMA
|
||||
bool
|
||||
depends on ALPHA_LYNX
|
||||
default y
|
||||
|
||||
config ALPHA_T2
|
||||
bool
|
||||
depends on ALPHA_SABLE || ALPHA_LYNX
|
||||
|
||||
@@ -7,11 +7,13 @@ config HEXAGON
|
||||
select ARCH_32BIT_OFF_T
|
||||
select ARCH_HAS_SYNC_DMA_FOR_DEVICE
|
||||
select ARCH_NO_PREEMPT
|
||||
select ARCH_WANT_FRAME_POINTERS
|
||||
select DMA_GLOBAL_POOL
|
||||
select HAVE_PAGE_SIZE_4KB
|
||||
select HAVE_PAGE_SIZE_16KB
|
||||
select HAVE_PAGE_SIZE_64KB
|
||||
select HAVE_PAGE_SIZE_256KB
|
||||
select FRAME_POINTER
|
||||
# Other pending projects/to-do items.
|
||||
# select HAVE_REGS_AND_STACK_ACCESS_API
|
||||
# select HAVE_HW_BREAKPOINT if PERF_EVENTS
|
||||
@@ -23,6 +25,7 @@ config HEXAGON
|
||||
select HAVE_PERF_EVENTS
|
||||
# GENERIC_ALLOCATOR is used by dma_alloc_coherent()
|
||||
select GENERIC_ALLOCATOR
|
||||
select GENERIC_IRQ_PROBE
|
||||
select GENERIC_IRQ_SHOW
|
||||
select HAVE_ARCH_KGDB
|
||||
select HAVE_ARCH_TRACEHOOK
|
||||
@@ -47,9 +50,6 @@ config HEXAGON_PHYS_OFFSET
|
||||
help
|
||||
Platforms that don't load the kernel at zero set this.
|
||||
|
||||
config FRAME_POINTER
|
||||
def_bool y
|
||||
|
||||
config LOCKDEP_SUPPORT
|
||||
def_bool y
|
||||
|
||||
@@ -62,12 +62,6 @@ config MMU
|
||||
config GENERIC_CSUM
|
||||
def_bool y
|
||||
|
||||
#
|
||||
# Use the generic interrupt handling code in kernel/irq/:
|
||||
#
|
||||
config GENERIC_IRQ_PROBE
|
||||
def_bool y
|
||||
|
||||
config GENERIC_HWEIGHT
|
||||
def_bool y
|
||||
|
||||
|
||||
@@ -238,9 +238,9 @@ config PARISC_HUGE_KERNEL
|
||||
def_bool y if !MODULES || UBSAN || FTRACE || COMPILE_TEST
|
||||
|
||||
config MLONGCALLS
|
||||
def_bool y if PARISC_HUGE_KERNEL
|
||||
bool "Enable the -mlong-calls compiler option for big kernels" if !PARISC_HUGE_KERNEL
|
||||
depends on PA8X00
|
||||
default PARISC_HUGE_KERNEL
|
||||
help
|
||||
If you configure the kernel to include many drivers built-in instead
|
||||
as modules, the kernel executable may become too big, so that the
|
||||
@@ -255,9 +255,9 @@ config MLONGCALLS
|
||||
Enabling this option will probably slow down your kernel.
|
||||
|
||||
config 64BIT
|
||||
def_bool y if "$(ARCH)" = "parisc64"
|
||||
bool "64-bit kernel" if "$(ARCH)" = "parisc"
|
||||
depends on PA8X00
|
||||
default "$(ARCH)" = "parisc64"
|
||||
help
|
||||
Enable this if you want to support 64bit kernel on PA-RISC platform.
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ config AS_HAS_ULEB128
|
||||
|
||||
menuconfig RUNTIME_KERNEL_TESTING_MENU
|
||||
bool "arch/riscv/kernel runtime Testing"
|
||||
def_bool y
|
||||
default y
|
||||
help
|
||||
Enable riscv kernel runtime testing.
|
||||
|
||||
|
||||
@@ -9,7 +9,9 @@ include $(srctree)/lib/vdso/Makefile
|
||||
# Sanitizer runtimes are unavailable and cannot be linked here.
|
||||
KASAN_SANITIZE := n
|
||||
KMSAN_SANITIZE_vclock_gettime.o := n
|
||||
KMSAN_SANITIZE_vdso32/vclock_gettime.o := n
|
||||
KMSAN_SANITIZE_vgetcpu.o := n
|
||||
KMSAN_SANITIZE_vdso32/vgetcpu.o := n
|
||||
|
||||
UBSAN_SANITIZE := n
|
||||
KCSAN_SANITIZE := n
|
||||
|
||||
@@ -118,8 +118,8 @@ config KVM_AMD
|
||||
will be called kvm-amd.
|
||||
|
||||
config KVM_AMD_SEV
|
||||
def_bool y
|
||||
bool "AMD Secure Encrypted Virtualization (SEV) support"
|
||||
default y
|
||||
depends on KVM_AMD && X86_64
|
||||
depends on CRYPTO_DEV_SP_PSP && !(KVM_AMD=y && CRYPTO_DEV_CCP_DD=m)
|
||||
help
|
||||
|
||||
@@ -4,7 +4,8 @@ ccflags-y += -I $(srctree)/arch/x86/kvm
|
||||
ccflags-$(CONFIG_KVM_WERROR) += -Werror
|
||||
|
||||
ifeq ($(CONFIG_FRAME_POINTER),y)
|
||||
OBJECT_FILES_NON_STANDARD_vmenter.o := y
|
||||
OBJECT_FILES_NON_STANDARD_vmx/vmenter.o := y
|
||||
OBJECT_FILES_NON_STANDARD_svm/vmenter.o := y
|
||||
endif
|
||||
|
||||
include $(srctree)/virt/kvm/Makefile.kvm
|
||||
|
||||
@@ -81,7 +81,6 @@ config XEN_PVH
|
||||
bool "Xen PVH guest support"
|
||||
depends on XEN && XEN_PVHVM && ACPI
|
||||
select PVH
|
||||
def_bool n
|
||||
help
|
||||
Support for running as a Xen PVH guest.
|
||||
|
||||
|
||||
@@ -460,7 +460,6 @@ config ACPI_BGRT
|
||||
|
||||
config ACPI_REDUCED_HARDWARE_ONLY
|
||||
bool "Hardware-reduced ACPI support only" if EXPERT
|
||||
def_bool n
|
||||
help
|
||||
This config item changes the way the ACPI code is built. When this
|
||||
option is selected, the kernel will use a specialized version of
|
||||
|
||||
@@ -87,8 +87,8 @@ config INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON
|
||||
the default value.
|
||||
|
||||
config INTEL_IOMMU_PERF_EVENTS
|
||||
def_bool y
|
||||
bool "Intel IOMMU performance events"
|
||||
default y
|
||||
depends on INTEL_IOMMU && PERF_EVENTS
|
||||
help
|
||||
Selecting this option will enable the performance monitoring
|
||||
|
||||
@@ -519,7 +519,6 @@ config DM_VERITY
|
||||
If unsure, say N.
|
||||
|
||||
config DM_VERITY_VERIFY_ROOTHASH_SIG
|
||||
def_bool n
|
||||
bool "Verity data device root hash signature verification support"
|
||||
depends on DM_VERITY
|
||||
select SYSTEM_DATA_VERIFICATION
|
||||
|
||||
@@ -99,17 +99,17 @@ static inline void __chk_io_ptr(const volatile void __iomem *ptr) { }
|
||||
* gcc: https://gcc.gnu.org/onlinedocs/gcc/Label-Attributes.html#index-cold-label-attribute
|
||||
*
|
||||
* When -falign-functions=N is in use, we must avoid the cold attribute as
|
||||
* contemporary versions of GCC drop the alignment for cold functions. Worse,
|
||||
* GCC can implicitly mark callees of cold functions as cold themselves, so
|
||||
* it's not sufficient to add __function_aligned here as that will not ensure
|
||||
* that callees are correctly aligned.
|
||||
* GCC drops the alignment for cold functions. Worse, GCC can implicitly mark
|
||||
* callees of cold functions as cold themselves, so it's not sufficient to add
|
||||
* __function_aligned here as that will not ensure that callees are correctly
|
||||
* aligned.
|
||||
*
|
||||
* See:
|
||||
*
|
||||
* https://lore.kernel.org/lkml/Y77%2FqVgvaJidFpYt@FVFF77S0Q05N
|
||||
* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88345#c9
|
||||
*/
|
||||
#if !defined(CONFIG_CC_IS_GCC) || (CONFIG_FUNCTION_ALIGNMENT == 0)
|
||||
#if defined(CONFIG_CC_HAS_SANE_FUNCTION_ALIGNMENT) || (CONFIG_FUNCTION_ALIGNMENT == 0)
|
||||
#define __cold __attribute__((__cold__))
|
||||
#else
|
||||
#define __cold
|
||||
|
||||
@@ -1499,7 +1499,7 @@ config MULTIUSER
|
||||
|
||||
config SGETMASK_SYSCALL
|
||||
bool "sgetmask/ssetmask syscalls support" if EXPERT
|
||||
def_bool PARISC || M68K || PPC || MIPS || X86 || SPARC || MICROBLAZE || SUPERH
|
||||
default PARISC || M68K || PPC || MIPS || X86 || SPARC || MICROBLAZE || SUPERH
|
||||
help
|
||||
sys_sgetmask and sys_ssetmask are obsolete system calls
|
||||
no longer supported in libc but still enabled by default in some
|
||||
|
||||
@@ -362,8 +362,7 @@ config MODPROBE_PATH
|
||||
userspace can still load modules explicitly).
|
||||
|
||||
config TRIM_UNUSED_KSYMS
|
||||
bool "Trim unused exported kernel symbols" if EXPERT
|
||||
depends on !COMPILE_TEST
|
||||
bool "Trim unused exported kernel symbols"
|
||||
help
|
||||
The kernel and some modules make many symbols available for
|
||||
other modules to use via EXPORT_SYMBOL() and variants. Depending
|
||||
|
||||
@@ -2127,7 +2127,7 @@ config KCOV_IRQ_AREA_SIZE
|
||||
|
||||
menuconfig RUNTIME_TESTING_MENU
|
||||
bool "Runtime Testing"
|
||||
def_bool y
|
||||
default y
|
||||
|
||||
if RUNTIME_TESTING_MENU
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user