2005-04-16 16:20:36 -06:00
|
|
|
#
|
|
|
|
# i386/Makefile
|
|
|
|
#
|
|
|
|
# This file is included by the global makefile so that you can add your own
|
|
|
|
# architecture-specific flags and dependencies. Remember to do have actions
|
|
|
|
# for "archclean" cleaning up for this architecture.
|
|
|
|
#
|
|
|
|
# This file is subject to the terms and conditions of the GNU General Public
|
|
|
|
# License. See the file "COPYING" in the main directory of this archive
|
|
|
|
# for more details.
|
|
|
|
#
|
|
|
|
# Copyright (C) 1994 by Linus Torvalds
|
|
|
|
#
|
|
|
|
# 19990713 Artur Skawina <skawina@geocities.com>
|
|
|
|
# Added '-march' and '-mpreferred-stack-boundary' support
|
|
|
|
#
|
2005-05-05 17:16:17 -06:00
|
|
|
# 20050320 Kianusch Sayah Karadji <kianusch@sk-tech.net>
|
2005-04-16 16:20:36 -06:00
|
|
|
# Added support for GEODE CPU
|
|
|
|
|
2005-06-23 01:08:09 -06:00
|
|
|
HAS_BIARCH := $(call cc-option-yn, -m32)
|
|
|
|
ifeq ($(HAS_BIARCH),y)
|
|
|
|
AS := $(AS) --32
|
|
|
|
LD := $(LD) -m elf_i386
|
|
|
|
CC := $(CC) -m32
|
|
|
|
endif
|
|
|
|
|
2005-04-16 16:20:36 -06:00
|
|
|
LDFLAGS := -m elf_i386
|
|
|
|
OBJCOPYFLAGS := -O binary -R .note -R .comment -S
|
2006-12-06 18:14:04 -07:00
|
|
|
ifdef CONFIG_RELOCATABLE
|
|
|
|
LDFLAGS_vmlinux := --emit-relocs
|
|
|
|
endif
|
2005-04-16 16:20:36 -06:00
|
|
|
CHECKFLAGS += -D__i386__
|
|
|
|
|
2007-02-22 01:38:22 -07:00
|
|
|
CFLAGS += -pipe -msoft-float -mregparm=3 -freg-struct-return
|
2005-04-16 16:20:36 -06:00
|
|
|
|
|
|
|
# prevent gcc from keeping the stack 16 byte aligned
|
2007-05-17 21:18:11 -06:00
|
|
|
CFLAGS += $(call cc-option,-mpreferred-stack-boundary=2)
|
2005-04-16 16:20:36 -06:00
|
|
|
|
[PATCH] uml: reuse i386 cpu-specific tuning
Make UML share the underlying cpu-specific tuning done on i386.
Actually, for now many config options aren't used a lot - but that can be done
later. Also, UML relies on GCC optimization for things like memcpy and such
more than i386, so specifying the correct -march and -mtune should be enough.
Later, we may want to correct some other stuff.
For instance, since FPU context switching, for us, is done (at least
partially, i.e. between our kernelspace and userspace) by the host, we may
allow usage of FPU operations by GCC. This doesn't hold for kernelspace vs.
kernelspace, but we don't support preemption.
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-10-30 16:00:07 -07:00
|
|
|
# CPU-specific tuning. Anything which can be shared with UML should go here.
|
|
|
|
include $(srctree)/arch/i386/Makefile.cpu
|
2005-04-16 16:20:36 -06:00
|
|
|
|
2006-03-25 08:29:49 -07:00
|
|
|
# temporary until string.h is fixed
|
|
|
|
cflags-y += -ffreestanding
|
|
|
|
|
2006-10-21 10:37:01 -06:00
|
|
|
# this works around some issues with generating unwind tables in older gccs
|
|
|
|
# newer gccs do it by default
|
|
|
|
cflags-y += -maccumulate-outgoing-args
|
|
|
|
|
2006-01-14 14:21:29 -07:00
|
|
|
# Disable unit-at-a-time mode on pre-gcc-4.0 compilers, it makes gcc use
|
|
|
|
# a lot more stack due to the lack of sharing of stacklots:
|
|
|
|
CFLAGS += $(shell if [ $(call cc-version) -lt 0400 ] ; then echo $(call cc-option,-fno-unit-at-a-time); fi ;)
|
2005-04-16 16:20:36 -06:00
|
|
|
|
2006-09-26 02:52:30 -06:00
|
|
|
# do binutils support CFI?
|
|
|
|
cflags-y += $(call as-instr,.cfi_startproc\n.cfi_endproc,-DCONFIG_AS_CFI=1,)
|
|
|
|
AFLAGS += $(call as-instr,.cfi_startproc\n.cfi_endproc,-DCONFIG_AS_CFI=1,)
|
2006-09-26 02:52:41 -06:00
|
|
|
|
|
|
|
# is .cfi_signal_frame supported too?
|
2006-10-21 10:37:01 -06:00
|
|
|
cflags-y += $(call as-instr,.cfi_startproc\n.cfi_signal_frame\n.cfi_endproc,-DCONFIG_AS_CFI_SIGNAL_FRAME=1,)
|
|
|
|
AFLAGS += $(call as-instr,.cfi_startproc\n.cfi_signal_frame\n.cfi_endproc,-DCONFIG_AS_CFI_SIGNAL_FRAME=1,)
|
2006-09-26 02:52:30 -06:00
|
|
|
|
2005-04-16 16:20:36 -06:00
|
|
|
CFLAGS += $(cflags-y)
|
|
|
|
|
|
|
|
# Default subarch .c files
|
|
|
|
mcore-y := mach-default
|
|
|
|
|
|
|
|
# Voyager subarch support
|
|
|
|
mflags-$(CONFIG_X86_VOYAGER) := -Iinclude/asm-i386/mach-voyager
|
|
|
|
mcore-$(CONFIG_X86_VOYAGER) := mach-voyager
|
|
|
|
|
|
|
|
# VISWS subarch support
|
|
|
|
mflags-$(CONFIG_X86_VISWS) := -Iinclude/asm-i386/mach-visws
|
|
|
|
mcore-$(CONFIG_X86_VISWS) := mach-visws
|
|
|
|
|
|
|
|
# NUMAQ subarch support
|
|
|
|
mflags-$(CONFIG_X86_NUMAQ) := -Iinclude/asm-i386/mach-numaq
|
|
|
|
mcore-$(CONFIG_X86_NUMAQ) := mach-default
|
|
|
|
|
|
|
|
# BIGSMP subarch support
|
|
|
|
mflags-$(CONFIG_X86_BIGSMP) := -Iinclude/asm-i386/mach-bigsmp
|
|
|
|
mcore-$(CONFIG_X86_BIGSMP) := mach-default
|
|
|
|
|
|
|
|
#Summit subarch support
|
|
|
|
mflags-$(CONFIG_X86_SUMMIT) := -Iinclude/asm-i386/mach-summit
|
|
|
|
mcore-$(CONFIG_X86_SUMMIT) := mach-default
|
|
|
|
|
|
|
|
# generic subarchitecture
|
|
|
|
mflags-$(CONFIG_X86_GENERICARCH) := -Iinclude/asm-i386/mach-generic
|
|
|
|
mcore-$(CONFIG_X86_GENERICARCH) := mach-default
|
|
|
|
core-$(CONFIG_X86_GENERICARCH) += arch/i386/mach-generic/
|
|
|
|
|
|
|
|
# ES7000 subarch support
|
|
|
|
mflags-$(CONFIG_X86_ES7000) := -Iinclude/asm-i386/mach-es7000
|
|
|
|
mcore-$(CONFIG_X86_ES7000) := mach-default
|
|
|
|
core-$(CONFIG_X86_ES7000) := arch/i386/mach-es7000/
|
|
|
|
|
|
|
|
# default subarch .h files
|
|
|
|
mflags-y += -Iinclude/asm-i386/mach-default
|
|
|
|
|
|
|
|
head-y := arch/i386/kernel/head.o arch/i386/kernel/init_task.o
|
|
|
|
|
|
|
|
libs-y += arch/i386/lib/
|
|
|
|
core-y += arch/i386/kernel/ \
|
|
|
|
arch/i386/mm/ \
|
|
|
|
arch/i386/$(mcore-y)/ \
|
|
|
|
arch/i386/crypto/
|
|
|
|
drivers-$(CONFIG_MATH_EMULATION) += arch/i386/math-emu/
|
|
|
|
drivers-$(CONFIG_PCI) += arch/i386/pci/
|
|
|
|
# must be linked after kernel/
|
|
|
|
drivers-$(CONFIG_OPROFILE) += arch/i386/oprofile/
|
|
|
|
drivers-$(CONFIG_PM) += arch/i386/power/
|
2007-07-17 05:05:28 -06:00
|
|
|
drivers-$(CONFIG_FB) += arch/i386/video/
|
2005-04-16 16:20:36 -06:00
|
|
|
|
|
|
|
CFLAGS += $(mflags-y)
|
|
|
|
AFLAGS += $(mflags-y)
|
|
|
|
|
|
|
|
boot := arch/i386/boot
|
|
|
|
|
2006-03-05 15:14:10 -07:00
|
|
|
PHONY += zImage bzImage compressed zlilo bzlilo \
|
2006-03-26 02:36:59 -07:00
|
|
|
zdisk bzdisk fdimage fdimage144 fdimage288 isoimage install
|
2005-04-16 16:20:36 -06:00
|
|
|
|
|
|
|
all: bzImage
|
|
|
|
|
|
|
|
# KBUILD_IMAGE specify target image being built
|
|
|
|
KBUILD_IMAGE := $(boot)/bzImage
|
|
|
|
zImage zlilo zdisk: KBUILD_IMAGE := arch/i386/boot/zImage
|
|
|
|
|
|
|
|
zImage bzImage: vmlinux
|
|
|
|
$(Q)$(MAKE) $(build)=$(boot) $(KBUILD_IMAGE)
|
|
|
|
|
|
|
|
compressed: zImage
|
|
|
|
|
|
|
|
zlilo bzlilo: vmlinux
|
|
|
|
$(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(KBUILD_IMAGE) zlilo
|
|
|
|
|
|
|
|
zdisk bzdisk: vmlinux
|
|
|
|
$(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(KBUILD_IMAGE) zdisk
|
|
|
|
|
2006-03-26 02:36:59 -07:00
|
|
|
fdimage fdimage144 fdimage288 isoimage: vmlinux
|
2005-04-16 16:20:36 -06:00
|
|
|
$(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(KBUILD_IMAGE) $@
|
|
|
|
|
2006-01-07 18:38:39 -07:00
|
|
|
install:
|
2005-04-30 17:51:42 -06:00
|
|
|
$(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(KBUILD_IMAGE) install
|
2005-04-16 16:20:36 -06:00
|
|
|
|
|
|
|
archclean:
|
|
|
|
$(Q)$(MAKE) $(clean)=arch/i386/boot
|
|
|
|
|
|
|
|
define archhelp
|
|
|
|
echo '* bzImage - Compressed kernel image (arch/$(ARCH)/boot/bzImage)'
|
|
|
|
echo ' install - Install kernel using'
|
|
|
|
echo ' (your) ~/bin/installkernel or'
|
|
|
|
echo ' (distribution) /sbin/installkernel or'
|
|
|
|
echo ' install to $$(INSTALL_PATH) and run lilo'
|
|
|
|
echo ' bzdisk - Create a boot floppy in /dev/fd0'
|
|
|
|
echo ' fdimage - Create a boot floppy image'
|
2006-03-26 02:36:59 -07:00
|
|
|
echo ' isoimage - Create a boot CD-ROM image'
|
2005-04-16 16:20:36 -06:00
|
|
|
endef
|
|
|
|
|
2006-03-26 02:36:59 -07:00
|
|
|
CLEAN_FILES += arch/$(ARCH)/boot/fdimage \
|
|
|
|
arch/$(ARCH)/boot/image.iso \
|
|
|
|
arch/$(ARCH)/boot/mtools.conf
|