diff options
authorRoss Burton <>2016-01-04 13:02:11 +0000
committerRichard Purdie <>2016-01-07 13:40:03 +0000
commitf0f814a674faef2160fb8a041b63169c74da108e (patch)
parentdd6998ee068f0edf20139fee80fbbf6c1347649d (diff)
gcc-sanitizers: link directly against sysroot libstc++
Instead of building a shadow libstdc++-v3 directory with symlinks to the sysroot, 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 <>
1 files changed, 2 insertions, 7 deletions
diff --git a/meta/recipes-devtools/gcc/ b/meta/recipes-devtools/gcc/
index a7b5d71fa0..03627ffc4b 100644
--- a/meta/recipes-devtools/gcc/
+++ b/meta/recipes-devtools/gcc/
@@ -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}/ ${B}/$target/libstdc++-v3/src/
- ln -s ${STAGING_LIBDIR}/ ${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 () {