From: "Alexandre Belloni" <alexandre.belloni@bootlin.com>
To: yocto@mac.mcrowe.com
Cc: openembedded-core@lists.openembedded.org,
Mike Crowe <mac@mcrowe.com>, Khem Raj <raj.khem@gmail.com>
Subject: Re: [OE-core] [PATCH] gcc-sanitizers: Move content from gcclibdir into libdir
Date: Sat, 27 Feb 2021 16:02:18 +0100 [thread overview]
Message-ID: <YDpe+v5had6dt56Z@piout.net> (raw)
In-Reply-To: <20210225173653.2408-1-mac@mcrowe.com>
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 <mac@mcrowe.com>
> Cc: Khem Raj <raj.khem@gmail.com>
> ---
> 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
next prev parent reply other threads:[~2021-02-27 15:02 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-25 17:36 [PATCH] gcc-sanitizers: Move content from gcclibdir into libdir Mike Crowe
2021-02-25 18:27 ` Khem Raj
2021-02-27 15:02 ` Alexandre Belloni [this message]
2021-02-27 16:30 ` [OE-core] " Khem Raj
2021-02-28 12:25 ` Mike Crowe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YDpe+v5had6dt56Z@piout.net \
--to=alexandre.belloni@bootlin.com \
--cc=mac@mcrowe.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=raj.khem@gmail.com \
--cc=yocto@mac.mcrowe.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.