Patchwork rpm: fix probably redundant RPATH issue

login
register
mail settings
Submitter Zhenhua Luo
Date March 21, 2013, 7 a.m.
Message ID <1363849246-9294-1-git-send-email-zhenhua.luo@freescale.com>
Download mbox | patch
Permalink /patch/46615/
State New
Headers show

Comments

Zhenhua Luo - March 21, 2013, 7 a.m.
Clear the rpath define to fix below build issue:
ERROR: QA Issue: rpm-build: /work/ppce500mc-fsl_networking-linux/rpm/5.4.9-r61/packages-split/rpm-build/usr/lib/rpm/bin/sqlite3 contains probably-redundant RPATH /usr/lib/../lib
ERROR: QA Issue: rpm-build: /work/ppce500mc-fsl_networking-linux/rpm/5.4.9-r61/packages-split/rpm-build/usr/lib/rpm/bin/cp contains probably-redundant RPATH /usr/lib/../lib
...

Signed-off-by: Zhenhua Luo <zhenhua.luo@freescale.com>
---
 meta/recipes-devtools/rpm/rpm_5.4.9.bb |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
Richard Purdie - March 21, 2013, 9:32 a.m.
On Thu, 2013-03-21 at 15:00 +0800, Zhenhua Luo wrote:
> Clear the rpath define to fix below build issue:
> ERROR: QA Issue: rpm-build: /work/ppce500mc-fsl_networking-linux/rpm/5.4.9-r61/packages-split/rpm-build/usr/lib/rpm/bin/sqlite3 contains probably-redundant RPATH /usr/lib/../lib
> ERROR: QA Issue: rpm-build: /work/ppce500mc-fsl_networking-linux/rpm/5.4.9-r61/packages-split/rpm-build/usr/lib/rpm/bin/cp contains probably-redundant RPATH /usr/lib/../lib
> ...
> 
> Signed-off-by: Zhenhua Luo <zhenhua.luo@freescale.com>
> ---
>  meta/recipes-devtools/rpm/rpm_5.4.9.bb |    5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/meta/recipes-devtools/rpm/rpm_5.4.9.bb b/meta/recipes-devtools/rpm/rpm_5.4.9.bb
> index cfdc390..12a1642 100644
> --- a/meta/recipes-devtools/rpm/rpm_5.4.9.bb
> +++ b/meta/recipes-devtools/rpm/rpm_5.4.9.bb
> @@ -43,7 +43,7 @@ LICENSE = "LGPLv2.1"
>  LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1"
>  
>  DEPENDS = "libpcre attr acl popt ossp-uuid file bison-native"
> -PR = "r62"
> +PR = "r63"
>  
>  # rpm2cpio is a shell script, which is part of the rpm src.rpm.  It is needed
>  # in order to extract the distribution SRPM into a format we can extract...
> @@ -368,6 +368,9 @@ do_configure() {
>  	sed -e 's/pkg-config --exists uuid/pkg-config --exists ossp-uuid/g' \
>  	    -e 's/pkg-config uuid/pkg-config ossp-uuid/g' -i ${S}/configure
>  
> +        # Clear hardcode_libdir_flag_spec to avoid redundant rpath definition
> +        sed -i 's/hardcode_libdir_flag_spec=$lt.*/hardcode_libdir_flag_spec=/g' ${S}/configure
> +
>  	export varprefix=${localstatedir}
>  	oe_runconf
>  }

We're seeing a few of these and we're going to end up adding this hack
to every recipe. I'd like to figure out what in libtool is doing this
and fix the libtool patches so it doesn't happen. There must be some
path normalisation issue in there somewhere.

Is there an easy way to reproduce this issue?

Cheers,

Richard
Zhenhua Luo - March 21, 2013, 12:29 p.m.
The issue can be reproduced with FSL toolchain which has not been published yet. 

I am not sure if the issue can be reproduced with Yocto default toolchain. 


Best Regards,

Zhenhua


> -----Original Message-----
> From: Richard Purdie [mailto:richard.purdie@linuxfoundation.org]
> Sent: Thursday, March 21, 2013 5:32 PM
> To: Luo Zhenhua-B19537
> Cc: openembedded-core@lists.openembedded.org; Guo Chunrong-B40290
> Subject: Re: [OE-core] [oe-core] rpm: fix probably redundant RPATH issue
> 
> On Thu, 2013-03-21 at 15:00 +0800, Zhenhua Luo wrote:
> > Clear the rpath define to fix below build issue:
> > ERROR: QA Issue: rpm-build:
> > /work/ppce500mc-fsl_networking-linux/rpm/5.4.9-r61/packages-split/rpm-
> > build/usr/lib/rpm/bin/sqlite3 contains probably-redundant RPATH
> > /usr/lib/../lib
> > ERROR: QA Issue: rpm-build:
> > /work/ppce500mc-fsl_networking-linux/rpm/5.4.9-r61/packages-split/rpm-
> build/usr/lib/rpm/bin/cp contains probably-redundant RPATH
> /usr/lib/../lib ...
> >
> > Signed-off-by: Zhenhua Luo <zhenhua.luo@freescale.com>
> > ---
> >  meta/recipes-devtools/rpm/rpm_5.4.9.bb |    5 ++++-
> >  1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/meta/recipes-devtools/rpm/rpm_5.4.9.bb
> > b/meta/recipes-devtools/rpm/rpm_5.4.9.bb
> > index cfdc390..12a1642 100644
> > --- a/meta/recipes-devtools/rpm/rpm_5.4.9.bb
> > +++ b/meta/recipes-devtools/rpm/rpm_5.4.9.bb
> > @@ -43,7 +43,7 @@ LICENSE = "LGPLv2.1"
> >  LIC_FILES_CHKSUM =
> "file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1"
> >
> >  DEPENDS = "libpcre attr acl popt ossp-uuid file bison-native"
> > -PR = "r62"
> > +PR = "r63"
> >
> >  # rpm2cpio is a shell script, which is part of the rpm src.rpm.  It
> > is needed  # in order to extract the distribution SRPM into a format we
> can extract...
> > @@ -368,6 +368,9 @@ do_configure() {
> >  	sed -e 's/pkg-config --exists uuid/pkg-config --exists ossp-uuid/g'
> \
> >  	    -e 's/pkg-config uuid/pkg-config ossp-uuid/g' -i ${S}/configure
> >
> > +        # Clear hardcode_libdir_flag_spec to avoid redundant rpath
> definition
> > +        sed -i
> > + 's/hardcode_libdir_flag_spec=$lt.*/hardcode_libdir_flag_spec=/g'
> > + ${S}/configure
> > +
> >  	export varprefix=${localstatedir}
> >  	oe_runconf
> >  }
> 
> We're seeing a few of these and we're going to end up adding this hack to
> every recipe. I'd like to figure out what in libtool is doing this and
> fix the libtool patches so it doesn't happen. There must be some path
> normalisation issue in there somewhere.
> 
> Is there an easy way to reproduce this issue?
> 
> Cheers,
> 
> Richard
>
Richard Purdie - March 22, 2013, 4:50 p.m.
On Thu, 2013-03-21 at 12:29 +0000, Luo Zhenhua-B19537 wrote:
> The issue can be reproduced with FSL toolchain which has not been published yet. 
> 
> I am not sure if the issue can be reproduced with Yocto default toolchain. 

I'm going to guess that you have "lib/../lib" entries in some of your
external toolchain .la files. The question is therefore whether we can
better deal with this. I think other recipes will have this problem and
we need to fix libtool to better handle it.

Cheers,

Richard

Patch

diff --git a/meta/recipes-devtools/rpm/rpm_5.4.9.bb b/meta/recipes-devtools/rpm/rpm_5.4.9.bb
index cfdc390..12a1642 100644
--- a/meta/recipes-devtools/rpm/rpm_5.4.9.bb
+++ b/meta/recipes-devtools/rpm/rpm_5.4.9.bb
@@ -43,7 +43,7 @@  LICENSE = "LGPLv2.1"
 LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1"
 
 DEPENDS = "libpcre attr acl popt ossp-uuid file bison-native"
-PR = "r62"
+PR = "r63"
 
 # rpm2cpio is a shell script, which is part of the rpm src.rpm.  It is needed
 # in order to extract the distribution SRPM into a format we can extract...
@@ -368,6 +368,9 @@  do_configure() {
 	sed -e 's/pkg-config --exists uuid/pkg-config --exists ossp-uuid/g' \
 	    -e 's/pkg-config uuid/pkg-config ossp-uuid/g' -i ${S}/configure
 
+        # Clear hardcode_libdir_flag_spec to avoid redundant rpath definition
+        sed -i 's/hardcode_libdir_flag_spec=$lt.*/hardcode_libdir_flag_spec=/g' ${S}/configure
+
 	export varprefix=${localstatedir}
 	oe_runconf
 }