diff options
Diffstat (limited to 'package/config/patches')
| -rw-r--r-- | package/config/patches/01-kconfig-kernel-to-buildroot.patch | 308 | ||||
| -rw-r--r-- | package/config/patches/02-cpp-comments-to-c-comments.patch | 178 | ||||
| -rw-r--r-- | package/config/patches/03-change-config-option-prefix.patch | 164 | ||||
| -rw-r--r-- | package/config/patches/05-really-clean-everything.patch | 29 | ||||
| -rw-r--r-- | package/config/patches/06-br-build-system-integration.patch | 40 | ||||
| -rw-r--r-- | package/config/patches/08-make-write-deps.patch | 139 | ||||
| -rw-r--r-- | package/config/patches/09-implement-kconfig-probability.patch | 44 | ||||
| -rw-r--r-- | package/config/patches/10-br-build-system.patch | 80 | ||||
| -rw-r--r-- | package/config/patches/11-use-mktemp-for-lxdialog.patch | 17 | ||||
| -rw-r--r-- | package/config/patches/12-fix-glade-file-path.patch | 17 | ||||
| -rw-r--r-- | package/config/patches/14-support-out-of-tree-config.patch | 209 | ||||
| -rw-r--r-- | package/config/patches/series | 11 | 
12 files changed, 1236 insertions, 0 deletions
| diff --git a/package/config/patches/01-kconfig-kernel-to-buildroot.patch b/package/config/patches/01-kconfig-kernel-to-buildroot.patch new file mode 100644 index 000000000..f77a54ca9 --- /dev/null +++ b/package/config/patches/01-kconfig-kernel-to-buildroot.patch @@ -0,0 +1,308 @@ +--- + conf.c              |   12 ++++++------ + confdata.c          |   12 ++++-------- + gconf.c             |    4 ++-- + gconf.glade         |    2 +- + mconf.c             |   38 ++++++++++++++++++-------------------- + qconf.cc            |    4 ++-- + zconf.tab.c_shipped |    2 +- + zconf.y             |    2 +- + 8 files changed, 35 insertions(+), 41 deletions(-) + +Index: config/conf.c +=================================================================== +--- config.orig/conf.c ++++ config/conf.c +@@ -508,8 +508,8 @@ + 		name = conf_get_configname(); + 		if (stat(name, &tmpstat)) { + 			fprintf(stderr, _("***\n" +-				"*** You have not yet configured your kernel!\n" +-				"*** (missing kernel config file \"%s\")\n" ++				"*** You have not yet configured your Buildroot!\n" ++				"*** (missing .config file \"%s\")\n" + 				"***\n" + 				"*** Please run some configurator (e.g. \"make oldconfig\" or\n" + 				"*** \"make menuconfig\" or \"make xconfig\").\n" +@@ -571,7 +571,7 @@ + 			name = getenv("KCONFIG_NOSILENTUPDATE"); + 			if (name && *name) { + 				fprintf(stderr, +-					_("\n*** Kernel configuration requires explicit update.\n\n")); ++					_("\n*** Buildroot configuration requires explicit update.\n\n")); + 				return 1; + 			} + 		} +@@ -623,11 +623,11 @@ + 		 * All other commands are only used to generate a config. + 		 */ + 		if (conf_get_changed() && conf_write(NULL)) { +-			fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n")); ++			fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n")); + 			exit(1); + 		} + 		if (conf_write_autoconf()) { +-			fprintf(stderr, _("\n*** Error during update of the kernel configuration.\n\n")); ++			fprintf(stderr, _("\n*** Error during update of the Buildroot configuration.\n\n")); + 			return 1; + 		} + 	} else if (input_mode == savedefconfig) { +@@ -638,7 +638,7 @@ + 		} + 	} else if (input_mode != listnewconfig) { + 		if (conf_write(NULL)) { +-			fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n")); ++			fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n")); + 			exit(1); + 		} + 	} +Index: config/confdata.c +=================================================================== +--- config.orig/confdata.c ++++ config/confdata.c +@@ -579,7 +579,7 @@ + 	if (!out) + 		return 1; +  +-	sym = sym_lookup("KERNELVERSION", 0); ++	sym = sym_lookup("BR2_VERSION", 0); + 	sym_calc_value(sym); + 	time(&now); + 	env = getenv("KCONFIG_NOTIMESTAMP"); +@@ -588,10 +588,8 @@ +  + 	fprintf(out, _("#\n" + 		       "# Automatically generated make config: don't edit\n" +-		       "# Linux kernel version: %s\n" + 		       "%s%s" + 		       "#\n"), +-		     sym_get_string_value(sym), + 		     use_timestamp ? "# " : "", + 		     use_timestamp ? ctime(&now) : ""); +  +@@ -802,25 +800,23 @@ + 		return 1; + 	} +  +-	sym = sym_lookup("KERNELVERSION", 0); ++	sym = sym_lookup("BR2_VERSION", 0); + 	sym_calc_value(sym); + 	time(&now); + 	fprintf(out, "#\n" + 		     "# Automatically generated make config: don't edit\n" +-		     "# Linux kernel version: %s\n" + 		     "# %s" + 		     "#\n", +-		     sym_get_string_value(sym), ctime(&now)); ++		     ctime(&now)); + 	fprintf(tristate, "#\n" + 			  "# Automatically generated - do not edit\n" + 			  "\n"); + 	fprintf(out_h, "/*\n" + 		       " * Automatically generated C config: don't edit\n" +-		       " * Linux kernel version: %s\n" + 		       " * %s" + 		       " */\n" + 		       "#define AUTOCONF_INCLUDED\n", +-		       sym_get_string_value(sym), ctime(&now)); ++		       ctime(&now)); +  + 	for_all_symbols(i, sym) { + 		sym_calc_value(sym); +Index: config/gconf.c +=================================================================== +--- config.orig/gconf.c ++++ config/gconf.c +@@ -210,8 +210,8 @@ + 					  /*"style", PANGO_STYLE_OBLIQUE, */ + 					  NULL); +  +-	sprintf(title, _("Linux Kernel v%s Configuration"), +-		getenv("KERNELVERSION")); ++	sprintf(title, _("Buildroot v%s Configuration"), ++		getenv("BR2_VERSION")); + 	gtk_window_set_title(GTK_WINDOW(main_wnd), title); +  + 	gtk_widget_show(main_wnd); +Index: config/gconf.glade +=================================================================== +--- config.orig/gconf.glade ++++ config/gconf.glade +@@ -5,7 +5,7 @@ +  + <widget class="GtkWindow" id="window1"> +   <property name="visible">True</property> +-  <property name="title" translatable="yes">Gtk Kernel Configurator</property> ++  <property name="title" translatable="yes">Gtk Buildroot Configurator</property> +   <property name="type">GTK_WINDOW_TOPLEVEL</property> +   <property name="window_position">GTK_WIN_POS_NONE</property> +   <property name="modal">False</property> +Index: config/mconf.c +=================================================================== +--- config.orig/mconf.c ++++ config/mconf.c +@@ -25,10 +25,9 @@ + static const char mconf_readme[] = N_( + "Overview\n" + "--------\n" +-"Some kernel features may be built directly into the kernel.\n" +-"Some may be made into loadable runtime modules.  Some features\n" ++"Some features may be built directly into Buildroot. Some features\n" + "may be completely removed altogether.  There are also certain\n" +-"kernel parameters which are not really features, but must be\n" ++"parameters which are not really features, but must be\n" + "entered in as decimal or hexadecimal numbers or possibly text.\n" + "\n" + "Menu items beginning with following braces represent features that\n" +@@ -117,7 +116,7 @@ + "-----------------------------\n" + "Menuconfig supports the use of alternate configuration files for\n" + "those who, for various reasons, find it necessary to switch\n" +-"between different kernel configurations.\n" ++"between different configurations.\n" + "\n" + "At the end of the main menu you will find two options.  One is\n" + "for saving the current configuration to a file of your choosing.\n" +@@ -150,7 +149,7 @@ + "\n" + "Optional personality available\n" + "------------------------------\n" +-"If you prefer to have all of the kernel options listed in a single\n" ++"If you prefer to have all of the options listed in a single\n" + "menu, rather than the default multimenu hierarchy, run the menuconfig\n" + "with MENUCONFIG_MODE environment variable set to single_menu. Example:\n" + "\n" +@@ -180,9 +179,9 @@ + 	"Arrow keys navigate the menu.  " + 	"<Enter> selects submenus --->.  " + 	"Highlighted letters are hotkeys.  " +-	"Pressing <Y> includes, <N> excludes, <M> modularizes features.  " ++	"Pressing <Y> selectes a feature, while <N> will exclude a feature.  " + 	"Press <Esc><Esc> to exit, <?> for Help, </> for Search.  " +-	"Legend: [*] built-in  [ ] excluded  <M> module  < > module capable"), ++	"Legend: [*] feature is selected  [ ] feature is excluded"), + radiolist_instructions[] = N_( + 	"Use the arrow keys to navigate this window or " + 	"press the hotkey of the item you wish to select " +@@ -207,11 +206,11 @@ + 	"last retrieved.  Leave blank to abort."), + load_config_help[] = N_( + 	"\n" +-	"For various reasons, one may wish to keep several different kernel\n" ++	"For various reasons, one may wish to keep several different Buildroot\n" + 	"configurations available on a single machine.\n" + 	"\n" + 	"If you have saved a previous configuration in a file other than the\n" +-	"kernel's default, entering the name of the file here will allow you\n" ++	"Buildroot's default, entering the name of the file here will allow you\n" + 	"to modify that configuration.\n" + 	"\n" + 	"If you are uncertain, then you have probably never used alternate\n" +@@ -221,7 +220,7 @@ + 	"as an alternate.  Leave blank to abort."), + save_config_help[] = N_( + 	"\n" +-	"For various reasons, one may wish to keep different kernel\n" ++	"For various reasons, one may wish to keep different Buildroot\n" + 	"configurations available on a single machine.\n" + 	"\n" + 	"Entering a file name here will allow you to later retrieve, modify\n" +@@ -292,10 +291,10 @@ + 	int size; + 	struct symbol *sym; +  +-	sym = sym_lookup("KERNELVERSION", 0); ++	sym = sym_lookup("BR2_VERSION", 0); + 	sym_calc_value(sym); + 	size = snprintf(menu_backtitle, sizeof(menu_backtitle), +-	                _("%s - Linux Kernel v%s Configuration"), ++	                _("%s - buildroot v%s Configuration"), + 		        config_filename, sym_get_string_value(sym)); + 	if (size >= sizeof(menu_backtitle)) + 		menu_backtitle[sizeof(menu_backtitle)-1] = '\0'; +@@ -316,8 +315,7 @@ + again: + 	dialog_clear(); + 	dres = dialog_inputbox(_("Search Configuration Parameter"), +-			      _("Enter CONFIG_ (sub)string to search for " +-				"(with or without \"CONFIG\")"), ++			      _("Enter (sub)string to search for"), + 			      10, 75, ""); + 	switch (dres) { + 	case 0: +@@ -834,7 +832,7 @@ + 		if (conf_get_changed()) + 			res = dialog_yesno(NULL, + 					   _("Do you wish to save your " +-					     "new kernel configuration?\n" ++					     "new Buildroot configuration?\n" + 					     "<ESC><ESC> to continue."), + 					   6, 60); + 		else +@@ -846,20 +844,20 @@ + 	case 0: + 		if (conf_write(filename)) { + 			fprintf(stderr, _("\n\n" +-				"Error during writing of the kernel configuration.\n" +-				"Your kernel configuration changes were NOT saved." ++				"Error during writing of the Buildroot configuration.\n" ++				"Your Buildroot configuration changes were NOT saved." + 				"\n\n")); + 			return 1; + 		} + 	case -1: + 		printf(_("\n\n" +-			"*** End of Linux kernel configuration.\n" +-			"*** Execute 'make' to build the kernel or try 'make help'." ++			"*** End of Buildroot configuration.\n" ++			"*** Execute 'make' to build Buildroot or try 'make help'." + 			"\n\n")); + 		break; + 	default: + 		fprintf(stderr, _("\n\n" +-			"Your kernel configuration changes were NOT saved." ++			"Your Buildroot configuration changes were NOT saved." + 			"\n\n")); + 	} +  +Index: config/qconf.cc +=================================================================== +--- config.orig/qconf.cc ++++ config/qconf.cc +@@ -1263,8 +1263,8 @@ + 	char title[256]; +  + 	QDesktopWidget *d = configApp->desktop(); +-	snprintf(title, sizeof(title), _("Linux Kernel v%s Configuration"), +-		getenv("KERNELVERSION")); ++	snprintf(title, sizeof(title), _("Buildroot v%s Configuration"), ++		getenv("BR2_VERSION")); + 	setCaption(title); +  + 	width = configSettings->readNumEntry("/window width", d->width() - 64); +Index: config/zconf.tab.c_shipped +=================================================================== +--- config.orig/zconf.tab.c_shipped ++++ config/zconf.tab.c_shipped +@@ -2224,7 +2224,7 @@ + 	modules_sym = sym_lookup(NULL, 0); + 	modules_sym->type = S_BOOLEAN; + 	modules_sym->flags |= SYMBOL_AUTO; +-	rootmenu.prompt = menu_add_prompt(P_MENU, "Linux Kernel Configuration", NULL); ++	rootmenu.prompt = menu_add_prompt(P_MENU, "Buildroot Configuration", NULL); +  + #if YYDEBUG + 	if (getenv("ZCONF_DEBUG")) +Index: config/zconf.y +=================================================================== +--- config.orig/zconf.y ++++ config/zconf.y +@@ -479,7 +479,7 @@ + 	modules_sym = sym_lookup(NULL, 0); + 	modules_sym->type = S_BOOLEAN; + 	modules_sym->flags |= SYMBOL_AUTO; +-	rootmenu.prompt = menu_add_prompt(P_MENU, "Linux Kernel Configuration", NULL); ++	rootmenu.prompt = menu_add_prompt(P_MENU, "Buildroot Configuration", NULL); +  + #if YYDEBUG + 	if (getenv("ZCONF_DEBUG")) diff --git a/package/config/patches/02-cpp-comments-to-c-comments.patch b/package/config/patches/02-cpp-comments-to-c-comments.patch new file mode 100644 index 000000000..a801319e3 --- /dev/null +++ b/package/config/patches/02-cpp-comments-to-c-comments.patch @@ -0,0 +1,178 @@ +--- + expr.c |   42 +++++++++++++++++++++--------------------- + 1 file changed, 21 insertions(+), 21 deletions(-) + +Index: config.clean/expr.c +=================================================================== +--- config.clean.orig/expr.c ++++ config.clean/expr.c +@@ -331,7 +331,7 @@ + 		e->right.expr = expr_trans_bool(e->right.expr); + 		break; + 	case E_UNEQUAL: +-		// FOO!=n -> FOO ++		/* FOO!=n -> FOO */ + 		if (e->left.sym->type == S_TRISTATE) { + 			if (e->right.sym == &symbol_no) { + 				e->type = E_SYMBOL; +@@ -380,19 +380,19 @@ + 		if (e1->type == E_EQUAL && e2->type == E_EQUAL && + 		    ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) || + 		     (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes))) { +-			// (a='y') || (a='m') -> (a!='n') ++			/* (a='y') || (a='m') -> (a!='n') */ + 			return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_no); + 		} + 		if (e1->type == E_EQUAL && e2->type == E_EQUAL && + 		    ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) || + 		     (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes))) { +-			// (a='y') || (a='n') -> (a!='m') ++			/* (a='y') || (a='n') -> (a!='m') */ + 			return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_mod); + 		} + 		if (e1->type == E_EQUAL && e2->type == E_EQUAL && + 		    ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) || + 		     (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod))) { +-			// (a='m') || (a='n') -> (a!='y') ++			/* (a='m') || (a='n') -> (a!='y') */ + 			return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_yes); + 		} + 	} +@@ -443,29 +443,29 @@ +  + 	if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_yes) || + 	    (e2->type == E_SYMBOL && e1->type == E_EQUAL && e1->right.sym == &symbol_yes)) +-		// (a) && (a='y') -> (a='y') ++		/* (a) && (a='y') -> (a='y') */ + 		return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes); +  + 	if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_no) || + 	    (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_no)) +-		// (a) && (a!='n') -> (a) ++		/* (a) && (a!='n') -> (a) */ + 		return expr_alloc_symbol(sym1); +  + 	if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_mod) || + 	    (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_mod)) +-		// (a) && (a!='m') -> (a='y') ++		/* (a) && (a!='m') -> (a='y') */ + 		return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes); +  + 	if (sym1->type == S_TRISTATE) { + 		if (e1->type == E_EQUAL && e2->type == E_UNEQUAL) { +-			// (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b' ++			/* (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b' */ + 			sym2 = e1->right.sym; + 			if ((e2->right.sym->flags & SYMBOL_CONST) && (sym2->flags & SYMBOL_CONST)) + 				return sym2 != e2->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2) + 							     : expr_alloc_symbol(&symbol_no); + 		} + 		if (e1->type == E_UNEQUAL && e2->type == E_EQUAL) { +-			// (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b' ++			/* (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b' */ + 			sym2 = e2->right.sym; + 			if ((e1->right.sym->flags & SYMBOL_CONST) && (sym2->flags & SYMBOL_CONST)) + 				return sym2 != e1->right.sym ? expr_alloc_comp(E_EQUAL, sym1, sym2) +@@ -474,19 +474,19 @@ + 		if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL && + 			   ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_no) || + 			    (e1->right.sym == &symbol_no && e2->right.sym == &symbol_yes))) +-			// (a!='y') && (a!='n') -> (a='m') ++			/* (a!='y') && (a!='n') -> (a='m') */ + 			return expr_alloc_comp(E_EQUAL, sym1, &symbol_mod); +  + 		if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL && + 			   ((e1->right.sym == &symbol_yes && e2->right.sym == &symbol_mod) || + 			    (e1->right.sym == &symbol_mod && e2->right.sym == &symbol_yes))) +-			// (a!='y') && (a!='m') -> (a='n') ++			/* (a!='y') && (a!='m') -> (a='n') */ + 			return expr_alloc_comp(E_EQUAL, sym1, &symbol_no); +  + 		if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL && + 			   ((e1->right.sym == &symbol_mod && e2->right.sym == &symbol_no) || + 			    (e1->right.sym == &symbol_no && e2->right.sym == &symbol_mod))) +-			// (a!='m') && (a!='n') -> (a='m') ++			/* (a!='m') && (a!='n') -> (a='m') */ + 			return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes); +  + 		if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == &symbol_mod) || +@@ -579,7 +579,7 @@ + 	switch (e1->type) { + 	case E_OR: + 		expr_eliminate_dups2(e1->type, &e1, &e1); +-		// (FOO || BAR) && (!FOO && !BAR) -> n ++		/* (FOO || BAR) && (!FOO && !BAR) -> n */ + 		tmp1 = expr_transform(expr_alloc_one(E_NOT, expr_copy(e1))); + 		tmp2 = expr_copy(e2); + 		tmp = expr_extract_eq_and(&tmp1, &tmp2); +@@ -594,7 +594,7 @@ + 		break; + 	case E_AND: + 		expr_eliminate_dups2(e1->type, &e1, &e1); +-		// (FOO && BAR) || (!FOO || !BAR) -> y ++		/* (FOO && BAR) || (!FOO || !BAR) -> y */ + 		tmp1 = expr_transform(expr_alloc_one(E_NOT, expr_copy(e1))); + 		tmp2 = expr_copy(e2); + 		tmp = expr_extract_eq_or(&tmp1, &tmp2); +@@ -703,7 +703,7 @@ + 	case E_NOT: + 		switch (e->left.expr->type) { + 		case E_NOT: +-			// !!a -> a ++			/* !!a -> a */ + 			tmp = e->left.expr->left.expr; + 			free(e->left.expr); + 			free(e); +@@ -712,14 +712,14 @@ + 			break; + 		case E_EQUAL: + 		case E_UNEQUAL: +-			// !a='x' -> a!='x' ++			/* !a='x' -> a!='x' */ + 			tmp = e->left.expr; + 			free(e); + 			e = tmp; + 			e->type = e->type == E_EQUAL ? E_UNEQUAL : E_EQUAL; + 			break; + 		case E_OR: +-			// !(a || b) -> !a && !b ++			/* !(a || b) -> !a && !b */ + 			tmp = e->left.expr; + 			e->type = E_AND; + 			e->right.expr = expr_alloc_one(E_NOT, tmp->right.expr); +@@ -728,7 +728,7 @@ + 			e = expr_transform(e); + 			break; + 		case E_AND: +-			// !(a && b) -> !a || !b ++			/* !(a && b) -> !a || !b */ + 			tmp = e->left.expr; + 			e->type = E_OR; + 			e->right.expr = expr_alloc_one(E_NOT, tmp->right.expr); +@@ -738,7 +738,7 @@ + 			break; + 		case E_SYMBOL: + 			if (e->left.expr->left.sym == &symbol_yes) { +-				// !'y' -> 'n' ++				/* !'y' -> 'n' */ + 				tmp = e->left.expr; + 				free(e); + 				e = tmp; +@@ -747,7 +747,7 @@ + 				break; + 			} + 			if (e->left.expr->left.sym == &symbol_mod) { +-				// !'m' -> 'm' ++				/* !'m' -> 'm' */ + 				tmp = e->left.expr; + 				free(e); + 				e = tmp; +@@ -756,7 +756,7 @@ + 				break; + 			} + 			if (e->left.expr->left.sym == &symbol_no) { +-				// !'n' -> 'y' ++				/* !'n' -> 'y' */ + 				tmp = e->left.expr; + 				free(e); + 				e = tmp; diff --git a/package/config/patches/03-change-config-option-prefix.patch b/package/config/patches/03-change-config-option-prefix.patch new file mode 100644 index 000000000..5b76df33e --- /dev/null +++ b/package/config/patches/03-change-config-option-prefix.patch @@ -0,0 +1,164 @@ +--- + confdata.c |   49 +++++++++++++++++++++++-------------------------- + 1 file changed, 23 insertions(+), 26 deletions(-) + +Index: config.new/confdata.c +=================================================================== +--- config.new.orig/confdata.c ++++ config.new/confdata.c +@@ -11,6 +11,7 @@ + #include <string.h> + #include <time.h> + #include <unistd.h> ++#include <libgen.h> +  + #define LKC_DIRECT_LINK + #include "lkc.h" +@@ -21,7 +22,7 @@ + static const char *conf_filename; + static int conf_lineno, conf_warnings, conf_unsaved; +  +-const char conf_defname[] = "arch/$ARCH/defconfig"; ++const char conf_defname[] = ".defconfig"; +  + static void conf_warning(const char *fmt, ...) + { +@@ -36,7 +37,7 @@ +  + const char *conf_get_configname(void) + { +-	char *name = getenv("KCONFIG_CONFIG"); ++	char *name = getenv("BUILDROOT_CONFIG"); +  + 	return name ? name : ".config"; + } +@@ -222,22 +223,22 @@ + 		sym = NULL; + 		switch (line[0]) { + 		case '#': +-			if (memcmp(line + 2, "CONFIG_", 7)) ++			if (line[1]!=' ') + 				continue; +-			p = strchr(line + 9, ' '); ++			p = strchr(line + 2, ' '); + 			if (!p) + 				continue; + 			*p++ = 0; + 			if (strncmp(p, "is not set", 10)) + 				continue; + 			if (def == S_DEF_USER) { +-				sym = sym_find(line + 9); ++				sym = sym_find(line + 2); + 				if (!sym) { + 					sym_add_change_count(1); + 					break; + 				} + 			} else { +-				sym = sym_lookup(line + 9, 0); ++				sym = sym_lookup(line + 2, 0); + 				if (sym->type == S_UNKNOWN) + 					sym->type = S_BOOLEAN; + 			} +@@ -254,12 +255,8 @@ + 				; + 			} + 			break; +-		case 'C': +-			if (memcmp(line, "CONFIG_", 7)) { +-				conf_warning("unexpected data"); +-				continue; +-			} +-			p = strchr(line + 7, '='); ++		case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': ++			p = strchr(line, '='); + 			if (!p) + 				continue; + 			*p++ = 0; +@@ -270,13 +267,13 @@ + 					*p2 = 0; + 			} + 			if (def == S_DEF_USER) { +-				sym = sym_find(line + 7); ++				sym = sym_find(line); + 				if (!sym) { + 					sym_add_change_count(1); + 					break; + 				} + 			} else { +-				sym = sym_lookup(line + 7, 0); ++				sym = sym_lookup(line, 0); + 				if (sym->type == S_UNKNOWN) + 					sym->type = S_OTHER; + 			} +@@ -405,9 +402,9 @@ + { + 	int l; + 	if (headerfile) +-		fprintf(out, "#define CONFIG_%s \"", name); ++		fprintf(out, "#define %s \"", name); + 	else +-		fprintf(out, "CONFIG_%s=\"", name); ++		fprintf(out, "%s=\"", name); +  + 	while (1) { + 		l = strcspn(str, "\"\\"); +@@ -433,13 +430,13 @@ + 		switch (sym_get_tristate_value(sym)) { + 		case no: + 			if (write_no) +-				fprintf(out, "# CONFIG_%s is not set\n", sym->name); ++				fprintf(out, "# %s is not set\n", sym->name); + 			break; + 		case mod: +-			fprintf(out, "CONFIG_%s=m\n", sym->name); ++			fprintf(out, "%s=m\n", sym->name); + 			break; + 		case yes: +-			fprintf(out, "CONFIG_%s=y\n", sym->name); ++			fprintf(out, "%s=y\n", sym->name); + 			break; + 		} + 		break; +@@ -449,7 +446,7 @@ + 	case S_HEX: + 	case S_INT: + 		str = sym_get_string_value(sym); +-		fprintf(out, "CONFIG_%s=%s\n", sym->name, str); ++		fprintf(out, "%s=%s\n", sym->name, str); + 		break; + 	case S_OTHER: + 	case S_UNKNOWN: +@@ -834,14 +831,14 @@ + 			case no: + 				break; + 			case mod: +-				fprintf(tristate, "CONFIG_%s=M\n", sym->name); +-				fprintf(out_h, "#define CONFIG_%s_MODULE 1\n", sym->name); ++				fprintf(tristate, "%s=M\n", sym->name); ++				fprintf(out_h, "#define %s_MODULE 1\n", sym->name); + 				break; + 			case yes: + 				if (sym->type == S_TRISTATE) +-					fprintf(tristate, "CONFIG_%s=Y\n", ++					fprintf(tristate, "%s=Y\n", + 							sym->name); +-				fprintf(out_h, "#define CONFIG_%s 1\n", sym->name); ++				fprintf(out_h, "#define %s 1\n", sym->name); + 				break; + 			} + 			break; +@@ -851,12 +848,12 @@ + 		case S_HEX: + 			str = sym_get_string_value(sym); + 			if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) { +-				fprintf(out_h, "#define CONFIG_%s 0x%s\n", sym->name, str); ++				fprintf(out_h, "#define %s 0x%s\n", sym->name, str); + 				break; + 			} + 		case S_INT: + 			str = sym_get_string_value(sym); +-			fprintf(out_h, "#define CONFIG_%s %s\n", sym->name, str); ++			fprintf(out_h, "#define %s %s\n", sym->name, str); + 			break; + 		default: + 			break; diff --git a/package/config/patches/05-really-clean-everything.patch b/package/config/patches/05-really-clean-everything.patch new file mode 100644 index 000000000..f8d8a39d2 --- /dev/null +++ b/package/config/patches/05-really-clean-everything.patch @@ -0,0 +1,29 @@ +--- + Makefile |   14 ++++++++++---- + 1 file changed, 10 insertions(+), 4 deletions(-) + +Index: config.new/Makefile +=================================================================== +--- config.new.orig/Makefile ++++ config.new/Makefile +@@ -199,10 +199,16 @@ + gconf-objs	:= gconf.o kconfig_load.o zconf.tab.o + endif +  +-clean-files	:= lkc_defs.h qconf.moc .tmp_qtcheck \ +-		   .tmp_gtkcheck zconf.tab.c lex.zconf.c zconf.hash.c gconf.glade.h +-clean-files     += mconf qconf gconf nconf +-clean-files     += config.pot linux.pot ++clean-files := lkc_defs.h qconf.moc .tmp_qtcheck \ ++               .tmp_gtkcheck zconf.tab.c lex.zconf.c zconf.hash.c gconf.glade.h ++clean-files += config.pot linux.pot ++clean-files += conf $(conf-objs) ++clean-files += mconf $(mconf-objs) ++clean-files += nconf $(nconf-objs) ++clean-files += qconf qconf.o ++clean-files += gconf gconf.o ++clean-files += kconfig_load.o zconf.tab.o ++clean-files += $(kxgettext-objs) +  + # Check that we have the required ncurses stuff installed for lxdialog (menuconfig) + PHONY += $(obj)/dochecklxdialog diff --git a/package/config/patches/06-br-build-system-integration.patch b/package/config/patches/06-br-build-system-integration.patch new file mode 100644 index 000000000..128bbc02c --- /dev/null +++ b/package/config/patches/06-br-build-system-integration.patch @@ -0,0 +1,40 @@ +--- + Makefile |   14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +Index: config/Makefile +=================================================================== +--- config.orig/Makefile ++++ config/Makefile +@@ -177,18 +177,30 @@ + ifeq ($(MAKECMDGOALS),nconfig) + 	hostprogs-y += nconf + endif ++ifeq ($(findstring nconf,$(MAKECMDGOALS)),nconf) ++       hostprogs-y += nconf ++endif +  + ifeq ($(MAKECMDGOALS),menuconfig) + 	hostprogs-y += mconf + endif ++ifeq ($(findstring mconf,$(MAKECMDGOALS)),mconf) ++       hostprogs-y += mconf ++endif +  + ifeq ($(MAKECMDGOALS),xconfig) + 	qconf-target := 1 + endif ++ifeq ($(findstring qconf,$(MAKECMDGOALS)),qconf) ++	qconf-target := 1 ++endif ++ + ifeq ($(MAKECMDGOALS),gconfig) + 	gconf-target := 1 + endif +- ++ifeq ($(findstring gconf,$(MAKECMDGOALS)),gconf) ++	gconf-target := 1 ++endif +  + ifeq ($(qconf-target),1) + qconf-cxxobjs	:= qconf.o diff --git a/package/config/patches/08-make-write-deps.patch b/package/config/patches/08-make-write-deps.patch new file mode 100644 index 000000000..b10413485 --- /dev/null +++ b/package/config/patches/08-make-write-deps.patch @@ -0,0 +1,139 @@ +--- + util.c |  117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 116 insertions(+), 1 deletion(-) + +Index: config.clean/util.c +=================================================================== +--- config.clean.orig/util.c ++++ config.clean/util.c +@@ -26,6 +26,121 @@ + 	return file; + } +  ++static char* br2_symbol_printer(const char * const in) ++{ ++	ssize_t i, j, len = strlen(in); ++	char *ret; ++	if (len < 1) ++		return NULL; ++	ret = malloc(len); ++	if (!ret) { ++		printf("Out of memory!"); ++		exit(1); ++	} ++	memset(ret, 0, len); ++	i = j = 0; ++	if (strncmp("BR2_", in, 4) == 0) ++		i += 4; ++	if (strncmp("PACKAGE_", in + i, 8) == 0) ++		i += 8; ++	else if (strncmp("TARGET_", in + i, 7) == 0) ++		i += 7; ++	while (i <= len) ++		ret[j++] = tolower(in[i++]); ++	return ret; ++} ++ ++/* write dependencies of the infividual config-symbols */ ++static int write_make_deps(const char *name) ++{ ++	char *str; ++	char dir[PATH_MAX+1], buf[PATH_MAX+1], buf2[PATH_MAX+1]; ++	struct menu *menu; ++	struct symbol *sym; ++	struct property *prop, *p; ++	unsigned done; ++	const char * const name_tmp = "..make.deps.tmp"; ++	FILE *out; ++	if (!name) ++		name = ".auto.deps"; ++ ++	strcpy(dir, conf_get_configname()); ++	str = strrchr(dir, '/'); ++	if (str) ++		str[1] = 0; ++	else ++		dir[0] = 0; ++ ++	sprintf(buf, "%s%s", dir, name_tmp); ++	out = fopen(buf, "w"); ++	if (!out) ++		return 1; ++	fprintf(out, "# ATTENTION! This does not handle 'depends', just 'select'! \n" ++		"# See package/config/util.c write_make_deps()\n#\n"); ++	menu = &rootmenu;//rootmenu.list; ++	while (menu) { ++		sym = menu->sym; ++		if (!sym) { ++			if (!menu_is_visible(menu)) ++				goto next; ++		} else if (!(sym->flags & SYMBOL_CHOICE)) { ++			sym_calc_value(sym); ++			if (sym->type == S_BOOLEAN ++			    && sym_get_tristate_value(sym) != no) { ++			    done = 0; ++			    for_all_prompts(sym, prop) { ++			        struct expr *e; ++//printf("\nname=%s\n", sym->name); ++			        for_all_properties(sym, p, P_SELECT) { ++				    e = p->expr; ++				    if (e && e->left.sym->name) { ++				        if (!done) { ++					    fprintf(out, "%s: $(BASE_TARGETS)", br2_symbol_printer(sym->name)); ++					    done = 1; ++					} ++//printf("SELECTS %s\n",e->left.sym->name); ++					fprintf(out, " %s",br2_symbol_printer(e->left.sym->name)); ++				    } ++				} ++				if (done) ++				    fprintf(out, "\n"); ++#if 0 ++				e = sym->rev_dep.expr; ++				if (e && e->type == E_SYMBOL ++					&& e->left.sym->name) { ++				    fprintf(out, "%s: %s", br2_symbol_printer(e->left.sym->name), ++						br2_symbol_printer(sym->name)); ++printf("%s is Selected BY: %s", sym->name, e->left.sym->name); ++				} ++#endif ++			    } ++			} ++		} ++next: ++		if (menu->list) { ++			menu = menu->list; ++			continue; ++		} ++		if (menu->next) ++			menu = menu->next; ++		else while ((menu = menu->parent)) { ++			if (menu->next) { ++				menu = menu->next; ++				break; ++			} ++		} ++	} ++	fclose(out); ++	sprintf(buf2, "%s%s", dir, name); ++	rename(buf, buf2); ++	printf(_("#\n" ++		 "# make dependencies written to %s\n" ++		 "# ATTENTION buildroot devels!\n" ++		 "# See top of this file before playing with this auto-preprequisites!\n" ++		 "#\n"), name); ++	return 0; ++} ++ + /* write a dependency file as used by kbuild to track dependencies */ + int file_write_dep(const char *name) + { +@@ -68,7 +183,7 @@ + 	fprintf(out, "\n$(deps_config): ;\n"); + 	fclose(out); + 	rename("..config.tmp", name); +-	return 0; ++	return write_make_deps(NULL); + } +  +  diff --git a/package/config/patches/09-implement-kconfig-probability.patch b/package/config/patches/09-implement-kconfig-probability.patch new file mode 100644 index 000000000..7561fbc3c --- /dev/null +++ b/package/config/patches/09-implement-kconfig-probability.patch @@ -0,0 +1,44 @@ +--- + confdata.c |   22 +++++++++++++++++++--- + 1 file changed, 19 insertions(+), 3 deletions(-) + +Index: config/confdata.c +=================================================================== +--- config.orig/confdata.c ++++ config/confdata.c +@@ -977,7 +977,16 @@ + void conf_set_all_new_symbols(enum conf_def_mode mode) + { + 	struct symbol *sym, *csym; +-	int i, cnt; ++	int i, cnt, prob = 50; ++ ++	if (mode == def_random) { ++		char *endp, *env = getenv("KCONFIG_PROBABILITY"); ++		if (env && *env) { ++			int tmp = (int)strtol(env, &endp, 10); ++			if (*endp == '\0' && tmp >= 0 && tmp <= 100) ++				prob = tmp; ++		} ++	} +  + 	for_all_symbols(i, sym) { + 		if (sym_has_value(sym)) +@@ -996,8 +1005,15 @@ + 				sym->def[S_DEF_USER].tri = no; + 				break; + 			case def_random: +-				cnt = sym_get_type(sym) == S_TRISTATE ? 3 : 2; +-				sym->def[S_DEF_USER].tri = (tristate)(rand() % cnt); ++				cnt = (rand() % 100) - (100 - prob); ++				if (cnt < 0) ++					sym->def[S_DEF_USER].tri = no; ++				else ++					if ((sym_get_type(sym) == S_TRISTATE) ++					    && (cnt > prob/2)) ++						sym->def[S_DEF_USER].tri = mod; ++					else ++						sym->def[S_DEF_USER].tri = yes; + 				break; + 			default: + 				continue; diff --git a/package/config/patches/10-br-build-system.patch b/package/config/patches/10-br-build-system.patch new file mode 100644 index 000000000..85125e519 --- /dev/null +++ b/package/config/patches/10-br-build-system.patch @@ -0,0 +1,80 @@ +--- + Makefile.br |   53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ + foo.h       |   12 ++++++++++++ + 2 files changed, 65 insertions(+) + +Index: config/Makefile.br +=================================================================== +--- /dev/null ++++ config/Makefile.br +@@ -0,0 +1,53 @@ ++src := . ++top_srcdir=../../ ++top_builddir=../../ ++srctree := . ++obj ?= . ++ ++include Makefile ++#HOSTCFLAGS+=-Dinline="" -include foo.h ++-include $(obj)/.depend ++$(obj)/.depend: $(wildcard *.h *.c) ++	$(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) -MM *.c > $@ 2>/dev/null || : ++ ++__hostprogs := $(sort $(hostprogs-y) $(hostprogs-m)) ++host-csingle := $(foreach m,$(__hostprogs),$(if $($(m)-objs),,$(m))) ++host-cmulti := $(foreach m,$(__hostprogs),\ ++           $(if $($(m)-cxxobjs),,$(if $($(m)-objs),$(m)))) ++host-cxxmulti := $(foreach m,$(__hostprogs),\ ++           $(if $($(m)-cxxobjs),$(m),$(if $($(m)-objs),))) ++host-cobjs := $(addprefix $(obj)/,$(sort $(foreach m,$(__hostprogs),$($(m)-objs)))) ++host-cxxobjs := $(addprefix $(obj)/,$(sort $(foreach m,$(__hostprogs),$($(m)-cxxobjs)))) ++ ++HOST_EXTRACFLAGS += -I$(obj) ++ ++$(host-csingle): %: %.c ++	$(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$@) $< $(HOST_LOADLIBES) -o $(obj)/$@ ++ ++$(host-cmulti): %: $(host-cobjs) $(host-cshlib) ++	$(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$@) $(addprefix $(obj)/,$($(@F)-objs)) $(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F)) -o $(obj)/$@ ++ ++$(host-cxxmulti): %: $(host-cxxobjs) $(host-cobjs) $(host-cshlib) ++	$(HOSTCXX) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCXXFLAGS_$@) $(addprefix $(obj)/,$($(@F)-objs) $($(@F)-cxxobjs)) $(HOSTLOADLIBES_$(@F)) -o $(obj)/$@ ++ ++$(obj)/%.o: %.c ++	$(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$(@F)) -c $< -o $@ ++ ++$(obj)/%.o: $(obj)/%.c ++	$(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$(@F)) -c $< -o $@ ++ ++$(obj)/%.o: %.cc ++	$(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCXXFLAGS_$(@F)) -c $< -o $@ ++ ++$(obj)/%:: $(src)/%_shipped ++	$(Q)cat $< > $@ ++ ++clean: ++	$(Q)rm -f $(addprefix $(obj)/,$(clean-files)) ++distclean: clean ++	$(Q)rm -f $(addprefix $(obj)/,$(lxdialog) $(conf-objs) $(mconf-objs) $(kxgettext-objs) \ ++		$(hostprogs-y) $(qconf-cxxobjs) $(qconf-objs) $(gconf-objs) \ ++		mconf .depend) ++ ++FORCE: ++.PHONY: FORCE clean distclean +Index: config/foo.h +=================================================================== +--- /dev/null ++++ config/foo.h +@@ -0,0 +1,12 @@ ++#ifndef __KCONFIG_FOO_H ++#define __KCONFIG_FOO_H ++ ++#ifndef __APPLE__ ++#include <features.h> ++#endif ++#include <limits.h> ++ ++#ifndef PATH_MAX ++#define PATH_MAX 1024 ++#endif ++#endif /* __KCONFIG_FOO_H */ diff --git a/package/config/patches/11-use-mktemp-for-lxdialog.patch b/package/config/patches/11-use-mktemp-for-lxdialog.patch new file mode 100644 index 000000000..16fd8bf18 --- /dev/null +++ b/package/config/patches/11-use-mktemp-for-lxdialog.patch @@ -0,0 +1,17 @@ +--- + lxdialog/check-lxdialog.sh |    2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: config.clean/lxdialog/check-lxdialog.sh +=================================================================== +--- config.clean.orig/lxdialog/check-lxdialog.sh ++++ config.clean/lxdialog/check-lxdialog.sh +@@ -31,7 +31,7 @@ + } +  + # Temp file, try to clean up after us +-tmp=.lxdialog.tmp ++tmp=$(mktemp) + trap "rm -f $tmp" 0 1 2 3 15 +  + # Check if we can link to ncurses diff --git a/package/config/patches/12-fix-glade-file-path.patch b/package/config/patches/12-fix-glade-file-path.patch new file mode 100644 index 000000000..10c7e9163 --- /dev/null +++ b/package/config/patches/12-fix-glade-file-path.patch @@ -0,0 +1,17 @@ +--- + gconf.c |    2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: config.new/gconf.c +=================================================================== +--- config.new.orig/gconf.c ++++ config.new/gconf.c +@@ -1525,7 +1525,7 @@ + 	/* Determine GUI path */ + 	env = getenv(SRCTREE); + 	if (env) +-		glade_file = g_strconcat(env, "/scripts/kconfig/gconf.glade", NULL); ++		glade_file = g_strconcat(env, "/package/config/gconf.glade", NULL); + 	else if (av[0][0] == '/') + 		glade_file = g_strconcat(av[0], ".glade", NULL); + 	else diff --git a/package/config/patches/14-support-out-of-tree-config.patch b/package/config/patches/14-support-out-of-tree-config.patch new file mode 100644 index 000000000..fb1cca1a8 --- /dev/null +++ b/package/config/patches/14-support-out-of-tree-config.patch @@ -0,0 +1,209 @@ +--- + conf.c     |    1  + confdata.c |   65 +++++++++++++++++++++++++++++++++++++++++++++---------------- + util.c     |   16 +++++++++++++-- + 3 files changed, 62 insertions(+), 20 deletions(-) + +Index: config/conf.c +=================================================================== +--- config.orig/conf.c ++++ config/conf.c +@@ -503,7 +503,6 @@ + 	} + 	name = av[optind]; + 	conf_parse(name); +-	//zconfdump(stdout); + 	if (sync_kconfig) { + 		name = conf_get_configname(); + 		if (stat(name, &tmpstat)) { +Index: config/confdata.c +=================================================================== +--- config.orig/confdata.c ++++ config/confdata.c +@@ -44,9 +44,7 @@ +  + const char *conf_get_autoconfig_name(void) + { +-	char *name = getenv("KCONFIG_AUTOCONFIG"); +- +-	return name ? name : "include/config/auto.conf"; ++	return getenv("KCONFIG_AUTOCONFIG"); + } +  + static char *conf_expand_value(const char *in) +@@ -542,6 +540,9 @@ + 	int use_timestamp = 1; + 	char *env; +  ++	if (!name) ++		name = conf_get_configname(); ++ + 	dirname[0] = 0; + 	if (name && name[0]) { + 		struct stat st; +@@ -656,6 +657,7 @@ + { + 	const char *name; + 	char path[128]; ++	char *opwd, *dir, *_name; + 	char *s, *d, c; + 	struct symbol *sym; + 	struct stat sb; +@@ -664,8 +666,20 @@ + 	name = conf_get_autoconfig_name(); + 	conf_read_simple(name, S_DEF_AUTO); +  +-	if (chdir("include/config")) +-		return 1; ++	opwd = malloc(256); ++	_name = strdup(name); ++	if (opwd == NULL || _name == NULL) ++ 		return 1; ++	opwd = getcwd(opwd, 256); ++	dir = dirname(_name); ++	if (dir == NULL) { ++		res = 1; ++		goto err; ++	} ++	if (chdir(dir)) { ++		res = 1; ++		goto err; ++	} +  + 	res = 0; + 	for_all_symbols(i, sym) { +@@ -758,9 +772,11 @@ + 		close(fd); + 	} + out: +-	if (chdir("../..")) +-		return 1; +- ++	if (chdir(opwd)) ++		res = 1; ++err: ++	free(opwd); ++	free(_name); + 	return res; + } +  +@@ -772,25 +788,38 @@ + 	FILE *out, *tristate, *out_h; + 	time_t now; + 	int i; ++	char dir[PATH_MAX+1], buf[PATH_MAX+1]; ++	char *s; ++ ++	strcpy(dir, conf_get_configname()); ++	s = strrchr(dir, '/'); ++	if (s) ++		s[1] = 0; ++	else ++		dir[0] = 0; +  + 	sym_clear_all_valid(); +  +-	file_write_dep("include/config/auto.conf.cmd"); ++	sprintf(buf, "%s.config.cmd", dir); ++	file_write_dep(buf); +  + 	if (conf_split_config()) + 		return 1; +  +-	out = fopen(".tmpconfig", "w"); ++	sprintf(buf, "%s.tmpconfig", dir); ++	out = fopen(buf, "w"); + 	if (!out) + 		return 1; +  +-	tristate = fopen(".tmpconfig_tristate", "w"); ++	sprintf(buf, "%s.tmpconfig_tristate", dir); ++	tristate = fopen(buf, "w"); + 	if (!tristate) { + 		fclose(out); + 		return 1; + 	} +  +-	out_h = fopen(".tmpconfig.h", "w"); ++	sprintf(buf, "%s.tmpconfig.h", dir); ++	out_h = fopen(buf, "w"); + 	if (!out_h) { + 		fclose(out); + 		fclose(tristate); +@@ -811,8 +840,7 @@ + 	fprintf(out_h, "/*\n" + 		       " * Automatically generated C config: don't edit\n" + 		       " * %s" +-		       " */\n" +-		       "#define AUTOCONF_INCLUDED\n", ++		       " */\n", + 		       ctime(&now)); +  + 	for_all_symbols(i, sym) { +@@ -866,19 +894,22 @@ + 	name = getenv("KCONFIG_AUTOHEADER"); + 	if (!name) + 		name = "include/generated/autoconf.h"; +-	if (rename(".tmpconfig.h", name)) ++	sprintf(buf, "%s.tmpconfig.h", dir); ++	if (rename(buf, name)) + 		return 1; + 	name = getenv("KCONFIG_TRISTATE"); + 	if (!name) + 		name = "include/config/tristate.conf"; +-	if (rename(".tmpconfig_tristate", name)) ++	sprintf(buf, "%s.tmpconfig_tristate", dir); ++	if (rename(buf, name)) + 		return 1; + 	name = conf_get_autoconfig_name(); + 	/* + 	 * This must be the last step, kbuild has a dependency on auto.conf + 	 * and this marks the successful completion of the previous steps. + 	 */ +-	if (rename(".tmpconfig", name)) ++	sprintf(buf, "%s.tmpconfig", dir); ++	if (rename(buf, name)) + 		return 1; +  + 	return 0; +Index: config/util.c +=================================================================== +--- config.orig/util.c ++++ config/util.c +@@ -144,6 +144,8 @@ + /* write a dependency file as used by kbuild to track dependencies */ + int file_write_dep(const char *name) + { ++	char *str; ++	char buf[PATH_MAX+1], buf2[PATH_MAX+1], dir[PATH_MAX+1]; + 	struct symbol *sym, *env_sym; + 	struct expr *e; + 	struct file *file; +@@ -151,7 +153,16 @@ +  + 	if (!name) + 		name = ".kconfig.d"; +-	out = fopen("..config.tmp", "w"); ++ ++	strcpy(dir, conf_get_configname()); ++	str = strrchr(dir, '/'); ++	if (str) ++		str[1] = 0; ++	else ++		dir[0] = 0; ++ ++	sprintf(buf, "%s..config.tmp", dir); ++	out = fopen(buf, "w"); + 	if (!out) + 		return 1; + 	fprintf(out, "deps_config := \\\n"); +@@ -182,7 +193,8 @@ +  + 	fprintf(out, "\n$(deps_config): ;\n"); + 	fclose(out); +-	rename("..config.tmp", name); ++	sprintf(buf2, "%s%s", dir, name); ++	rename(buf, buf2); + 	return write_make_deps(NULL); + } +  diff --git a/package/config/patches/series b/package/config/patches/series new file mode 100644 index 000000000..defdf5899 --- /dev/null +++ b/package/config/patches/series @@ -0,0 +1,11 @@ +01-kconfig-kernel-to-buildroot.patch +02-cpp-comments-to-c-comments.patch +03-change-config-option-prefix.patch +05-really-clean-everything.patch +06-br-build-system-integration.patch +08-make-write-deps.patch +09-implement-kconfig-probability.patch +10-br-build-system.patch +11-use-mktemp-for-lxdialog.patch +12-fix-glade-file-path.patch +14-support-out-of-tree-config.patch | 
