|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT PATCH] build: Preprocess linker script as a source
Looks good.
Thanks!
Reviewed-by: Simon Kuenzer <simon.kuenzer@xxxxxxxxx>
On 15.03.19, 15:20, "Sharan Santhanam" <Sharan.Santhanam@xxxxxxxxx> wrote:
The build system supports preprocessing of linker script. But in the
current implementation its direct call to definition 'buildrule'. With
this patch, we can add the linker script as source file and don't have
to call the internal buildrule definition.
Signed-off-by: Sharan Santhanam <sharan.santhanam@xxxxxxxxx>
---
plat/kvm/Linker.uk | 4 +---
plat/kvm/Makefile.uk | 2 ++
support/build/Makefile.rules | 5 ++++-
3 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/plat/kvm/Linker.uk b/plat/kvm/Linker.uk
index 4587daf..f696e25 100644
--- a/plat/kvm/Linker.uk
+++ b/plat/kvm/Linker.uk
@@ -2,10 +2,8 @@ ifeq (x86_64,$(CONFIG_UK_ARCH))
KVM_LDSCRIPT := $(CONFIG_UK_BASE)/plat/kvm/x86/link64.lds
KVM_LDFLAGS-y += -Wl,-m,elf_x86_64
else ifeq (arm64,$(CONFIG_UK_ARCH))
-KVM_LDSCRIPT_SRC := $(CONFIG_UK_BASE)/plat/kvm/arm/link64.lds.S
-KVM_LDSCRIPT := $(call src2lds,libkvmplat,$(KVM_LDSCRIPT_SRC))
KVM_LDFLAGS-y += -Wl,-m,aarch64elf
-$(eval $(call buildrule,libkvmplat,$(KVM_LDSCRIPT_SRC),$(KVM_LDSCRIPT)))
+KVM_LDSCRIPT := $(call src2lds,libkvmplat,$(KVM_LDSCRIPT_SRC))
endif
##
diff --git a/plat/kvm/Makefile.uk b/plat/kvm/Makefile.uk
index 620c626..ad611d3 100644
--- a/plat/kvm/Makefile.uk
+++ b/plat/kvm/Makefile.uk
@@ -54,9 +54,11 @@ endif
##
## Architecture library definitions for arm64
##
+KVM_LDSCRIPT_SRC := $(CONFIG_UK_BASE)/plat/kvm/arm/link64.lds.S
ifeq ($(findstring y,$(CONFIG_KVM_KERNEL_SERIAL_CONSOLE)
$(CONFIG_KVM_DEBUG_SERIAL_CONSOLE)),y)
LIBKVMPLAT_SRCS-$(CONFIG_ARCH_ARM_64) +=
$(UK_PLAT_COMMON_BASE)/arm/pl011.c|common
endif
+LIBKVMPLAT_SRCS-$(CONFIG_ARCH_ARM_64) += $(KVM_LDSCRIPT_SRC)
LIBKVMPLAT_SRCS-$(CONFIG_ARCH_ARM_64) +=
$(UK_PLAT_COMMON_BASE)/arm/cpu_native.c|common
LIBKVMPLAT_SRCS-$(CONFIG_ARCH_ARM_64) +=
$(UK_PLAT_COMMON_BASE)/arm/cache64.S|common
LIBKVMPLAT_SRCS-$(CONFIG_ARCH_ARM_64) +=
$(UK_PLAT_COMMON_BASE)/arm/psci_arm64.S|common
diff --git a/support/build/Makefile.rules b/support/build/Makefile.rules
index 809def0..04f2f0d 100644
--- a/support/build/Makefile.rules
+++ b/support/build/Makefile.rules
@@ -464,7 +464,10 @@ endef
#
# buildrule_libobj $libname,$source,$variant(optional)
define buildrule_libobj =
-$(eval $(call buildrule,$(1),$(2),$(call src2obj,$(1),$(2),$(3)),\
+$(if $(filter %.lds.S,$(2)),\
+ $(eval target=$(call src2lds,$(1),$(2))),\
+ $(eval target=$(call src2obj,$(1),$(2),$(3))))
+$(eval $(call buildrule,$(1),$(2),$(target),\
$($(call vprefix_src,$(1),$(2),INCLUDES))\
$($(call vprefix_src,$(1),$(2),INCLUDES-y))\
$($(call vprefix_src,$(1),$(2),FLAGS))\
--
2.7.4
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |