|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen master] build: factorise generation of the linker scripts
commit 72f12ac6a36d5aa0567fd7abc2856e3bf054c4ef
Author: Anthony PERARD <anthony.perard@xxxxxxxxxx>
AuthorDate: Wed Dec 15 10:08:38 2021 +0100
Commit: Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Wed Dec 15 10:08:38 2021 +0100
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.
Change made to the command line:
- Use cpp_flags macro which simply filter -Wa,% options from $(a_flags).
- Added -D__LINKER__ even it is only used by Arm's lds.
Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx>
Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
Acked-by: Julien Grall <jgrall@xxxxxxxxxx>
---
xen/Rules.mk | 4 ++++
xen/arch/arm/Makefile | 6 ++++--
xen/arch/x86/Makefile | 6 ++++--
3 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/xen/Rules.mk b/xen/Rules.mk
index 5e0699e58b..d21930a7bf 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -238,6 +238,10 @@ cmd_cpp_s_S = $(CPP) $(call cpp_flags,$(a_flags)) -MQ $@
-o $@ $<
%.s: %.S FORCE
$(call if_changed,cpp_s_S)
+# Linker scripts, .lds.S -> .lds
+quiet_cmd_cpp_lds_S = LDS $@
+cmd_cpp_lds_S = $(CPP) -P $(call cpp_flags,$(a_flags)) -D__LINKER__ -MQ $@ -o
$@ $<
+
# 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 07f634508e..a3a497bafe 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -67,6 +67,8 @@ obj-y += vsmc.o
obj-y += vpsci.o
obj-y += vuart.o
+extra-y += xen.lds
+
#obj-bin-y += ....o
ifneq ($(CONFIG_DTB_FILE),"")
@@ -132,8 +134,8 @@ $(TARGET)-syms: prelink.o xen.lds
.PHONY: include
include:
-xen.lds: xen.lds.S
- $(CPP) -P $(a_flags) -D__LINKER__ -MQ $@ -o $@ $<
+xen.lds: xen.lds.S FORCE
+ $(call if_changed,cpp_lds_S)
dtb.o: $(patsubst "%",%,$(CONFIG_DTB_FILE))
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 69b6cfaded..669e16e726 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -78,6 +78,7 @@ obj-y += sysctl.o
endif
extra-y += asm-macros.i
+extra-y += xen.lds
ifneq ($(CONFIG_HVM),y)
x86_emulate.o: CFLAGS-y += -Wno-unused-label
@@ -238,6 +239,7 @@ endif
note_file_option ?= $(note_file)
ifeq ($(XEN_BUILD_PE),y)
+extra-y += efi.lds
$(TARGET).efi: prelink.o $(note_file) efi.lds efi/relocs-dummy.o efi/mkreloc
ifeq ($(CONFIG_DEBUG_INFO),y)
$(if $(filter --strip-debug,$(EFI_LDFLAGS)),echo,:) "Will strip debug
info from $(@F)"
@@ -290,8 +292,8 @@ $(BASEDIR)/include/asm-x86/asm-macros.h: asm-macros.i
Makefile
$(call move-if-changed,$@.new,$@)
efi.lds: AFLAGS-y += -DEFI
-xen.lds efi.lds: xen.lds.S
- $(CPP) -P $(call cpp_flags,$(a_flags)) -MQ $@ -o $@ $<
+xen.lds efi.lds: xen.lds.S FORCE
+ $(call if_changed,cpp_lds_S)
boot/mkelf32: boot/mkelf32.c
$(HOSTCC) $(HOSTCFLAGS) -o $@ $<
--
generated by git-patchbot for /home/xen/git/xen.git#master
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |