[OE-core] [PATCH] classes/chrpath: trigger an error if chrpath fails

Jack Mitchell ml at communistcode.co.uk
Fri Aug 17 10:05:43 UTC 2012


On 17/08/12 10:53, Richard Purdie wrote:
> On Thu, 2012-08-16 at 18:13 +0100, Paul Eggleton wrote:
>> On Wednesday 15 August 2012 17:44:33 Paul Eggleton wrote:
>>> If chrpath failed here we were just silently ignoring it.
>>>
>>> Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
>>> ---
>>>   meta/classes/chrpath.bbclass |    4 +++-
>>>   1 file changed, 3 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/meta/classes/chrpath.bbclass b/meta/classes/chrpath.bbclass
>>> index 10b5ca0..ad61fe0 100644
>>> --- a/meta/classes/chrpath.bbclass
>>> +++ b/meta/classes/chrpath.bbclass
>>> @@ -74,7 +74,9 @@ def process_dir (directory, d):
>>>               if len(new_rpaths):
>>>                   args = ":".join(new_rpaths)
>>>                   #bb.note("Setting rpath for %s to %s" %(fpath, args))
>>> -                sub.call([cmd, '-r', args, fpath])
>>> +                ret = sub.call([cmd, '-r', args, fpath])
>>> +                if ret != 0:
>>> +                    bb.error("chrpath command failed with exit code %d" %
>>> ret)
>>>
>>>               if perms:
>>>                   os.chmod(fpath, perms)
>>
>> I missed that this does not actually report the output from chrpath when it
>> fails because the task log is suppressed by virtue of calling bb.error. I will
>> send a follow-up patch to address this.
>>
>> Incidentally a couple of users are reporting that they are now seeing failures
>> where the rpath size is reported to be too small to contain the path we are
>> applying. I haven't seen this myself - is there some way we can increase the
>> space allowed for storing the path or is there some other issue at work here?
>> I tried to search for some information on how storage of the rpath works but
>> did not really find anything conclusive.
>
> Unfortunately we can't increase the size available without relinking the
> binary which isn't feasible at this point. The only way to increase the
> size is to run the build in a "deeper" path so that there is more room
> in the field. I did some calculations when we originally implemented
> this and concluded you'd have to build somewhere like /tmp to have a
> short enough path where this would be a problem.
>
> I thought we'd added a sanity test for it too but it sounds like either
> we didn't or if we did, it isn't functioning properly. Its good that at
> least we're catching the errors now and I'd appreciate more information
> about the failing cases.
>
> Cheers,
>
> Richard
>

I have had a few chrpath errors today, however I have no way of telling 
where they appeared. Here is the build output of where I found them.

[jack at archHP build]$ bitbake core-image-minimal
Pseudo is not present but is required, building this first before the 
main build
Parsing recipes: 100% 
|###############################################################################| 
ETA:  00:00:00
Parsing of 824 .bb files complete (0 cached, 824 parsed). 1122 targets, 
36 skipped, 0 masked, 0 errors.

Build Configuration:
BB_VERSION        = "1.15.3"
TARGET_ARCH       = "arm"
TARGET_OS         = "linux-gnueabi"
MACHINE           = "qemuarm"
DISTRO_VERSION    = "oe-core.0"
TUNE_FEATURES     = "armv5 dsp thumb arm926ejs"
TARGET_FPU        = "soft"
meta              = 
"kraj/toolchain-rework:126a0363d03c1f5ff7a6b8ae0939d1a9ff8336f0"

NOTE: Resolving any missing task queue dependencies
NOTE: Preparing runqueue
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
NOTE: Tasks Summary: Attempted 63 tasks of which 0 didn't need to be 
rerun and all succeeded.
Loading cache: 100% 
|#################################################################################| 
ETA:  00:00:00
Loaded 1123 entries from dependency cache.

Build Configuration:
BB_VERSION        = "1.15.3"
TARGET_ARCH       = "arm"
TARGET_OS         = "linux-gnueabi"
MACHINE           = "qemuarm"
DISTRO_VERSION    = "oe-core.0"
TUNE_FEATURES     = "armv5 dsp thumb arm926ejs"
TARGET_FPU        = "soft"
meta              = 
"kraj/toolchain-rework:126a0363d03c1f5ff7a6b8ae0939d1a9ff8336f0"

NOTE: Resolving any missing task queue dependencies
NOTE: Preparing runqueue
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
WARNING: Failed to fetch URL 
http://kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.22.tar.bz2, 
attempting MIRRORS if available
WARNING: Failed to fetch URL 
http://www.apache.org/dist/subversion/subversion-1.7.2.tar.bz2, 
attempting MIRRORS if available
WARNING: Failed to fetch URL 
ftp://ftp.ossp.org/pkg/lib/uuid/uuid-1.6.2.tar.gz, attempting MIRRORS if 
available
WARNING: unifdef-native: No generic license file exists for: GPL in any 
provider
WARNING: Failed to fetch URL 
http://kernel.org/pub/linux/kernel/people/jsipek/guilt/guilt-0.33.tar.gz, attempting 
MIRRORS if available
*ERROR: chrpath command failed with exit code 7
ERROR: chrpath command failed with exit code 7*
WARNING: ossp-uuid-native: No generic license file exists for: ossp_uuid 
in any provider
WARNING: Failed to fetch URL 
ftp://ftp.debian.org/debian/pool/main/b/base-passwd/base-passwd_3.5.24.tar.gz, 
attempting MIRRORS if available
WARNING: Failed to fetch URL 
http://kernel.org/pub/linux/utils/kernel/hotplug/udev-164.tar.gz, 
attempting MIRRORS if available
NOTE: validating kernel configuration

Currently 5 running tasks (1374 of 1513):
0: db-5.3.15-r8 do_install (pid 30360)
1: 
linux-yocto-3.4.6+git1+7ff48aa47c50b6455d60ca93bc81260ce8fe1a1b_1+b57548a29e44655e27cfbdf3a0642d682401b835-r4.0 
do_package (pid 24811)
2: 
linux-yocto-3.4.6+git1+7ff48aa47c50b6455d60ca93bc81260ce8fe1a1b_1+b57548a29e44655e27cfbdf3a0642d682401b835-r4.0 
do_populate_sysroot (pid 24812)
3: ncurses-5.9-r10.1 do_package (pid 29454)
4: ncurses-5.9-r10.1 do_populate_sysroot (pid 29453)

Should there be some further error reporting put in with the new 
'display' system, for example pre-pending the Error/Warning messages 
with the package name?

Regards,

-- 

   Jack Mitchell (jack at embed.me.uk)
   Embedded Systems Engineer
   http://www.embed.me.uk

--





More information about the Openembedded-core mailing list