Commit d746d647 authored by Sam Ravnborg's avatar Sam Ravnborg

x86: do not use $(ARCH) when not needed

For x86 ARCH may say i386 or x86_64 and soon x86.
Rely on CONFIG_X64_32 to select between 32/64 or just
hardcode the value as appropriate.
Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
parent 2a113281
...@@ -197,8 +197,13 @@ CROSS_COMPILE ?= ...@@ -197,8 +197,13 @@ CROSS_COMPILE ?=
UTS_MACHINE := $(ARCH) UTS_MACHINE := $(ARCH)
SRCARCH := $(ARCH) SRCARCH := $(ARCH)
# for i386 and x86_64 we use SRCARCH equal to x86 # Additional ARCH settings for x86
SRCARCH := $(if $(filter x86_64 i386,$(SRCARCH)),x86,$(SRCARCH)) ifeq ($(ARCH),i386)
SRCARCH := x86
endif
ifeq ($(ARCH),x86_64)
SRCARCH := x86
endif
KCONFIG_CONFIG ?= .config KCONFIG_CONFIG ?= .config
......
# Unified Makefile for i386 and x86_64 # Unified Makefile for i386 and x86_64
# select defconfig based on actual architecture # select defconfig based on actual architecture
KBUILD_DEFCONFIG := $(ARCH)_defconfig ifeq ($(ARCH),x86)
KBUILD_DEFCONFIG := i386_defconfig
else
KBUILD_DEFCONFIG := $(ARCH)_defconfig
endif
# # No need to remake these files # No need to remake these files
$(srctree)/arch/x86/Makefile%: ; $(srctree)/arch/x86/Makefile%: ;
ifeq ($(ARCH),i386) ifeq ($(CONFIG_X86_32),y)
include $(srctree)/arch/x86/Makefile_32 include $(srctree)/arch/x86/Makefile_32
else else
include $(srctree)/arch/x86/Makefile_64 include $(srctree)/arch/x86/Makefile_64
......
...@@ -160,7 +160,7 @@ archclean: ...@@ -160,7 +160,7 @@ archclean:
$(Q)$(MAKE) $(clean)=arch/x86/boot $(Q)$(MAKE) $(clean)=arch/x86/boot
define archhelp define archhelp
echo '* bzImage - Compressed kernel image (arch/$(ARCH)/boot/bzImage)' echo '* bzImage - Compressed kernel image (arch/x86/boot/bzImage)'
echo ' install - Install kernel using' echo ' install - Install kernel using'
echo ' (your) ~/bin/installkernel or' echo ' (your) ~/bin/installkernel or'
echo ' (distribution) /sbin/installkernel or' echo ' (distribution) /sbin/installkernel or'
...@@ -170,6 +170,6 @@ define archhelp ...@@ -170,6 +170,6 @@ define archhelp
echo ' isoimage - Create a boot CD-ROM image' echo ' isoimage - Create a boot CD-ROM image'
endef endef
CLEAN_FILES += arch/$(ARCH)/boot/fdimage \ CLEAN_FILES += arch/x86/boot/fdimage \
arch/$(ARCH)/boot/image.iso \ arch/x86/boot/image.iso \
arch/$(ARCH)/boot/mtools.conf arch/x86/boot/mtools.conf
...@@ -127,7 +127,7 @@ archclean: ...@@ -127,7 +127,7 @@ archclean:
$(Q)$(MAKE) $(clean)=$(boot) $(Q)$(MAKE) $(clean)=$(boot)
define archhelp define archhelp
echo '* bzImage - Compressed kernel image (arch/$(ARCH)/boot/bzImage)' echo '* bzImage - Compressed kernel image (arch/x86/boot/bzImage)'
echo ' install - Install kernel using' echo ' install - Install kernel using'
echo ' (your) ~/bin/installkernel or' echo ' (your) ~/bin/installkernel or'
echo ' (distribution) /sbin/installkernel or' echo ' (distribution) /sbin/installkernel or'
...@@ -137,8 +137,8 @@ define archhelp ...@@ -137,8 +137,8 @@ define archhelp
echo ' isoimage - Create a boot CD-ROM image' echo ' isoimage - Create a boot CD-ROM image'
endef endef
CLEAN_FILES += arch/$(ARCH)/boot/fdimage \ CLEAN_FILES += arch/x86/boot/fdimage \
arch/$(ARCH)/boot/image.iso \ arch/x86/boot/image.iso \
arch/$(ARCH)/boot/mtools.conf arch/x86/boot/mtools.conf
...@@ -49,10 +49,10 @@ HOSTCFLAGS_build.o := $(LINUXINCLUDE) ...@@ -49,10 +49,10 @@ HOSTCFLAGS_build.o := $(LINUXINCLUDE)
# How to compile the 16-bit code. Note we always compile for -march=i386, # How to compile the 16-bit code. Note we always compile for -march=i386,
# that way we can complain to the user if the CPU is insufficient. # that way we can complain to the user if the CPU is insufficient.
cflags-i386 := cflags-$(CONFIG_X86_32) :=
cflags-x86_64 := -m32 cflags-$(CONFIG_X86_64) := -m32
KBUILD_CFLAGS := $(LINUXINCLUDE) -g -Os -D_SETUP -D__KERNEL__ \ KBUILD_CFLAGS := $(LINUXINCLUDE) -g -Os -D_SETUP -D__KERNEL__ \
$(cflags-$(ARCH)) \ $(cflags-y) \
-Wall -Wstrict-prototypes \ -Wall -Wstrict-prototypes \
-march=i386 -mregparm=3 \ -march=i386 -mregparm=3 \
-include $(srctree)/$(src)/code16gcc.h \ -include $(srctree)/$(src)/code16gcc.h \
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
# #
extra-y := head_32.o init_task.o vmlinux.lds extra-y := head_32.o init_task.o vmlinux.lds
CPPFLAGS_vmlinux.lds += -Ui386
obj-y := process_32.o signal_32.o entry_32.o traps_32.o irq_32.o \ obj-y := process_32.o signal_32.o entry_32.o traps_32.o irq_32.o \
ptrace_32.o time_32.o ioport_32.o ldt_32.o setup_32.o i8259_32.o sys_i386_32.o \ ptrace_32.o time_32.o ioport_32.o ldt_32.o setup_32.o i8259_32.o sys_i386_32.o \
...@@ -60,7 +61,7 @@ quiet_cmd_syscall = SYSCALL $@ ...@@ -60,7 +61,7 @@ quiet_cmd_syscall = SYSCALL $@
cmd_syscall = $(CC) -m elf_i386 -nostdlib $(SYSCFLAGS_$(@F)) \ cmd_syscall = $(CC) -m elf_i386 -nostdlib $(SYSCFLAGS_$(@F)) \
-Wl,-T,$(filter-out FORCE,$^) -o $@ -Wl,-T,$(filter-out FORCE,$^) -o $@
export CPPFLAGS_vsyscall_32.lds += -P -C -U$(ARCH) export CPPFLAGS_vsyscall_32.lds += -P -C -Ui386
vsyscall-flags = -shared -s -Wl,-soname=linux-gate.so.1 \ vsyscall-flags = -shared -s -Wl,-soname=linux-gate.so.1 \
$(call ld-option, -Wl$(comma)--hash-style=sysv) $(call ld-option, -Wl$(comma)--hash-style=sysv)
......
...@@ -3,7 +3,9 @@ ...@@ -3,7 +3,9 @@
# #
extra-y := head_64.o head64.o init_task.o vmlinux.lds extra-y := head_64.o head64.o init_task.o vmlinux.lds
CPPFLAGS_vmlinux.lds += -Ux86_64
EXTRA_AFLAGS := -traditional EXTRA_AFLAGS := -traditional
obj-y := process_64.o signal_64.o entry_64.o traps_64.o irq_64.o \ obj-y := process_64.o signal_64.o entry_64.o traps_64.o irq_64.o \
ptrace_64.o time_64.o ioport_64.o ldt_64.o setup_64.o i8259_64.o sys_x86_64.o \ ptrace_64.o time_64.o ioport_64.o ldt_64.o setup_64.o i8259_64.o sys_x86_64.o \
x8664_ksyms_64.o i387_64.o syscall_64.o vsyscall_64.o \ x8664_ksyms_64.o i387_64.o syscall_64.o vsyscall_64.o \
......
...@@ -20,7 +20,7 @@ quiet_cmd_syscall = SYSCALL $@ ...@@ -20,7 +20,7 @@ quiet_cmd_syscall = SYSCALL $@
cmd_syscall = $(CC) -m elf_x86_64 -nostdlib $(SYSCFLAGS_$(@F)) \ cmd_syscall = $(CC) -m elf_x86_64 -nostdlib $(SYSCFLAGS_$(@F)) \
-Wl,-T,$(filter-out FORCE,$^) -o $@ -Wl,-T,$(filter-out FORCE,$^) -o $@
export CPPFLAGS_vdso.lds += -P -C -U$(ARCH) export CPPFLAGS_vdso.lds += -P -C
vdso-flags = -fPIC -shared -Wl,-soname=linux-vdso.so.1 \ vdso-flags = -fPIC -shared -Wl,-soname=linux-vdso.so.1 \
$(call ld-option, -Wl$(comma)--hash-style=sysv) \ $(call ld-option, -Wl$(comma)--hash-style=sysv) \
......
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