瀏覽代碼

Resolve build-deps / shlibs issues

Mostly due to the inter-dependency between glibc & libgcc

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Christopher Larson 9 年之前
父節點
當前提交
362d20fac7

+ 6 - 0
core/recipes-core/glibc/glibc-locale_%.bbappend

@@ -2,3 +2,9 @@ python () {
     if d.getVar('TCMODE', True).startswith('external-sourcery'):
         d.setVar('INHIBIT_PACKAGE_DEBUG_SPLIT', '1')
 }
+
+# localedef needs libgcc & libc
+do_package[depends] += "${MLPREFIX}libgcc:do_packagedata virtual/${MLPREFIX}libc:do_packagedata"
+do_package_write_ipk[depends] += "${MLPREFIX}libgcc:do_packagedata virtual/${MLPREFIX}libc:do_packagedata"
+do_package_write_deb[depends] += "${MLPREFIX}libgcc:do_packagedata virtual/${MLPREFIX}libc:do_packagedata"
+do_package_write_rpm[depends] += "${MLPREFIX}libgcc:do_packagedata virtual/${MLPREFIX}libc:do_packagedata"

+ 6 - 0
recipes-external/gcc/gcc-runtime-external.bb

@@ -55,3 +55,9 @@ FILES_libstdc++-dev = "\
     ${libdir}/libsupc++.la \
 "
 BBCLASSEXTEND = ""
+
+# libstdc++ needs glibc
+do_package[depends] += "virtual/${MLPREFIX}libc:do_packagedata"
+do_package_write_ipk[depends] += "virtual/${MLPREFIX}libc:do_packagedata"
+do_package_write_deb[depends] += "virtual/${MLPREFIX}libc:do_packagedata"
+do_package_write_rpm[depends] += "virtual/${MLPREFIX}libc:do_packagedata"

+ 6 - 5
recipes-external/gcc/libgcc-external.bb

@@ -9,6 +9,12 @@ inherit external-toolchain
 LICENSE = "GPL-3.0-with-GCC-exception"
 PACKAGES =+ "libgcov-dev"
 
+# libgcc needs libc, but glibc's utilities need libgcc, so short-circuit the
+# interdependency here by manually specifying it rather than depending on the
+# libc packagedata.
+RDEPENDS_${PN} += "${TCLIBC}"
+INSANE_SKIP_${PN} += "build-deps"
+
 external_libroot = "${@os.path.realpath('${EXTERNAL_TOOLCHAIN_LIBROOT}').replace(os.path.realpath('${EXTERNAL_TOOLCHAIN}') + '/', '/')}"
 FILES_MIRRORS =. "${libdir}/gcc/${TARGET_SYS}/${GCC_VERSION}/|${external_libroot}/\n"
 
@@ -29,8 +35,3 @@ INSANE_SKIP_${PN}-dev += "staticdev"
 FILES_${PN}-dbg += "${base_libdir}/.debug/libgcc_s.so.*.debug"
 FILES_libgcov-dev = "${libdir}/gcc/${TARGET_SYS}/${GCC_VERSION}/libgcov.a"
 INSANE_SKIP_libgcov-dev += "staticdev"
-
-do_package[depends] += "virtual/${MLPREFIX}libc:do_packagedata"
-do_package_write_ipk[depends] += "virtual/${MLPREFIX}libc:do_packagedata"
-do_package_write_deb[depends] += "virtual/${MLPREFIX}libc:do_packagedata"
-do_package_write_rpm[depends] += "virtual/${MLPREFIX}libc:do_packagedata"

+ 6 - 0
recipes-external/glibc/glibc-external.bb

@@ -208,3 +208,9 @@ FILES_${PN}-dev[file-checksums] += "${libc_headers_file}"
 # Currently, ldd and tzcode from Sourcery G++ still have #!/bin/bash
 RDEPENDS_ldd += "bash"
 RDEPENDS_tzcode += "bash"
+
+# glibc's utils need libgcc
+do_package[depends] += "${MLPREFIX}libgcc:do_packagedata"
+do_package_write_ipk[depends] += "${MLPREFIX}libgcc:do_packagedata"
+do_package_write_deb[depends] += "${MLPREFIX}libgcc:do_packagedata"
+do_package_write_rpm[depends] += "${MLPREFIX}libgcc:do_packagedata"