All of lore.kernel.org
 help / color / mirror / Atom feed
* RPATH in many modules
@ 2010-10-02 11:39 Holger Freyther
  2010-10-02 20:34 ` Khem Raj
  2010-10-03  7:24 ` Koen Kooi
  0 siblings, 2 replies; 8+ messages in thread
From: Holger Freyther @ 2010-10-02 11:39 UTC (permalink / raw)
  To: openembedded-devel

[-- Attachment #1: Type: text/plain, Size: 431 bytes --]

Hi all,

today I wanted to make the generated toolchain free of RPATH and I was a bit
surprised to see that even the target libraries contain the rpath and that it
is not caught by insane.bbclass.

I have added a more strict check to insane.bbclass to uncover the issue and I
am fighting neon and its manual libtool usage right now... it might be just
easier to use chrpath to fix the resulting libraries.

any opinion?

[-- Attachment #2: 0001-insane.bbclass-Check-for-RPATH-to-the-sysroot-and-co.patch --]
[-- Type: text/x-patch, Size: 1396 bytes --]

From 18a9dbf4d6925a789e5ecf2852e094c0b1d851fe Mon Sep 17 00:00:00 2001
From: Holger Hans Peter Freyther <zecke@selfish.org>
Date: Sat, 2 Oct 2010 17:14:33 +0800
Subject: [PATCH] insane.bbclass: Check for RPATH to the sysroot and complain

For non-native packages having an rpath to the sysroot is
considered harmful and needs to be fixed. This uncovered
issues in neon and other packages.
---
 classes/insane.bbclass |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/classes/insane.bbclass b/classes/insane.bbclass
index 5afa63c..0515158 100644
--- a/classes/insane.bbclass
+++ b/classes/insane.bbclass
@@ -168,10 +168,13 @@ def package_qa_check_rpath(file,name,d, elf):
     if not bad_dir in bb.data.getVar('WORKDIR', d, True):
         bb.fatal("This class assumed that WORKDIR is ${TMPDIR}/work... Not doing any check")
 
+    sysroot = bb.data.getVar('STAGING_DIR_HOST', d, True)
+    native = bb.data.inherits_class('native', d)
+
     output = os.popen("%s -B -F%%r#F '%s'" % (scanelf,file))
     txt    = output.readline().split()
     for line in txt:
-        if bad_dir in line:
+        if bad_dir in line or (not native and sysroot in line):
             error_msg = "package %s contains bad RPATH %s in file %s" % (name, line, file)
             sane = package_qa_handle_error(1, error_msg, name, file, d)
 
-- 
1.7.3.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: RPATH in many modules
  2010-10-02 11:39 RPATH in many modules Holger Freyther
@ 2010-10-02 20:34 ` Khem Raj
  2010-10-03  2:02   ` Tom Rini
  2010-10-03  7:24 ` Koen Kooi
  1 sibling, 1 reply; 8+ messages in thread
From: Khem Raj @ 2010-10-02 20:34 UTC (permalink / raw)
  To: openembedded-devel

On Sat, Oct 2, 2010 at 4:39 AM, Holger Freyther <holger+oe@freyther.de> wrote:
> Hi all,
>
> today I wanted to make the generated toolchain free of RPATH and I was a bit
> surprised to see that even the target libraries contain the rpath and that it
> is not caught by insane.bbclass.
>
> I have added a more strict check to insane.bbclass to uncover the issue and I
> am fighting neon and its manual libtool usage right now... it might be just
> easier to use chrpath to fix the resulting libraries.
>
> any opinion?

I think we should try to get the rpaths right without chrpath. so your
insane patch
seems ok. May be to avoid lot of packages failing this could be turned
on as a warning
and once we fix the packages failing this then we could turn it into error.
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
>
>



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: RPATH in many modules
  2010-10-02 20:34 ` Khem Raj
@ 2010-10-03  2:02   ` Tom Rini
  0 siblings, 0 replies; 8+ messages in thread
From: Tom Rini @ 2010-10-03  2:02 UTC (permalink / raw)
  To: openembedded-devel

Khem Raj wrote:
> On Sat, Oct 2, 2010 at 4:39 AM, Holger Freyther <holger+oe@freyther.de> wrote:
>> Hi all,
>>
>> today I wanted to make the generated toolchain free of RPATH and I was a bit
>> surprised to see that even the target libraries contain the rpath and that it
>> is not caught by insane.bbclass.
>>
>> I have added a more strict check to insane.bbclass to uncover the issue and I
>> am fighting neon and its manual libtool usage right now... it might be just
>> easier to use chrpath to fix the resulting libraries.
>>
>> any opinion?
> 
> I think we should try to get the rpaths right without chrpath. so your
> insane patch
> seems ok. May be to avoid lot of packages failing this could be turned
> on as a warning
> and once we fix the packages failing this then we could turn it into error.

Initial link time $ORIGIN being correct is a lot more complex than being 
wrong and fixing it up.  I got it being correct for the non-autoconf 
case and then made autotools.bbclass also get it right initially and 
then patched gcc/gdb/binutils (which are the difficult ones that run 
configure again) but it's really much more work.  I'll try and RFC the 
patches on Monday, if I've still got the branch around.

-- 
Tom Rini
Mentor Graphics Corporation



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: RPATH in many modules
  2010-10-02 11:39 RPATH in many modules Holger Freyther
  2010-10-02 20:34 ` Khem Raj
@ 2010-10-03  7:24 ` Koen Kooi
  2010-10-03  7:32   ` Holger Freyther
  1 sibling, 1 reply; 8+ messages in thread
From: Koen Kooi @ 2010-10-03  7:24 UTC (permalink / raw)
  To: openembedded-devel

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 02-10-10 13:39, Holger Freyther wrote:
> Hi all,
> 
> today I wanted to make the generated toolchain free of RPATH and I was a bit
> surprised to see that even the target libraries contain the rpath and that it
> is not caught by insane.bbclass.

Could you fix the patch to say to which (wrong) sysroot it points to?

MACHINE=beagleboard bitbake libcdio

rpath -> sysroots/x86 or rpath -> sysroots/armv7a or both?

> I have added a more strict check to insane.bbclass to uncover the issue and I
> am fighting neon and its manual libtool usage right now... it might be just
> easier to use chrpath to fix the resulting libraries.

When we last tried chrpath didn't work in cross mode :(

regards,

Koen
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)

iD8DBQFMqC+/MkyGM64RGpERAqVpAKCS2VBvuPMWQ/nMdkjSDiJVcicGaACfeXqA
gT+GXn22hC1/iTEoULjZa5w=
=6ut2
-----END PGP SIGNATURE-----




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: RPATH in many modules
  2010-10-03  7:24 ` Koen Kooi
@ 2010-10-03  7:32   ` Holger Freyther
  2010-10-03  7:37     ` Koen Kooi
  0 siblings, 1 reply; 8+ messages in thread
From: Holger Freyther @ 2010-10-03  7:32 UTC (permalink / raw)
  To: openembedded-devel

On 10/03/2010 03:24 PM, Koen Kooi wrote:

> Could you fix the patch to say to which (wrong) sysroot it points to?
> 
> MACHINE=beagleboard bitbake libcdio
> 
> rpath -> sysroots/x86 or rpath -> sysroots/armv7a or both?

ERROR: QA Issue with libgettextlib: package libgettextlib contains bad RPATH
/home/ich/build/arm/xscale/tmp/sysroots/armv5te-angstrom-linux-gnueabi/usr/lib
in file
/home/ich/build/arm/xscale/tmp/work/armv5te-angstrom-linux-gnueabi/gettext-0.18-r3/packages-split/libgettextlib/usr/lib/libgettextlib-0.18.so

Can you propose a better wording? From the above I try to indicate that
/home/ich/build/arm/xscale/tmp/sysroots/armv5te-angstrom-linux-gnueabi/usr/lib
is the bad RPATH and that it is inside the libgettextlib-0.18.so


> When we last tried chrpath didn't work in cross mode :(

hmm... maybe it is something simple... :}



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: RPATH in many modules
  2010-10-03  7:32   ` Holger Freyther
@ 2010-10-03  7:37     ` Koen Kooi
  2010-10-03 20:46       ` Khem Raj
  0 siblings, 1 reply; 8+ messages in thread
From: Koen Kooi @ 2010-10-03  7:37 UTC (permalink / raw)
  To: openembedded-devel

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 03-10-10 09:32, Holger Freyther wrote:
> On 10/03/2010 03:24 PM, Koen Kooi wrote:
> 
>> Could you fix the patch to say to which (wrong) sysroot it points to?
>>
>> MACHINE=beagleboard bitbake libcdio
>>
>> rpath -> sysroots/x86 or rpath -> sysroots/armv7a or both?
> 
> ERROR: QA Issue with libgettextlib: package libgettextlib contains bad RPATH
> /home/ich/build/arm/xscale/tmp/sysroots/armv5te-angstrom-linux-gnueabi/usr/lib
> in file
> /home/ich/build/arm/xscale/tmp/work/armv5te-angstrom-linux-gnueabi/gettext-0.18-r3/packages-split/libgettextlib/usr/lib/libgettextlib-0.18.so
> 
> Can you propose a better wording? From the above I try to indicate that
> /home/ich/build/arm/xscale/tmp/sysroots/armv5te-angstrom-linux-gnueabi/usr/lib
> is the bad RPATH and that it is inside the libgettextlib-0.18.so

"Target libs and apps contain a bad RPATH to the target sysroot e.g.
/tmp/sysroots/armv5te-angstrom-linux-gnueabi/usr/lib" ?

>> When we last tried chrpath didn't work in cross mode :(
> 
> hmm... maybe it is something simple... :}

I certainly hope so!
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)

iD8DBQFMqDK4MkyGM64RGpERAntvAJ4ra8cYKuiT/QrkcB/5Jb2EHzPkZwCgq1/8
q4Hur7dh657M+0YRlRxSnRo=
=CytO
-----END PGP SIGNATURE-----




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: RPATH in many modules
  2010-10-03  7:37     ` Koen Kooi
@ 2010-10-03 20:46       ` Khem Raj
  2010-10-04 21:08         ` Denys Dmytriyenko
  0 siblings, 1 reply; 8+ messages in thread
From: Khem Raj @ 2010-10-03 20:46 UTC (permalink / raw)
  To: openembedded-devel

On Sun, Oct 3, 2010 at 12:37 AM, Koen Kooi <k.kooi@student.utwente.nl> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 03-10-10 09:32, Holger Freyther wrote:
>> On 10/03/2010 03:24 PM, Koen Kooi wrote:
>>
>>> Could you fix the patch to say to which (wrong) sysroot it points to?
>>>
>>> MACHINE=beagleboard bitbake libcdio
>>>
>>> rpath -> sysroots/x86 or rpath -> sysroots/armv7a or both?
>>
>> ERROR: QA Issue with libgettextlib: package libgettextlib contains bad RPATH
>> /home/ich/build/arm/xscale/tmp/sysroots/armv5te-angstrom-linux-gnueabi/usr/lib
>> in file
>> /home/ich/build/arm/xscale/tmp/work/armv5te-angstrom-linux-gnueabi/gettext-0.18-r3/packages-split/libgettextlib/usr/lib/libgettextlib-0.18.so
>>
>> Can you propose a better wording? From the above I try to indicate that
>> /home/ich/build/arm/xscale/tmp/sysroots/armv5te-angstrom-linux-gnueabi/usr/lib
>> is the bad RPATH and that it is inside the libgettextlib-0.18.so
>
> "Target libs and apps contain a bad RPATH to the target sysroot e.g.
> /tmp/sysroots/armv5te-angstrom-linux-gnueabi/usr/lib" ?

I am working on libtool 2.4 upgrade which has sysroot support. I am
hoping it will help us in fixing this kind
of problems.

>
>>> When we last tried chrpath didn't work in cross mode :(
>>
>> hmm... maybe it is something simple... :}
>
> I certainly hope so!
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.5 (Darwin)
>
> iD8DBQFMqDK4MkyGM64RGpERAntvAJ4ra8cYKuiT/QrkcB/5Jb2EHzPkZwCgq1/8
> q4Hur7dh657M+0YRlRxSnRo=
> =CytO
> -----END PGP SIGNATURE-----
>
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
>



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: RPATH in many modules
  2010-10-03 20:46       ` Khem Raj
@ 2010-10-04 21:08         ` Denys Dmytriyenko
  0 siblings, 0 replies; 8+ messages in thread
From: Denys Dmytriyenko @ 2010-10-04 21:08 UTC (permalink / raw)
  To: openembedded-devel

On Sun, Oct 03, 2010 at 01:46:41PM -0700, Khem Raj wrote:
> On Sun, Oct 3, 2010 at 12:37 AM, Koen Kooi <k.kooi@student.utwente.nl> wrote:
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> >
> > On 03-10-10 09:32, Holger Freyther wrote:
> >> On 10/03/2010 03:24 PM, Koen Kooi wrote:
> >>
> >>> Could you fix the patch to say to which (wrong) sysroot it points to?
> >>>
> >>> MACHINE=beagleboard bitbake libcdio
> >>>
> >>> rpath -> sysroots/x86 or rpath -> sysroots/armv7a or both?
> >>
> >> ERROR: QA Issue with libgettextlib: package libgettextlib contains bad RPATH
> >> /home/ich/build/arm/xscale/tmp/sysroots/armv5te-angstrom-linux-gnueabi/usr/lib
> >> in file
> >> /home/ich/build/arm/xscale/tmp/work/armv5te-angstrom-linux-gnueabi/gettext-0.18-r3/packages-split/libgettextlib/usr/lib/libgettextlib-0.18.so
> >>
> >> Can you propose a better wording? From the above I try to indicate that
> >> /home/ich/build/arm/xscale/tmp/sysroots/armv5te-angstrom-linux-gnueabi/usr/lib
> >> is the bad RPATH and that it is inside the libgettextlib-0.18.so
> >
> > "Target libs and apps contain a bad RPATH to the target sysroot e.g.
> > /tmp/sysroots/armv5te-angstrom-linux-gnueabi/usr/lib" ?
> 
> I am working on libtool 2.4 upgrade which has sysroot support. I am
> hoping it will help us in fixing this kind
> of problems.

Whoa, libtool with sysroot support! Sweet. I'm very interested in -sdk version 
of it... :)

-- 
Denys



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2010-10-04 21:09 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-02 11:39 RPATH in many modules Holger Freyther
2010-10-02 20:34 ` Khem Raj
2010-10-03  2:02   ` Tom Rini
2010-10-03  7:24 ` Koen Kooi
2010-10-03  7:32   ` Holger Freyther
2010-10-03  7:37     ` Koen Kooi
2010-10-03 20:46       ` Khem Raj
2010-10-04 21:08         ` Denys Dmytriyenko

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.