Richard Kuo | e95bf45 | 2011-10-31 18:55:58 -0500 | [diff] [blame] | 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 | |
| 48 | head-y := arch/hexagon/kernel/head.o \ |
| 49 | arch/hexagon/kernel/init_task.o |
| 50 | |
| 51 | core-y += arch/hexagon/kernel/ \ |
| 52 | arch/hexagon/mm/ \ |
| 53 | arch/hexagon/lib/ |
| 54 | |
| 55 | # arch/hexagon/platform/common/ |
| 56 | # |
| 57 | #core-$(CONFIG_HEXAGON_COMET) += arch/hexagon/platform/comet/ |
| 58 | #machine-$(CONFIG_HEXAGON_COMET) := comet |