[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v6 25/27] arm: makefiles
On Fri, 20 Jan 2012, Stefano Stabellini wrote: > Makefile and config options for the ARM architecture. > > > Changes in v2: > > - move patch at the end of the series. The other generic patches of this series have been applied, but this one hasn't. Could you please apply this patch or tell me whether I have to change something? > > Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> > Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx> > Signed-off-by: Tim Deegan <Tim.Deegan@xxxxxxxxxx> > --- > config/arm.mk | 18 +++++++++++ > xen/arch/arm/Makefile | 76 > +++++++++++++++++++++++++++++++++++++++++++++++++ > xen/arch/arm/Rules.mk | 29 ++++++++++++++++++ > 3 files changed, 123 insertions(+), 0 deletions(-) > create mode 100644 config/arm.mk > create mode 100644 xen/arch/arm/Makefile > create mode 100644 xen/arch/arm/Rules.mk > > diff --git a/config/arm.mk b/config/arm.mk > new file mode 100644 > index 0000000..f64f0c1 > --- /dev/null > +++ b/config/arm.mk > @@ -0,0 +1,18 @@ > +CONFIG_ARM := y > +CONFIG_ARM_32 := y > +CONFIG_ARM_$(XEN_OS) := y > + > +# -march= -mcpu= > + > +# Explicitly specifiy 32-bit ARM ISA since toolchain default can be -mthumb: > +CFLAGS += -marm > + > +HAS_PL011 := y > + > +# Use only if calling $(LD) directly. > +#LDFLAGS_DIRECT_OpenBSD = _obsd > +#LDFLAGS_DIRECT_FreeBSD = _fbsd > +LDFLAGS_DIRECT_Linux = _linux > +LDFLAGS_DIRECT += -marmelf$(LDFLAGS_DIRECT_$(XEN_OS))_eabi > + > +CONFIG_LOAD_ADDRESS ?= 0x80000000 > diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile > new file mode 100644 > index 0000000..5a07ae7 > --- /dev/null > +++ b/xen/arch/arm/Makefile > @@ -0,0 +1,76 @@ > +subdir-y += lib > + > +obj-y += dummy.o > +obj-y += entry.o > +obj-y += domain.o > +obj-y += domain_build.o > +obj-y += gic.o > +obj-y += io.o > +obj-y += irq.o > +obj-y += mm.o > +obj-y += p2m.o > +obj-y += guestcopy.o > +obj-y += setup.o > +obj-y += time.o > +obj-y += smpboot.o > +obj-y += smp.o > +obj-y += shutdown.o > +obj-y += traps.o > +obj-y += vgic.o > +obj-y += vtimer.o > + > +#obj-bin-y += ....o > + > +ALL_OBJS := head.o $(ALL_OBJS) > + > +$(TARGET): $(TARGET)-syms > + # XXX: VE model loads by VMA so instead of > + # making a proper ELF we link with LMA == VMA and adjust crudely > + $(OBJCOPY) --change-addresses +0x7fe00000 $< $@ > + # XXX strip it > + > +#$(TARGET): $(TARGET)-syms $(efi-y) boot/mkelf32 > +# ./boot/mkelf32 $(TARGET)-syms $(TARGET) 0x100000 \ > +# `$(NM) -nr $(TARGET)-syms | head -n 1 | sed -e 's/^\([^ ]*\).*/0x\1/'` > + > +ifeq ($(lto),y) > +# Gather all LTO objects together > +prelink_lto.o: $(ALL_OBJS) > + $(LD_LTO) -r -o $@ $^ > + > +# Link it with all the binary objects > +prelink.o: $(patsubst %/built_in.o,%/built_in_bin.o,$(ALL_OBJS)) > prelink_lto.o > + $(LD) $(LDFLAGS) -r -o $@ $^ > +else > +prelink.o: $(ALL_OBJS) > + $(LD) $(LDFLAGS) -r -o $@ $^ > +endif > + > +$(BASEDIR)/common/symbols-dummy.o: > + $(MAKE) -f $(BASEDIR)/Rules.mk -C $(BASEDIR)/common symbols-dummy.o > + > +$(TARGET)-syms: prelink.o xen.lds $(BASEDIR)/common/symbols-dummy.o > + $(LD) $(LDFLAGS) -T xen.lds -N prelink.o \ > + $(BASEDIR)/common/symbols-dummy.o -o $(@D)/.$(@F).0 > + $(NM) -n $(@D)/.$(@F).0 | $(BASEDIR)/tools/symbols >$(@D)/.$(@F).0.S > + $(MAKE) -f $(BASEDIR)/Rules.mk $(@D)/.$(@F).0.o > + $(LD) $(LDFLAGS) -T xen.lds -N prelink.o \ > + $(@D)/.$(@F).0.o -o $(@D)/.$(@F).1 > + $(NM) -n $(@D)/.$(@F).1 | $(BASEDIR)/tools/symbols >$(@D)/.$(@F).1.S > + $(MAKE) -f $(BASEDIR)/Rules.mk $(@D)/.$(@F).1.o > + $(LD) $(LDFLAGS) -T xen.lds -N prelink.o \ > + $(@D)/.$(@F).1.o -o $@ > + rm -f $(@D)/.$(@F).[0-9]* > + > +asm-offsets.s: asm-offsets.c > + $(CC) $(filter-out -flto,$(CFLAGS)) -S -o $@ $< > + > +xen.lds: xen.lds.S > + $(CC) -P -E -Ui386 $(AFLAGS) -DXEN_PHYS_START=$(CONFIG_LOAD_ADDRESS) -o > $@ $< > + sed -e 's/xen\.lds\.o:/xen\.lds:/g' <.xen.lds.d >.xen.lds.d.new > + mv -f .xen.lds.d.new .xen.lds.d > + > +.PHONY: clean > +clean:: > + rm -f asm-offsets.s xen.lds > + rm -f $(BASEDIR)/.xen-syms.[0-9]* > diff --git a/xen/arch/arm/Rules.mk b/xen/arch/arm/Rules.mk > new file mode 100644 > index 0000000..336e209 > --- /dev/null > +++ b/xen/arch/arm/Rules.mk > @@ -0,0 +1,29 @@ > +######################################## > +# arm-specific definitions > + > +# > +# If you change any of these configuration options then you must > +# 'make clean' before rebuilding. > +# > + > +CFLAGS += -fno-builtin -fno-common -Wredundant-decls > +CFLAGS += -iwithprefix include -Werror -Wno-pointer-arith -pipe > +CFLAGS += -I$(BASEDIR)/include > + > +# Prevent floating-point variables from creeping into Xen. > +CFLAGS += -msoft-float > + > +$(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS)) > +$(call cc-option-add,CFLAGS,CC,-Wnested-externs) > + > +arm := y > + > +ifneq ($(call cc-option,$(CC),-fvisibility=hidden,n),n) > +CFLAGS += -DGCC_HAS_VISIBILITY_ATTRIBUTE > +endif > + > +CFLAGS += -march=armv7-a -mcpu=cortex-a15 > + > +# Require GCC v3.4+ (to avoid issues with alignment constraints in Xen > headers) > +check-$(gcc) = $(call cc-ver-check,CC,0x030400,"Xen requires at least > gcc-3.4") > +$(eval $(check-y)) > -- > 1.7.2.5 > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |