diff options
author | Al Viro <viro@ftp.linux.org.uk> | 2011-08-18 15:06:29 -0400 |
---|---|---|
committer | Richard Weinberger <richard@nod.at> | 2011-11-02 09:15:04 -0400 |
commit | 7bbe7204e93734fe79d8aac3e08a7cb4624b5004 (patch) | |
tree | aef04472a8f1fa0e6cc43916b8f9165bceb753a0 /arch/um/Makefile-x86 | |
parent | a6e77d6c74fa82675b087a79c8a145cae7c58f36 (diff) |
um: merge Makefile-{i386,x86_64}
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Richard Weinberger <richard@nod.at>
Diffstat (limited to 'arch/um/Makefile-x86')
-rw-r--r-- | arch/um/Makefile-x86 | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/arch/um/Makefile-x86 b/arch/um/Makefile-x86 new file mode 100644 index 000000000000..68fbd1b7c9f2 --- /dev/null +++ b/arch/um/Makefile-x86 | |||
@@ -0,0 +1,61 @@ | |||
1 | core-y += arch/um/sys-x86/ arch/x86/crypto/ | ||
2 | |||
3 | ifeq ($(CONFIG_X86_32),y) | ||
4 | START := 0x8048000 | ||
5 | |||
6 | LDFLAGS += -m elf_i386 | ||
7 | ELF_ARCH := i386 | ||
8 | ELF_FORMAT := elf32-i386 | ||
9 | CHECKFLAGS += -D__i386__ | ||
10 | |||
11 | ifeq ("$(origin SUBARCH)", "command line") | ||
12 | ifneq ("$(shell uname -m | sed -e s/i.86/i386/)", "$(SUBARCH)") | ||
13 | KBUILD_CFLAGS += $(call cc-option,-m32) | ||
14 | KBUILD_AFLAGS += $(call cc-option,-m32) | ||
15 | LINK-y += $(call cc-option,-m32) | ||
16 | |||
17 | export LDFLAGS | ||
18 | endif | ||
19 | endif | ||
20 | |||
21 | # First of all, tune CFLAGS for the specific CPU. This actually sets cflags-y. | ||
22 | include $(srctree)/arch/x86/Makefile_32.cpu | ||
23 | |||
24 | # prevent gcc from keeping the stack 16 byte aligned. Taken from i386. | ||
25 | cflags-y += $(call cc-option,-mpreferred-stack-boundary=2) | ||
26 | |||
27 | # Prevent sprintf in nfsd from being converted to strcpy and resulting in | ||
28 | # an unresolved reference. | ||
29 | cflags-y += -ffreestanding | ||
30 | |||
31 | # Disable unit-at-a-time mode on pre-gcc-4.0 compilers, it makes gcc use | ||
32 | # a lot more stack due to the lack of sharing of stacklots. Also, gcc | ||
33 | # 4.3.0 needs -funit-at-a-time for extern inline functions. | ||
34 | KBUILD_CFLAGS += $(shell if [ $(call cc-version) -lt 0400 ] ; then \ | ||
35 | echo $(call cc-option,-fno-unit-at-a-time); \ | ||
36 | else echo $(call cc-option,-funit-at-a-time); fi ;) | ||
37 | |||
38 | KBUILD_CFLAGS += $(cflags-y) | ||
39 | |||
40 | else | ||
41 | |||
42 | START := 0x60000000 | ||
43 | |||
44 | KBUILD_CFLAGS += -fno-builtin -m64 | ||
45 | |||
46 | CHECKFLAGS += -m64 -D__x86_64__ | ||
47 | KBUILD_AFLAGS += -m64 | ||
48 | LDFLAGS += -m elf_x86_64 | ||
49 | KBUILD_CPPFLAGS += -m64 | ||
50 | |||
51 | ELF_ARCH := i386:x86-64 | ||
52 | ELF_FORMAT := elf64-x86-64 | ||
53 | |||
54 | # Not on all 64-bit distros /lib is a symlink to /lib64. PLD is an example. | ||
55 | |||
56 | LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib64 | ||
57 | LINK-y += -m64 | ||
58 | |||
59 | # Do unit-at-a-time unconditionally on x86_64, following the host | ||
60 | KBUILD_CFLAGS += $(call cc-option,-funit-at-a-time) | ||
61 | endif | ||