[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Minios-devel] [UNIKRAFT PATCH 8/9] build: Add compiler and flags for arm64



In order to support arm64, we have to add correct compiler
for arm64, and add proper optimization flags for select
processor.

Signed-off-by: Wei Chen <Wei.Chen@xxxxxxx>
---
 arch/arm/Compiler.uk |  4 ++++
 arch/arm/Makefile.uk | 38 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 42 insertions(+)

diff --git a/arch/arm/Compiler.uk b/arch/arm/Compiler.uk
index ee34916..f625d7c 100644
--- a/arch/arm/Compiler.uk
+++ b/arch/arm/Compiler.uk
@@ -1,6 +1,10 @@
 # set cross compile
 ifeq ($(CROSS_COMPILE),)
 ifneq ($(UK_ARCH),$(HOSTARCH))
+ifeq ($(UK_ARCH),arm)
        CROSS_COMPILE := arm-linux-gnueabihf-
+else ifeq ($(UK_ARCH),arm64)
+       CROSS_COMPILE := aarch64-linux-gnu-
+endif
 endif
 endif
diff --git a/arch/arm/Makefile.uk b/arch/arm/Makefile.uk
index e7f7b49..03e809f 100644
--- a/arch/arm/Makefile.uk
+++ b/arch/arm/Makefile.uk
@@ -33,6 +33,44 @@ LIBARMMATH_SRCS-y += $(UK_BASE)/arch/arm/arm32/ldivmod.S
 LIBARMMATH_SRCS-y += $(UK_BASE)/arch/arm/arm32/ldivmod_helper.c
 LIBARMMATH_SRCS-y += $(UK_BASE)/arch/arm/arm32/qdivrem.c
 
+else ifeq ($(UK_ARCH),arm64)
+
+ASFLAGS  += -D__ARM_64__
+CFLAGS   += -D__ARM_64__ -fms-extensions
+CXXFLAGS += -D__ARM_64__ -fms-extensions
+
+ifeq ($(MARCH_ARM64_NATIVE), y)
+$(eval $(call set_cc_flags,armv8-a,native,6,0))
+endif
+
+ifeq ($(MARCH_ARM64_GENERIC), y)
+$(eval $(call set_cc_flags,armv8-a,generic,4,8))
+endif
+
+ifeq ($(MARCH_ARM64_CORTEXA53),y)
+$(eval $(call set_cc_flags,armv8-a,cortex-a53,4,9))
+endif
+
+ifeq ($(MARCH_ARM64_CORTEXA57),y)
+$(eval $(call set_cc_flags,armv8-a,cortex-a57,4,9))
+endif
+
+ifeq ($(MARCH_ARM64_CORTEXA72),y)
+$(eval $(call set_cc_flags,armv8-a,cortex-a72,5,0))
+endif
+
+ifeq ($(MARCH_ARM64_CORTEXA73),y)
+$(eval $(call set_cc_flags,armv8-a,cortex-a73,7,0))
+endif
+
+ifeq ($(MARCH_ARM64_CORTEXA55),y)
+$(eval $(call set_cc_flags,armv8.2-a,cortex-a55,8,0))
+endif
+
+ifeq ($(MARCH_ARM64_CORTEXA75),y)
+$(eval $(call set_cc_flags,armv8.2-a,cortex-a75,8,0))
+endif
+
 else
 $(error Target architecture ($(UK_ARCH)) is currently not supported.)
 endif
-- 
2.7.4


_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.