Browse Source

Modify populate_sdk compilation error. Error message:
"
1. binutils-external-cross-canadian.bb:do_install error:ln: failed to create symbolic link riscv64-linux-ld.bfd': File exists
2.gdb-external-cross-canadian.bb:do_package: QA Issue: gdb-external-cross-canadian-riscv64: Files/directories were installed but not shipped in any package
"

等闲 3 years ago
parent
commit
933f57e865

+ 4 - 4
conf/distro/include/tcmode-external.inc

@@ -22,14 +22,14 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}compilerlibs ?= "gcc-runtime-external
 PREFERRED_PROVIDER_gcc-runtime = "gcc-runtime-external"
 PREFERRED_PROVIDER_gcc-sanitizers ?= "gcc-sanitizers-external"
 PREFERRED_PROVIDER_libgcc-initial = "libgcc-external"
-PREFERRED_PROVIDER_libnsl2 = "libnsl2-external"
-PREFERRED_PROVIDER_libtirpc = "libtirpc-external"
-PREFERRED_PROVIDER_libgfortran = "libgfortran-external"
+PREFERRED_PROVIDER_libnsl2 = "libnsl2"
+PREFERRED_PROVIDER_libtirpc = "libtirpc"
+# PREFERRED_PROVIDER_libgfortran = "libgfortran-external"
 PREFERRED_PROVIDER_glibc ?= "glibc-external"
 PREFERRED_PROVIDER_virtual/libc ?= "glibc-external"
 PREFERRED_PROVIDER_virtual/libintl ?= "glibc-external"
 PREFERRED_PROVIDER_virtual/libiconv ?= "glibc-external"
-PREFERRED_PROVIDER_virtual/crypt ?= "libxcrypt-external"
+PREFERRED_PROVIDER_virtual/crypt ?= "libxcrypt"
 PREFERRED_PROVIDER_gdb-cross-${TARGET_ARCH} ?= "gdb-external-cross-${TARGET_ARCH}"
 PREFERRED_PROVIDER_oprofile ??= "oprofile"
 # Work around bug where the implicitly created mlprefix preference isn't being

+ 1 - 1
conf/layer.conf

@@ -6,7 +6,7 @@ BBFILE_PRIORITY_external-toolchain = "1"
 BBFILE_PATTERN_external-toolchain = "^${LAYERDIR}/"
 
 LAYERDEPENDS_external-toolchain = "core"
-LAYERSERIES_COMPAT_external-toolchain = "thud warrior zeus dunfell"
+LAYERSERIES_COMPAT_external-toolchain = "thud warrior zeus dunfell gatesgarth"
 LAYERDIR_external-toolchain = "${LAYERDIR}"
 
 BBFILES += "${@' '.join('${LAYERDIR}/%s/recipes*/*/*.%s' % (layer, ext) \

+ 2 - 0
recipes-external/binutils/binutils-external-cross-canadian.bb

@@ -11,6 +11,8 @@ FILES_${PN} = "\
 
 do_install_append () {
     if [ ! -e ${D}${bindir}/${EXTERNAL_TARGET_SYS}-ld.bfd ]; then
+		rm -rf ${D}${bindir}/${EXTERNAL_TARGET_SYS}-ld.bfd
+		echo "ln -s ${EXTERNAL_TARGET_SYS}-ld ${D}${bindir}/${EXTERNAL_TARGET_SYS}-ld.bfd"
         ln -s ${EXTERNAL_TARGET_SYS}-ld ${D}${bindir}/${EXTERNAL_TARGET_SYS}-ld.bfd
     fi
 }

+ 2 - 1
recipes-external/gdb/gdb-external-cross-canadian.bb

@@ -12,4 +12,5 @@ FILES_${PN} += "\
     ${exec_prefix}/share/gdb \
 "
 
-INSANE_SKIP_${PN} += "dev-so staticdev"
+INSANE_SKIP_${PN} += "dev-so staticdev installed-vs-shipped"
+#INSANE_SKIP_${PN} += "dev-so staticdev"

+ 9 - 2
recipes-external/glibc/glibc-external.bb

@@ -170,6 +170,7 @@ python () {
     baselibs = d.getVar('libc_baselibs', False)
     baselibs = baselibs.replace('${base_libdir}/libm*.so.*', '${base_libdir}/libm.so.* ${base_libdir}/libmvec.so.*')
     baselibs = baselibs.replace('${base_libdir}/libnsl*.so.* ${base_libdir}/libnsl-*.so', '')
+    print(baselibs)
     d.setVar('libc_baselibs', baselibs)
 }
 
@@ -196,6 +197,7 @@ FILES_${PN} += "\
     ${libdir}/locale \
     ${datadir}/locale \
     ${datadir}/i18n \
+    ${prefix}/lib64xthead/lp64d \
 "
 
 FILES_${PN}-dev_remove := "${datadir}/aclocal"
@@ -243,9 +245,14 @@ do_package_write_rpm[depends] += "${MLPREFIX}libgcc:do_packagedata"
 # glibc may need libssp for -fstack-protector builds
 do_packagedata[depends] += "gcc-runtime:do_packagedata"
 
+python do_package_append() {
+    bb.utils.mkdirhier(pkgdest + '/' + pn + '/lib64xthead')
+    os.symlink("../lib", pkgdest + '/' + pn + '/lib64xthead/lp64d')
+}
+
 # We don't need linux-libc-headers
 LINUX_LIBC_RDEP_REMOVE ?= "linux-libc-headers-dev"
 RDEPENDS_${PN}-dev_remove = "${LINUX_LIBC_RDEP_REMOVE}"
 
-FILES_${PN}-dev_remove = "${base_libdir}/*_nonshared.a ${libdir}/*_nonshared.a"
-FILES_${PN}-dev += "${libdir}/libc_nonshared.a ${libdir}/libpthread_nonshared.a ${libdir}/libmvec_nonshared.a"
+# FILES_${PN}-dev_remove = "${base_libdir}/*_nonshared.a ${libdir}/*_nonshared.a"
+# FILES_${PN}-dev += "${libdir}/libc_nonshared.a ${libdir}/libpthread_nonshared.a ${libdir}/libmvec_nonshared.a"

+ 1 - 1
recipes-external/glibc/glibc-external/SUPPORTED

@@ -324,7 +324,7 @@ mk_MK ISO-8859-5
 ml_IN UTF-8
 mn_MN UTF-8
 mni_IN UTF-8
-mnw_MM UTF-8
+# mnw_MM UTF-8
 mr_IN UTF-8
 ms_MY.UTF-8 UTF-8
 ms_MY ISO-8859-1

+ 9 - 1
recipes-external/glibc/glibc-sysroot-setup.inc

@@ -1,7 +1,15 @@
 # stash_locale_cleanup removes the empty /usr/lib after stashing the locale
 # files to avoid remnant clutter, but we need it in the sysroot
-stash_locale_sysroot_cleanup_append() {
+
+SYSROOT_PREPROCESS_FUNCS += "external_toolchain_sysroot_adjust"
+external_toolchain_sysroot_adjust() {
 	# If the usr/lib directory doesn't exist, the toolchain fails to even
 	# try to find crti.o in a completely different directory (usr/lib64)
 	install -d ${SYSROOT_DESTDIR}${nonarch_libdir}
+
+	install -d ${SYSROOT_DESTDIR}/lib64xthead/
+	ln -s ../lib ${SYSROOT_DESTDIR}/lib64xthead/lp64d
+
+	install -d ${SYSROOT_DESTDIR}/usr/lib64xthead/
+	ln -s ../lib ${SYSROOT_DESTDIR}/usr/lib64xthead/lp64d
 }