Failed build Yocto Gatesgarth "extensible SDK" (eSDK) - populate_sdk_ext fail

333 views Asked by At

I'm working with Yocto "Gatesgarth" on a custom board based on i.MX6ULL.

I'm facing some problems in generating the extensible SDK (eSDK).

The generation of normal SDK it's accomplished correctly.

Below some details.

Details of system:

Board based on NXP i.MX6ULL
Yocto version "Gatesgarth 3.2.4 (May 2021)"
BB_VERSION      = "1.48.0", 
NATIVELSBSTRING = "ubuntu-18.04" 
DISTRO_VERSION  = "5.10-gatesgarth"
meta-qt5 is present
Build environment based on Docker Container

Environment Variable:

File: conf/local.conf

  SDKMACHINE ?= 'x86_64'

File: test-image-mx6ull.bb

    inherit core-image
    inherit populate_sdk_qt5
    inherit populate_sdk_ext
    SDK_EXT_TYPE = "minimal"
    SDK_INCLUDE_TOOLCHAIN = "1"
    SDK_INCLUDE_PKGDATA = "0"
    SDK_INCLUDE_NATIVESDK = "1"

The command executed is :

    bitbake test-image-mx6ull -c populate_sdk_ext

Output:

ERROR: test-image-mx6ull-1.0-r0 do_populate_sdk_ext: Error executing a python function in exec_python_func() autogenerated:

The stack trace of python calls that resulted in this exception/failure was:
File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
     0001:
 *** 0002:do_populate_sdk_ext(d)
     0003:
File: '/yocto/sources/poky/meta/classes/populate_sdk_ext.bbclass', lineno: 720, function: do_populate_sdk_ext
     0716:        bb.fatal('The extensible SDK can currently only be built for the same architecture as the machine being built on - SDK_ARCH is set to %s (likely via setting 
SDKMACHINE) which is different from the architecture of the build machine (%s). Unable to continue.' % (d.getVar('SDK_ARCH'), d.getVar('BUILD_ARCH')))
     0717:
     0718:    d.setVar('SDK_INSTALL_TARGETS', get_sdk_install_targets(d))
     0719:    if d.getVar('SDK_INCLUDE_BUILDTOOLS') == '1':
 *** 0720:        buildtools_fn = get_current_buildtools(d)
     0721:    else:
     0722:        buildtools_fn = None
     0723:    d.setVar('SDK_REQUIRED_UTILITIES', get_sdk_required_utilities(buildtools_fn, d))
     0724:    d.setVar('SDK_BUILDTOOLS_INSTALLER', buildtools_fn)
File: '/yocto/sources/poky/meta/classes/populate_sdk_ext.bbclass', lineno: 556, function: get_current_buildtools
     0552:    import glob
     0553:    btfiles = glob.glob(os.path.join(d.getVar('SDK_DEPLOY'), '*-buildtools-nativesdk-standalone-*.sh'))
     0554:    btfiles.sort(key=os.path.getctime)
     0555:    print("MY-DEBUG - btfiles = {} - SDK_DEPLOY = {}".format(btfiles, d.getVar('SDK_DEPLOY')))
 *** 0556:    return os.path.basename(btfiles[-1])
     0557:
     0558:def get_sdk_required_utilities(buildtools_fn, d):
     0559:    """Find required utilities that aren't provided by the buildtools"""
     0560:    sanity_required_utilities = (d.getVar('SANITY_REQUIRED_UTILITIES') or '').split()
Exception: IndexError: list index out of range

DEBUG: Python function do_populate_sdk_ext finished
MY-DEBUG - btfiles = [] - SDK_DEPLOY = /yocto/build-mX6ull/tmp/deploy/sdk

Question:

In line 553 the array btfiles should be filled, but the array is empty and the line 556 generate the exception.

I have no idea of whats is wrong, what I have forget and what Yocto environment variables are needed to setup to do a correctly work.

1

There are 1 answers

0
achyuthagna On

hope you are doing good

i had similar issue where i couldnt populate esdk,

its all in GLIBC version..

kindly update your GLIBC version

In my case i had to update GLIBC version to 2.33 in "yocto-uninative.inc" file. It worked for me!!!