[oe] [PATCH] insane bbclass: extend RPATH check to cover sysroots as well

Koen Kooi k.kooi at student.utwente.nl
Wed Jan 19 19:58:03 UTC 2011


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

On 19-01-11 20:35, Philip Balister wrote:
> On 01/19/2011 11:21 AM, Koen Kooi wrote:
>> * Having rpath to sysroot is just as bad as one to workdir
> 
> When you do a build with this, how many recipes have issues?

At least udev:

ERROR: QA Issue with udev: package udev contains bad RPATH
/OE/angstrom-setup-scripts/build/tmp-angstrom_2008_1/sysroots/armv7a-angstrom-linux-gnueabi/usr/lib
in file
/OE/angstrom-setup-scripts/build/tmp-angstrom_2008_1/work/armv7a-angstrom-linux-gnueabi/udev-165-r0/packages-split/udev/lib/udev/udev-acl
ERROR: QA Issue with udev: package udev contains bad RPATH
/OE/angstrom-setup-scripts/build/tmp-angstrom_2008_1/sysroots/armv7a-angstrom-linux-gnueabi/usr/lib
in file
/OE/angstrom-setup-scripts/build/tmp-angstrom_2008_1/work/armv7a-angstrom-linux-gnueabi/udev-165-r0/packages-split/udev/lib/udev/hid2hci
ERROR: QA Issue with udev: package udev contains bad RPATH
/OE/angstrom-setup-scripts/build/tmp-angstrom_2008_1/sysroots/armv7a-angstrom-linux-gnueabi/usr/lib
in file
/OE/angstrom-setup-scripts/build/tmp-angstrom_2008_1/work/armv7a-angstrom-linux-gnueabi/udev-165-r0/packages-split/udev/lib/udev/mobile-action-modeswitch

 I'm doing a build from scratch now to see what will fail first.
Richard and Scott have fixed a number of those in yocto, so I'll be
working with them and Khem to 'port' those over to OE.

This patch is merely here to have people realize how buggered OE
currently is with stray RPATHs

regards,

Koen


> 
> Philip
> 
> 
>>
>> Based on insane.bbclass from yocto
>>
>> Signed-off-by: Koen Kooi<koen at openembedded.org>
>> ---
>>   classes/insane.bbclass |   11 ++++++-----
>>   1 files changed, 6 insertions(+), 5 deletions(-)
>>
>> diff --git a/classes/insane.bbclass b/classes/insane.bbclass
>> index 677db27..50752b5 100644
>> --- a/classes/insane.bbclass
>> +++ b/classes/insane.bbclass
>> @@ -160,20 +160,21 @@ def package_qa_check_rpath(file,name,d, elf):
>>       import bb, os
>>       sane = True
>>       scanelf =
>> os.path.join(bb.data.getVar('STAGING_BINDIR_NATIVE',d,True),'scanelf')
>> -    bad_dir = bb.data.getVar('TMPDIR', d, True) + "/work"
>> +    bad_dirs = [bb.data.getVar('TMPDIR', d, True) + "/work",
>> bb.data.getVar('STAGING_DIR_TARGET', d, True)]
>>       bad_dir_test = bb.data.getVar('TMPDIR', d, True)
>>       if not os.path.exists(scanelf):
>>           bb.fatal("Can not check RPATH, scanelf (part of
>> pax-utils-native) not found")
>>
>> -    if not bad_dir in bb.data.getVar('WORKDIR', d, True):
>> +    if not bad_dirs[0] in bb.data.getVar('WORKDIR', d, True):
>>           bb.fatal("This class assumed that WORKDIR is
>> ${TMPDIR}/work... Not doing any check")
>>
>>       output = os.popen("%s -B -F%%r#F '%s'" % (scanelf,file))
>>       txt    = output.readline().split()
>>       for line in txt:
>> -        if bad_dir 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)
>> +        for dir in bad_dirs:
>> +            if dir in line:
>> +                error_msg = "package %s contains bad RPATH %s in file
>> %s" % (name, line, file)
>> +                sane = sane + package_qa_handle_error(1, error_msg,
>> name, file, d)
>>
>>       return sane
>>

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

iD8DBQFNN0JLMkyGM64RGpERAlmoAKC4ydMPfud8DpW5RZOEtiB+z+o0DACeO2jb
dmskeJB73C+waA899CHri2w=
=q33T
-----END PGP SIGNATURE-----





More information about the Openembedded-devel mailing list