From db465e2a89765c17d650cb570d9ef7282ffcc37c Mon Sep 17 00:00:00 2001 From: lisimin Date: Sat, 22 Jan 2022 18:21:19 +0800 Subject: [PATCH] support build do_populate_sdk Signed-off-by: lisimin --- meta-openeuler/conf/local.conf.sample | 4 +++- .../recipes-core/glibc/glibc_2.34.bb | 14 +++++++++++-- .../recipes-core/images/openeuler-image.bb | 20 +++++++++++++++---- .../binutils/binutils-crosssdk_%.bbappend | 2 ++ 4 files changed, 33 insertions(+), 7 deletions(-) create mode 100644 meta-openeuler/recipes-devtools/binutils/binutils-crosssdk_%.bbappend diff --git a/meta-openeuler/conf/local.conf.sample b/meta-openeuler/conf/local.conf.sample index f36d1c3aaed..f06fc21ead9 100644 --- a/meta-openeuler/conf/local.conf.sample +++ b/meta-openeuler/conf/local.conf.sample @@ -285,7 +285,9 @@ ASSUME_PROVIDED += "rpm-native dwarfsrcfiles-native depmodwrapper-cross kmod-nat pixman-native texinfo-dummy-native python3-native python3-setuptools-native gettext-native \ m4-native flex-native unifdef-native rsync-native init-system-helpers automake-native \ autoconf-native libtool-native opkg-utils-native patch-native pkgconfig-native \ - init-system-helpers update-rc.d-native run-postinsts cmake-native ninja-native" + init-system-helpers update-rc.d-native run-postinsts cmake-native ninja-native \ + cross-localedef-native nativesdk-glibc-locale nativesdk-qemuwrapper-cross \ + " PATCHTOOL = "patch" TCMODE = "gcc-bin" INHERIT_remove += "uninative" diff --git a/meta-openeuler/recipes-core/glibc/glibc_2.34.bb b/meta-openeuler/recipes-core/glibc/glibc_2.34.bb index f1a7bd36ebc..459fc1882bb 100644 --- a/meta-openeuler/recipes-core/glibc/glibc_2.34.bb +++ b/meta-openeuler/recipes-core/glibc/glibc_2.34.bb @@ -23,6 +23,7 @@ require ../../recipes-devtools/gcc/gcc-bin-toolchain.inc SRC_URI_aarch64 = "file://openeuler_gcc_arm64le" SRC_URI_arm = "file://openeuler_gcc_arm32le" +SRC_URI_class-nativesdk = "" #Not strip toolchain INHIBIT_SYSROOT_STRIP = "1" @@ -48,12 +49,21 @@ do_install() { install -m 0755 -d ${D}/${libdir} cp -pPR ${S}/sysroot/* ${D}/ rm -rf ${D}/etc/rpc - rm -rf ${D}/${base_libdir}/debug + rm -rf ${D}${datadir}/info + rm -rf ${D}${base_libdir}/debug chown root:root ${D}/ -R } +do_install_class-nativesdk() { + test -d ${D}/${base_libdir} || mkdir -p ${D}/${base_libdir} + pushd ${D}/${base_libdir} + local ldso="$(ldconfig -p | grep ld-linux | awk '{print $NF}')" + cp -p "${ldso}" ld-linux.so + popd +} + FILES_${PN} = " \ - ${base_libdir}/ld-linux*.so.* \ + ${base_libdir}/ld-linux*.so* \ ${libdir}/libc.so \ ${base_libdir}/libm.so \ ${base_libdir}/libc.so.6 \ diff --git a/meta-openeuler/recipes-core/images/openeuler-image.bb b/meta-openeuler/recipes-core/images/openeuler-image.bb index 32aee147a23..b1fad56c429 100644 --- a/meta-openeuler/recipes-core/images/openeuler-image.bb +++ b/meta-openeuler/recipes-core/images/openeuler-image.bb @@ -14,6 +14,22 @@ INITRAMFS_MAXSIZE = "262144" #delete depends to cpio-native do_image_cpio[depends] = "" +inherit populate_sdk +#set IMAGE_LOCALES_ARCHIVE to 0 and unset SDKIMAGE_LINGUAS, to avoid run generate_locale_archive() +IMAGE_LOCALES_ARCHIVE = "0" +SDKIMAGE_LINGUAS = "" + +inherit populate_sdk_ext +export SDK_OS = "linux" +TOOLCHAIN_HOST_TASK_task-populate-sdk-ext = "" +TOOLCHAIN_HOST_TASK = " \ +meta-environment-${MACHINE} \ +nativesdk-glibc \ +" +FEATURE_PACKAGES_tools-sdk_remove = " packagegroup-core-sdk packagegroup-core-standalone-sdk-target" +TOOLCHAIN_TARGET_TASK_remove += "${@multilib_pkg_extend(d, 'packagegroup-core-standalone-sdk-target')}" + + #not add run-postinsts to PACKAGE_INSTALL, so that not fail when do_rootfs?? ROOTFS_BOOTSTRAP_INSTALL = "" @@ -23,14 +39,10 @@ do_rootfs[depends] = "" #LDCONFIGDEPEND = "" DEPENDS_remove += "qemuwrapper-cross depmodwrapper-cross cross-localedef-native" RPMROOTFSDEPENDS = "" -FEATURE_PACKAGES_tools-sdk_remove = " packagegroup-core-sdk packagegroup-core-standalone-sdk-target" -TOOLCHAIN_TARGET_TASK_remove += "${@multilib_pkg_extend(d, 'packagegroup-core-standalone-sdk-target')}" #IMAGE_ROOTFS_SIZE ?= "8192" #IMAGE_ROOTFS_EXTRA_SPACE_append = "${@bb.utils.contains("DISTRO_FEATURES", "systemd", " + 4096", "", d)}" -TOOLCHAIN_HOST_TASK_task-populate-sdk-ext = "" -TOOLCHAIN_HOST_TASK = "" OUTPUT_DIR = "${TOPDIR}/output" #No kernel-abiversion file found, cannot run depmod, aborting diff --git a/meta-openeuler/recipes-devtools/binutils/binutils-crosssdk_%.bbappend b/meta-openeuler/recipes-devtools/binutils/binutils-crosssdk_%.bbappend new file mode 100644 index 00000000000..5e0eda5b432 --- /dev/null +++ b/meta-openeuler/recipes-devtools/binutils/binutils-crosssdk_%.bbappend @@ -0,0 +1,2 @@ +PV = "2.37" +require binutils-${PV}.inc -- Gitee