diff options
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.patch | 199 |
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); - } - |