[bitbake-devel] Bitbake: error in cachedpath.py

Dr. Markus Eich markus.eich at dfki.de
Wed Jul 2 14:18:58 UTC 2014


I have analyzed the issue further. In the kernel source code, (taken 
from git://github.com/hardkernel/linux.git"

there is no symlink loop in the git sources. While calling

bitbake linux-hardkernel

the command do_package somehow creates a recursive symlink in the folder

==
build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4-r0/package/usr/src/kernel/drivers/gpu/arm/mali400/ump/arch/arch-release
==


arch-release is a symlink to arch-release. I have removed the link with 
rm -rf arch-release

after I call "bitbake -c package linux-hardkernel" the recursive link is 
there again causing the error again? Why does do_package create this 
link? Black magic?


Cheers,

Markus





On 27.06.2014 12:58, Richard Purdie wrote:
> On Fri, 2014-06-27 at 09:52 +0200, Dr. Markus Eich wrote:
>> Dear all,
>>
>> I am setting up Yocto to compile my kernel for odroid xu. During the
>> package phase of building the kernel, I get an error in cachedpath.py
>>
>> ================
>>
>> DEBUG: Executing python function sstate_task_prefunc
>> DEBUG: Python function sstate_task_prefunc finished
>> DEBUG: Executing python function do_package
>> DEBUG: Executing python function package_get_auto_pr
>> DEBUG: Python function package_get_auto_pr finished
>> DEBUG: Executing python function perform_packagecopy
>> DEBUG: Python function perform_packagecopy finished
>> DEBUG: Executing python function split_and_strip_files
>> ERROR: Error executing a python function in
>> /home/eich/yocto/poky/meta-odroid/recipes-kernel/linux/linux-hardkernel_3.4.bb:
>>
>> The stack trace of python calls that resulted in this exception/failure
>> was:
>> File: 'split_and_strip_files', lineno: 222, function: <module>
>>        0218:    # End of strip
>>        0219:    #
>>        0220:
>>        0221:
>>    *** 0222:split_and_strip_files(d)
>>        0223:
>> File: 'split_and_strip_files', lineno: 85, function: split_and_strip_files
>>        0081:                if debugdir and debugdir in
>> os.path.dirname(file[len(dvar):]):
>>        0082:                    continue
>>        0083:
>>        0084:                try:
>>    *** 0085:                    ltarget = cpath.realpath(file, dvar, False)
>>        0086:                    s = cpath.lstat(ltarget)
>>        0087:                except OSError as e:
>>        0088:                    (err, strerror) = e.args
>>        0089:                    if err != errno.ENOENT:
>> File: '/home/eich/yocto/poky/meta/lib/oe/cachedpath.py', lineno: 229,
>> function: realpath
>>        0225:                # be printed a backtrace with 100s of OSError
>> exceptions
>>        0226:                # else
>>        0227:                raise OSError(errno.ELOOP,
>>        0228:                              "too much recursions while
>> resolving '%s'; loop in '%s'" %
>>    *** 0229:                              (file, e.strerror))
>>        0230:
>>        0231:            raise
>>        0232:
>>        0233:        return file
>> Exception: OSError: [Errno 40] too much recursions while resolving
>> '/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4-r0/package/usr/src/kernel/drivers/gpu/arm/mali400/ump/arch/arch-release';
>> loop in
>> '/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4-r0/package/usr/src/kernel/drivers/gpu/arm/mali400/ump/arch/arch-release'
>>
>> DEBUG: Python function split_and_strip_files finished
>> DEBUG: Python function do_package finished
>> ERROR: Function failed: split_and_strip_files
>>
>> ====================
>>
>> Seems that the path is to deep?
>>
>> To track the error, I have attached my kernel.bb
>>
>>
>> ==================
>> require recipes-kernel/linux/linux-yocto.inc
>>
>> KERNEL_IMAGETYPE = "uImage"
>>
>> COMPATIBLE_MACHINE = "odroid-xu"
>>
>> LINUX_VERSION = "3.4.91"
>> LINUX_VERSION_EXTENSION = "-custom"
>>
>> FILESEXTRAPATHS_prepend := "${THISDIR}/linux-hardkernel-3.4:"
>>
>> S = "${WORKDIR}/git"
>>
>> # from where to fetch the kernel
>> KERNEL_REPO_OWNER ??= "hardkernel"
>> KERNEL_REPO_URI ??= "git://github.com/${KERNEL_REPO_OWNER}/linux.git"
>> KBRANCH = "odroidxu-3.4.y"
>>
>> SRCREV = "${AUTOREV}"
>>
>> SRC_URI = " \
>>     ${KERNEL_REPO_URI};nocheckout=1;branch=${KBRANCH} \
>> file://defconfig \
>> "
>>
>>
>> Any ideas ?
> It sounds like you have recursive symlinks which just loop between each
> other...
>
> Cheers,
>
> Richard
>

-- 
Dr.-Ing. Markus Eich

  Senior Researcher
  Marine Inspection Robotics
  Space Robotics
  
  Besuchsadresse der Nebengeschäftstelle:
  DFKI GmbH
  Robotics Innovation Center
  Robert-Hooke-Straße 5
  28359 Bremen, Germany
  
  Postadresse der Hauptgeschäftsstelle Standort Bremen:
  DFKI GmbH
  Robotics Innovation Center
  Robert-Hooke-Straße 1
  28359 Bremen, Germany

  Tel.:     +49 421 178 45-4105
  Zentrale: +49 421 178 45-0
  Fax:      +49 421 178 45-4150 (Faxe bitte namentlich kennzeichnen)
  E-Mail:   markus.eich at dfki.de

  Weitere Informationen: http://www.dfki.de/robotik
  -----------------------------------------------------------------------
  Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH
  Firmensitz: Trippstadter Straße 122, D-67663 Kaiserslautern
  Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster
  (Vorsitzender) Dr. Walter Olthoff
  Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes
  Amtsgericht Kaiserslautern, HRB 2313
  Sitz der Gesellschaft: Kaiserslautern (HRB 2313)
  USt-Id.Nr.:    DE 148646973
  Steuernummer:  19/673/0060/3
  -----------------------------------------------------------------------




More information about the bitbake-devel mailing list