Skip to contentSkip to conversation

use Kconfig.debug (v2)

PATCH New Randy.Dunlap 2 participants 7 messages Apr 16, 2004

Subsystems (8)
Library code MIPS s390 SuperH +4 more subsystems
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 use Kconfig.debug (v2)

Use generic lib/Kconfig.debug and arch-specific arch/*/Kconfig.debug. Move KALLSYMS to generic debugging menu.

Changes from version 1:

1.  remove global !CRIS && !H8300 from lib/Kconfig.debug;
2.  for CRIS and H8300, don't source lib/Kconfig.debug (not used);
3.  corrected several lib/Kconfig.debug ARCH usages;
4.  small change in generic debug menu order (moved SPINLOCK
	options together);

Ready for testing IMO. More comments?

Large patch (over 100 KB) to 2.6.6-rc1:
http://developer.osdl.org/rddunlap/patches/kconf_debug_266rc1.patch

 arch/alpha/Kconfig           |  103 ---------------------------
 arch/alpha/Kconfig.debug     |   54 ++++++++++++++
 arch/arm/Kconfig             |  159 -------------------------------------------
 arch/arm/Kconfig.debug       |  113 ++++++++++++++++++++++++++++++
 arch/arm26/Kconfig           |  112 ------------------------------
 arch/arm26/Kconfig.debug     |   58 +++++++++++++++
 arch/cris/Kconfig            |   13 ---
 arch/cris/Kconfig.debug      |   15 ++++
 arch/h8300/Kconfig           |   71 -------------------
 arch/h8300/Kconfig.debug     |   67 ++++++++++++++++++
 arch/i386/Kconfig            |  124 ---------------------------------
 arch/i386/Kconfig.debug      |   15 ++++
 arch/ia64/Kconfig            |  113 ------------------------------
 arch/ia64/Kconfig.debug      |   63 +++++++++++++++++
 arch/m68k/Kconfig            |   37 ----------
 arch/m68k/Kconfig.debug      |    9 ++
 arch/m68knommu/Kconfig       |   54 --------------
 arch/m68knommu/Kconfig.debug |   42 +++++++++++
 arch/mips/Kconfig            |  110 -----------------------------
 arch/mips/Kconfig.debug      |   67 ++++++++++++++++++
 arch/parisc/Kconfig          |   48 ------------
 arch/parisc/Kconfig.debug    |    5 +
 arch/ppc/Kconfig             |  123 ---------------------------------
 arch/ppc/Kconfig.debug       |   72 +++++++++++++++++++
 arch/ppc64/Kconfig           |   79 ---------------------
 arch/ppc64/Kconfig.debug     |   27 +++++++
 arch/s390/Kconfig            |   55 --------------
 arch/s390/Kconfig.debug      |    5 +
 arch/sh/Kconfig              |  139 -------------------------------------
 arch/sh/Kconfig.debug        |  111 ++++++++++++++++++++++++++++++
 arch/sparc/Kconfig           |   71 -------------------
 arch/sparc/Kconfig.debug     |   13 +++
 arch/sparc64/Kconfig         |   98 --------------------------
 arch/sparc64/Kconfig.debug   |   38 ++++++++++
 arch/um/Kconfig              |   59 ---------------
 arch/um/Kconfig.debug        |   35 +++++++++
 arch/v850/Kconfig            |   28 -------
 arch/v850/Kconfig.debug      |   10 ++
 arch/x86_64/Kconfig          |  100 ---------------------------
 arch/x86_64/Kconfig.debug    |   47 ++++++++++++
 init/Kconfig                 |    8 --
 lib/Kconfig.debug            |  147 +++++++++++++++++++++++++++++++++++++++
 42 files changed, 1053 insertions(+), 1664 deletions(-)

Thanks,
--
~Randy

#1 lore raw

PATCH 1/1 use Kconfig.debug (v3-proposed) (was: Re: [PATCH] use Kconfig.debug (v2))

On Friday 16 April 2004 07:03, Randy.Dunlap wrote:

Hi Randy,

Quoted 9 lines

Use generic lib/Kconfig.debug and arch-specific arch/*/Kconfig.debug. Move KALLSYMS to generic debugging menu.
Changes from version 1:

1.  remove global !CRIS && !H8300 from lib/Kconfig.debug;
2.  for CRIS and H8300, don't source lib/Kconfig.debug (not used);
3.  corrected several lib/Kconfig.debug ARCH usages;
4.  small change in generic debug menu order (moved SPINLOCK
	options together);

Ready for testing IMO. More comments?

yes. I'd like to see it this way:

Changes from version 2:

1.  Early Printk should not depend on EMBEDDED
2.  change "if foobar" to "depend on"
3.  remove endif's superfluous because of 2.
4.  Move KALLSYMS some places lower
5.  Add some more "depend on DEBUG_KERNEL" to indent the menu
6.  Remove trailing new lines in some arch specific Kconfig.debug
7.  move depends on DEBUG_KERNEL for arch/m68k/Kconfig.debug to

the menu so you only see that menu if you select DEBUG_KERNEL You can't select anything there if DEBUG_KERNEL is N.
8. Whitespace cleanups

Comments?

Everything else is fine with me.

All-in-One v3-proposed is here:
http://www.kernel.org/pub/linux/kernel/people/mcp/linux-2.6/kconf-debug-v3-proposed-2.6.6-rc1.patch

Update from v2 to v3-proposed is here too:
http://www.kernel.org/pub/linux/kernel/people/mcp/linux-2.6/kconf-debug-v2-to-v3-proposed-2.6.6-rc1.patch

ciao, Marc

arch/cris/Kconfig.debug +0 -1
diff -Naurp linux-2.6.6-rc1-Kconfig.debug.v2/arch/cris/Kconfig.debug linux-2.6.6-rc1-Kconfig.debug.v3-proposed/arch/cris/Kconfig.debug
@@ -1,4 +1,3 @@
-
 menu "CRIS kernel hacking"
 
 #bool 'Debug kmalloc/kfree' CONFIG_DEBUG_MALLOC
arch/h8300/Kconfig.debug +0 -1
diff -Naurp linux-2.6.6-rc1-Kconfig.debug.v2/arch/h8300/Kconfig.debug linux-2.6.6-rc1-Kconfig.debug.v3-proposed/arch/h8300/Kconfig.debug
@@ -1,4 +1,3 @@
-
 menu "H8300 kernel hacking"
 
 config FULLDEBUG
arch/i386/Kconfig.debug +0 -1
diff -Naurp linux-2.6.6-rc1-Kconfig.debug.v2/arch/i386/Kconfig.debug linux-2.6.6-rc1-Kconfig.debug.v3-proposed/arch/i386/Kconfig.debug
@@ -1,4 +1,3 @@
-
 menu "X86 kernel hacking"
 
 config X86_FIND_SMP_CONFIG
arch/ia64/Kconfig.debug +0 -1
diff -Naurp linux-2.6.6-rc1-Kconfig.debug.v2/arch/ia64/Kconfig.debug linux-2.6.6-rc1-Kconfig.debug.v3-proposed/arch/ia64/Kconfig.debug
@@ -1,4 +1,3 @@
-
 menu "IA64 kernel hacking"
 
 choice
arch/m68k/Kconfig.debug +1 -2
diff -Naurp linux-2.6.6-rc1-Kconfig.debug.v2/arch/m68k/Kconfig.debug linux-2.6.6-rc1-Kconfig.debug.v3-proposed/arch/m68k/Kconfig.debug
@@ -1,9 +1,8 @@
-
 menu "M68K kernel hacking"
+	depends on DEBUG_KERNEL
 
 config DEBUG_BUGVERBOSE
 	bool "Verbose BUG() reporting"
-	depends on DEBUG_KERNEL
 
 endmenu
 
arch/m68knommu/Kconfig.debug +0 -1
diff -Naurp linux-2.6.6-rc1-Kconfig.debug.v2/arch/m68knommu/Kconfig.debug linux-2.6.6-rc1-Kconfig.debug.v3-proposed/arch/m68knommu/Kconfig.debug
@@ -1,4 +1,3 @@
-
 menu "M68K-nommu kernel hacking"
 
 config FULLDEBUG
arch/mips/Kconfig.debug +0 -1
diff -Naurp linux-2.6.6-rc1-Kconfig.debug.v2/arch/mips/Kconfig.debug linux-2.6.6-rc1-Kconfig.debug.v3-proposed/arch/mips/Kconfig.debug
@@ -1,4 +1,3 @@
-
 menu "MIPS kernel hacking"
 
 config CROSSCOMPILE
arch/parisc/Kconfig.debug +0 -1
diff -Naurp linux-2.6.6-rc1-Kconfig.debug.v2/arch/parisc/Kconfig.debug linux-2.6.6-rc1-Kconfig.debug.v3-proposed/arch/parisc/Kconfig.debug
@@ -1,4 +1,3 @@
-
 menu "PA-RISC kernel hacking"
 
 endmenu
arch/ppc/Kconfig.debug +0 -1
diff -Naurp linux-2.6.6-rc1-Kconfig.debug.v2/arch/ppc/Kconfig.debug linux-2.6.6-rc1-Kconfig.debug.v3-proposed/arch/ppc/Kconfig.debug
@@ -1,4 +1,3 @@
-
 menu "PPC kernel hacking"
 
 config KGDB
arch/ppc64/Kconfig.debug +0 -1
diff -Naurp linux-2.6.6-rc1-Kconfig.debug.v2/arch/ppc64/Kconfig.debug linux-2.6.6-rc1-Kconfig.debug.v3-proposed/arch/ppc64/Kconfig.debug
@@ -1,4 +1,3 @@
-
 menu "PPC64 kernel hacking"
 
 config DEBUGGER
arch/sh/Kconfig.debug +0 -1
diff -Naurp linux-2.6.6-rc1-Kconfig.debug.v2/arch/sh/Kconfig.debug linux-2.6.6-rc1-Kconfig.debug.v3-proposed/arch/sh/Kconfig.debug
@@ -1,4 +1,3 @@
-
 menu "SuperH kernel hacking"
 
 config SH_STANDARD_BIOS
arch/sparc64/Kconfig.debug +0 -1
diff -Naurp linux-2.6.6-rc1-Kconfig.debug.v2/arch/sparc64/Kconfig.debug linux-2.6.6-rc1-Kconfig.debug.v3-proposed/arch/sparc64/Kconfig.debug
@@ -1,4 +1,3 @@
-
 menu "UltraSPARC kernel hacking"
 
 config DEBUG_BUGVERBOSE
arch/um/Kconfig.debug +0 -1
diff -Naurp linux-2.6.6-rc1-Kconfig.debug.v2/arch/um/Kconfig.debug linux-2.6.6-rc1-Kconfig.debug.v3-proposed/arch/um/Kconfig.debug
@@ -1,4 +1,3 @@
-
 menu "UML kernel hacking"
 
 config PT_PROXY
arch/v850/Kconfig.debug +0 -1
diff -Naurp linux-2.6.6-rc1-Kconfig.debug.v2/arch/v850/Kconfig.debug linux-2.6.6-rc1-Kconfig.debug.v3-proposed/arch/v850/Kconfig.debug
@@ -1,4 +1,3 @@
-
 menu "V850 kernel hacking"
 
 config NO_KERNEL_MSG
arch/x86_64/Kconfig.debug +0 -1
diff -Naurp linux-2.6.6-rc1-Kconfig.debug.v2/arch/x86_64/Kconfig.debug linux-2.6.6-rc1-Kconfig.debug.v3-proposed/arch/x86_64/Kconfig.debug
@@ -1,4 +1,3 @@
-
 menu "X86-64 kernel hacking"
 
 # !SMP for now because the context switch early causes GPF in segment reloading
lib/Kconfig.debug +17 -18
diff -Naurp linux-2.6.6-rc1-Kconfig.debug.v2/lib/Kconfig.debug linux-2.6.6-rc1-Kconfig.debug.v3-proposed/lib/Kconfig.debug
@@ -1,3 +1,4 @@
+# Generic debug menu
 
 menu "Generic kernel hacking"
 
@@ -22,18 +23,9 @@ config MAGIC_SYSRQ
 	  keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
 	  unless you really know what this hack does.
 
-config KALLSYMS
-	 bool "Load all symbols for debugging/kksymoops" if EMBEDDED
-	 default y if !ARCH_S390
-	 help
-	   Say Y here to let the kernel print out symbolic crash information and
-	   symbolic stack backtraces. This increases the size of the kernel
-	   somewhat, as all symbols have to be loaded into the kernel image.
-
-if X86 || X86_64 || MACH_DECSTATION || ALPHA_GENERIC || ALPHA_SRM || PPC64
-
 config EARLY_PRINTK
-	bool "Early printk" if EMBEDDED
+	bool "Early printk"
+	depends on DEBUG_KERNEL && (X86 || X86_64 || MACH_DECSTATION || ALPHA_GENERIC || ALPHA_SRM || PPC64)
 	default y
 	help
 	  Write kernel log output directly into the VGA buffer or to a serial
@@ -45,8 +37,6 @@ config EARLY_PRINTK
 	  with klogd/syslogd or the X server. You should normally N here,
 	  unless you want to debug such a crash.
 
-endif
-
 config DEBUG_STACKOVERFLOW
 	bool "Check for stack overflows"
 	depends on DEBUG_KERNEL && !ALPHA && !M68K && !S390 && !SUPERH && !V850
@@ -99,6 +89,15 @@ config DEBUG_HIGHMEM
 	  This options enables addition error checking for high memory systems.
 	  Disable for production systems.
 
+config KALLSYMS
+	bool "Load all symbols for debugging/kksymoops"
+	depends on DEBUG_KERNEL
+	default y if !ARCH_S390
+	help
+	  Say Y here to let the kernel print out symbolic crash information and
+	  symbolic stack backtraces. This increases the size of the kernel
+	  somewhat, as all symbols have to be loaded into the kernel image.
+
 config DEBUG_INFO
 	bool "Compile the kernel with debug info"
 	depends on DEBUG_KERNEL && !SUPERH
@@ -109,19 +108,19 @@ config DEBUG_INFO
 	  Say Y here only if you plan to use gdb to debug the kernel.
 	  If you don't debug the kernel, you can say N.
 	  
-if !ARM && !ARM26 && !X86_64 && !S390 && !V850
 config FRAME_POINTER
 	bool "Compile the kernel with frame pointers"
+	depends on DEBUG_KERNEL && (!ARM && !ARM26 && !X86_64 && !S390 && !V850)
 	default y if (SUPERH && KGDB) || (USERMODE && DEBUG_INFO)
 	help
 	  If you say Y here the resulting kernel image will be slightly larger
 	  and slower, but it will give very useful debugging information.
 	  If you don't debug the kernel, you can say N, but we may not be able
 	  to solve problems without frame pointers.
-endif
-if X86_64
+
 config FRAME_POINTER
 	bool "Compile the kernel with frame pointers"
+	depends on DEBUG_KERNEL && X86_64
 	help
 	  If you say Y here the resulting kernel image will be slightly larger
 	  and slower, but it will give very useful debugging information.
@@ -132,10 +131,10 @@ config FRAME_POINTER
 	  the x86-64 kernel doesn't ensure a consistent
 	  frame pointer through inline assembly (semaphores etc.)
 	  Normally you should say N.
-endif
 
 config 4KSTACKS
-	bool "Use 4Kb for kernel stacks instead of 8Kb" if !M68K && !SUPERH && !V850
+	bool "Use 4Kb for kernel stacks instead of 8Kb"
+	depends on !M68K && !SUPERH && !V850
 	help
 	  If you say Y here the kernel will use a 4Kb stacksize for the
 	  kernel stack attached to each process/thread. This facilitates
#2 lore raw

Re: [PATCH] use Kconfig.debug (v3-proposed) (was: Re: [PATCH] use Kconfig.debug (v2))

On Fri, 16 Apr 2004 10:42:21 +0200 Marc-Christian Petersen wrote:

| On Friday 16 April 2004 07:03, Randy.Dunlap wrote:
| 
| Hi Randy,
| 
| > Use generic lib/Kconfig.debug and arch-specific arch/*/Kconfig.debug.
| > Move KALLSYMS to generic debugging menu.
| > Changes from version 1:
| > 1.  remove global !CRIS && !H8300 from lib/Kconfig.debug;
| > 2.  for CRIS and H8300, don't source lib/Kconfig.debug (not used);
| > 3.  corrected several lib/Kconfig.debug ARCH usages;
| > 4.  small change in generic debug menu order (moved SPINLOCK
| > 	options together);
| > Ready for testing IMO.  More comments?
| 
| yes. I'd like to see it this way:
| 
| Changes from version 2:
| 1.  Early Printk should not depend on EMBEDDED
| 2.  change "if foobar" to "depend on"

These mean the same thing to the config software, so I don't care which way it's done.

| 3.  remove endif's superfluous because of 2.
| 4.  Move KALLSYMS some places lower

Then let's move KALLSYMS to the very end of the menu. At the very least it should be after the last "depends on DEBUG_KERNEL" entry, but it still interferes with that dependency chain as either of us has it.

| 5.  Add some more "depend on DEBUG_KERNEL" to indent the menu
| 6.  Remove trailing new lines in some arch specific Kconfig.debug
| 7.  move depends on DEBUG_KERNEL for arch/m68k/Kconfig.debug to
|     the menu so you only see that menu if you select DEBUG_KERNEL
|     You can't select anything there if DEBUG_KERNEL is N.

Maybe do the same for parisc and s390, so that they don't show up at all?

sparc is the same way: only entry(s) depend on DEBUG_KERNEL. Same for x86_64.

However, I did it that way for "future-proofing". Makes it easy for someone to add an entry without having to think about higher-level parameters/values etc.

| 8.  Whitespace cleanups
| 
| Comments?

Yes... and you?

| Everything else is fine with me.
| 
| All-in-One v3-proposed is here:
|  http://www.kernel.org/pub/linux/kernel/people/mcp/linux-2.6/kconf-debug-v3-proposed-2.6.6-rc1.patch
| 
| Update from v2 to v3-proposed is here too:
|  http://www.kernel.org/pub/linux/kernel/people/mcp/linux-2.6/kconf-debug-v2-to-v3-proposed-2.6.6-rc1.patch

Thanks,
--
~Randy

#3 lore raw

Re: [PATCH] use Kconfig.debug (v3-proposed) (was: Re: [PATCH] use Kconfig.debug (v2))

On Fri, 16 Apr 2004 11:01:49 -0700 Randy.Dunlap wrote:

| On Fri, 16 Apr 2004 10:42:21 +0200 Marc-Christian Petersen wrote:
| 
| | On Friday 16 April 2004 07:03, Randy.Dunlap wrote:
| | 
| | Hi Randy,
| | 
| | > Use generic lib/Kconfig.debug and arch-specific arch/*/Kconfig.debug.
| | > Move KALLSYMS to generic debugging menu.
| | > Changes from version 1:
| | > 1.  remove global !CRIS && !H8300 from lib/Kconfig.debug;
| | > 2.  for CRIS and H8300, don't source lib/Kconfig.debug (not used);
| | > 3.  corrected several lib/Kconfig.debug ARCH usages;
| | > 4.  small change in generic debug menu order (moved SPINLOCK
| | > 	options together);
| | > Ready for testing IMO.  More comments?
| | 
| | yes. I'd like to see it this way:
| | 
| | Changes from version 2:
| | 1.  Early Printk should not depend on EMBEDDED
| | 2.  change "if foobar" to "depend on"
| 
| These mean the same thing to the config software, so I don't
| care which way it's done.
| 
| | 3.  remove endif's superfluous because of 2.
| | 4.  Move KALLSYMS some places lower
| 
| Then let's move KALLSYMS to the very end of the menu.
| At the very least it should be after the last "depends on
| DEBUG_KERNEL" entry, but it still interferes with that
| dependency chain as either of us has it.
| 
| | 5.  Add some more "depend on DEBUG_KERNEL" to indent the menu
| | 6.  Remove trailing new lines in some arch specific Kconfig.debug
| | 7.  move depends on DEBUG_KERNEL for arch/m68k/Kconfig.debug to
| |     the menu so you only see that menu if you select DEBUG_KERNEL
| |     You can't select anything there if DEBUG_KERNEL is N.
| 
| Maybe do the same for parisc and s390, so that they don't show up
| at all?
| 
| sparc is the same way:  only entry(s) depend on DEBUG_KERNEL.
| Same for x86_64.
| 
| However, I did it that way for "future-proofing".  Makes it
| easy for someone to add an entry without having to think about
| higher-level parameters/values etc.
| 
| | 8.  Whitespace cleanups
| | 
| | Comments?
| 
| Yes... and you?
| 
| 
| | Everything else is fine with me.
| | 
| | All-in-One v3-proposed is here:
| |  http://www.kernel.org/pub/linux/kernel/people/mcp/linux-2.6/kconf-debug-v3-proposed-2.6.6-rc1.patch
| | 
| | Update from v2 to v3-proposed is here too:
| |  http://www.kernel.org/pub/linux/kernel/people/mcp/linux-2.6/kconf-debug-v2-to-v3-proposed-2.6.6-rc1.patch

Here is my v2-to-v3 update patch, incorporating Marc's suggestions with a few small additions as mentioned in my comments above.

Update patch is below and is also available at:
http://developer.osdl.org/rddunlap/patches/kconf_debug_v2v3.patch

This update patch applies to:
http://developer.osdl.org/rddunlap/patches/kconf_debug_266rc1.patch
(which applies to 2.6.6-rc1).

--
~Randy
"We have met the enemy and he is us." -- Pogo (by Walt Kelly) (Again. Sometimes I think ln -s /usr/src/linux/.config .signature)

// merge changes from Marc (mcp)
// applies to 2.6.6-rc1 + http://developer.osdl.org/rddunlap/patches/kconf_debug_266rc1.patch
// This file is: http://developer.osdl.org/rddunlap/patches/kconf_debug_v2v3.patch

Changes from version 2:

1.  Early Printk should not depend on EMBEDDED
2.  change "if foobar" to "depend on"
3.  remove endif's superfluous because of 2.
4.  Move KALLSYMS some places lower (last in generic menu)
5.  Add some more "depend on DEBUG_KERNEL" to indent the menu
6.  Remove trailing new lines in some arch specific Kconfig.debug
7.  move depends on DEBUG_KERNEL for arch/{m68k,parisc,s390,sparc}/Kconfig.debug

to the menu so you only see that menu if you select DEBUG_KERNEL. You can't select anything there if DEBUG_KERNEL is N.
8. Whitespace cleanups

diffstat:=

 arch/cris/Kconfig.debug      |    1 -
 arch/h8300/Kconfig.debug     |    1 -
 arch/i386/Kconfig.debug      |    1 -
 arch/ia64/Kconfig.debug      |    1 -
 arch/m68k/Kconfig.debug      |    3 +--
 arch/m68knommu/Kconfig.debug |    1 -
 arch/mips/Kconfig.debug      |    1 -
 arch/parisc/Kconfig.debug    |    2 +-
 arch/ppc/Kconfig.debug       |    1 -
 arch/ppc64/Kconfig.debug     |    1 -
 arch/s390/Kconfig.debug      |    1 +
 arch/sh/Kconfig.debug        |    1 -
 arch/sparc/Kconfig.debug     |    2 +-
 arch/sparc64/Kconfig.debug   |    1 -
 arch/um/Kconfig.debug        |    1 -
 arch/v850/Kconfig.debug      |    1 -
 arch/x86_64/Kconfig.debug    |    1 -
 lib/Kconfig.debug            |   35 +++++++++++++++++------------------
 18 files changed, 21 insertions(+), 35 deletions(-)
arch/sparc/Kconfig.debug renamed from arch/sparc/Kconfig.debug~mcp_v2v3 +1 -1
diff -Naurp ./arch/sparc/Kconfig.debug~mcp_v2v3 ./arch/sparc/Kconfig.debug
@@ -1,9 +1,9 @@
 
 menu "SPARC kernel hacking"
+	depends on DEBUG_KERNEL
 
 config DEBUG_BUGVERBOSE
 	bool "Verbose BUG() reporting (adds 70K)"
-	depends on DEBUG_KERNEL
 	help
 	  Say Y here to make BUG() panics output the file name and line number
 	  of the BUG call as well as the EIP and oops trace.  This aids
arch/sparc64/Kconfig.debug renamed from arch/sparc64/Kconfig.debug~mcp_v2v3 +0 -1
diff -Naurp ./arch/sparc64/Kconfig.debug~mcp_v2v3 ./arch/sparc64/Kconfig.debug
@@ -1,4 +1,3 @@
-
 menu "UltraSPARC kernel hacking"
 
 config DEBUG_BUGVERBOSE
arch/i386/Kconfig.debug renamed from arch/i386/Kconfig.debug~mcp_v2v3 +0 -1
diff -Naurp ./arch/i386/Kconfig.debug~mcp_v2v3 ./arch/i386/Kconfig.debug
@@ -1,4 +1,3 @@
-
 menu "X86 kernel hacking"
 
 config X86_FIND_SMP_CONFIG
arch/sh/Kconfig.debug renamed from arch/sh/Kconfig.debug~mcp_v2v3 +0 -1
diff -Naurp ./arch/sh/Kconfig.debug~mcp_v2v3 ./arch/sh/Kconfig.debug
@@ -1,4 +1,3 @@
-
 menu "SuperH kernel hacking"
 
 config SH_STANDARD_BIOS
arch/ppc/Kconfig.debug renamed from arch/ppc/Kconfig.debug~mcp_v2v3 +0 -1
diff -Naurp ./arch/ppc/Kconfig.debug~mcp_v2v3 ./arch/ppc/Kconfig.debug
@@ -1,4 +1,3 @@
-
 menu "PPC kernel hacking"
 
 config KGDB
arch/mips/Kconfig.debug renamed from arch/mips/Kconfig.debug~mcp_v2v3 +0 -1
diff -Naurp ./arch/mips/Kconfig.debug~mcp_v2v3 ./arch/mips/Kconfig.debug
@@ -1,4 +1,3 @@
-
 menu "MIPS kernel hacking"
 
 config CROSSCOMPILE
arch/m68knommu/Kconfig.debug renamed from arch/m68knommu/Kconfig.debug~mcp_v2v3 +0 -1
diff -Naurp ./arch/m68knommu/Kconfig.debug~mcp_v2v3 ./arch/m68knommu/Kconfig.debug
@@ -1,4 +1,3 @@
-
 menu "M68K-nommu kernel hacking"
 
 config FULLDEBUG
arch/um/Kconfig.debug renamed from arch/um/Kconfig.debug~mcp_v2v3 +0 -1
diff -Naurp ./arch/um/Kconfig.debug~mcp_v2v3 ./arch/um/Kconfig.debug
@@ -1,4 +1,3 @@
-
 menu "UML kernel hacking"
 
 config PT_PROXY
arch/cris/Kconfig.debug renamed from arch/cris/Kconfig.debug~mcp_v2v3 +0 -1
diff -Naurp ./arch/cris/Kconfig.debug~mcp_v2v3 ./arch/cris/Kconfig.debug
@@ -1,4 +1,3 @@
-
 menu "CRIS kernel hacking"
 
 #bool 'Debug kmalloc/kfree' CONFIG_DEBUG_MALLOC
arch/m68k/Kconfig.debug renamed from arch/m68k/Kconfig.debug~mcp_v2v3 +1 -2
diff -Naurp ./arch/m68k/Kconfig.debug~mcp_v2v3 ./arch/m68k/Kconfig.debug
@@ -1,9 +1,8 @@
-
 menu "M68K kernel hacking"
+	depends on DEBUG_KERNEL
 
 config DEBUG_BUGVERBOSE
 	bool "Verbose BUG() reporting"
-	depends on DEBUG_KERNEL
 
 endmenu
 
arch/ia64/Kconfig.debug renamed from arch/ia64/Kconfig.debug~mcp_v2v3 +0 -1
diff -Naurp ./arch/ia64/Kconfig.debug~mcp_v2v3 ./arch/ia64/Kconfig.debug
@@ -1,4 +1,3 @@
-
 menu "IA64 kernel hacking"
 
 choice
arch/ppc64/Kconfig.debug renamed from arch/ppc64/Kconfig.debug~mcp_v2v3 +0 -1
diff -Naurp ./arch/ppc64/Kconfig.debug~mcp_v2v3 ./arch/ppc64/Kconfig.debug
@@ -1,4 +1,3 @@
-
 menu "PPC64 kernel hacking"
 
 config DEBUGGER
arch/parisc/Kconfig.debug renamed from arch/parisc/Kconfig.debug~mcp_v2v3 +1 -1
diff -Naurp ./arch/parisc/Kconfig.debug~mcp_v2v3 ./arch/parisc/Kconfig.debug
@@ -1,5 +1,5 @@
-
 menu "PA-RISC kernel hacking"
+	depends on DEBUG_KERNEL
 
 endmenu
 
arch/h8300/Kconfig.debug renamed from arch/h8300/Kconfig.debug~mcp_v2v3 +0 -1
diff -Naurp ./arch/h8300/Kconfig.debug~mcp_v2v3 ./arch/h8300/Kconfig.debug
@@ -1,4 +1,3 @@
-
 menu "H8300 kernel hacking"
 
 config FULLDEBUG
arch/v850/Kconfig.debug renamed from arch/v850/Kconfig.debug~mcp_v2v3 +0 -1
diff -Naurp ./arch/v850/Kconfig.debug~mcp_v2v3 ./arch/v850/Kconfig.debug
@@ -1,4 +1,3 @@
-
 menu "V850 kernel hacking"
 
 config NO_KERNEL_MSG
arch/x86_64/Kconfig.debug renamed from arch/x86_64/Kconfig.debug~mcp_v2v3 +0 -1
diff -Naurp ./arch/x86_64/Kconfig.debug~mcp_v2v3 ./arch/x86_64/Kconfig.debug
@@ -1,4 +1,3 @@
-
 menu "X86-64 kernel hacking"
 
 # !SMP for now because the context switch early causes GPF in segment reloading
arch/s390/Kconfig.debug renamed from arch/s390/Kconfig.debug~mcp_v2v3 +1 -0
diff -Naurp ./arch/s390/Kconfig.debug~mcp_v2v3 ./arch/s390/Kconfig.debug
@@ -1,5 +1,6 @@
 
 menu "S/390 kernel hacking"
+	depends on DEBUG_KERNEL
 
 endmenu
 
lib/Kconfig.debug renamed from lib/Kconfig.debug~mcp_v2v3 +17 -18
diff -Naurp ./lib/Kconfig.debug~mcp_v2v3 ./lib/Kconfig.debug
@@ -1,3 +1,4 @@
+# Generic debug menu
 
 menu "Generic kernel hacking"
 
@@ -22,18 +23,9 @@ config MAGIC_SYSRQ
 	  keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
 	  unless you really know what this hack does.
 
-config KALLSYMS
-	 bool "Load all symbols for debugging/kksymoops" if EMBEDDED
-	 default y if !ARCH_S390
-	 help
-	   Say Y here to let the kernel print out symbolic crash information and
-	   symbolic stack backtraces. This increases the size of the kernel
-	   somewhat, as all symbols have to be loaded into the kernel image.
-
-if X86 || X86_64 || MACH_DECSTATION || ALPHA_GENERIC || ALPHA_SRM || PPC64
-
 config EARLY_PRINTK
-	bool "Early printk" if EMBEDDED
+	bool "Early printk"
+	depends on DEBUG_KERNEL && (X86 || X86_64 || MACH_DECSTATION || ALPHA_GENERIC || ALPHA_SRM || PPC64)
 	default y
 	help
 	  Write kernel log output directly into the VGA buffer or to a serial
@@ -45,8 +37,6 @@ config EARLY_PRINTK
 	  with klogd/syslogd or the X server. You should normally N here,
 	  unless you want to debug such a crash.
 
-endif
-
 config DEBUG_STACKOVERFLOW
 	bool "Check for stack overflows"
 	depends on DEBUG_KERNEL && !ALPHA && !M68K && !S390 && !SUPERH && !V850
@@ -109,19 +99,19 @@ config DEBUG_INFO
 	  Say Y here only if you plan to use gdb to debug the kernel.
 	  If you don't debug the kernel, you can say N.
 	  
-if !ARM && !ARM26 && !X86_64 && !S390 && !V850
 config FRAME_POINTER
 	bool "Compile the kernel with frame pointers"
+	depends on DEBUG_KERNEL && (!ARM && !ARM26 && !X86_64 && !S390 && !V850)
 	default y if (SUPERH && KGDB) || (USERMODE && DEBUG_INFO)
 	help
 	  If you say Y here the resulting kernel image will be slightly larger
 	  and slower, but it will give very useful debugging information.
 	  If you don't debug the kernel, you can say N, but we may not be able
 	  to solve problems without frame pointers.
-endif
-if X86_64
+
 config FRAME_POINTER
 	bool "Compile the kernel with frame pointers"
+	depends on DEBUG_KERNEL && X86_64
 	help
 	  If you say Y here the resulting kernel image will be slightly larger
 	  and slower, but it will give very useful debugging information.
@@ -132,10 +122,10 @@ config FRAME_POINTER
 	  the x86-64 kernel doesn't ensure a consistent
 	  frame pointer through inline assembly (semaphores etc.)
 	  Normally you should say N.
-endif
 
 config 4KSTACKS
-	bool "Use 4Kb for kernel stacks instead of 8Kb" if !M68K && !SUPERH && !V850
+	bool "Use 4Kb for kernel stacks instead of 8Kb"
+	depends on !M68K && !SUPERH && !V850
 	help
 	  If you say Y here the kernel will use a 4Kb stacksize for the
 	  kernel stack attached to each process/thread. This facilitates
@@ -143,5 +133,14 @@ config 4KSTACKS
 	  on the VM subsystem for higher order allocations. This option
 	  will also use IRQ stacks to compensate for the reduced stackspace.
 
+config KALLSYMS
+	bool "Load all symbols for debugging/kksymoops"
+	depends on DEBUG_KERNEL
+	default y if !ARCH_S390
+	help
+	  Say Y here to let the kernel print out symbolic crash information and
+	  symbolic stack backtraces. This increases the size of the kernel
+	  somewhat, as all symbols have to be loaded into the kernel image.
+
 endmenu
 
#4 lore raw

Re: [PATCH] use Kconfig.debug (v3-proposed) (was: Re: [PATCH] use Kconfig.debug (v2))

On Friday 16 April 2004 23:22, Randy.Dunlap wrote:

Hey Randy,

Quoted 2 lines

Here is my v2-to-v3 update patch, incorporating Marc's suggestions with a few small additions as mentioned in my comments above.

cool.

Completely fine with me now. Thank you. If no one else objects, please merge it up Andrew.

ciao, Marc

#5 lore raw

PATCH 1/1 use Kconfig.debug (v4)

On Fri, 16 Apr 2004 23:43:43 +0200 Marc-Christian Petersen wrote:

| On Friday 16 April 2004 23:22, Randy.Dunlap wrote:
| 
| Hey Randy,
| 
| > Here is my v2-to-v3 update patch, incorporating Marc's suggestions
| > with a few small additions as mentioned in my comments above.
| 
| cool.
| 
| Completely fine with me now. Thank you. If no one else objects, please merge 
| it up Andrew.

Let's try one more, more like your very first suggestion of using lib/Kconfig.debug for everything. Only difference is that I added (kept) a new menu level for each arch in the generic Kernel hacking menu. Only the expected one shows up in menuconfig.
In xconfig, with Show All Options enabled, each arch menu is selectable, but each config item doesn't show up unless requested. I didn't have this new menu level in my first attempt, so it looked less acceptable, but this is the best solution yet, I think.

Other comments?

Rolled up patch against 2.6.6-rc1:
http://developer.osdl.org/rddunlap/patches/kconf_debug_1file_266rc1.patch

 arch/alpha/Kconfig           |  104 ---------------------
 arch/alpha/Kconfig.debug     |   54 +++++++++++
 arch/arm/Kconfig             |  160 ---------------------------------
 arch/arm/Kconfig.debug       |  113 +++++++++++++++++++++++
 arch/arm26/Kconfig           |  113 -----------------------
 arch/arm26/Kconfig.debug     |   58 ++++++++++++
 arch/cris/Kconfig            |   14 --
 arch/cris/Kconfig.debug      |   14 ++
 arch/h8300/Kconfig           |   72 --------------
 arch/h8300/Kconfig.debug     |   66 +++++++++++++
 arch/i386/Kconfig            |  125 -------------------------
 arch/i386/Kconfig.debug      |   14 ++
 arch/ia64/Kconfig            |  114 -----------------------
 arch/ia64/Kconfig.debug      |   62 ++++++++++++
 arch/m68k/Kconfig            |   38 -------
 arch/m68k/Kconfig.debug      |    8 +
 arch/m68knommu/Kconfig       |   55 -----------
 arch/m68knommu/Kconfig.debug |   41 ++++++++
 arch/mips/Kconfig            |  111 -----------------------
 arch/mips/Kconfig.debug      |   66 +++++++++++++
 arch/parisc/Kconfig          |   49 ----------
 arch/parisc/Kconfig.debug    |    5 +
 arch/ppc/Kconfig             |  124 -------------------------
 arch/ppc/Kconfig.debug       |   71 ++++++++++++++
 arch/ppc64/Kconfig           |   80 ----------------
 arch/ppc64/Kconfig.debug     |   26 +++++
 arch/s390/Kconfig            |   56 -----------
 arch/s390/Kconfig.debug      |    6 +
 arch/sh/Kconfig              |  140 -----------------------------
 arch/sh/Kconfig.debug        |  110 ++++++++++++++++++++++
 arch/sparc/Kconfig           |   72 --------------
 arch/sparc/Kconfig.debug     |   13 ++
 arch/sparc64/Kconfig         |   99 --------------------
 arch/sparc64/Kconfig.debug   |   37 +++++++
 arch/um/Kconfig              |   60 ------------
 arch/um/Kconfig.debug        |   34 +++++++
 arch/v850/Kconfig            |   29 ------
 arch/v850/Kconfig.debug      |    9 +
 arch/x86_64/Kconfig          |  101 --------------------
 arch/x86_64/Kconfig.debug    |   46 +++++++++
 init/Kconfig                 |    8 -
 lib/Kconfig.debug            |  207 +++++++++++++++++++++++++++++++++++++++++++
 42 files changed, 1080 insertions(+), 1704 deletions(-)

--
~Randy

#6 lore raw

Re: [PATCH] use Kconfig.debug (v3-proposed) (was: Re: [PATCH] use Kconfig.debug (v2))

In reply to Randy.Dunlap

On Friday 16 April 2004 20:01, Randy.Dunlap wrote:

Hi Randy,

Quoted 4 lines

Then let's move KALLSYMS to the very end of the menu. At the very least it should be after the last "depends on DEBUG_KERNEL" entry, but it still interferes with that dependency chain as either of us has it.

ok.

Quoted 2 lines

Maybe do the same for parisc and s390, so that they don't show up at all?

dooh. Seems I forgot it :( - Sorry.

Quoted 2 lines

sparc is the same way: only entry(s) depend on DEBUG_KERNEL. Same for x86_64.

yes.

Quoted 3 lines

However, I did it that way for "future-proofing". Makes it easy for someone to add an entry without having to think about higher-level parameters/values etc.

good point, but for now it may confuse people. Once someone's gonna put selectable stuff in there we can change that back at once :)

ciao, Marc