From d53aba601e3d1e845f1f28b51e11087ec75f6541 Mon Sep 17 00:00:00 2001 From: Christopher Larson Date: Wed, 6 Feb 2019 22:11:39 +0000 Subject: [PATCH] {glibc,gcc-runtime}: fix warnings about libssp for builds with security flags This can be dropped if and when the toolchain gets built without libssp, which is the default in oe-core. We don't need gcc's libssp anyway, since glibc provides it already, and musl has the separate libssp_nonshared lib to supplement, which is in oe-core. JIRA: SB-12465 Signed-off-by: Christopher Larson --- recipes-external/gcc/gcc-runtime-external.bb | 15 ++++++++++++++- recipes-external/glibc/glibc-external.bb | 3 +++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/recipes-external/gcc/gcc-runtime-external.bb b/recipes-external/gcc/gcc-runtime-external.bb index ec1c04a..1d9062f 100644 --- a/recipes-external/gcc/gcc-runtime-external.bb +++ b/recipes-external/gcc/gcc-runtime-external.bb @@ -59,4 +59,17 @@ FILES_libgomp-dev += "\ " BBCLASSEXTEND = "" -do_package[depends] += "virtual/${MLPREFIX}libc:do_packagedata" +# gcc-runtime needs libc, but glibc's utilities need libssp in some cases, so +# short-circuit the interdependency here by manually specifying it rather than +# depending on the libc packagedata. +libc_rdep = "${@'${PREFERRED_PROVIDER_virtual/libc}' if '${PREFERRED_PROVIDER_virtual/libc}' else '${TCLIBC}'}" +RDEPENDS_libgomp += "${libc_rdep}" +RDEPENDS_libssp += "${libc_rdep}" +RDEPENDS_libstdc++ += "${libc_rdep}" +RDEPENDS_libatomic += "${libc_rdep}" +RDEPENDS_libquadmath += "${libc_rdep}" +RDEPENDS_libmpx += "${libc_rdep}" + +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" diff --git a/recipes-external/glibc/glibc-external.bb b/recipes-external/glibc/glibc-external.bb index 344fb07..22e417f 100644 --- a/recipes-external/glibc/glibc-external.bb +++ b/recipes-external/glibc/glibc-external.bb @@ -225,5 +225,8 @@ 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" +# glibc may need libssp for -fstack-protector builds +do_packagedata[depends] += "gcc-runtime:do_packagedata" + 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"