From: Ross Burton Date: Mon, 4 Jan 2016 13:02:11 +0000 (+0000) Subject: gcc-sanitizers: link directly against sysroot libstc++ X-Git-Tag: 2016-4~1739 X-Git-Url: https://code.ossystems.io/gitweb?a=commitdiff_plain;h=f0f814a674faef2160fb8a041b63169c74da108e;p=openembedded-core.git gcc-sanitizers: link directly against sysroot libstc++ Instead of building a shadow libstdc++-v3 directory with symlinks to the sysroot libstdc++-v3.la, fiddle the Makefiles so that it doesn't attempt to link to a in-tree library at all. This fixes builds where .la files are not being installed into the sysroot at all. Signed-off-by: Ross Burton --- diff --git a/meta/recipes-devtools/gcc/gcc-sanitizers.inc b/meta/recipes-devtools/gcc/gcc-sanitizers.inc index a7b5d71fa0..03627ffc4b 100644 --- a/meta/recipes-devtools/gcc/gcc-sanitizers.inc +++ b/meta/recipes-devtools/gcc/gcc-sanitizers.inc @@ -21,19 +21,14 @@ do_configure () { echo "Configuring libsanitizer" rm -rf ${B}/$target/libsanitizer/ mkdir -p ${B}/$target/libsanitizer/ - # This is kind of gross, but it's an easy way to make configure happy - # without hacking it up to use the system stdc++ instead of the one it - # expects to be newly built. - rm -rf ${B}/$target/libstdc++-v3/ - mkdir -p ${B}/$target/libstdc++-v3/src/ - ln -s ${STAGING_LIBDIR}/libstdc++.la ${B}/$target/libstdc++-v3/src/ - ln -s ${STAGING_LIBDIR}/libstdc++.so ${B}/$target/libstdc++-v3/src/ cd ${B}/$target/libsanitizer/ chmod a+x ${S}/libsanitizer/configure ${S}/libsanitizer/configure ${CONFIGUREOPTS} ${EXTRA_OECONF} # Easiest way to stop bad RPATHs getting into the library since we have a # broken libtool here sed -i -e 's/hardcode_into_libs=yes/hardcode_into_libs=no/' ${B}/$target/libsanitizer/libtool + # Link to the sysroot's libstdc++ instead of one gcc thinks it just built + sed -i -e '/LIBSTDCXX_RAW_CXX_\(CXXFLAGS\|LDFLAGS\)\s*=/d' ${B}/$target/libsanitizer/*/Makefile } do_compile () {