diff --git a/Config.mk b/Config.mk index fa0414055b93..0931e702b025 100644 --- a/Config.mk +++ b/Config.mk @@ -141,6 +141,14 @@ export XEN_HAS_BUILD_ID=y build_id_linker := --build-id=sha1 endif +# Wrap date(1) to use SOURCE_DATE_EPOCH if set the environment. +# See https://reproducible-builds.org/docs/source-date-epoch/ +ifdef SOURCE_DATE_EPOCH +date = $(shell date -u -d "@$(SOURCE_DATE_EPOCH)" "$(1)" 2>/dev/null || date -u -r "$(SOURCE_DATE_EPOCH)" "$(1)" 2>/dev/null || date -u "$(1)") +else +date = $(shell date "$(1)") +endif + define buildmakevars2shellvars export PREFIX="$(prefix)"; \ export XEN_SCRIPT_DIR="$(XEN_SCRIPT_DIR)"; \ diff --git a/docs/Makefile b/docs/Makefile index b30cc619f8dd..95dc83ff9c59 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -3,7 +3,7 @@ include $(XEN_ROOT)/Config.mk -include $(XEN_ROOT)/config/Docs.mk VERSION := $(shell $(MAKE) -C $(XEN_ROOT)/xen --no-print-directory xenversion) -DATE := $(shell date +%Y-%m-%d) +DATE := $(call date,+%Y-%m-%d) DOC_ARCHES := arm x86_32 x86_64 MAN_SECTIONS := 1 5 7 8 diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile index c7bc4006578a..1e77b014f614 100644 --- a/tools/firmware/hvmloader/Makefile +++ b/tools/firmware/hvmloader/Makefile @@ -23,7 +23,7 @@ include $(XEN_ROOT)/tools/firmware/Rules.mk ld-option = $(shell if $(LD) -v $(1) >/dev/null 2>&1; then echo y; else echo n; fi) # SMBIOS spec requires format mm/dd/yyyy -SMBIOS_REL_DATE ?= $(shell date +%m/%d/%Y) +SMBIOS_REL_DATE ?= $(call date,+%m/%d/%Y) CFLAGS += $(CFLAGS_xeninclude) -fno-pic -mregparm=3