+ kconfig-make-allnoconfig-disable-options-behind-embedded-and-expert.patch added to -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Subject: + kconfig-make-allnoconfig-disable-options-behind-embedded-and-expert.patch added to -mm tree
To: josh@xxxxxxxxxxxxxxxx,mmarek@xxxxxxx,paulmck@xxxxxxxxxxxxxxxxxx
From: akpm@xxxxxxxxxxxxxxxxxxxx
Date: Mon, 24 Feb 2014 14:42:08 -0800


The patch titled
     Subject: kconfig: make allnoconfig disable options behind EMBEDDED and EXPERT
has been added to the -mm tree.  Its filename is
     kconfig-make-allnoconfig-disable-options-behind-embedded-and-expert.patch

This patch should soon appear at
    http://ozlabs.org/~akpm/mmots/broken-out/kconfig-make-allnoconfig-disable-options-behind-embedded-and-expert.patch
and later at
    http://ozlabs.org/~akpm/mmotm/broken-out/kconfig-make-allnoconfig-disable-options-behind-embedded-and-expert.patch

Before you just go and hit "reply", please:
   a) Consider who else should be cc'ed
   b) Prefer to cc a suitable mailing list as well
   c) Ideally: find the original patch on the mailing list and do a
      reply-to-all to that, adding suitable additional cc's

*** Remember to use Documentation/SubmitChecklist when testing your code ***

The -mm tree is included into linux-next and is updated
there every 3-4 working days

------------------------------------------------------
From: Josh Triplett <josh@xxxxxxxxxxxxxxxx>
Subject: kconfig: make allnoconfig disable options behind EMBEDDED and EXPERT

"make allnoconfig" exists to ease testing of minimal configurations. 
Documentation/SubmitChecklist includes a note to test with allnoconfig. 
This helps catch missing dependencies on common-but-not-required
functionality, which might otherwise go unnoticed.

However, allnoconfig still leaves many symbols enabled, because they're
hidden behind CONFIG_EMBEDDED or CONFIG_EXPERT.  For instance, allnoconfig
still has CONFIG_PRINTK and CONFIG_BLOCK enabled, so drivers don't
typically get build-tested with those disabled.

To address this, introduce a new Kconfig option "allnoconfig_y", used on
symbols which only exist to hide other symbols.  Set it on CONFIG_EMBEDDED
(which then selects CONFIG_EXPERT).  allnoconfig will then disable all the
symbols hidden behind those.

Signed-off-by: Josh Triplett <josh@xxxxxxxxxxxxxxxx>
Tested-by: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
Cc: Michal Marek <mmarek@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---

 Documentation/kbuild/kconfig-language.txt |    4 ++++
 init/Kconfig                              |    1 +
 scripts/kconfig/confdata.c                |    5 ++++-
 scripts/kconfig/expr.h                    |    3 +++
 scripts/kconfig/lkc.h                     |    1 +
 scripts/kconfig/menu.c                    |    3 +++
 scripts/kconfig/zconf.gperf               |    1 +
 scripts/kconfig/zconf.hash.c_shipped      |   13 ++++++++-----
 8 files changed, 25 insertions(+), 6 deletions(-)

diff -puN Documentation/kbuild/kconfig-language.txt~kconfig-make-allnoconfig-disable-options-behind-embedded-and-expert Documentation/kbuild/kconfig-language.txt
--- a/Documentation/kbuild/kconfig-language.txt~kconfig-make-allnoconfig-disable-options-behind-embedded-and-expert
+++ a/Documentation/kbuild/kconfig-language.txt
@@ -157,6 +157,10 @@ applicable everywhere (see syntax).
     to the build environment (if this is desired, it can be done via
     another symbol).
 
+  - "allnoconfig_y"
+    This declares the symbol as one that should have the value y when
+    using "allnoconfig". Used for symbols that hide other symbols.
+
 Menu dependencies
 -----------------
 
diff -puN init/Kconfig~kconfig-make-allnoconfig-disable-options-behind-embedded-and-expert init/Kconfig
--- a/init/Kconfig~kconfig-make-allnoconfig-disable-options-behind-embedded-and-expert
+++ a/init/Kconfig
@@ -1475,6 +1475,7 @@ config PCI_QUIRKS
 
 config EMBEDDED
 	bool "Embedded system"
+	option allnoconfig_y
 	select EXPERT
 	help
 	  This option should be enabled if compiling the kernel for
diff -puN scripts/kconfig/confdata.c~kconfig-make-allnoconfig-disable-options-behind-embedded-and-expert scripts/kconfig/confdata.c
--- a/scripts/kconfig/confdata.c~kconfig-make-allnoconfig-disable-options-behind-embedded-and-expert
+++ a/scripts/kconfig/confdata.c
@@ -1178,7 +1178,10 @@ bool conf_set_all_new_symbols(enum conf_
 				sym->def[S_DEF_USER].tri = mod;
 				break;
 			case def_no:
-				sym->def[S_DEF_USER].tri = no;
+				if (sym->flags & SYMBOL_ALLNOCONFIG_Y)
+					sym->def[S_DEF_USER].tri = yes;
+				else
+					sym->def[S_DEF_USER].tri = no;
 				break;
 			case def_random:
 				sym->def[S_DEF_USER].tri = no;
diff -puN scripts/kconfig/expr.h~kconfig-make-allnoconfig-disable-options-behind-embedded-and-expert scripts/kconfig/expr.h
--- a/scripts/kconfig/expr.h~kconfig-make-allnoconfig-disable-options-behind-embedded-and-expert
+++ a/scripts/kconfig/expr.h
@@ -109,6 +109,9 @@ struct symbol {
 /* choice values need to be set before calculating this symbol value */
 #define SYMBOL_NEED_SET_CHOICE_VALUES  0x100000
 
+/* Set symbol to y if allnoconfig; used for symbols that hide others */
+#define SYMBOL_ALLNOCONFIG_Y 0x200000
+
 #define SYMBOL_MAXLENGTH	256
 #define SYMBOL_HASHSIZE		9973
 
diff -puN scripts/kconfig/lkc.h~kconfig-make-allnoconfig-disable-options-behind-embedded-and-expert scripts/kconfig/lkc.h
--- a/scripts/kconfig/lkc.h~kconfig-make-allnoconfig-disable-options-behind-embedded-and-expert
+++ a/scripts/kconfig/lkc.h
@@ -61,6 +61,7 @@ enum conf_def_mode {
 #define T_OPT_MODULES		1
 #define T_OPT_DEFCONFIG_LIST	2
 #define T_OPT_ENV		3
+#define T_OPT_ALLNOCONFIG_Y	4
 
 struct kconf_id {
 	int name;
diff -puN scripts/kconfig/menu.c~kconfig-make-allnoconfig-disable-options-behind-embedded-and-expert scripts/kconfig/menu.c
--- a/scripts/kconfig/menu.c~kconfig-make-allnoconfig-disable-options-behind-embedded-and-expert
+++ a/scripts/kconfig/menu.c
@@ -217,6 +217,9 @@ void menu_add_option(int token, char *ar
 	case T_OPT_ENV:
 		prop_add_env(arg);
 		break;
+	case T_OPT_ALLNOCONFIG_Y:
+		current_entry->sym->flags |= SYMBOL_ALLNOCONFIG_Y;
+		break;
 	}
 }
 
diff -puN scripts/kconfig/zconf.gperf~kconfig-make-allnoconfig-disable-options-behind-embedded-and-expert scripts/kconfig/zconf.gperf
--- a/scripts/kconfig/zconf.gperf~kconfig-make-allnoconfig-disable-options-behind-embedded-and-expert
+++ a/scripts/kconfig/zconf.gperf
@@ -44,4 +44,5 @@ on,		T_ON,		TF_PARAM
 modules,	T_OPT_MODULES,	TF_OPTION
 defconfig_list,	T_OPT_DEFCONFIG_LIST,TF_OPTION
 env,		T_OPT_ENV,	TF_OPTION
+allnoconfig_y,	T_OPT_ALLNOCONFIG_Y,TF_OPTION
 %%
diff -puN scripts/kconfig/zconf.hash.c_shipped~kconfig-make-allnoconfig-disable-options-behind-embedded-and-expert scripts/kconfig/zconf.hash.c_shipped
--- a/scripts/kconfig/zconf.hash.c_shipped~kconfig-make-allnoconfig-disable-options-behind-embedded-and-expert
+++ a/scripts/kconfig/zconf.hash.c_shipped
@@ -55,10 +55,10 @@ kconf_id_hash (register const char *str,
       73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
       73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
       73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
-      73, 73, 73, 73, 73, 73, 73, 73, 25, 25,
+      73, 73, 73, 73, 73, 73, 73,  5, 25, 25,
        0,  0,  0,  5,  0,  0, 73, 73,  5,  0,
       10,  5, 45, 73, 20, 20,  0, 15, 15, 73,
-      20, 73, 73, 73, 73, 73, 73, 73, 73, 73,
+      20,  5, 73, 73, 73, 73, 73, 73, 73, 73,
       73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
       73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
       73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
@@ -106,6 +106,7 @@ struct kconf_id_strings_t
     char kconf_id_strings_str23[sizeof("mainmenu")];
     char kconf_id_strings_str25[sizeof("menuconfig")];
     char kconf_id_strings_str27[sizeof("modules")];
+    char kconf_id_strings_str28[sizeof("allnoconfig_y")];
     char kconf_id_strings_str29[sizeof("menu")];
     char kconf_id_strings_str31[sizeof("select")];
     char kconf_id_strings_str32[sizeof("comment")];
@@ -141,6 +142,7 @@ static const struct kconf_id_strings_t k
     "mainmenu",
     "menuconfig",
     "modules",
+    "allnoconfig_y",
     "menu",
     "select",
     "comment",
@@ -170,7 +172,7 @@ kconf_id_lookup (register const char *st
 {
   enum
     {
-      TOTAL_KEYWORDS = 32,
+      TOTAL_KEYWORDS = 33,
       MIN_WORD_LENGTH = 2,
       MAX_WORD_LENGTH = 14,
       MIN_HASH_VALUE = 2,
@@ -219,7 +221,8 @@ kconf_id_lookup (register const char *st
       {-1},
 #line 44 "scripts/kconfig/zconf.gperf"
       {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str27,	T_OPT_MODULES,	TF_OPTION},
-      {-1},
+#line 47 "scripts/kconfig/zconf.gperf"
+      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str28,	T_OPT_ALLNOCONFIG_Y,TF_OPTION},
 #line 16 "scripts/kconfig/zconf.gperf"
       {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str29,		T_MENU,		TF_COMMAND},
       {-1},
@@ -282,5 +285,5 @@ kconf_id_lookup (register const char *st
     }
   return 0;
 }
-#line 47 "scripts/kconfig/zconf.gperf"
+#line 48 "scripts/kconfig/zconf.gperf"
 
_

Patches currently in -mm which might be from josh@xxxxxxxxxxxxxxxx are

mm-compactionc-mark-function-as-static.patch
mm-memoryc-mark-functions-as-static.patch
mm-mmapc-mark-function-as-static.patch
mm-process_vm_accessc-mark-function-as-static.patch
mm-process_vm_accessc-mark-function-as-static-fix.patch
mm-page_cgroupc-mark-functions-as-static.patch
mm-nobootmemc-mark-function-as-static.patch
include-linux-mmh-remove-ifdef-condition.patch
include-linux-syscallsh-add-sys32_quotactl-prototype.patch
fs-kernel-permit-disabling-the-uselib-syscall.patch
fs-kernel-permit-disabling-the-uselib-syscall-v2.patch
lglock-map-to-spinlock-when-config_smp.patch
fs-reiserfs-move-prototype-declaration-to-header-file.patch
include-linux-crash_dumph-add-vmcore_cleanup-prototype.patch
include-linux-crash_dumph-add-vmcore_cleanup-prototype-fix.patch
kconfig-make-allnoconfig-disable-options-behind-embedded-and-expert.patch
linux-next.patch

--
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux