[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