Skip to contentSkip to conversation

kbuild: fix CONFIG_EMBEDDED submenu

PATCH In review Vegard Nossum 2 participants 3 messages Nov 28, 2008 – Nov 29, 2008

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 kbuild: fix CONFIG_EMBEDDED submenu

Quoted 1 line

From 06f65799401f08eff0020ba0300133c89bd02349 Mon Sep 17 00:00:00 2001

From: Vegard Nossum <[email protected]>
Date: Fri, 28 Nov 2008 18:29:47 +0100
Subject: [PATCH] kbuild: fix CONFIG_EMBEDDED submenu

Many of the elements of the EMBEDDED submenu were being expanded in the current menu instead of inside the submenu. This was caused by the lack of (explicit) dependencies on EMBEDDED. The simplest fix is to wrap everything (except COMPAT_BRK, which just toggles a setting) in "if/endif EMBEDDED".

---
 init/Kconfig |   27 +++++++++++++++------------
 1 files changed, 15 insertions(+), 12 deletions(-)
init/Kconfig +15 -12
index f763762..4590d97 100644
@@ -546,6 +546,7 @@ menuconfig EMBEDDED
           environments which can tolerate a "non-standard" kernel.
           Only use this if you really know what you are doing.
 
+if EMBEDDED
 config UID16
 	bool "Enable 16-bit UID system calls" if EMBEDDED
 	depends on ARM || BLACKFIN || CRIS || FRV || H8300 || X86_32 || M68K || (S390 && !64BIT) || SUPERH || SPARC32 || (SPARC64 && COMPAT) || UML || (X86_64 && IA32_EMULATION)
@@ -643,18 +644,6 @@ config PCSPKR_PLATFORM
           This option allows to disable the internal PC-Speaker
           support, saving some memory.
 
-config COMPAT_BRK
-	bool "Disable heap randomization"
-	default y
-	help
-	  Randomizing heap placement makes heap exploits harder, but it
-	  also breaks ancient binaries (including anything libc5 based).
-	  This option changes the bootup default to heap randomization
-	  disabled, and can be overriden runtime by setting
-	  /proc/sys/kernel/randomize_va_space to 2.
-
-	  On non-ancient distros (post-2000 ones) N is usually a safe choice.
-
 config BASE_FULL
 	default y
 	bool "Enable full-sized data structures for core" if EMBEDDED
@@ -760,6 +749,20 @@ config SLUB_DEBUG
 	  SLUB sysfs support. /sys/slab will not exist and there will be
 	  no support for cache validation etc.
 
+endif
+
+config COMPAT_BRK
+	bool "Disable heap randomization"
+	default y
+	help
+	  Randomizing heap placement makes heap exploits harder, but it
+	  also breaks ancient binaries (including anything libc5 based).
+	  This option changes the bootup default to heap randomization
+	  disabled, and can be overriden runtime by setting
+	  /proc/sys/kernel/randomize_va_space to 2.
+
+	  On non-ancient distros (post-2000 ones) N is usually a safe choice.
+
 choice
 	prompt "Choose SLAB allocator"
 	default SLUB
Signature · 1 line
1.5.6.5
#1 lore raw
Quoted 10 lines · Vegard Nossum

From 06f65799401f08eff0020ba0300133c89bd02349 Mon Sep 17 00:00:00 2001
From: Vegard Nossum <[email protected]>
Date: Fri, 28 Nov 2008 18:29:47 +0100
Subject: [PATCH] kbuild: fix CONFIG_EMBEDDED submenu

Many of the elements of the EMBEDDED submenu were being expanded in the current menu instead of inside the submenu. This was caused by the lack of (explicit) dependencies on EMBEDDED. The simplest fix is to wrap everything (except COMPAT_BRK, which just toggles a setting) in "if/endif EMBEDDED".

Urgh -- the menu displays correctly, but defconfig now becomes totally wrong, because the items inside are taken to depend on EMBEDDED instead of toggling visibility. Better to add "if EMBEDDED" to the end of all the prompts, then.

That was counter-intuitive :-(

Vegard

Signature · 4 lines
"The animistic metaphor of the bug that maliciously sneaked in while
the programmer was not looking is intellectually dishonest as it
disguises that the error is the programmer's own creation."
	-- E. W. Dijkstra, EWD1036
#2 lore raw
Quoted 12 lines · Vegard Nossum
Quoted 10 lines · Vegard Nossum

From 06f65799401f08eff0020ba0300133c89bd02349 Mon Sep 17 00:00:00 2001
From: Vegard Nossum <[email protected]>
Date: Fri, 28 Nov 2008 18:29:47 +0100
Subject: [PATCH] kbuild: fix CONFIG_EMBEDDED submenu

Many of the elements of the EMBEDDED submenu were being expanded in the current menu instead of inside the submenu. This was caused by the lack of (explicit) dependencies on EMBEDDED. The simplest fix is to wrap everything (except COMPAT_BRK, which just toggles a setting) in "if/endif EMBEDDED".

Quoted 6 lines

Urgh -- the menu displays correctly, but defconfig now becomes totally wrong, because the items inside are taken to depend on EMBEDDED instead of toggling visibility. Better to add "if EMBEDDED" to the end of all the prompts, then.

That was counter-intuitive :-(

Thanks for the feedback Vegard!

I had it queued as I wanted to check if the conversion from
prompt "foo" if EMBEDDED

to
depends on EMBEDDED

caused any signigicant difference. And so it did.

The fist uses EMBEDDED to say if the prompt is visible or not. The latter say if this symbol can be set or not (overriding default) as you experienced.

One day we should take a deeper look at the usage of EMBEDDED. Replacing EMBEDDED with:

OPTIMIZE_FOR_TEXT_SIZE
OPTIMIZE_FOR_DATA_SIZE
KERNEL_EXPERT

would make it much more obvious what you could
achive by the individual options.

Sam