diff --git a/meta-openeuler/classes/eulertoolchain.bbclass b/meta-openeuler/classes/eulertoolchain.bbclass deleted file mode 100644 index b0c8e904e17c8c24565130b15158c909303a017d..0000000000000000000000000000000000000000 --- a/meta-openeuler/classes/eulertoolchain.bbclass +++ /dev/null @@ -1,54 +0,0 @@ -def eulertoolchain_raw_prefix(arch): - raw_prefix_dict = { - "arm" : "arm-linux-gnueabi", - "aarch64" : "aarch64-openeuler-linux-gnu", - } - return raw_prefix_dict[arch] - -def eulertoolchain_euler_prefix(arch): - euler_prefix_dict = { - "arm" : "arm-openeuler-linux-gnueabi", - "aarch64" : "aarch64-openeuler-linux", - } - return euler_prefix_dict[arch] - -def eulertoolchain_prefix_to_arch(prefix): - return prefix.split('-')[0] - -def eulertoolchain_euler_prefix_to_raw(euler_prefix): - arch = eulertoolchain_prefix_to_arch(euler_prefix) - return eulertoolchain_raw_prefix(arch) - -python eulertoolchain_virtclass_handler () { - cls = d.getVar("BBEXTENDCURR") - variant = d.getVar("BBEXTENDVARIANT") - if cls != "eulertoolchain" or not variant: - return - - d.setVar("PN", d.getVar("PN", False) + '-' + variant) - multilib = d.getVar("MULTILIB", True) - prefix = "" - if "64" not in variant and multilib: - prefix = "lib32-" - d.setVar("TARGET_ARCH", variant) - d.setVar("EULER_TOOLCHAIN_SYSNAME", prefix + eulertoolchain_raw_prefix(variant)) - d.setVar("EULER_TOOLCHAIN_TARGET_PREFIX", prefix + eulertoolchain_euler_prefix(variant) + '-') - d.setVar("EULER_TOOLCHAIN_TARGET_PREFIX_RAW", prefix + eulertoolchain_euler_prefix(variant)) - - d.setVar("OVERRIDES", d.getVar("OVERRIDES", False) + - ":{}".format(variant.replace('_', '-'))) -} - -addhandler eulertoolchain_virtclass_handler -eulertoolchain_virtclass_handler[eventmask] = "bb.event.RecipePreFinalise" - -_EULERTOOLCHAIN_SUPPORT_ARCHS := "aarch64 arm" - -def toolchain_bbclassextend(d, cls, variant): - support_archs = d.getVar("_EULERTOOLCHAIN_SUPPORT_ARCHS", True) - exts = [] - for arch in support_archs.split(): - exts.append('{}:{}{}'.format(cls, variant, arch)) - return ' '.join(exts) - -BBCLASSEXTEND = "${@toolchain_bbclassextend(d, 'eulertoolchain', '')}" diff --git a/meta-openeuler/recipes-core/images/openeuler-image.bb b/meta-openeuler/recipes-core/images/openeuler-image.bb index 33a5c97c699321205d9e0a2d37f3dd1194214897..64869fec59ace2293d72a8a2288e148c62c11811 100644 --- a/meta-openeuler/recipes-core/images/openeuler-image.bb +++ b/meta-openeuler/recipes-core/images/openeuler-image.bb @@ -16,8 +16,7 @@ IMAGE_CMD_tar = "${IMAGE_CMD_TAR} --format=posix --numeric-owner -cf ${IMGDEPLOY do_rootfs[depends] = "" #not depends to ldconfig-native #LDCONFIGDEPEND = "" -DEPENDS_remove += "${@' '.join(["%s-qemuwrapper-cross" % m for m in d.getVar("MULTILIB_VARIANTS").split()])} qemuwrapper-cross depmodwrapper-cross cross-localedef-native" -SDK_DEPENDS_remove += "${@' '.join(["%s-qemuwrapper-cross" % m for m in d.getVar("MULTILIB_VARIANTS").split()])} depmodwrapper-cross cross-localedef-native" +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')}" @@ -44,6 +43,7 @@ python do_image() { } IMAGE_INSTALL += " \ +bash \ busybox \ linux-openeuler \ os-base \ diff --git a/meta-openeuler/recipes-devtools/gcc/gcc-bin-toolchain-compilerlibs.bb b/meta-openeuler/recipes-devtools/gcc/gcc-bin-toolchain-compilerlibs.bb index 87958c0eb5152c32e2060bfaafb0020441c9df4b..8abc48f67947bb539440b19e5e6dcbf86a947ad0 100644 --- a/meta-openeuler/recipes-devtools/gcc/gcc-bin-toolchain-compilerlibs.bb +++ b/meta-openeuler/recipes-devtools/gcc/gcc-bin-toolchain-compilerlibs.bb @@ -1,33 +1,20 @@ # Description: Extract libgcc and compiler-rt from toolchain -inherit eulertoolchain require gcc-bin-toolchain.inc +PN = "gcc-bin-toolchain-compilerlibs-${TARGET_ARCH}" INHIBIT_DEFAULT_DEPS = "1" -#DEPENDS = "virtual/${EULER_TOOLCHAIN_TARGET_PREFIX}gcc \ -# virtual/${EULER_TOOLCHAIN_TARGET_PREFIX}g++" DEPENDS = "virtual/${TARGET_PREFIX}gcc \ virtual/${TARGET_PREFIX}g++" - -#PROVIDES = "virtual/${EULER_TOOLCHAIN_TARGET_PREFIX}compilerlibs gcc-runtime libstdc++ libgcc-initial" PROVIDES = "gcc-runtime libstdc++ libgcc-initial virtual/${TARGET_PREFIX}compilerlibs" - -# Insert lib and usr/lib into SYSROOT_DIRS so these 2 dir -# will be found by building of bb depends on this bb. It -# is required because we set BASELIB to lib32, which makes -# yocto stage lib32 and usr/lib32. However, compiler has -# built-in path to find libgcc, which is /lib or /usr/lib. -#LIBDIR_COMPAT_EXTRA = "${@ '' if not is_compat(d) else '/lib /usr/lib'}" -#SYSROOT_DIRS += "${LIBDIR_COMPAT_EXTRA}" - do_install () { bbnote "Installing libgcc/libclang from Compiler CPU binary toolchain" install -m 0755 -d ${D}${libdir_native}/${EULER_TOOLCHAIN_GCC_PATH_INNER} finddirs='' - test -d ${B}/${EULER_TOOLCHAIN_SYSNAME}/lib && finddirs="$finddirs ${B}/${EULER_TOOLCHAIN_SYSNAME}/lib" - test -d ${B}/${EULER_TOOLCHAIN_SYSNAME}/lib64 && finddirs="$finddirs ${B}/${EULER_TOOLCHAIN_SYSNAME}/lib64" + test -d ${B}/${TOOLCHAIN_PREFIX}/lib && finddirs="$finddirs ${B}/${TOOLCHAIN_PREFIX}/lib" + test -d ${B}/${TOOLCHAIN_PREFIX}/lib64 && finddirs="$finddirs ${B}/${TOOLCHAIN_PREFIX}/lib64" test -d ${B}/lib/${EULER_TOOLCHAIN_GCC_PATH} && finddirs="$finddirs ${B}/lib/${EULER_TOOLCHAIN_GCC_PATH}" test -d ${B}/lib64/${EULER_TOOLCHAIN_GCC_PATH} && finddirs="$finddirs ${B}/lib64/${EULER_TOOLCHAIN_GCC_PATH}" @@ -71,7 +58,7 @@ do_install () { rel=$(realpath --relative-to=$(dirname $f) ${D}$destdir) ln -s $rel/$bn $(dirname $f) done - rm -r ${D}${libdir_native}/${EULER_TOOLCHAIN_SYSNAME} + rm -r ${D}${libdir_native}/${TOOLCHAIN_PREFIX} } # Package will be called as libgcc-s1. Don't know why. diff --git a/meta-openeuler/recipes-devtools/gcc/gcc-bin-toolchain-cross.bb b/meta-openeuler/recipes-devtools/gcc/gcc-bin-toolchain-cross.bb index 8e77f8a5715589210c2f07a86ba78b11567b231a..cd2055d880611e093771a8465cef7abddd8b1252 100644 --- a/meta-openeuler/recipes-devtools/gcc/gcc-bin-toolchain-cross.bb +++ b/meta-openeuler/recipes-devtools/gcc/gcc-bin-toolchain-cross.bb @@ -1,8 +1,7 @@ inherit cross -inherit eulertoolchain - require gcc-bin-toolchain.inc +PN = "gcc-bin-toolchain-cross-${TARGET_ARCH}" INHIBIT_DEFAULT_DEPS = "1" INHIBIT_SYSROOT_STRIP = "1" @@ -23,9 +22,9 @@ libexecdir = "${STAGING_DIR_NATIVE}/${prefix_native}/libexec/" do_install_class-cross() { install -m 0755 -d ${D}/${STAGING_DIR_NATIVE} cp -pPR ${B}/* ${D}/${STAGING_DIR_NATIVE} - for f in ${D}/${STAGING_DIR_NATIVE}/bin/${EULER_TOOLCHAIN_SYSNAME}-*; do + for f in ${D}/${STAGING_DIR_NATIVE}/bin/${TOOLCHAIN_PREFIX}-*; do bin=$(basename ${f}) - lnk=$(basename ${f} | sed "s/^${EULER_TOOLCHAIN_SYSNAME}-/${EULER_TOOLCHAIN_TARGET_PREFIX}/g") + lnk=$(basename ${f} | sed "s/^${TOOLCHAIN_PREFIX}-/${TARGET_PREFIX}/g") ln -svf ${bin} ${D}/${STAGING_DIR_NATIVE}/bin/${lnk} done } diff --git a/meta-openeuler/recipes-devtools/gcc/gcc-bin-toolchain.inc b/meta-openeuler/recipes-devtools/gcc/gcc-bin-toolchain.inc index 38d0dff9b6c772bb43c9463198c4b475c34c45f0..f4ff4f66886a8e0f97e28087109fa496a0f4c56e 100644 --- a/meta-openeuler/recipes-devtools/gcc/gcc-bin-toolchain.inc +++ b/meta-openeuler/recipes-devtools/gcc/gcc-bin-toolchain.inc @@ -2,7 +2,9 @@ TOOLCHAIN_GCC_VERSION = "10.3.0" LICENSE = "CLOSED" SECTION = "toolchain" -EULER_TOOLCHAIN_GCC_PATH_INNER = "${EULER_TOOLCHAIN_SYSNAME}/${TOOLCHAIN_GCC_VERSION}" +TOOLCHAIN_PREFIX_arm = "arm-linux-gnueabi" +TOOLCHAIN_PREFIX_aarch64 = "aarch64-openeuler-linux-gnu" +EULER_TOOLCHAIN_GCC_PATH_INNER = "${TOOLCHAIN_PREFIX}/${TOOLCHAIN_GCC_VERSION}" EULER_TOOLCHAIN_GCC_PATH = "/gcc/${EULER_TOOLCHAIN_GCC_PATH_INNER}" python () {