Commit 106f1466 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'kconfig-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild

Pull Kconfig updates from Masahiro Yamada:

 - always require argument for --defconfig and remove the hard-coded
   arch/$(ARCH)/defconfig path

 - make arch/$(SRCARCH)/configs/defconfig the new default of defconfig

 - some code cleanups

* tag 'kconfig-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
  kconfig: remove meaningless if-conditional in conf_read()
  kconfig: Fix spelling of sym_is_changable
  unicore32: rename unicore32_defconfig to defconfig
  kconfig: make arch/*/configs/defconfig the default of KBUILD_DEFCONFIG
  kconfig: add static qualifier to expand_string()
  kconfig: require the argument of --defconfig
  kconfig: remove always false ifeq ($(KBUILD_DEFCONFIG,) conditional
parents 39ceda5c e3cd5136
...@@ -8,8 +8,6 @@ ...@@ -8,8 +8,6 @@
# Copyright (C) 1994 by Linus Torvalds # Copyright (C) 1994 by Linus Torvalds
# #
KBUILD_DEFCONFIG := defconfig
NM := $(NM) -B NM := $(NM) -B
LDFLAGS_vmlinux := -static -N #-relax LDFLAGS_vmlinux := -static -N #-relax
......
...@@ -30,8 +30,6 @@ LDFLAGS_vmlinux += --fix-cortex-a53-843419 ...@@ -30,8 +30,6 @@ LDFLAGS_vmlinux += --fix-cortex-a53-843419
endif endif
endif endif
KBUILD_DEFCONFIG := defconfig
# Check for binutils support for specific extensions # Check for binutils support for specific extensions
lseinstr := $(call as-instr,.arch_extension lse,-DCONFIG_AS_LSE=1) lseinstr := $(call as-instr,.arch_extension lse,-DCONFIG_AS_LSE=1)
......
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
OBJCOPYFLAGS :=-O binary OBJCOPYFLAGS :=-O binary
GZFLAGS :=-9 GZFLAGS :=-9
KBUILD_DEFCONFIG := defconfig
ifdef CONFIG_CPU_HAS_FPU ifdef CONFIG_CPU_HAS_FPU
FPUEXT = f FPUEXT = f
......
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
LDFLAGS_vmlinux := --no-undefined -X LDFLAGS_vmlinux := --no-undefined -X
OBJCOPYFLAGS := -O binary -R .note -R .note.gnu.build-id -R .comment -S OBJCOPYFLAGS := -O binary -R .note -R .note.gnu.build-id -R .comment -S
KBUILD_DEFCONFIG := defconfig
ifdef CONFIG_FUNCTION_TRACER ifdef CONFIG_FUNCTION_TRACER
arch-y += -malways-save-lp -mno-relax arch-y += -malways-save-lp -mno-relax
endif endif
......
...@@ -16,8 +16,6 @@ endif ...@@ -16,8 +16,6 @@ endif
KBUILD_AFLAGS_MODULE += -fPIC KBUILD_AFLAGS_MODULE += -fPIC
KBUILD_CFLAGS_MODULE += -fPIC KBUILD_CFLAGS_MODULE += -fPIC
KBUILD_DEFCONFIG = defconfig
export BITS export BITS
ifeq ($(CONFIG_ARCH_RV64I),y) ifeq ($(CONFIG_ARCH_RV64I),y)
BITS := 64 BITS := 64
......
...@@ -10,8 +10,6 @@ ...@@ -10,8 +10,6 @@
# Copyright (C) 1994 by Linus Torvalds # Copyright (C) 1994 by Linus Torvalds
# #
KBUILD_DEFCONFIG := defconfig
LD_BFD := elf64-s390 LD_BFD := elf64-s390
KBUILD_LDFLAGS := -m elf64_s390 KBUILD_LDFLAGS := -m elf64_s390
KBUILD_AFLAGS_MODULE += -fPIC KBUILD_AFLAGS_MODULE += -fPIC
......
...@@ -41,8 +41,7 @@ libs-y += arch/unicore32/lib/ ...@@ -41,8 +41,7 @@ libs-y += arch/unicore32/lib/
boot := arch/unicore32/boot boot := arch/unicore32/boot
# Default defconfig and target when executing plain make # Default target when executing plain make
KBUILD_DEFCONFIG := $(ARCH)_defconfig
KBUILD_IMAGE := $(boot)/zImage KBUILD_IMAGE := $(boot)/zImage
all: zImage all: zImage
......
...@@ -12,6 +12,10 @@ else ...@@ -12,6 +12,10 @@ else
Kconfig := Kconfig Kconfig := Kconfig
endif endif
ifndef KBUILD_DEFCONFIG
KBUILD_DEFCONFIG := defconfig
endif
ifeq ($(quiet),silent_) ifeq ($(quiet),silent_)
silent := -s silent := -s
endif endif
...@@ -74,9 +78,7 @@ savedefconfig: $(obj)/conf ...@@ -74,9 +78,7 @@ savedefconfig: $(obj)/conf
$< $(silent) --$@=defconfig $(Kconfig) $< $(silent) --$@=defconfig $(Kconfig)
defconfig: $(obj)/conf defconfig: $(obj)/conf
ifeq ($(KBUILD_DEFCONFIG),) ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)),)
$< $(silent) --defconfig $(Kconfig)
else ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)),)
@$(kecho) "*** Default configuration is based on '$(KBUILD_DEFCONFIG)'" @$(kecho) "*** Default configuration is based on '$(KBUILD_DEFCONFIG)'"
$(Q)$< $(silent) --defconfig=arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig) $(Q)$< $(silent) --defconfig=arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig)
else else
......
...@@ -90,7 +90,7 @@ static int conf_askvalue(struct symbol *sym, const char *def) ...@@ -90,7 +90,7 @@ static int conf_askvalue(struct symbol *sym, const char *def)
line[0] = '\n'; line[0] = '\n';
line[1] = 0; line[1] = 0;
if (!sym_is_changable(sym)) { if (!sym_is_changeable(sym)) {
printf("%s\n", def); printf("%s\n", def);
line[0] = '\n'; line[0] = '\n';
line[1] = 0; line[1] = 0;
...@@ -234,7 +234,7 @@ static int conf_choice(struct menu *menu) ...@@ -234,7 +234,7 @@ static int conf_choice(struct menu *menu)
sym = menu->sym; sym = menu->sym;
is_new = !sym_has_value(sym); is_new = !sym_has_value(sym);
if (sym_is_changable(sym)) { if (sym_is_changeable(sym)) {
conf_sym(menu); conf_sym(menu);
sym_calc_value(sym); sym_calc_value(sym);
switch (sym_get_tristate_value(sym)) { switch (sym_get_tristate_value(sym)) {
...@@ -418,7 +418,7 @@ static void check_conf(struct menu *menu) ...@@ -418,7 +418,7 @@ static void check_conf(struct menu *menu)
sym = menu->sym; sym = menu->sym;
if (sym && !sym_has_value(sym)) { if (sym && !sym_has_value(sym)) {
if (sym_is_changable(sym) || if (sym_is_changeable(sym) ||
(sym_is_choice(sym) && sym_get_tristate_value(sym) == yes)) { (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes)) {
if (input_mode == listnewconfig) { if (input_mode == listnewconfig) {
if (sym->name) { if (sym->name) {
...@@ -451,7 +451,7 @@ static struct option long_opts[] = { ...@@ -451,7 +451,7 @@ static struct option long_opts[] = {
{"oldaskconfig", no_argument, NULL, oldaskconfig}, {"oldaskconfig", no_argument, NULL, oldaskconfig},
{"oldconfig", no_argument, NULL, oldconfig}, {"oldconfig", no_argument, NULL, oldconfig},
{"syncconfig", no_argument, NULL, syncconfig}, {"syncconfig", no_argument, NULL, syncconfig},
{"defconfig", optional_argument, NULL, defconfig}, {"defconfig", required_argument, NULL, defconfig},
{"savedefconfig", required_argument, NULL, savedefconfig}, {"savedefconfig", required_argument, NULL, savedefconfig},
{"allnoconfig", no_argument, NULL, allnoconfig}, {"allnoconfig", no_argument, NULL, allnoconfig},
{"allyesconfig", no_argument, NULL, allyesconfig}, {"allyesconfig", no_argument, NULL, allyesconfig},
...@@ -562,8 +562,6 @@ int main(int ac, char **av) ...@@ -562,8 +562,6 @@ int main(int ac, char **av)
switch (input_mode) { switch (input_mode) {
case defconfig: case defconfig:
if (!defconfig_file)
defconfig_file = conf_get_default_confname();
if (conf_read(defconfig_file)) { if (conf_read(defconfig_file)) {
fprintf(stderr, fprintf(stderr,
"***\n" "***\n"
......
...@@ -177,8 +177,6 @@ static void conf_message(const char *fmt, ...) ...@@ -177,8 +177,6 @@ static void conf_message(const char *fmt, ...)
static const char *conf_filename; static const char *conf_filename;
static int conf_lineno, conf_warnings; static int conf_lineno, conf_warnings;
const char conf_defname[] = "arch/$(ARCH)/defconfig";
static void conf_warning(const char *fmt, ...) static void conf_warning(const char *fmt, ...)
{ {
va_list ap; va_list ap;
...@@ -233,21 +231,6 @@ static const char *conf_get_autoconfig_name(void) ...@@ -233,21 +231,6 @@ static const char *conf_get_autoconfig_name(void)
return name ? name : "include/config/auto.conf"; return name ? name : "include/config/auto.conf";
} }
char *conf_get_default_confname(void)
{
static char fullname[PATH_MAX+1];
char *env, *name;
name = expand_string(conf_defname);
env = getenv(SRCTREE);
if (env) {
snprintf(fullname, sizeof(fullname), "%s/%s", env, name);
if (is_present(fullname))
return fullname;
}
return name;
}
static int conf_set_sym_val(struct symbol *sym, int def, int def_flags, char *p) static int conf_set_sym_val(struct symbol *sym, int def, int def_flags, char *p)
{ {
char *p2; char *p2;
...@@ -551,11 +534,9 @@ int conf_read(const char *name) ...@@ -551,11 +534,9 @@ int conf_read(const char *name)
switch (sym->type) { switch (sym->type) {
case S_BOOLEAN: case S_BOOLEAN:
case S_TRISTATE: case S_TRISTATE:
if (sym->def[S_DEF_USER].tri != sym_get_tristate_value(sym)) if (sym->def[S_DEF_USER].tri == sym_get_tristate_value(sym))
break;
if (!sym_is_choice(sym))
continue; continue;
/* fall through */ break;
default: default:
if (!strcmp(sym->curr.val, sym->def[S_DEF_USER].val)) if (!strcmp(sym->curr.val, sym->def[S_DEF_USER].val))
continue; continue;
...@@ -813,7 +794,7 @@ int conf_write_defconfig(const char *filename) ...@@ -813,7 +794,7 @@ int conf_write_defconfig(const char *filename)
goto next_menu; goto next_menu;
sym->flags &= ~SYMBOL_WRITE; sym->flags &= ~SYMBOL_WRITE;
/* If we cannot change the symbol - skip */ /* If we cannot change the symbol - skip */
if (!sym_is_changable(sym)) if (!sym_is_changeable(sym))
goto next_menu; goto next_menu;
/* If symbol equals to default value - skip */ /* If symbol equals to default value - skip */
if (strcmp(sym_get_string_value(sym), sym_get_string_default(sym)) == 0) if (strcmp(sym_get_string_value(sym), sym_get_string_default(sym)) == 0)
......
...@@ -49,7 +49,6 @@ const char *zconf_curname(void); ...@@ -49,7 +49,6 @@ const char *zconf_curname(void);
/* confdata.c */ /* confdata.c */
const char *conf_get_configname(void); const char *conf_get_configname(void);
char *conf_get_default_confname(void);
void sym_set_change_count(int count); void sym_set_change_count(int count);
void sym_add_change_count(int count); void sym_add_change_count(int count);
bool conf_set_all_new_symbols(enum conf_def_mode mode); bool conf_set_all_new_symbols(enum conf_def_mode mode);
......
...@@ -42,7 +42,7 @@ tristate sym_toggle_tristate_value(struct symbol *sym); ...@@ -42,7 +42,7 @@ tristate sym_toggle_tristate_value(struct symbol *sym);
bool sym_string_valid(struct symbol *sym, const char *newval); bool sym_string_valid(struct symbol *sym, const char *newval);
bool sym_string_within_range(struct symbol *sym, const char *str); bool sym_string_within_range(struct symbol *sym, const char *str);
bool sym_set_string_value(struct symbol *sym, const char *newval); bool sym_set_string_value(struct symbol *sym, const char *newval);
bool sym_is_changable(struct symbol *sym); bool sym_is_changeable(struct symbol *sym);
struct property * sym_get_choice_prop(struct symbol *sym); struct property * sym_get_choice_prop(struct symbol *sym);
const char * sym_get_string_value(struct symbol *sym); const char * sym_get_string_value(struct symbol *sym);
...@@ -58,7 +58,6 @@ void env_write_dep(FILE *f, const char *auto_conf_name); ...@@ -58,7 +58,6 @@ void env_write_dep(FILE *f, const char *auto_conf_name);
void variable_add(const char *name, const char *value, void variable_add(const char *name, const char *value,
enum variable_flavor flavor); enum variable_flavor flavor);
void variable_all_del(void); void variable_all_del(void);
char *expand_string(const char *in);
char *expand_dollar(const char **str); char *expand_dollar(const char **str);
char *expand_one_token(const char **str); char *expand_one_token(const char **str);
......
...@@ -536,7 +536,7 @@ static void build_conf(struct menu *menu) ...@@ -536,7 +536,7 @@ static void build_conf(struct menu *menu)
} }
val = sym_get_tristate_value(sym); val = sym_get_tristate_value(sym);
if (sym_is_changable(sym)) { if (sym_is_changeable(sym)) {
switch (type) { switch (type) {
case S_BOOLEAN: case S_BOOLEAN:
item_make("[%c]", val == no ? ' ' : '*'); item_make("[%c]", val == no ? ' ' : '*');
...@@ -587,7 +587,7 @@ static void build_conf(struct menu *menu) ...@@ -587,7 +587,7 @@ static void build_conf(struct menu *menu)
} else { } else {
switch (type) { switch (type) {
case S_BOOLEAN: case S_BOOLEAN:
if (sym_is_changable(sym)) if (sym_is_changeable(sym))
item_make("[%c]", val == no ? ' ' : '*'); item_make("[%c]", val == no ? ' ' : '*');
else else
item_make("-%c-", val == no ? ' ' : '*'); item_make("-%c-", val == no ? ' ' : '*');
...@@ -600,7 +600,7 @@ static void build_conf(struct menu *menu) ...@@ -600,7 +600,7 @@ static void build_conf(struct menu *menu)
case mod: ch = 'M'; break; case mod: ch = 'M'; break;
default: ch = ' '; break; default: ch = ' '; break;
} }
if (sym_is_changable(sym)) { if (sym_is_changeable(sym)) {
if (sym->rev_dep.tri == mod) if (sym->rev_dep.tri == mod)
item_make("{%c}", ch); item_make("{%c}", ch);
else else
...@@ -617,7 +617,7 @@ static void build_conf(struct menu *menu) ...@@ -617,7 +617,7 @@ static void build_conf(struct menu *menu)
if (tmp < 0) if (tmp < 0)
tmp = 0; tmp = 0;
item_add_str("%*c%s%s", tmp, ' ', menu_get_prompt(menu), item_add_str("%*c%s%s", tmp, ' ', menu_get_prompt(menu),
(sym_has_value(sym) || !sym_is_changable(sym)) ? (sym_has_value(sym) || !sym_is_changeable(sym)) ?
"" : " (NEW)"); "" : " (NEW)");
item_set_tag('s'); item_set_tag('s');
item_set_data(menu); item_set_data(menu);
...@@ -625,7 +625,7 @@ static void build_conf(struct menu *menu) ...@@ -625,7 +625,7 @@ static void build_conf(struct menu *menu)
} }
} }
item_add_str("%*c%s%s", indent + 1, ' ', menu_get_prompt(menu), item_add_str("%*c%s%s", indent + 1, ' ', menu_get_prompt(menu),
(sym_has_value(sym) || !sym_is_changable(sym)) ? (sym_has_value(sym) || !sym_is_changeable(sym)) ?
"" : " (NEW)"); "" : " (NEW)");
if (menu->prompt->type == P_MENU) { if (menu->prompt->type == P_MENU) {
item_add_str(" %s", menu_is_empty(menu) ? "----" : "--->"); item_add_str(" %s", menu_is_empty(menu) ? "----" : "--->");
......
...@@ -803,7 +803,7 @@ static void build_conf(struct menu *menu) ...@@ -803,7 +803,7 @@ static void build_conf(struct menu *menu)
} }
val = sym_get_tristate_value(sym); val = sym_get_tristate_value(sym);
if (sym_is_changable(sym)) { if (sym_is_changeable(sym)) {
switch (type) { switch (type) {
case S_BOOLEAN: case S_BOOLEAN:
item_make(menu, 't', "[%c]", item_make(menu, 't', "[%c]",
...@@ -857,7 +857,7 @@ static void build_conf(struct menu *menu) ...@@ -857,7 +857,7 @@ static void build_conf(struct menu *menu)
} else { } else {
switch (type) { switch (type) {
case S_BOOLEAN: case S_BOOLEAN:
if (sym_is_changable(sym)) if (sym_is_changeable(sym))
item_make(menu, 't', "[%c]", item_make(menu, 't', "[%c]",
val == no ? ' ' : '*'); val == no ? ' ' : '*');
else else
...@@ -876,7 +876,7 @@ static void build_conf(struct menu *menu) ...@@ -876,7 +876,7 @@ static void build_conf(struct menu *menu)
ch = ' '; ch = ' ';
break; break;
} }
if (sym_is_changable(sym)) { if (sym_is_changeable(sym)) {
if (sym->rev_dep.tri == mod) if (sym->rev_dep.tri == mod)
item_make(menu, item_make(menu,
't', "{%c}", ch); 't', "{%c}", ch);
...@@ -896,14 +896,14 @@ static void build_conf(struct menu *menu) ...@@ -896,14 +896,14 @@ static void build_conf(struct menu *menu)
item_add_str("%*c%s%s", tmp, ' ', item_add_str("%*c%s%s", tmp, ' ',
menu_get_prompt(menu), menu_get_prompt(menu),
(sym_has_value(sym) || (sym_has_value(sym) ||
!sym_is_changable(sym)) ? "" : !sym_is_changeable(sym)) ? "" :
" (NEW)"); " (NEW)");
goto conf_childs; goto conf_childs;
} }
} }
item_add_str("%*c%s%s", indent + 1, ' ', item_add_str("%*c%s%s", indent + 1, ' ',
menu_get_prompt(menu), menu_get_prompt(menu),
(sym_has_value(sym) || !sym_is_changable(sym)) ? (sym_has_value(sym) || !sym_is_changeable(sym)) ?
"" : " (NEW)"); "" : " (NEW)");
if (menu->prompt && menu->prompt->type == P_MENU) { if (menu->prompt && menu->prompt->type == P_MENU) {
item_add_str(" %s", menu_is_empty(menu) ? "----" : "--->"); item_add_str(" %s", menu_is_empty(menu) ? "----" : "--->");
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
static char *expand_string_with_args(const char *in, int argc, char *argv[]); static char *expand_string_with_args(const char *in, int argc, char *argv[]);
static char *expand_string(const char *in);
static void __attribute__((noreturn)) pperror(const char *format, ...) static void __attribute__((noreturn)) pperror(const char *format, ...)
{ {
...@@ -550,7 +551,7 @@ static char *expand_string_with_args(const char *in, int argc, char *argv[]) ...@@ -550,7 +551,7 @@ static char *expand_string_with_args(const char *in, int argc, char *argv[])
return __expand_string(&in, is_end_of_str, argc, argv); return __expand_string(&in, is_end_of_str, argc, argv);
} }
char *expand_string(const char *in) static char *expand_string(const char *in)
{ {
return expand_string_with_args(in, 0, NULL); return expand_string_with_args(in, 0, NULL);
} }
......
...@@ -152,7 +152,7 @@ void ConfigItem::updateMenu(void) ...@@ -152,7 +152,7 @@ void ConfigItem::updateMenu(void)
case S_TRISTATE: case S_TRISTATE:
char ch; char ch;
if (!sym_is_changable(sym) && list->optMode == normalOpt) { if (!sym_is_changeable(sym) && list->optMode == normalOpt) {
setPixmap(promptColIdx, QIcon()); setPixmap(promptColIdx, QIcon());
setText(noColIdx, QString::null); setText(noColIdx, QString::null);
setText(modColIdx, QString::null); setText(modColIdx, QString::null);
......
...@@ -785,7 +785,7 @@ const char *sym_get_string_value(struct symbol *sym) ...@@ -785,7 +785,7 @@ const char *sym_get_string_value(struct symbol *sym)
return (const char *)sym->curr.val; return (const char *)sym->curr.val;
} }
bool sym_is_changable(struct symbol *sym) bool sym_is_changeable(struct symbol *sym)
{ {
return sym->visible > sym->rev_dep.tri; return sym->visible > sym->rev_dep.tri;
} }
......
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