You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

143 lines
4.7 KiB

# --- SDE-COPYRIGHT-NOTE-BEGIN ---
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
#
# Filename: package/.../linux26/12-conf-hacks.patch
# Copyright (C) 2008 - 2010 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 OpenSDE Linux kernel
auto configuration.
diff -ruN linux-2.6.32.10-orig/scripts/kconfig/Makefile linux-2.6.32.10/scripts/kconfig/Makefile
--- linux-2.6.32.10-orig/scripts/kconfig/Makefile 2009-12-03 04:51:21.000000000 +0100
+++ linux-2.6.32.10/scripts/kconfig/Makefile 2010-03-25 10:15:26.297247478 +0100
@@ -3,7 +3,7 @@
# These targets are used from top-level makefile
PHONY += oldconfig xconfig gconfig menuconfig config silentoldconfig update-po-config \
- localmodconfig localyesconfig
+ localmodconfig localyesconfig no2modconfig
ifdef KBUILD_KCONFIG
Kconfig := $(KBUILD_KCONFIG)
@@ -81,7 +81,7 @@
$(Q)rm -f arch/um/Kconfig.arch
$(Q)rm -f $(obj)/config.pot
-PHONY += randconfig allyesconfig allnoconfig allmodconfig defconfig
+PHONY += randconfig allyesconfig allnoconfig allmodconfig no2modconfig defconfig
randconfig: $(obj)/conf
$< -r $(Kconfig)
@@ -95,6 +95,9 @@
allmodconfig: $(obj)/conf
$< -m $(Kconfig)
+no2modconfig: $(obj)/conf
+ $< -M $(Kconfig)
+
defconfig: $(obj)/conf
ifeq ($(KBUILD_DEFCONFIG),)
$< -d $(Kconfig)
@@ -119,6 +122,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'
diff -ruN linux-2.6.32.10-orig/scripts/kconfig/conf.c linux-2.6.32.10/scripts/kconfig/conf.c
--- linux-2.6.32.10-orig/scripts/kconfig/conf.c 2009-12-03 04:51:21.000000000 +0100
+++ linux-2.6.32.10/scripts/kconfig/conf.c 2010-03-25 10:04:47.777577480 +0100
@@ -23,6 +23,7 @@
ask_all,
ask_new,
ask_silent,
+ set_no2mod,
set_default,
set_yes,
set_mod,
@@ -439,7 +440,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;
@@ -461,6 +462,9 @@
case 'm':
input_mode = set_mod;
break;
+ case 'M':
+ input_mode = set_no2mod;
+ break;
case 'y':
input_mode = set_yes;
break;
@@ -548,6 +552,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;
}
@@ -574,6 +581,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 -ruN linux-2.6.32.10-orig/scripts/kconfig/confdata.c linux-2.6.32.10/scripts/kconfig/confdata.c
--- linux-2.6.32.10-orig/scripts/kconfig/confdata.c 2009-12-03 04:51:21.000000000 +0100
+++ linux-2.6.32.10/scripts/kconfig/confdata.c 2010-03-25 10:04:47.781566395 +0100
@@ -828,6 +828,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:
diff -ruN linux-2.6.32.10-orig/scripts/kconfig/lkc.h linux-2.6.32.10/scripts/kconfig/lkc.h
--- linux-2.6.32.10-orig/scripts/kconfig/lkc.h 2009-12-03 04:51:21.000000000 +0100
+++ linux-2.6.32.10/scripts/kconfig/lkc.h 2010-03-25 10:04:47.777577480 +0100
@@ -46,6 +46,7 @@
def_default,
def_yes,
def_mod,
+ def_no2mod,
def_no,
def_random
};