mirror of
https://git.yoctoproject.org/meta-arm
synced 2026-07-16 15:57:19 +00:00
arm/trusted-firmware-a: improve OpenSSL build fix
Take a patch that is heading upstream to pass OPENSSL_DIR to the fiptool build, removing the need to alter the Makefiles at build time. Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Jon Mason <jon.mason@arm.com>
This commit is contained in:
@@ -0,0 +1,52 @@
|
|||||||
|
fiptool: respect OPENSSL_DIR
|
||||||
|
|
||||||
|
fiptool links to libcrypto, so as with the other tools it should respect
|
||||||
|
OPENSSL_DIR for include/library paths.
|
||||||
|
|
||||||
|
Upstream-Status: Submitted
|
||||||
|
Signed-off-by: Ross Burton <ross.burton@arm.com>
|
||||||
|
|
||||||
|
diff --git a/Makefile b/Makefile
|
||||||
|
index ec6f88585..2d3b9fc26 100644
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -1388,7 +1388,7 @@ fwu_fip: ${BUILD_PLAT}/${FWU_FIP_NAME}
|
||||||
|
|
||||||
|
${FIPTOOL}: FORCE
|
||||||
|
ifdef UNIX_MK
|
||||||
|
- ${Q}${MAKE} CPPFLAGS="-DVERSION='\"${VERSION_STRING}\"'" FIPTOOL=${FIPTOOL} --no-print-directory -C ${FIPTOOLPATH}
|
||||||
|
+ ${Q}${MAKE} CPPFLAGS="-DVERSION='\"${VERSION_STRING}\"'" FIPTOOL=${FIPTOOL} OPENSSL_DIR=${OPENSSL_DIR} --no-print-directory -C ${FIPTOOLPATH}
|
||||||
|
else
|
||||||
|
# Clear the MAKEFLAGS as we do not want
|
||||||
|
# to pass the gnumake flags to nmake.
|
||||||
|
diff --git a/tools/fiptool/Makefile b/tools/fiptool/Makefile
|
||||||
|
index 11d2e7b0b..7c2a08379 100644
|
||||||
|
--- a/tools/fiptool/Makefile
|
||||||
|
+++ b/tools/fiptool/Makefile
|
||||||
|
@@ -12,6 +12,8 @@ FIPTOOL ?= fiptool${BIN_EXT}
|
||||||
|
PROJECT := $(notdir ${FIPTOOL})
|
||||||
|
OBJECTS := fiptool.o tbbr_config.o
|
||||||
|
V ?= 0
|
||||||
|
+OPENSSL_DIR := /usr
|
||||||
|
+
|
||||||
|
|
||||||
|
override CPPFLAGS += -D_GNU_SOURCE -D_XOPEN_SOURCE=700
|
||||||
|
HOSTCCFLAGS := -Wall -Werror -pedantic -std=c99
|
||||||
|
@@ -20,7 +22,7 @@ ifeq (${DEBUG},1)
|
||||||
|
else
|
||||||
|
HOSTCCFLAGS += -O2
|
||||||
|
endif
|
||||||
|
-LDLIBS := -lcrypto
|
||||||
|
+LDLIBS := -L${OPENSSL_DIR}/lib -lcrypto
|
||||||
|
|
||||||
|
ifeq (${V},0)
|
||||||
|
Q := @
|
||||||
|
@@ -28,7 +30,7 @@ else
|
||||||
|
Q :=
|
||||||
|
endif
|
||||||
|
|
||||||
|
-INCLUDE_PATHS := -I../../include/tools_share
|
||||||
|
+INCLUDE_PATHS := -I../../include/tools_share -I${OPENSSL_DIR}/include
|
||||||
|
|
||||||
|
HOSTCC ?= gcc
|
||||||
|
|
||||||
@@ -7,7 +7,8 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
|
|||||||
|
|
||||||
inherit deploy
|
inherit deploy
|
||||||
|
|
||||||
SRC_URI = "git://git.trustedfirmware.org/TF-A/trusted-firmware-a.git;protocol=https;name=tfa"
|
SRC_URI = "git://git.trustedfirmware.org/TF-A/trusted-firmware-a.git;protocol=https;name=tfa \
|
||||||
|
file://ssl.patch"
|
||||||
UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>\d+(\.\d+)+)$"
|
UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>\d+(\.\d+)+)$"
|
||||||
|
|
||||||
COMPATIBLE_MACHINE ?= "invalid"
|
COMPATIBLE_MACHINE ?= "invalid"
|
||||||
@@ -140,6 +141,8 @@ EXTRA_OEMAKE += "${@bb.utils.contains('SEL2_SPMC', '1', 'ARM_SPMC_MANIFEST_DTS=$
|
|||||||
|
|
||||||
# Tell the tools where the native OpenSSL is located
|
# Tell the tools where the native OpenSSL is located
|
||||||
EXTRA_OEMAKE += "OPENSSL_DIR=${STAGING_DIR_NATIVE}/${prefix_native}"
|
EXTRA_OEMAKE += "OPENSSL_DIR=${STAGING_DIR_NATIVE}/${prefix_native}"
|
||||||
|
# Use the correct native compiler
|
||||||
|
EXTRA_OEMAKE += "HOSTCC='${BUILD_CC}'"
|
||||||
|
|
||||||
# Runtime variables
|
# Runtime variables
|
||||||
EXTRA_OEMAKE += "RUNTIME_SYSROOT=${STAGING_DIR_HOST}"
|
EXTRA_OEMAKE += "RUNTIME_SYSROOT=${STAGING_DIR_HOST}"
|
||||||
@@ -148,23 +151,10 @@ BUILD_DIR = "${B}/${TFA_PLATFORM}"
|
|||||||
BUILD_DIR .= "${@'/${TFA_BOARD}' if d.getVar('TFA_BOARD') else ''}"
|
BUILD_DIR .= "${@'/${TFA_BOARD}' if d.getVar('TFA_BOARD') else ''}"
|
||||||
BUILD_DIR .= "/${@'debug' if d.getVar("TFA_DEBUG") == '1' else 'release'}"
|
BUILD_DIR .= "/${@'debug' if d.getVar("TFA_DEBUG") == '1' else 'release'}"
|
||||||
|
|
||||||
# The following hack is needed to fit properly in yocto build environment
|
|
||||||
# TFA is forcing the host compiler and its flags in the Makefile using :=
|
|
||||||
# assignment for GCC and CFLAGS.
|
|
||||||
do_compile() {
|
do_compile() {
|
||||||
cd ${S}
|
|
||||||
|
|
||||||
# These changes are needed to have the native tools compiling and executing properly
|
|
||||||
sed -i '/^LDLIBS/ s,$, \$\{BUILD_LDFLAGS},' ${S}/tools/fiptool/Makefile
|
|
||||||
sed -i '/^INCLUDE_PATHS/ s,$, \$\{BUILD_CFLAGS},' ${S}/tools/fiptool/Makefile
|
|
||||||
sed -i '/^LIB/ s,$, \$\{BUILD_LDFLAGS},' ${S}/tools/cert_create/Makefile
|
|
||||||
|
|
||||||
# This can be removed when only TF-A 2.4 onwards is supported
|
|
||||||
sed -i 's^OPENSSL_DIR.*=.*$^OPENSSL_DIR = ${STAGING_DIR_NATIVE}/${prefix_native}^' ${S}/tools/*/Makefile
|
|
||||||
|
|
||||||
# Currently there are races if you build all the targets at once in parallel
|
# Currently there are races if you build all the targets at once in parallel
|
||||||
for T in ${TFA_BUILD_TARGET}; do
|
for T in ${TFA_BUILD_TARGET}; do
|
||||||
oe_runmake $T
|
oe_runmake -C ${S} $T
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
do_compile[cleandirs] = "${B}"
|
do_compile[cleandirs] = "${B}"
|
||||||
|
|||||||
Reference in New Issue
Block a user