From 94e9084e1ee586fed993896c71a4327518987152 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0tetiar?= Date: Wed, 24 Jul 2019 14:00:39 +0000 Subject: [PATCH] tfa-layerscape: fix fiptool host build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fiptool is a host tool, used in a firmware generation pipeline, but it's not treated as such, leading to the build breakage on the hosts which don't have {Open,Libre}SSL dev package installed: In file included from fiptool.h:16:0, from fiptool.c:19: fiptool_platform.h:18:27: fatal error: openssl/sha.h: No such file or directory # include So this patch promotes fiptool into the host tool with proper host include and library paths under STAGING_DIR. Ref: https://github.com/openwrt/openwrt/pull/2267 Signed-off-by: Petr Štetiar (cherry picked from commit b8249cef9fedb1e2e3ed4f1b16382c6815e08df1) --- package/boot/tfa-layerscape/Makefile | 19 ++++- .../patches/001-fiptool-hostbuild-fixes.patch | 71 +++++++++++++++++++ 2 files changed, 88 insertions(+), 2 deletions(-) create mode 100644 package/boot/tfa-layerscape/patches/001-fiptool-hostbuild-fixes.patch diff --git a/package/boot/tfa-layerscape/Makefile b/package/boot/tfa-layerscape/Makefile index 4f1c709fc6..8d62fbcf61 100644 --- a/package/boot/tfa-layerscape/Makefile +++ b/package/boot/tfa-layerscape/Makefile @@ -16,8 +16,9 @@ PKG_SOURCE_URL:=https://source.codeaurora.org/external/qoriq/qoriq-components/at PKG_SOURCE_VERSION:=7e34aebe658c7c3439d2d68b0ce6b9776e8e6996 PKG_MIRROR_HASH:=9cf0bc32fa589a0ee7c48c87898679e645341f29da1253d0ba5d2e82c6ea074d PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION) -PKG_BUILD_DEPENDS:=uboot-layerscape +PKG_BUILD_DEPENDS:=uboot-layerscape tfa-layerscape/host +include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/package.mk define Package/tfa-layerscape/Config @@ -46,7 +47,20 @@ define Build/Compile $(MAKE) -C $(PKG_BUILD_DIR) CROSS_COMPILE=$(TARGET_CROSS) \ fip pbl PLAT=$(PLAT) BOOT_MODE=$(BOOT_MODE) \ RCW=$(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-rcw.bin \ - BL33=$(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-uboot.bin + BL33=$(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-uboot.bin \ + FIPTOOL=$(STAGING_DIR_HOST)/bin/fiptool +endef + +HOST_CFLAGS += -Wall -Werror -pedantic -std=c99 +define Host/Compile + $(MAKE) -C \ + $(HOST_BUILD_DIR)/tools/fiptool \ + CFLAGS="$(HOST_CFLAGS)" \ + LDFLAGS="$(HOST_LDFLAGS)" +endef + +define Host/Install + $(INSTALL_BIN) $(HOST_BUILD_DIR)/tools/fiptool/fiptool $(STAGING_DIR_HOST)/bin/ endef define Package/tfa-layerscape/ls1012ardb @@ -132,6 +146,7 @@ TFAS := \ ls1088ardb-sdboot \ ls2088ardb +$(eval $(call HostBuild)) $(foreach tfa,$(TFAS), \ $(eval $(Package/tfa-layerscape/$(tfa))) \ $(eval $(call Package/tfa-layerscape/Config,$(tfa),$(TITLE),$(BIN_BL2),$(BIN_FIP))) \ diff --git a/package/boot/tfa-layerscape/patches/001-fiptool-hostbuild-fixes.patch b/package/boot/tfa-layerscape/patches/001-fiptool-hostbuild-fixes.patch new file mode 100644 index 0000000000..0567e5869b --- /dev/null +++ b/package/boot/tfa-layerscape/patches/001-fiptool-hostbuild-fixes.patch @@ -0,0 +1,71 @@ +--- a/Makefile ++++ b/Makefile +@@ -448,10 +448,6 @@ endif + CRTTOOLPATH ?= tools/cert_create + CRTTOOL ?= ${CRTTOOLPATH}/cert_create${BIN_EXT} + +-# Variables for use with Firmware Image Package +-FIPTOOLPATH ?= tools/fiptool +-FIPTOOL ?= ${FIPTOOLPATH}/fiptool${BIN_EXT} +- + ################################################################################ + # Include BL specific makefiles + ################################################################################ +@@ -661,14 +657,12 @@ endif + clean: + @echo " CLEAN" + $(call SHELL_REMOVE_DIR,${BUILD_PLAT}) +- ${Q}${MAKE} --no-print-directory -C ${FIPTOOLPATH} clean + ${Q}${MAKE} PLAT=${PLAT} --no-print-directory -C ${CRTTOOLPATH} clean + + realclean distclean: + @echo " REALCLEAN" + $(call SHELL_REMOVE_DIR,${BUILD_BASE}) + $(call SHELL_DELETE_ALL, ${CURDIR}/cscope.*) +- ${Q}${MAKE} --no-print-directory -C ${FIPTOOLPATH} clean + ${Q}${MAKE} PLAT=${PLAT} --no-print-directory -C ${CRTTOOLPATH} clean + + checkcodebase: locate-checkpatch +@@ -717,7 +711,7 @@ certificates: ${CRT_DEPS} ${CRTTOOL} + @${ECHO_BLANK_LINE} + endif + +-${BUILD_PLAT}/${FIP_NAME}: ${FIP_DEPS} ${FIPTOOL} ++${BUILD_PLAT}/${FIP_NAME}: ${FIP_DEPS} + ${Q}${FIPTOOL} create ${FIP_ARGS} $@ + ${Q}${FIPTOOL} info $@ + @${ECHO_BLANK_LINE} +@@ -733,21 +727,16 @@ fwu_certificates: ${FWU_CRT_DEPS} ${CRTT + @${ECHO_BLANK_LINE} + endif + +-${BUILD_PLAT}/${FWU_FIP_NAME}: ${FWU_FIP_DEPS} ${FIPTOOL} ++${BUILD_PLAT}/${FWU_FIP_NAME}: ${FWU_FIP_DEPS} + ${Q}${FIPTOOL} create ${FWU_FIP_ARGS} $@ + ${Q}${FIPTOOL} info $@ + @${ECHO_BLANK_LINE} + @echo "Built $@ successfully" + @${ECHO_BLANK_LINE} + +-fiptool: ${FIPTOOL} + fip: ${BUILD_PLAT}/${FIP_NAME} + fwu_fip: ${BUILD_PLAT}/${FWU_FIP_NAME} + +-.PHONY: ${FIPTOOL} +-${FIPTOOL}: +- ${Q}${MAKE} CPPFLAGS="-DVERSION='\"${VERSION_STRING}\"'" --no-print-directory -C ${FIPTOOLPATH} +- + cscope: + @echo " CSCOPE" + ${Q}find ${CURDIR} -name "*.[chsS]" > cscope.files +--- a/tools/fiptool/Makefile ++++ b/tools/fiptool/Makefile +@@ -37,7 +37,7 @@ all: ${PROJECT} fip_create + + ${PROJECT}: ${OBJECTS} Makefile + @echo " LD $@" +- ${Q}${HOSTCC} ${OBJECTS} -o $@ ${LDLIBS} ++ ${Q}${HOSTCC} ${OBJECTS} -o $@ ${LDLIBS} $(LDFLAGS) + @${ECHO_BLANK_LINE} + @echo "Built $@ successfully" + @${ECHO_BLANK_LINE}