]> code.ossystems Code Review - openembedded-core.git/commitdiff
gcc-runtime: improve reproducibility
authorJuro Bystricky <juro.bystricky@intel.com>
Thu, 4 Jan 2018 20:24:01 +0000 (12:24 -0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 5 Jan 2018 11:54:57 +0000 (11:54 +0000)
Remove various build host references from packages:

libstdc++
libstdc++-staticdev
gcc-runtime-dbg

The references are removoved by correctly setting various compiler
-fdebug-prefix-map settings. There are two main issues:
The default DEBUG_PREFIX_MAP variable references WORKDIR, however,
gcc sources are in a shared folder (work-shared)/
Additionally, DWARF info seems to store symlink names but gcc
seems to resolve symlink names referenced in -fdebug-prefix-map.

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-devtools/gcc/gcc-runtime.inc

index d3d4bd36a88cc3f5264cf54bfb7b66b6dbece2ea..7629fa56ff6b8bdf739854d7f4f9bdfceb1e680f 100644 (file)
@@ -34,6 +34,18 @@ RUNTIMETARGET_remove_libc-musl = "libmpx"
 # libmudflap
 # libgfortran needs separate recipe due to libquadmath dependency
 
+SLIB = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}"
+SLIB_NEW = "/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}"
+
+DEBUG_PREFIX_MAP_class-target = " \
+   -fdebug-prefix-map=${WORKDIR}/recipe-sysroot= \
+   -fdebug-prefix-map=${WORKDIR}/recipe-sysroot-native= \
+   -fdebug-prefix-map=${SLIB}=${SLIB_NEW} \
+   -fdebug-prefix-map=${SLIB}/include=${SLIB_NEW}/libstdc++-v3/../include \
+   -fdebug-prefix-map=${SLIB}/libiberty=${SLIB_NEW}/libstdc++-v3/../libiberty \
+   -fdebug-prefix-map=${B}=${SLIB_NEW} \
+   "
+
 do_configure () {
        export CXX="${CXX} -nostdinc++ -nostdlib++"
        for d in libgcc ${RUNTIMETARGET}; do