aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYann E. MORIN <yann.morin.1998@free.fr>2013-04-24 12:14:27 -0400
committerYann E. MORIN <yann.morin.1998@free.fr>2013-04-24 18:15:47 -0400
commit61fa0e17f99b60b851d4480605b7d905d3172f0c (patch)
tree27ea5d1a501e65d11890c2fb3e706f601c11f4c0
parentcdf0c2cfd75c6c2f2a6eee5e21ff0e8271bd0660 (diff)
kconfig: fix randconfig tristate detection
Because the modules' symbole (CONFIG_MODULES) may not yet be set when we check a symbol's tristate capabilty, we'll always find that tristate symbols are booleans, even if we randomly decided that to enable modules: sym_get_type(sym) always return boolean for tristates when modules_sym has not been previously set to 'y' *and* its value calculated *and* its visibility calculated, both of which only occur after we randomly assign values to symbols. Fix that by looking at the raw type of symbols. Tristate set to 'm' will be promoted to 'y' when their values will be later calculated. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-rw-r--r--scripts/kconfig/confdata.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index 13ddf1126c2a..306cbc1bac04 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -1125,7 +1125,7 @@ void conf_set_all_new_symbols(enum conf_def_mode mode)
1125 sym->def[S_DEF_USER].tri = no; 1125 sym->def[S_DEF_USER].tri = no;
1126 break; 1126 break;
1127 case def_random: 1127 case def_random:
1128 cnt = sym_get_type(sym) == S_TRISTATE ? 3 : 2; 1128 cnt = sym->type == S_TRISTATE ? 3 : 2;
1129 sym->def[S_DEF_USER].tri = (tristate)(rand() % cnt); 1129 sym->def[S_DEF_USER].tri = (tristate)(rand() % cnt);
1130 break; 1130 break;
1131 default: 1131 default: