Commit | Line | Data |
---|---|---|
e95bf452 RK |
1 | # Makefile for the Hexagon arch |
2 | ||
3 | KBUILD_DEFCONFIG = comet_defconfig | |
4 | ||
5 | # Do not use GP-relative jumps | |
6 | KBUILD_CFLAGS += -G0 | |
7 | LDFLAGS_vmlinux += -G0 | |
8 | ||
9 | # Do not use single-byte enums; these will overflow. | |
10 | KBUILD_CFLAGS += -fno-short-enums | |
11 | ||
12 | # Modules must use either long-calls, or use pic/plt. | |
13 | # Use long-calls for now, it's easier. And faster. | |
14 | # CFLAGS_MODULE += -fPIC | |
15 | # LDFLAGS_MODULE += -shared | |
16 | CFLAGS_MODULE += -mlong-calls | |
17 | ||
18 | cflags-$(CONFIG_HEXAGON_ARCH_V1) += $(call cc-option,-mv1) | |
19 | cflags-$(CONFIG_HEXAGON_ARCH_V2) += $(call cc-option,-mv2) | |
20 | cflags-$(CONFIG_HEXAGON_ARCH_V3) += $(call cc-option,-mv3) | |
21 | cflags-$(CONFIG_HEXAGON_ARCH_V4) += $(call cc-option,-mv4) | |
22 | ||
23 | aflags-$(CONFIG_HEXAGON_ARCH_V1) += $(call cc-option,-mv1) | |
24 | aflags-$(CONFIG_HEXAGON_ARCH_V2) += $(call cc-option,-mv2) | |
25 | aflags-$(CONFIG_HEXAGON_ARCH_V3) += $(call cc-option,-mv3) | |
26 | aflags-$(CONFIG_HEXAGON_ARCH_V4) += $(call cc-option,-mv4) | |
27 | ||
28 | ldflags-$(CONFIG_HEXAGON_ARCH_V1) += $(call cc-option,-mv1) | |
29 | ldflags-$(CONFIG_HEXAGON_ARCH_V2) += $(call cc-option,-mv2) | |
30 | ldflags-$(CONFIG_HEXAGON_ARCH_V3) += $(call cc-option,-mv3) | |
31 | ldflags-$(CONFIG_HEXAGON_ARCH_V4) += $(call cc-option,-mv4) | |
32 | ||
33 | KBUILD_CFLAGS += $(cflags-y) | |
34 | KBUILD_AFLAGS += $(aflags-y) | |
35 | ||
36 | # no KBUILD_LDFLAGS? | |
37 | LDFLAGS += $(ldflags-y) | |
38 | ||
39 | # Thread-info register will be r19. This value is not configureable; | |
40 | # it is hard-coded in several files. | |
41 | TIR_NAME := r19 | |
42 | KBUILD_CFLAGS += -ffixed-$(TIR_NAME) -DTHREADINFO_REG=$(TIR_NAME) -D__linux__ | |
43 | KBUILD_AFLAGS += -DTHREADINFO_REG=$(TIR_NAME) | |
44 | ||
45 | LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name) | |
46 | libs-y += $(LIBGCC) | |
47 | ||
e336e05b | 48 | head-y := arch/hexagon/kernel/head.o |
e95bf452 RK |
49 | |
50 | core-y += arch/hexagon/kernel/ \ | |
51 | arch/hexagon/mm/ \ | |
52 | arch/hexagon/lib/ |