1# Makefile for the Hexagon arch 2 3KBUILD_DEFCONFIG = comet_defconfig 4 5# Do not use GP-relative jumps 6KBUILD_CFLAGS += -G0 7LDFLAGS_vmlinux += -G0 8 9# Do not use single-byte enums; these will overflow. 10KBUILD_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 16CFLAGS_MODULE += -mlong-calls 17 18cflags-y += $(call cc-option,-mv${CONFIG_HEXAGON_ARCH_VERSION}) 19aflags-y += $(call cc-option,-mv${CONFIG_HEXAGON_ARCH_VERSION}) 20ldflags-y += $(call cc-option,-mv${CONFIG_HEXAGON_ARCH_VERSION}) 21 22KBUILD_CFLAGS += $(cflags-y) 23KBUILD_AFLAGS += $(aflags-y) 24 25# no KBUILD_LDFLAGS? 26LDFLAGS += $(ldflags-y) 27 28# Thread-info register will be r19. This value is not configureable; 29# it is hard-coded in several files. 30TIR_NAME := r19 31KBUILD_CFLAGS += -ffixed-$(TIR_NAME) -DTHREADINFO_REG=$(TIR_NAME) -D__linux__ 32KBUILD_AFLAGS += -DTHREADINFO_REG=$(TIR_NAME) 33 34LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name) 35libs-y += $(LIBGCC) 36 37head-y := arch/hexagon/kernel/head.o 38 39core-y += arch/hexagon/kernel/ \ 40 arch/hexagon/mm/ \ 41 arch/hexagon/lib/ 42