diff options
author | Ross Burton <ross.burton@intel.com> | 2016-01-04 13:02:11 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-01-07 13:40:15 +0000 |
commit | d462b70b29d7a26c67bb3546d5d6797f138395c5 (patch) | |
tree | 2d057415fb254f06fd6b2ecc3c4c7baae1529c74 | |
parent | 3eb6135d8958037b4e81c7ab034d9be2e5c20899 (diff) | |
download | poky-d462b70b29d7a26c67bb3546d5d6797f138395c5.tar.gz |
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.
(From OE-Core rev: f0f814a674faef2160fb8a041b63169c74da108e)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/recipes-devtools/gcc/gcc-sanitizers.inc | 9 |
1 files changed, 2 insertions, 7 deletions
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 () { | |||
21 | echo "Configuring libsanitizer" | 21 | echo "Configuring libsanitizer" |
22 | rm -rf ${B}/$target/libsanitizer/ | 22 | rm -rf ${B}/$target/libsanitizer/ |
23 | mkdir -p ${B}/$target/libsanitizer/ | 23 | mkdir -p ${B}/$target/libsanitizer/ |
24 | # This is kind of gross, but it's an easy way to make configure happy | ||
25 | # without hacking it up to use the system stdc++ instead of the one it | ||
26 | # expects to be newly built. | ||
27 | rm -rf ${B}/$target/libstdc++-v3/ | ||
28 | mkdir -p ${B}/$target/libstdc++-v3/src/ | ||
29 | ln -s ${STAGING_LIBDIR}/libstdc++.la ${B}/$target/libstdc++-v3/src/ | ||
30 | ln -s ${STAGING_LIBDIR}/libstdc++.so ${B}/$target/libstdc++-v3/src/ | ||
31 | cd ${B}/$target/libsanitizer/ | 24 | cd ${B}/$target/libsanitizer/ |
32 | chmod a+x ${S}/libsanitizer/configure | 25 | chmod a+x ${S}/libsanitizer/configure |
33 | ${S}/libsanitizer/configure ${CONFIGUREOPTS} ${EXTRA_OECONF} | 26 | ${S}/libsanitizer/configure ${CONFIGUREOPTS} ${EXTRA_OECONF} |
34 | # Easiest way to stop bad RPATHs getting into the library since we have a | 27 | # Easiest way to stop bad RPATHs getting into the library since we have a |
35 | # broken libtool here | 28 | # broken libtool here |
36 | sed -i -e 's/hardcode_into_libs=yes/hardcode_into_libs=no/' ${B}/$target/libsanitizer/libtool | 29 | sed -i -e 's/hardcode_into_libs=yes/hardcode_into_libs=no/' ${B}/$target/libsanitizer/libtool |
30 | # Link to the sysroot's libstdc++ instead of one gcc thinks it just built | ||
31 | sed -i -e '/LIBSTDCXX_RAW_CXX_\(CXXFLAGS\|LDFLAGS\)\s*=/d' ${B}/$target/libsanitizer/*/Makefile | ||
37 | } | 32 | } |
38 | 33 | ||
39 | do_compile () { | 34 | do_compile () { |