[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC 2/7] WIP: Compilation with ARM DS-6 compiler
From: Artem Mygaiev <joculator@xxxxxxxxx> Still have linker issues --- Config.mk | 8 +++++++- config/StdGNU.mk | 11 ++++++++++- config/arm32.mk | 10 ++++++---- config/arm64.mk | 6 +++++- xen/Rules.mk | 2 ++ xen/arch/arm/Rules.mk | 8 ++++++++ 6 files changed, 38 insertions(+), 7 deletions(-) diff --git a/Config.mk b/Config.mk index d8f90d7..01487a7 100644 --- a/Config.mk +++ b/Config.mk @@ -221,7 +221,9 @@ CFLAGS += -Wall -Wstrict-prototypes $(call cc-option-add,HOSTCFLAGS,HOSTCC,-Wdeclaration-after-statement) $(call cc-option-add,CFLAGS,CC,-Wdeclaration-after-statement) +ifneq ($(armds),y) $(call cc-option-add,CFLAGS,CC,-Wno-unused-but-set-variable) +endif $(call cc-option-add,CFLAGS,CC,-Wno-unused-local-typedefs) LDFLAGS += $(foreach i, $(EXTRA_LIB), -L$(i)) @@ -234,9 +236,13 @@ endif APPEND_LDFLAGS += $(foreach i, $(APPEND_LIB), -L$(i)) APPEND_CFLAGS += $(foreach i, $(APPEND_INCLUDES), -I$(i)) -EMBEDDED_EXTRA_CFLAGS := -nopie -fno-stack-protector -fno-stack-protector-all +EMBEDDED_EXTRA_CFLAGS := -fno-stack-protector -fno-stack-protector-all EMBEDDED_EXTRA_CFLAGS += -fno-exceptions +ifneq ($(armds),y) +EMBEDDED_EXTRA_CFLAGS += -nopie +endif + XEN_EXTFILES_URL ?= http://xenbits.xen.org/xen-extfiles # All the files at that location were downloaded from elsewhere on # the internet. The original download URL is preserved as a comment diff --git a/config/StdGNU.mk b/config/StdGNU.mk index 48c50b5..3bf3462 100644 --- a/config/StdGNU.mk +++ b/config/StdGNU.mk @@ -1,6 +1,15 @@ AS = $(CROSS_COMPILE)as +AR = $(CROSS_COMPILE)ar LD = $(CROSS_COMPILE)ld ifeq ($(clang),y) +ifeq ($(armds),y) +CC = armclang +CXX = armclang +LD_LTO = armlink --verbose --no_scanlib +LD = armlink --verbose --no_scanlib +AS = armasm +AR = armar +else ifneq ($(CROSS_COMPILE),) CC = clang -target $(CROSS_COMPILE:-=) CXX = clang++ -target $(CROSS_COMPILE:-=) @@ -9,13 +18,13 @@ CC = clang CXX = clang++ endif LD_LTO = $(CROSS_COMPILE)llvm-ld +endif else CC = $(CROSS_COMPILE)gcc CXX = $(CROSS_COMPILE)g++ LD_LTO = $(CROSS_COMPILE)ld endif CPP = $(CC) -E -AR = $(CROSS_COMPILE)ar RANLIB = $(CROSS_COMPILE)ranlib NM = $(CROSS_COMPILE)nm STRIP = $(CROSS_COMPILE)strip diff --git a/config/arm32.mk b/config/arm32.mk index f95228e..5afed07 100644 --- a/config/arm32.mk +++ b/config/arm32.mk @@ -4,12 +4,14 @@ CONFIG_ARM_$(XEN_OS) := y CONFIG_XEN_INSTALL_SUFFIX := -# -march= -mcpu= - # Explicitly specifiy 32-bit ARM ISA since toolchain default can be -mthumb: -CFLAGS += -marm - +ifeq ($(armds),y) +# VE needed +CFLAGS += --target=arm-arm-none-eabi -march=armv7-a +else +CFLAGS += -marm # -march= -mcpu= # Use only if calling $(LD) directly. LDFLAGS_DIRECT += -EL +endif IOEMU_CPU_ARCH ?= arm diff --git a/config/arm64.mk b/config/arm64.mk index aa45772..46b203d 100644 --- a/config/arm64.mk +++ b/config/arm64.mk @@ -4,10 +4,14 @@ CONFIG_ARM_$(XEN_OS) := y CONFIG_XEN_INSTALL_SUFFIX := +ifeq ($(armds),y) +# VE needed +CFLAGS += --target=aarch64-arm-none-eabi -march=armv8.1-a+nofp+nosimd +else CFLAGS += #-marm -march= -mcpu= etc - # Use only if calling $(LD) directly. LDFLAGS_DIRECT += -EL +endif IOEMU_CPU_ARCH ?= aarch64 diff --git a/xen/Rules.mk b/xen/Rules.mk index 3090ea7..41a1c26 100644 --- a/xen/Rules.mk +++ b/xen/Rules.mk @@ -79,9 +79,11 @@ AFLAGS-y += -D__ASSEMBLY__ # Older clang's built-in assembler doesn't understand .skip with labels: # https://bugs.llvm.org/show_bug.cgi?id=27369 ifeq ($(clang),y) +ifneq ($(armds),y) $(call as-option-add,CFLAGS,CC,".L0:\n.L1:\n.skip (.L1 - .L0)",,\ -no-integrated-as) endif +endif ALL_OBJS := $(ALL_OBJS-y) diff --git a/xen/arch/arm/Rules.mk b/xen/arch/arm/Rules.mk index 3d9a0ed..6f2b239 100644 --- a/xen/arch/arm/Rules.mk +++ b/xen/arch/arm/Rules.mk @@ -11,12 +11,20 @@ CFLAGS += -I$(BASEDIR)/include $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS)) $(call cc-option-add,CFLAGS,CC,-Wnested-externs) +ifneq ($(armds),y) # Prevent floating-point variables from creeping into Xen. CFLAGS-$(CONFIG_ARM_32) += -msoft-float CFLAGS-$(CONFIG_ARM_32) += -mcpu=cortex-a15 CFLAGS-$(CONFIG_ARM_64) += -mcpu=generic CFLAGS-$(CONFIG_ARM_64) += -mgeneral-regs-only # No fp registers etc +else +CFLAGS-$(CONFIG_ARM_32) += -msoft-float +CFLAGS-$(CONFIG_ARM_32) += -mcpu=cortex-a15 + +CFLAGS-$(CONFIG_ARM_64) += -mcpu=generic +CFLAGS-$(CONFIG_ARM_64) += -mgeneral-regs-only # No fp registers etc +endif ifneq ($(call cc-option,$(CC),-fvisibility=hidden,n),n) CFLAGS += -DGCC_HAS_VISIBILITY_ATTRIBUTE -- 2.7.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |