# --- SDE-COPYRIGHT-NOTE-BEGIN --- # This copyright note is auto-generated by ./scripts/Create-CopyPatch. # # Filename: package/.../linux26/12-conf-hacks.patch # Copyright (C) 2008 The OpenSDE Project # Copyright (C) 2004 - 2008 The T2 SDE Project # Copyright (C) 1998 - 2003 ROCK Linux Project # # More information can be found in the files COPYING and README. # # This patch file is dual-licensed. It is available under the license the # patched project is licensed under, as long as it is an OpenSource license # as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms # of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # --- SDE-COPYRIGHT-NOTE-END --- Set all unset options to module. Needed by the T2 SDE Linux kernel auto configuration. Initally written by Clifford Wolf and adapted for various new 2.5/2.6 kernels by Rene Rebe . diff -ur linux-2.6.27/scripts/kconfig/conf.c linux-2.6.27.work/scripts/kconfig/conf.c --- linux-2.6.27/scripts/kconfig/conf.c 2008-10-10 00:13:53.000000000 +0200 +++ linux-2.6.27.work/scripts/kconfig/conf.c 2008-10-19 14:39:10.000000000 +0200 @@ -22,6 +22,7 @@ ask_all, ask_new, ask_silent, + set_no2mod, set_default, set_yes, set_mod, @@ -438,7 +439,7 @@ bindtextdomain(PACKAGE, LOCALEDIR); textdomain(PACKAGE); - while ((opt = getopt(ac, av, "osdD:nmyrh")) != -1) { + while ((opt = getopt(ac, av, "osdD:nmMyrh")) != -1) { switch (opt) { case 'o': input_mode = ask_silent; @@ -460,6 +461,9 @@ case 'm': input_mode = set_mod; break; + case 'M': + input_mode = set_no2mod; + break; case 'y': input_mode = set_yes; break; @@ -533,6 +537,9 @@ else if (!stat("all.config", &tmpstat)) conf_read_simple("all.config", S_DEF_USER); break; + case set_no2mod: + conf_read_simple(".config", S_DEF_USER); + break; default: break; } @@ -559,6 +566,9 @@ case set_mod: conf_set_all_new_symbols(def_mod); break; + case set_no2mod: + conf_set_all_new_symbols(def_no2mod); + break; case set_random: conf_set_all_new_symbols(def_random); break; diff -ur linux-2.6.27/scripts/kconfig/lkc.h linux-2.6.27.work/scripts/kconfig/lkc.h --- linux-2.6.27/scripts/kconfig/lkc.h 2008-10-10 00:13:53.000000000 +0200 +++ linux-2.6.27.work/scripts/kconfig/lkc.h 2008-10-19 14:14:59.000000000 +0200 @@ -46,6 +46,7 @@ def_default, def_yes, def_mod, + def_no2mod, def_no, def_random }; diff -ur linux-2.6.27/scripts/kconfig/Makefile linux-2.6.27.work/scripts/kconfig/Makefile --- linux-2.6.27/scripts/kconfig/Makefile 2008-10-10 00:13:53.000000000 +0200 +++ linux-2.6.27.work/scripts/kconfig/Makefile 2008-10-19 14:14:59.000000000 +0200 @@ -2,7 +2,7 @@ # Kernel configuration targets # These targets are used from top-level makefile -PHONY += oldconfig xconfig gconfig menuconfig config silentoldconfig update-po-config +PHONY += oldconfig xconfig gconfig menuconfig config silentoldconfig no2modconfig update-po-config Kconfig := arch/$(SRCARCH)/Kconfig @@ -61,6 +61,9 @@ allmodconfig: $(obj)/conf $< -m $(Kconfig) +no2modconfig: scripts/kconfig/conf + $< -M $(Kconfig) + defconfig: $(obj)/conf ifeq ($(KBUILD_DEFCONFIG),) $< -d $(Kconfig) @@ -83,6 +86,7 @@ @echo ' randconfig - New config with random answer to all options' @echo ' defconfig - New config with default answer to all options' @echo ' allmodconfig - New config selecting modules when possible' + @echo ' no2modconfig - New config selecting modules for disabled options' @echo ' allyesconfig - New config where all options are accepted with yes' @echo ' allnoconfig - New config where all options are answered with no' --- linux-2.6.27.vanilla/scripts/kconfig/confdata.c 2008-10-10 00:13:53.000000000 +0200 +++ linux-2.6.27/scripts/kconfig/confdata.c 2008-10-20 12:45:07.000000000 +0200 @@ -824,6 +824,17 @@ for_all_symbols(i, sym) { if (sym_has_value(sym)) continue; + if ((mode == def_no2mod) && (sym_get_type(sym) == S_TRISTATE)) { + if (sym_get_tristate_value(sym) == no) + fprintf(stderr, "Setting %s to 'm'.\n", sym->name); + if (sym_get_tristate_value(sym) == mod) + fprintf(stderr, "Keep %s as 'm'.\n", sym->name); + if (sym_get_tristate_value(sym) != yes) + sym->def[S_DEF_USER].tri = mod; + if (!sym_is_choice(sym)) + sym->flags |= SYMBOL_DEF_USER; + continue; + } switch (sym_get_type(sym)) { case S_BOOLEAN: case S_TRISTATE: