diff options
author | Sam Ravnborg <sam@ravnborg.org> | 2007-10-25 13:42:04 -0400 |
---|---|---|
committer | Sam Ravnborg <sam@ravnborg.org> | 2007-10-25 16:27:34 -0400 |
commit | 74b469f2e6b1589118b6ac05c7256add01e572d2 (patch) | |
tree | d963009bef4f36ae610dd56ca69961e0de9ee29c /arch/x86/Makefile_64 | |
parent | c9927c2bf4f45bb85e8b502ab3fb79ad6483c244 (diff) |
x86: move i386 and x86_64 Makefiles to arch/x86
Moving the ARCH specific Makefiles for i386 and x86_64
required a litle bit tweaking in the top-lvel Makefile.
SRCARCH is now set in the top-level Makefile
because we need this info to include the correct
arch Makefile.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Diffstat (limited to 'arch/x86/Makefile_64')
-rw-r--r-- | arch/x86/Makefile_64 | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/arch/x86/Makefile_64 b/arch/x86/Makefile_64 new file mode 100644 index 000000000000..57e714a47af7 --- /dev/null +++ b/arch/x86/Makefile_64 | |||
@@ -0,0 +1,144 @@ | |||
1 | # | ||
2 | # x86_64 Makefile | ||
3 | # | ||
4 | # This file is included by the global makefile so that you can add your own | ||
5 | # architecture-specific flags and dependencies. Remember to do have actions | ||
6 | # for "archclean" and "archdep" for cleaning up and making dependencies for | ||
7 | # this architecture | ||
8 | # | ||
9 | # This file is subject to the terms and conditions of the GNU General Public | ||
10 | # License. See the file "COPYING" in the main directory of this archive | ||
11 | # for more details. | ||
12 | # | ||
13 | # Copyright (C) 1994 by Linus Torvalds | ||
14 | # | ||
15 | # 19990713 Artur Skawina <skawina@geocities.com> | ||
16 | # Added '-march' and '-mpreferred-stack-boundary' support | ||
17 | # 20000913 Pavel Machek <pavel@suse.cz> | ||
18 | # Converted for x86_64 architecture | ||
19 | # 20010105 Andi Kleen, add IA32 compiler. | ||
20 | # ....and later removed it again.... | ||
21 | # | ||
22 | # $Id: Makefile,v 1.31 2002/03/22 15:56:07 ak Exp $ | ||
23 | |||
24 | # BITS is used as extension for files which are available in a 32 bit | ||
25 | # and a 64 bit version to simplify shared Makefiles. | ||
26 | # e.g.: obj-y += foo_$(BITS).o | ||
27 | BITS := 64 | ||
28 | export BITS | ||
29 | |||
30 | LDFLAGS := -m elf_x86_64 | ||
31 | OBJCOPYFLAGS := -O binary -R .note -R .comment -S | ||
32 | LDFLAGS_vmlinux := | ||
33 | CHECKFLAGS += -D__x86_64__ -m64 | ||
34 | |||
35 | cflags-y := | ||
36 | cflags-kernel-y := | ||
37 | cflags-$(CONFIG_MK8) += $(call cc-option,-march=k8) | ||
38 | cflags-$(CONFIG_MPSC) += $(call cc-option,-march=nocona) | ||
39 | # gcc doesn't support -march=core2 yet as of gcc 4.3, but I hope it | ||
40 | # will eventually. Use -mtune=generic as fallback | ||
41 | cflags-$(CONFIG_MCORE2) += \ | ||
42 | $(call cc-option,-march=core2,$(call cc-option,-mtune=generic)) | ||
43 | cflags-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=generic) | ||
44 | |||
45 | cflags-y += -m64 | ||
46 | cflags-y += -mno-red-zone | ||
47 | cflags-y += -mcmodel=kernel | ||
48 | cflags-y += -pipe | ||
49 | cflags-y += -Wno-sign-compare | ||
50 | cflags-y += -fno-asynchronous-unwind-tables | ||
51 | ifneq ($(CONFIG_DEBUG_INFO),y) | ||
52 | # -fweb shrinks the kernel a bit, but the difference is very small | ||
53 | # it also messes up debugging, so don't use it for now. | ||
54 | #cflags-y += $(call cc-option,-fweb) | ||
55 | endif | ||
56 | # -funit-at-a-time shrinks the kernel .text considerably | ||
57 | # unfortunately it makes reading oopses harder. | ||
58 | cflags-y += $(call cc-option,-funit-at-a-time) | ||
59 | # prevent gcc from generating any FP code by mistake | ||
60 | cflags-y += $(call cc-option,-mno-sse -mno-mmx -mno-sse2 -mno-3dnow,) | ||
61 | # this works around some issues with generating unwind tables in older gccs | ||
62 | # newer gccs do it by default | ||
63 | cflags-y += -maccumulate-outgoing-args | ||
64 | |||
65 | # do binutils support CFI? | ||
66 | cflags-y += $(call as-instr,.cfi_startproc\n.cfi_rel_offset rsp${comma}0\n.cfi_endproc,-DCONFIG_AS_CFI=1,) | ||
67 | KBUILD_AFLAGS += $(call as-instr,.cfi_startproc\n.cfi_rel_offset rsp${comma}0\n.cfi_endproc,-DCONFIG_AS_CFI=1,) | ||
68 | |||
69 | # is .cfi_signal_frame supported too? | ||
70 | cflags-y += $(call as-instr,.cfi_startproc\n.cfi_signal_frame\n.cfi_endproc,-DCONFIG_AS_CFI_SIGNAL_FRAME=1,) | ||
71 | KBUILD_AFLAGS += $(call as-instr,.cfi_startproc\n.cfi_signal_frame\n.cfi_endproc,-DCONFIG_AS_CFI_SIGNAL_FRAME=1,) | ||
72 | |||
73 | cflags-$(CONFIG_CC_STACKPROTECTOR) += $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-x86_64-has-stack-protector.sh "$(CC)" -fstack-protector ) | ||
74 | cflags-$(CONFIG_CC_STACKPROTECTOR_ALL) += $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-x86_64-has-stack-protector.sh "$(CC)" -fstack-protector-all ) | ||
75 | |||
76 | KBUILD_CFLAGS += $(cflags-y) | ||
77 | CFLAGS_KERNEL += $(cflags-kernel-y) | ||
78 | KBUILD_AFLAGS += -m64 | ||
79 | |||
80 | head-y := arch/x86/kernel/head_64.o arch/x86/kernel/head64.o arch/x86/kernel/init_task.o | ||
81 | |||
82 | libs-y += arch/x86/lib/ | ||
83 | core-y += arch/x86/kernel/ \ | ||
84 | arch/x86/mm/ \ | ||
85 | arch/x86/crypto/ \ | ||
86 | arch/x86/vdso/ | ||
87 | core-$(CONFIG_IA32_EMULATION) += arch/x86/ia32/ | ||
88 | drivers-$(CONFIG_PCI) += arch/x86/pci/ | ||
89 | drivers-$(CONFIG_OPROFILE) += arch/x86/oprofile/ | ||
90 | |||
91 | boot := arch/x86/boot | ||
92 | |||
93 | PHONY += bzImage bzlilo install archmrproper \ | ||
94 | fdimage fdimage144 fdimage288 isoimage archclean | ||
95 | |||
96 | #Default target when executing "make" | ||
97 | all: bzImage | ||
98 | |||
99 | BOOTIMAGE := arch/x86/boot/bzImage | ||
100 | KBUILD_IMAGE := $(BOOTIMAGE) | ||
101 | |||
102 | bzImage: vmlinux | ||
103 | $(Q)$(MAKE) $(build)=$(boot) $(BOOTIMAGE) | ||
104 | $(Q)mkdir -p $(objtree)/arch/x86_64/boot | ||
105 | $(Q)ln -fsn ../../x86/boot/bzImage $(objtree)/arch/x86_64/boot/bzImage | ||
106 | |||
107 | bzlilo: vmlinux | ||
108 | $(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(BOOTIMAGE) zlilo | ||
109 | |||
110 | bzdisk: vmlinux | ||
111 | $(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(BOOTIMAGE) zdisk | ||
112 | |||
113 | fdimage fdimage144 fdimage288 isoimage: vmlinux | ||
114 | $(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(BOOTIMAGE) $@ | ||
115 | |||
116 | install: vdso_install | ||
117 | $(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(BOOTIMAGE) $@ | ||
118 | |||
119 | vdso_install: | ||
120 | ifeq ($(CONFIG_IA32_EMULATION),y) | ||
121 | $(Q)$(MAKE) $(build)=arch/x86/ia32 $@ | ||
122 | endif | ||
123 | $(Q)$(MAKE) $(build)=arch/x86/vdso $@ | ||
124 | |||
125 | archclean: | ||
126 | $(Q)rm -rf $(objtree)/arch/x86_64/boot | ||
127 | $(Q)$(MAKE) $(clean)=$(boot) | ||
128 | |||
129 | define archhelp | ||
130 | echo '* bzImage - Compressed kernel image (arch/$(ARCH)/boot/bzImage)' | ||
131 | echo ' install - Install kernel using' | ||
132 | echo ' (your) ~/bin/installkernel or' | ||
133 | echo ' (distribution) /sbin/installkernel or' | ||
134 | echo ' install to $$(INSTALL_PATH) and run lilo' | ||
135 | echo ' bzdisk - Create a boot floppy in /dev/fd0' | ||
136 | echo ' fdimage - Create a boot floppy image' | ||
137 | echo ' isoimage - Create a boot CD-ROM image' | ||
138 | endef | ||
139 | |||
140 | CLEAN_FILES += arch/$(ARCH)/boot/fdimage \ | ||
141 | arch/$(ARCH)/boot/image.iso \ | ||
142 | arch/$(ARCH)/boot/mtools.conf | ||
143 | |||
144 | |||