|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [XEN PATCH v3 20/23] xen/build: factorise generation of the linker scripts
In Arm and X86 makefile, generating the linker script is the same, so
we can simply have both call the same macro.
We need to add *.lds files into extra-y so that Rules.mk can find the
.*.cmd dependency file and load it.
Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx>
---
xen/Rules.mk | 8 ++++++++
xen/arch/arm/Makefile | 5 ++---
xen/arch/x86/Makefile | 6 +++---
3 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/xen/Rules.mk b/xen/Rules.mk
index 8c7dba9211d1..02cd37d04054 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -230,6 +230,14 @@ cmd_s_S = $(CPP) $(filter-out -Wa$(comma)%,$(a_flags)) $<
-o $@
%.s: %.S FORCE
$(call if_changed,cpp_s_S)
+# Linker scripts, .lds.S -> .lds
+quiet_cmd_cc_lds_S = LDS $@
+define cmd_cc_lds_S
+ $(CC) -P -E -Ui386 $(filter-out -Wa$(comma)%,$(a_flags)) -o $@ $<; \
+ sed -e 's/.*\.lds\.o:/$(@F):/g' <$(dot-target).d >$(dot-target).d.new; \
+ mv -f $(dot-target).d.new $(dot-target).d
+endef
+
# Add intermediate targets:
# When building objects with specific suffix patterns, add intermediate
# targets that the final targets are derived from.
diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 37ca6d25c08e..b3ee4adb9ac4 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -124,9 +124,8 @@ asm-offsets.s: $(TARGET_SUBARCH)/asm-offsets.c
$(CC) $(filter-out -flto,$(c_flags)) -S -o $@ $<
xen.lds: xen.lds.S
- $(CC) -P -E -Ui386 $(a_flags) -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
+ $(call if_changed,cc_lds_S)
+extra-y += xen.lds
dtb.o: $(CONFIG_DTB_FILE)
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 6fb6cafdf47b..1be94846e11f 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -75,6 +75,7 @@ obj-y += hpet.o
obj-y += vm_event.o
obj-y += xstate.o
extra-y += asm-macros.i
+extra-y += xen.lds
x86_emulate.o: x86_emulate/x86_emulate.c x86_emulate/x86_emulate.h
@@ -197,6 +198,7 @@ endif
note_file_option ?= $(note_file)
ifeq ($(XEN_BUILD_PE),y)
+extra-y += efi.lds
$(TARGET).efi: prelink-efi.o $(note_file) efi.lds efi/relocs-dummy.o
efi/mkreloc
$(foreach base, $(VIRT_BASE) $(ALT_BASE), \
$(LD) $(call EFI_LDFLAGS,$(base)) -T efi.lds -N $<
efi/relocs-dummy.o \
@@ -244,9 +246,7 @@ $(BASEDIR)/include/asm-x86/asm-macros.h: asm-macros.i
Makefile
efi.lds: AFLAGS-y += -DEFI
xen.lds efi.lds: xen.lds.S
- $(CC) -P -E -Ui386 $(filter-out -Wa$(comma)%,$(a_flags)) -o $@ $<
- sed -e 's/.*\.lds\.o:/$(@F):/g' <.$(@F).d >.$(@F).d.new
- mv -f .$(@F).d.new .$(@F).d
+ $(call if_changed,cc_lds_S)
boot/mkelf32: boot/mkelf32.c
$(HOSTCC) $(HOSTCFLAGS) -o $@ $<
--
Anthony PERARD
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |