Hello, On 25/02/2021 17:36:53+0000, Mike Crowe via lists.openembedded.org wrote: > In e9e5744ba8b0d43c8b874d365f83071ce20bf0a1, Khem Raj wrote: > > OE does not use the traditional /usr/lib/gcc prefix to store > > gcc-runtime it basically is moved into libdir, however some newer > > files were installed by newer versions of gcc especially libgomp ( > > omp.h openacc.h ) into gcclibdir, so we have content in both > > directories, this confuses other tools which are trying to guess the > > gcc installation and its runtime location, since now we have two > > directories, the tools either choose one or other and we get > > inconsistent behavior, e.g. clang for aarch64 uses /usr/lib but same > > clang for riscv64 chose /usr/lib/gcc > > > This change ensures that OE ends up with single valid location for gcc > > runtime files > > I think that the same thing needs to happen in gcc-sanitizers.inc, > otherwise I get errors like: > > | .../recipe-sysroot/usr/include/gpg-error-64.h:884:11: fatal error: > sanitizer/lsan_interface.h: No such file or directory > > when attempting to compile with sanitizers enabled. > > Signed-off-by: Mike Crowe <[email protected]> > Cc: Khem Raj <[email protected]> > --- > meta/recipes-devtools/gcc/gcc-sanitizers.inc | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/meta/recipes-devtools/gcc/gcc-sanitizers.inc > b/meta/recipes-devtools/gcc/gcc-sanitizers.inc > index 668e14a59f..67b755edf8 100644 > --- a/meta/recipes-devtools/gcc/gcc-sanitizers.inc > +++ b/meta/recipes-devtools/gcc/gcc-sanitizers.inc > @@ -35,6 +35,11 @@ do_compile () { > do_install () { > cd ${B}/${TARGET_SYS}/libsanitizer/ > oe_runmake 'DESTDIR=${D}' MULTIBUILDTOP=${B}/${TARGET_SYS}/libsanitizer/ > install > + if [ -d ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include ]; then > + install -d ${D}${libdir}/${TARGET_SYS}/${BINV}/include > + mv ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include/* > ${D}${libdir}/${TARGET_SYS}/${BINV}/include > + rmdir --ignore-fail-on-non-empty -p > ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include > + fi > if [ -d ${D}${infodir} ]; then > rmdir --ignore-fail-on-non-empty -p ${D}${infodir} > fi
This seems to result in the following erro on the autobuilders: ERROR: gcc-sanitizers-10.2.0-r0 do_package: QA Issue: gcc-sanitizers: Files/directories were installed but not shipped in any package: /usr/lib/i686-poky-linux /usr/lib/i686-poky-linux/10.2.0 /usr/lib/i686-poky-linux/10.2.0/include /usr/lib/i686-poky-linux/10.2.0/include/sanitizer /usr/lib/i686-poky-linux/10.2.0/include/sanitizer/common_interface_defs.h /usr/lib/i686-poky-linux/10.2.0/include/sanitizer/lsan_interface.h /usr/lib/i686-poky-linux/10.2.0/include/sanitizer/asan_interface.h /usr/lib/i686-poky-linux/10.2.0/include/sanitizer/tsan_interface.h Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install. gcc-sanitizers: 8 installed and not shipped files. [installed-vs-shipped] ERROR: gcc-sanitizers-10.2.0-r0 do_package: Fatal QA errors found, failing task. It seems to be an easy one to fix. Regards, -- Alexandre Belloni, co-owner and COO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#148724): https://lists.openembedded.org/g/openembedded-core/message/148724 Mute This Topic: https://lists.openembedded.org/mt/80907601/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
