[yocto] build failure on ubuntu 64bits development system

William Mills wmills at ti.com
Wed Jan 18 06:57:17 PST 2012



On 01/18/2012 09:51 AM, Gary Thomas wrote:
> On 2012-01-18 07:42, James Abernathy wrote:
>>
>>
>> On Wed, Jan 18, 2012 at 9:30 AM, James Abernathy 
>> <jfabernathy at gmail.com <mailto:jfabernathy at gmail.com>> wrote:
>>
>>
>>
>>     On Wed, Jan 18, 2012 at 7:55 AM, James Abernathy 
>> <jfabernathy at gmail.com <mailto:jfabernathy at gmail.com>> wrote:
>>
>>         I just built a new development pc and installed Ubuntu 11.10 
>> x64.  I wonder if there are any new requirements to building Yocto in 
>> that environment?  I got an error right
>>         off, but then it complete the first 63 task and stopped 
>> successfully.  error below:
>>
>>         jim at ubuntu:~/poky/build-cdv$ bitbake core-image-sato
>>         Pseudo is not present but is required, building this first 
>> before the main build
>>         Parsing recipes: 100% 
>> |#################################################| Time: 00:00:25
>>         Parsing of 797 .bb files complete (0 cached, 797 parsed). 
>> 1037 targets, 22 skipped, 0 masked, 0 errors.
>>         ERROR: Execution of event handler 'run_buildstats' failed
>>         Traceback (most recent call last):
>>            File "run_buildstats(e)", line 18, in 
>> run_buildstats(e=<bb.event.BuildStarted object at 0x4c338d0>)
>>            File "buildstats.bbclass", line 21, in 
>> set_device(e=<bb.event.BuildStarted object at 0x4c338d0>)
>>         UnboundLocalError: local variable 'rdev' referenced before 
>> assignment
>>
>>
>>         Any ideas?
>>
>>         JIm A
>>
>>
>>     I went back and tried using the tarballs for poky edison and 
>> cedartrail bsp and the errors don't occur.  So I'm guessing the issue 
>> isn't related to Ubuntu 32 vs. 64 bit.
>>
>>
>> I spoke too soon. Same error in edison tarballs.  I looked at the 
>> code and I can see an place were rdev could go un assigned. If you 
>> fell out of the for loop without passing any of
>> the if conditions, rdev would be unassigned.  That must be what is 
>> happening in Ubuntu 11.10 x64
>>
>> Anybody building with Ubuntu 11.10 x64?  This doesn't happen on x32
>>
>> Jim A
>>
>>
>> def set_device(e):
>>      tmpdir = bb.data.getVar('TMPDIR', e.data, True)
>>      try:
>>          os.remove(bb.data.getVar('DEVFILE', e.data, True))
>>      except:
>>          pass
>>      
>> ############################################################################
>>      # We look for the volume TMPDIR lives on. To do all disks would 
>> make little
>>      # sense and not give us any particularly useful data. In theory 
>> we could do
>>      # something like stick DL_DIR on a different partition and this 
>> would
>>      # throw stats gathering off. The same goes with SSTATE_DIR. 
>> However, let's
>>      # get the basics in here and work on the cornercases later.
>>      
>> ############################################################################
>>      device=os.stat(tmpdir)
>>      majordev=os.major(device.st_dev)
>>      minordev=os.minor(device.st_dev)
>>      for line in open("/proc/diskstats", "r"):
>>          if majordev == int(line.split()[0]) and minordev == 
>> int(line.split()[1]):
>>             rdev=line.split()[2]
>>      file = open(bb.data.getVar('DEVFILE', e.data, True), "w")
>>      file.write(rdev)
>>      file.close()
>
> Can you show what the differences are between /proc/diskstats
> on the two systems?  That's obviously what's causing the error.
>

If your build dir is encyptfs or a fuse device or anything that is not a 
direct block device you will get this error.  This is to be fixed in 
1.1.1 but encyptfs will still have other problems.





More information about the yocto mailing list