All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Mike Crowe" <yocto@mac.mcrowe.com>
To: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: openembedded-core@lists.openembedded.org, Khem Raj <raj.khem@gmail.com>
Subject: Re: [OE-core] [PATCH] gcc-sanitizers: Move content from gcclibdir into libdir
Date: Sun, 28 Feb 2021 12:25:21 +0000	[thread overview]
Message-ID: <20210228122521.GA5878@mcrowe.com> (raw)
In-Reply-To: <YDpe+v5had6dt56Z@piout.net>

On Saturday 27 February 2021 at 16:02:18 +0100, Alexandre Belloni wrote:
> 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.

Removing the gcc/ part of the path added to FILES_${PN} seems to solve the
problem for me. I'm not sure why I didn't see that in the dunfell/usrmerge
tree that I originally wrote the fix for.

Updated patch at:
https://lists.openembedded.org/g/openembedded-core/topic/patch_v2_gcc_sanitizers/80970998?p=,,,20,0,0,0::recentpostdate%2Fsticky,,,20,2,0,80970998

Thanks.

Mike.

      parent reply	other threads:[~2021-02-28 12:25 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 ` [OE-core] " Alexandre Belloni
2021-02-27 16:30   ` Khem Raj
2021-02-28 12:25   ` Mike Crowe [this message]

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=20210228122521.GA5878@mcrowe.com \
    --to=yocto@mac.mcrowe.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=raj.khem@gmail.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.