consolidate compilation option configs
Original Post: http://lkml.kernel.org/r/20121214184207.6E00DDEC@kernel.stglabs.ibm.com Again, trying to come up with some common themes of the stuff in the kernel hacking menu... There are quite a few options to tweak compilation in some way, or perform extra compile-time checks. Give them their own menu. The diff here looks a bit funny... makes it look like I'm moving debugfs even though I'm actually moving the options on either side of it. Signed-off-by: Dave Hansen <dave@linux.vnet.ibm.com> Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
881c514954
commit
6dfc06651b
|
@ -25,6 +25,34 @@ config DEFAULT_MESSAGE_LOGLEVEL
|
||||||
that are auditing their logs closely may want to set it to a lower
|
that are auditing their logs closely may want to set it to a lower
|
||||||
priority.
|
priority.
|
||||||
|
|
||||||
|
menu "Compile-time checks and compiler options"
|
||||||
|
|
||||||
|
config DEBUG_INFO
|
||||||
|
bool "Compile the kernel with debug info"
|
||||||
|
depends on DEBUG_KERNEL
|
||||||
|
help
|
||||||
|
If you say Y here the resulting kernel image will include
|
||||||
|
debugging info resulting in a larger kernel image.
|
||||||
|
This adds debug symbols to the kernel and modules (gcc -g), and
|
||||||
|
is needed if you intend to use kernel crashdump or binary object
|
||||||
|
tools like crash, kgdb, LKCD, gdb, etc on the kernel.
|
||||||
|
Say Y here only if you plan to debug the kernel.
|
||||||
|
|
||||||
|
If unsure, say N.
|
||||||
|
|
||||||
|
config DEBUG_INFO_REDUCED
|
||||||
|
bool "Reduce debugging information"
|
||||||
|
depends on DEBUG_INFO
|
||||||
|
help
|
||||||
|
If you say Y here gcc is instructed to generate less debugging
|
||||||
|
information for structure types. This means that tools that
|
||||||
|
need full debugging information (like kgdb or systemtap) won't
|
||||||
|
be happy. But if you merely need debugging information to
|
||||||
|
resolve line numbers there is no loss. Advantage is that
|
||||||
|
build directory object sizes shrink dramatically over a full
|
||||||
|
DEBUG_INFO build and compile times are reduced too.
|
||||||
|
Only works with newer gcc versions.
|
||||||
|
|
||||||
config ENABLE_WARN_DEPRECATED
|
config ENABLE_WARN_DEPRECATED
|
||||||
bool "Enable __deprecated logic"
|
bool "Enable __deprecated logic"
|
||||||
default y
|
default y
|
||||||
|
@ -52,20 +80,6 @@ config FRAME_WARN
|
||||||
Setting it to 0 disables the warning.
|
Setting it to 0 disables the warning.
|
||||||
Requires gcc 4.4
|
Requires gcc 4.4
|
||||||
|
|
||||||
config MAGIC_SYSRQ
|
|
||||||
bool "Magic SysRq key"
|
|
||||||
depends on !UML
|
|
||||||
help
|
|
||||||
If you say Y here, you will have some control over the system even
|
|
||||||
if the system crashes for example during kernel debugging (e.g., you
|
|
||||||
will be able to flush the buffer cache to disk, reboot the system
|
|
||||||
immediately or dump some status information). This is accomplished
|
|
||||||
by pressing various keys while holding SysRq (Alt+PrintScreen). It
|
|
||||||
also works on a serial console (on PC hardware at least), if you
|
|
||||||
send a BREAK and then within 5 seconds a command keypress. The
|
|
||||||
keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
|
|
||||||
unless you really know what this hack does.
|
|
||||||
|
|
||||||
config STRIP_ASM_SYMS
|
config STRIP_ASM_SYMS
|
||||||
bool "Strip assembler-generated symbols during link"
|
bool "Strip assembler-generated symbols during link"
|
||||||
default n
|
default n
|
||||||
|
@ -156,6 +170,58 @@ config DEBUG_SECTION_MISMATCH
|
||||||
- Enable verbose reporting from modpost in order to help resolve
|
- Enable verbose reporting from modpost in order to help resolve
|
||||||
the section mismatches that are reported.
|
the section mismatches that are reported.
|
||||||
|
|
||||||
|
#
|
||||||
|
# Select this config option from the architecture Kconfig, if it
|
||||||
|
# is preferred to always offer frame pointers as a config
|
||||||
|
# option on the architecture (regardless of KERNEL_DEBUG):
|
||||||
|
#
|
||||||
|
config ARCH_WANT_FRAME_POINTERS
|
||||||
|
bool
|
||||||
|
help
|
||||||
|
|
||||||
|
config FRAME_POINTER
|
||||||
|
bool "Compile the kernel with frame pointers"
|
||||||
|
depends on DEBUG_KERNEL && \
|
||||||
|
(CRIS || M68K || FRV || UML || \
|
||||||
|
AVR32 || SUPERH || BLACKFIN || MN10300 || METAG) || \
|
||||||
|
ARCH_WANT_FRAME_POINTERS
|
||||||
|
default y if (DEBUG_INFO && UML) || ARCH_WANT_FRAME_POINTERS
|
||||||
|
help
|
||||||
|
If you say Y here the resulting kernel image will be slightly
|
||||||
|
larger and slower, but it gives very useful debugging information
|
||||||
|
in case of kernel bugs. (precise oopses/stacktraces/warnings)
|
||||||
|
|
||||||
|
config DEBUG_FORCE_WEAK_PER_CPU
|
||||||
|
bool "Force weak per-cpu definitions"
|
||||||
|
depends on DEBUG_KERNEL
|
||||||
|
help
|
||||||
|
s390 and alpha require percpu variables in modules to be
|
||||||
|
defined weak to work around addressing range issue which
|
||||||
|
puts the following two restrictions on percpu variable
|
||||||
|
definitions.
|
||||||
|
|
||||||
|
1. percpu symbols must be unique whether static or not
|
||||||
|
2. percpu variables can't be defined inside a function
|
||||||
|
|
||||||
|
To ensure that generic code follows the above rules, this
|
||||||
|
option forces all percpu variables to be defined as weak.
|
||||||
|
|
||||||
|
endmenu # "Compiler options"
|
||||||
|
|
||||||
|
config MAGIC_SYSRQ
|
||||||
|
bool "Magic SysRq key"
|
||||||
|
depends on !UML
|
||||||
|
help
|
||||||
|
If you say Y here, you will have some control over the system even
|
||||||
|
if the system crashes for example during kernel debugging (e.g., you
|
||||||
|
will be able to flush the buffer cache to disk, reboot the system
|
||||||
|
immediately or dump some status information). This is accomplished
|
||||||
|
by pressing various keys while holding SysRq (Alt+PrintScreen). It
|
||||||
|
also works on a serial console (on PC hardware at least), if you
|
||||||
|
send a BREAK and then within 5 seconds a command keypress. The
|
||||||
|
keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
|
||||||
|
unless you really know what this hack does.
|
||||||
|
|
||||||
config DEBUG_KERNEL
|
config DEBUG_KERNEL
|
||||||
bool "Kernel debugging"
|
bool "Kernel debugging"
|
||||||
help
|
help
|
||||||
|
@ -816,32 +882,6 @@ config DEBUG_BUGVERBOSE
|
||||||
of the BUG call as well as the EIP and oops trace. This aids
|
of the BUG call as well as the EIP and oops trace. This aids
|
||||||
debugging but costs about 70-100K of memory.
|
debugging but costs about 70-100K of memory.
|
||||||
|
|
||||||
config DEBUG_INFO
|
|
||||||
bool "Compile the kernel with debug info"
|
|
||||||
depends on DEBUG_KERNEL
|
|
||||||
help
|
|
||||||
If you say Y here the resulting kernel image will include
|
|
||||||
debugging info resulting in a larger kernel image.
|
|
||||||
This adds debug symbols to the kernel and modules (gcc -g), and
|
|
||||||
is needed if you intend to use kernel crashdump or binary object
|
|
||||||
tools like crash, kgdb, LKCD, gdb, etc on the kernel.
|
|
||||||
Say Y here only if you plan to debug the kernel.
|
|
||||||
|
|
||||||
If unsure, say N.
|
|
||||||
|
|
||||||
config DEBUG_INFO_REDUCED
|
|
||||||
bool "Reduce debugging information"
|
|
||||||
depends on DEBUG_INFO
|
|
||||||
help
|
|
||||||
If you say Y here gcc is instructed to generate less debugging
|
|
||||||
information for structure types. This means that tools that
|
|
||||||
need full debugging information (like kgdb or systemtap) won't
|
|
||||||
be happy. But if you merely need debugging information to
|
|
||||||
resolve line numbers there is no loss. Advantage is that
|
|
||||||
build directory object sizes shrink dramatically over a full
|
|
||||||
DEBUG_INFO build and compile times are reduced too.
|
|
||||||
Only works with newer gcc versions.
|
|
||||||
|
|
||||||
config DEBUG_WRITECOUNT
|
config DEBUG_WRITECOUNT
|
||||||
bool "Debug filesystem writers count"
|
bool "Debug filesystem writers count"
|
||||||
depends on DEBUG_KERNEL
|
depends on DEBUG_KERNEL
|
||||||
|
@ -896,27 +936,6 @@ config DEBUG_CREDENTIALS
|
||||||
|
|
||||||
If unsure, say N.
|
If unsure, say N.
|
||||||
|
|
||||||
#
|
|
||||||
# Select this config option from the architecture Kconfig, if it
|
|
||||||
# is preferred to always offer frame pointers as a config
|
|
||||||
# option on the architecture (regardless of KERNEL_DEBUG):
|
|
||||||
#
|
|
||||||
config ARCH_WANT_FRAME_POINTERS
|
|
||||||
bool
|
|
||||||
help
|
|
||||||
|
|
||||||
config FRAME_POINTER
|
|
||||||
bool "Compile the kernel with frame pointers"
|
|
||||||
depends on DEBUG_KERNEL && \
|
|
||||||
(CRIS || M68K || FRV || UML || \
|
|
||||||
AVR32 || SUPERH || BLACKFIN || MN10300 || METAG) || \
|
|
||||||
ARCH_WANT_FRAME_POINTERS
|
|
||||||
default y if (DEBUG_INFO && UML) || ARCH_WANT_FRAME_POINTERS
|
|
||||||
help
|
|
||||||
If you say Y here the resulting kernel image will be slightly
|
|
||||||
larger and slower, but it gives very useful debugging information
|
|
||||||
in case of kernel bugs. (precise oopses/stacktraces/warnings)
|
|
||||||
|
|
||||||
config BOOT_PRINTK_DELAY
|
config BOOT_PRINTK_DELAY
|
||||||
bool "Delay each boot printk message by N milliseconds"
|
bool "Delay each boot printk message by N milliseconds"
|
||||||
depends on DEBUG_KERNEL && PRINTK && GENERIC_CALIBRATE_DELAY
|
depends on DEBUG_KERNEL && PRINTK && GENERIC_CALIBRATE_DELAY
|
||||||
|
@ -1100,21 +1119,6 @@ config DEBUG_BLOCK_EXT_DEVT
|
||||||
|
|
||||||
Say N if you are unsure.
|
Say N if you are unsure.
|
||||||
|
|
||||||
config DEBUG_FORCE_WEAK_PER_CPU
|
|
||||||
bool "Force weak per-cpu definitions"
|
|
||||||
depends on DEBUG_KERNEL
|
|
||||||
help
|
|
||||||
s390 and alpha require percpu variables in modules to be
|
|
||||||
defined weak to work around addressing range issue which
|
|
||||||
puts the following two restrictions on percpu variable
|
|
||||||
definitions.
|
|
||||||
|
|
||||||
1. percpu symbols must be unique whether static or not
|
|
||||||
2. percpu variables can't be defined inside a function
|
|
||||||
|
|
||||||
To ensure that generic code follows the above rules, this
|
|
||||||
option forces all percpu variables to be defined as weak.
|
|
||||||
|
|
||||||
config NOTIFIER_ERROR_INJECTION
|
config NOTIFIER_ERROR_INJECTION
|
||||||
tristate "Notifier error injection"
|
tristate "Notifier error injection"
|
||||||
depends on DEBUG_KERNEL
|
depends on DEBUG_KERNEL
|
||||||
|
|
Loading…
Reference in New Issue