From 91827b463a283ddadfa1b1253d73e6ec6d8aba29 Mon Sep 17 00:00:00 2001 From: Thierry Escande <thierry.escande@huawei.com> Date: Mon, 27 Jun 2022 16:54:03 +0200 Subject: [PATCH] openharmony-standard: Add a sanity check function for lib paths This change adds a post do_install() function that checks if all subfloders copied from system/lib/module are set in the distro variable MUSL_LDSO_PATHS and thus are part of the ld-musl-${MUSL_LDSO_ARCH}.path file. Signed-off-by: Thierry Escande <thierry.escande@huawei.com> --- .../musl-ldso-paths-sanity-check.inc | 29 +++++++++++++++++++ .../openharmony/openharmony-standard_3.0.bb | 1 + .../openharmony/openharmony-standard_3.1.bb | 1 + 3 files changed, 31 insertions(+) create mode 100644 recipes-openharmony/openharmony/musl-ldso-paths-sanity-check.inc diff --git a/recipes-openharmony/openharmony/musl-ldso-paths-sanity-check.inc b/recipes-openharmony/openharmony/musl-ldso-paths-sanity-check.inc new file mode 100644 index 00000000..bfa1971c --- /dev/null +++ b/recipes-openharmony/openharmony/musl-ldso-paths-sanity-check.inc @@ -0,0 +1,29 @@ +# SPDX-FileCopyrightText: Huawei Inc. +# +# SPDX-License-Identifier: Apache-2.0 + +# This post do_install() function checks if all subfloders copied from +# system/lib/module are set in the distro variable MUSL_LDSO_PATHS. +# +# This variable is used to generate the content of the file +# /etc/ld-musl-${MUSL_LDSO_ARCH}.path so this function stops bitbake +# if one of the coipied folder from /system/lib/module/* is not in +# MUSL_LDSO_PATHS. + +musl_ldso_paths_sanity_check() { + cd "${D}/${libdir}" + MODULE_LIB_PATHS="$(find module -type d)" + for folder in ${MODULE_LIB_PATHS}; do + PAT="(^|[[:space:]])${folder}([[:space:]]|$)" + if [[ ! "${MUSL_LDSO_PATHS}" =~ ${PAT} ]]; then + echo + echo "'${folder}' not in MUSL_LDSO_PATHS" + echo "Add it in conf/distro/include/musl-ldso-paths.inc" + echo + + return 1 + fi + done +} + +do_install[postfuncs] += "musl_ldso_paths_sanity_check" diff --git a/recipes-openharmony/openharmony/openharmony-standard_3.0.bb b/recipes-openharmony/openharmony/openharmony-standard_3.0.bb index 22a8fb34..64d987d0 100644 --- a/recipes-openharmony/openharmony/openharmony-standard_3.0.bb +++ b/recipes-openharmony/openharmony/openharmony-standard_3.0.bb @@ -17,6 +17,7 @@ DEPENDS += "bison-native" DEPENDS += "ruby-native" require ${PN}-sources-${OPENHARMONY_VERSION}.inc +require musl-ldso-paths-sanity-check.inc FILESEXTRAPATHS:prepend := "${THISDIR}/openharmony-${OPENHARMONY_VERSION}:" FILESEXTRAPATHS:prepend := "${THISDIR}/openharmony-standard-${OPENHARMONY_VERSION}:" diff --git a/recipes-openharmony/openharmony/openharmony-standard_3.1.bb b/recipes-openharmony/openharmony/openharmony-standard_3.1.bb index 6d79c434..99cd4d14 100644 --- a/recipes-openharmony/openharmony/openharmony-standard_3.1.bb +++ b/recipes-openharmony/openharmony/openharmony-standard_3.1.bb @@ -23,6 +23,7 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/openharmony-standard-${OPENHARMONY_VERSIO require ${PN}-sources-${OPENHARMONY_VERSION}.inc require java-tools.inc +require musl-ldso-paths-sanity-check.inc SRC_URI += "${@bb.utils.contains('PTEST_ENABLED', '1', 'file://run-ptest', '', d)}" -- GitLab