Skip to content

Commit 6840999

Browse files
sravnborgLinus Torvalds
authored andcommitted
x86: simplify "make ARCH=x86" and fix kconfig all.config
Simplify "make ARCH=x86" and fix kconfig so we again can set 64BIT in all.config. For a fix the diffstat is nice: 6 files changed, 3 insertions(+), 36 deletions(-) The patch reverts these commits: - 0f855aa ("kconfig: add helper to set config symbol from environment variable") - 2a11328 ("kconfig: use $K64BIT to set 64BIT with all*config targets") Roman Zippel pointed out that kconfig supported string compares so the additional complexity introduced by the above two patches were not needed. With this patch we have following behaviour: # make {allno,allyes,allmod,rand}config [ARCH=...] option \ host arch | 32bit | 64bit ===================================================== ./. | 32bit | 64bit ARCH=x86 | 32bit | 32bit ARCH=i386 | 32bit | 32bit ARCH=x86_64 | 64bit | 64bit The general rule are that ARCH= and native architecture takes precedence over the configuration. So make ARCH=i386 [whatever] will always build a 32-bit kernel no matter what the configuration says. The configuration will be updated to 32-bit if it was configured to 64-bit and the other way around. This behaviour is consistent with previous behaviour so no suprises here. make ARCH=x86 will per default result in a 32-bit kernel but as the only ARCH= value x86 allow the user to select between 32-bit and 64-bit using menuconfig. Signed-off-by: Sam Ravnborg <[email protected]> Cc: Roman Zippel <[email protected]> Cc: Andreas Herrmann <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: "H. Peter Anvin" <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
1 parent d9f8bcb commit 6840999

File tree

6 files changed

+3
-36
lines changed

6 files changed

+3
-36
lines changed

Makefile

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -200,11 +200,9 @@ SRCARCH := $(ARCH)
200200
# Additional ARCH settings for x86
201201
ifeq ($(ARCH),i386)
202202
SRCARCH := x86
203-
K64BIT := n
204203
endif
205204
ifeq ($(ARCH),x86_64)
206205
SRCARCH := x86
207-
K64BIT := y
208206
endif
209207

210208
KCONFIG_CONFIG ?= .config
@@ -341,7 +339,7 @@ KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null)
341339
KERNELVERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
342340

343341
export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION
344-
export ARCH SRCARCH K64BIT CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC
342+
export ARCH SRCARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC
345343
export CPP AR NM STRIP OBJCOPY OBJDUMP MAKE AWK GENKSYMS PERL UTS_MACHINE
346344
export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
347345

README

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,8 +194,6 @@ CONFIGURING the kernel:
194194
"make *config" checks for a file named "all{yes/mod/no/random}.config"
195195
for symbol values that are to be forced. If this file is not found,
196196
it checks for a file named "all.config" to contain forced values.
197-
Finally it checks the environment variable K64BIT and if found, sets
198-
the config symbol "64BIT" to the value of the K64BIT variable.
199197

200198
NOTES on "make config":
201199
- having unnecessary drivers will make the kernel bigger, and can

arch/x86/Kconfig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ mainmenu "Linux Kernel Configuration for x86"
33

44
# Select 32 or 64 bit
55
config 64BIT
6-
bool "64-bit kernel"
7-
default n
6+
bool "64-bit kernel" if ARCH = "x86"
7+
default ARCH = "x86_64"
88
help
99
Say yes to build a 64-bit kernel - formerly known as x86_64
1010
Say no to build a 32-bit kernel - formerly known as i386

scripts/kconfig/conf.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -591,7 +591,6 @@ int main(int ac, char **av)
591591
conf_read_simple(name, S_DEF_USER);
592592
else if (!stat("all.config", &tmpstat))
593593
conf_read_simple("all.config", S_DEF_USER);
594-
conf_set_env_sym("K64BIT", "64BIT", S_DEF_USER);
595594
break;
596595
default:
597596
break;

scripts/kconfig/confdata.c

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -145,33 +145,6 @@ static int conf_set_sym_val(struct symbol *sym, int def, int def_flags, char *p)
145145
return 0;
146146
}
147147

148-
/* Read an environment variable and assign the value to the symbol */
149-
int conf_set_env_sym(const char *env, const char *symname, int def)
150-
{
151-
struct symbol *sym;
152-
char *p;
153-
int def_flags;
154-
155-
p = getenv(env);
156-
if (p) {
157-
char warning[200];
158-
sprintf(warning, "Environment variable (%s = \"%s\")", env, p);
159-
conf_filename = warning;
160-
def_flags = SYMBOL_DEF << def;
161-
if (def == S_DEF_USER) {
162-
sym = sym_find(symname);
163-
if (!sym)
164-
return 1;
165-
} else {
166-
sym = sym_lookup(symname, 0);
167-
if (sym->type == S_UNKNOWN)
168-
sym->type = S_OTHER;
169-
}
170-
conf_set_sym_val(sym, def, def_flags, p);
171-
}
172-
return 0;
173-
}
174-
175148
int conf_read_simple(const char *name, int def)
176149
{
177150
FILE *in = NULL;

scripts/kconfig/lkc_proto.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11

22
/* confdata.c */
33
P(conf_parse,void,(const char *name));
4-
P(conf_set_env_sym,int,(const char *envname, const char *symname, int def));
54
P(conf_read,int,(const char *name));
65
P(conf_read_simple,int,(const char *name, int));
76
P(conf_write,int,(const char *name));

0 commit comments

Comments
 (0)