summaryrefslogtreecommitdiffstats
path: root/package/config/patches/14-support-out-of-tree-config.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/config/patches/14-support-out-of-tree-config.patch')
-rw-r--r--package/config/patches/14-support-out-of-tree-config.patch199
1 files changed, 0 insertions, 199 deletions
diff --git a/package/config/patches/14-support-out-of-tree-config.patch b/package/config/patches/14-support-out-of-tree-config.patch
deleted file mode 100644
index 9fa6384d3..000000000
--- a/package/config/patches/14-support-out-of-tree-config.patch
+++ /dev/null
@@ -1,199 +0,0 @@
----
- conf.c | 1
- confdata.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++---------------
- util.c | 16 +++++++++++++--
- 3 files changed, 61 insertions(+), 18 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
-@@ -71,9 +71,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)
-@@ -565,6 +563,9 @@
- int use_timestamp = 1;
- char *env;
-
-+ if (!name)
-+ name = conf_get_configname();
-+
- dirname[0] = 0;
- if (name && name[0]) {
- struct stat st;
-@@ -671,6 +672,7 @@
- {
- const char *name;
- char path[PATH_MAX+1];
-+ char *opwd, *dir, *_name;
- char *s, *d, c;
- struct symbol *sym;
- struct stat sb;
-@@ -679,8 +681,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) {
-@@ -773,9 +787,11 @@
- close(fd);
- }
- out:
-- if (chdir("../.."))
-- return 1;
--
-+ if (chdir(opwd))
-+ res = 1;
-+err:
-+ free(opwd);
-+ free(_name);
- return res;
- }
-
-@@ -787,25 +803,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);
-@@ -885,19 +914,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
-@@ -147,6 +147,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;
-@@ -154,7 +156,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");
-@@ -185,7 +196,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);
- }
-