Commit 00d674cb authored by Masahiro Yamada's avatar Masahiro Yamada

kconfig: refactor conf_write_dep()

The if ... else inside the for-loop is unneeded because one empty
line is placed after printing the last element of deps_config.

Currently, all errors in conf_write_dep() are ignored. Add proper
error checks.

Rename it to conf_write_autoconf_cmd(), which is more intuitive.
Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
parent 57ddd07c
...@@ -957,32 +957,50 @@ int conf_write(const char *name) ...@@ -957,32 +957,50 @@ int conf_write(const char *name)
} }
/* write a dependency file as used by kbuild to track dependencies */ /* write a dependency file as used by kbuild to track dependencies */
static int conf_write_dep(const char *name) static int conf_write_autoconf_cmd(const char *autoconf_name)
{ {
char name[PATH_MAX], tmp[PATH_MAX];
struct file *file; struct file *file;
FILE *out; FILE *out;
int ret;
ret = snprintf(name, sizeof(name), "%s.cmd", autoconf_name);
if (ret >= sizeof(name)) /* check truncation */
return -1;
if (make_parent_dir(name))
return -1;
ret = snprintf(tmp, sizeof(tmp), "%s.cmd.tmp", autoconf_name);
if (ret >= sizeof(tmp)) /* check truncation */
return -1;
out = fopen(tmp, "w");
if (!out) {
perror("fopen");
return -1;
}
out = fopen("..config.tmp", "w");
if (!out)
return 1;
fprintf(out, "deps_config := \\\n"); fprintf(out, "deps_config := \\\n");
for (file = file_list; file; file = file->next) { for (file = file_list; file; file = file->next)
if (file->next)
fprintf(out, "\t%s \\\n", file->name); fprintf(out, "\t%s \\\n", file->name);
else
fprintf(out, "\t%s\n", file->name);
}
fprintf(out, "\n%s: \\\n"
"\t$(deps_config)\n\n", conf_get_autoconfig_name());
env_write_dep(out, conf_get_autoconfig_name()); fprintf(out, "\n%s: $(deps_config)\n\n", autoconf_name);
env_write_dep(out, autoconf_name);
fprintf(out, "\n$(deps_config): ;\n"); fprintf(out, "\n$(deps_config): ;\n");
if (ferror(out)) /* error check for all fprintf() calls */
return -1;
fclose(out); fclose(out);
if (make_parent_dir(name)) if (rename(tmp, name)) {
return 1; perror("rename");
rename("..config.tmp", name); return -1;
}
return 0; return 0;
} }
...@@ -1109,7 +1127,9 @@ int conf_write_autoconf(int overwrite) ...@@ -1109,7 +1127,9 @@ int conf_write_autoconf(int overwrite)
if (!overwrite && is_present(autoconf_name)) if (!overwrite && is_present(autoconf_name))
return 0; return 0;
conf_write_dep("include/config/auto.conf.cmd"); ret = conf_write_autoconf_cmd(autoconf_name);
if (ret)
return -1;
if (conf_touch_deps()) if (conf_touch_deps())
return 1; return 1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment