This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM335x Yocto build using external tool chain without hardfloat

i have am335x EVM and i am building the processor sdk using the following link

http://processors.wiki.ti.com/index.php/Processor_SDK_Building_The_SDK

the tool chain used is 'gcc-linaro-4.9-2015.05-x86_64_arm-linux-gnueabihf' and am able to build the source using bitbake command.

we have to update the PATH variable to the tool chain path.

Right now i have libraries which is compiled using soft float to be tested on the same board. For that i have downloaded the "gcc-linaro-4.9-2015.05-x86_64_arm-linux-gnueabi" tool chain from linaro and updated the PATH variable pointing the new tool chain.

Now when i do a bitbake its throwing out some errors.

How will i compile armel or softfloat for am335x EVM.

---------------------------------------LOG------------------------------

azeem@ubuntunzn:/data/azeem/YoctoMighty/fresh_build/tisdk/build$ MACHINE=am335x-evm bitbake -c menuconfig linux-processor-sdk
ERROR: Execution of event handler 'external_linaro_toolchain_version_handler' failed
Traceback (most recent call last):
  File "external_linaro_toolchain_version_handler(e)", line 8, in external_linaro_toolchain_version_handler(e=<bb.event.ConfigParsed object at 0x7f9e9684db90>)
  File "external-linaro-toolchain-versions.inc", line 4, in elt_get_main_version(d=<bb.data_smart.DataSmart object at 0x7f9e969b0a50>)
IndexError: list index out of range

ERROR: Error parsing configuration files
Traceback (most recent call last):
  File "/data/azeem/YoctoMighty/fresh_build/tisdk/sources/bitbake/lib/bb/event.py", line 163, in fire(event=<bb.event.ConfigParsed object at 0x7f9e9684db90>, d=<bb.data_smart.DataSmart object at 0x7f9e96fa3e10>):
     
    >    fire_class_handlers(event, d)
         if worker_fire:
  File "/data/azeem/YoctoMighty/fresh_build/tisdk/sources/bitbake/lib/bb/event.py", line 102, in fire_class_handlers(event=<bb.event.ConfigParsed object at 0x7f9e9684db90>, d=<bb.data_smart.DataSmart object at 0x7f9e96fa3e10>):
                         continue
    >            execute_handler(name, handler, event, d)
     
  File "/data/azeem/YoctoMighty/fresh_build/tisdk/sources/bitbake/lib/bb/event.py", line 76, in execute_handler(name='external_linaro_toolchain_version_handler', handler=<function external_linaro_toolchain_version_handler at 0x7f9e96a40cf8>, event=<bb.event.ConfigParsed object at 0x7f9e9684db90>, d=<bb.data_smart.DataSmart object at 0x7f9e96fa3e10>):
         try:
    >        ret = handler(event)
         except (bb.parse.SkipRecipe, bb.BBHandledException):
  File "external_linaro_toolchain_version_handler(e)", line 8, in external_linaro_toolchain_version_handler(e=<bb.event.ConfigParsed object at 0x7f9e9684db90>)
  File "external-linaro-toolchain-versions.inc", line 4, in elt_get_main_version(d=<bb.data_smart.DataSmart object at 0x7f9e969b0a50>)
IndexError: list index out of range

---------------------------------------------------------------------------

  • I will forward this to the software team.
  • Hi,

    Please refer to the other thread you posted: e2e.ti.com/.../1890440

    The answer for this question is similar.

    Best Regards,
    Yordan

  • Hello Azeem,

    If you place a ? here
    <tisdk>/sources/meta-arago/meta-arago-distro/conf/distro/include/toolchain-linaro.inc:ELT_TARGET_SYS ?= "arm-linux-gnueabihf"

    and define the
    ELT_TARGET_SYS = "arm-linux-gnueabi"
    ELT_TARGET_SYS_arm = "arm-linux-gnueabi"
    in your local.conf, you will be able to fix this recipe parsing issue.

    Best regards,
    Kemal

  • Thank you Kemak R. Shakir. :)
    The parsing issue has been resolved.
  • i have done the modification and tried the compiling. After some threads another error long error log has been pushed out.



    azeem@ubuntunzn:/data/azeem/YoctoMighty/fresh_build/tisdk/build$ MACHINE=am335x-evm bitbake arago-console-image
    NOTE: INCLUDING gnutls as buildable despite INCOMPATIBLE_LICENSE because it has been whitelisted#################### | ETA: 00:00:03
    Parsing recipes: 100% |#########################################################################################################| Time: 00:00:31
    Parsing of 2123 .bb files complete (0 cached, 2123 parsed). 2654 targets, 410 skipped, 0 masked, 0 errors.
    NOTE: Resolving any missing task queue dependencies

    Build Configuration:
    BB_VERSION = "1.26.0"
    BUILD_SYS = "x86_64-linux"
    NATIVELSBSTRING = "Ubuntu-14.04"
    TARGET_SYS = "arm-linux-gnueabi"
    MACHINE = "am335x-evm"
    DISTRO = "arago"
    DISTRO_VERSION = "2016.03"
    TUNE_FEATURES = "arm armv7a vfp thumb neon callconvention-hard cortexa8"
    TARGET_FPU = "vfp-neon"
    meta-processor-sdk = "(detachedfrom80feff7):80feff781e2a6c3b50a72655a627ca7d629c72ab"
    meta-arago-distro
    meta-arago-extras = "(detachedfrome6bb433):e6bb433b399c1ad32e596b9c46571fbfe384a86e"
    meta-qt5 = "(detachedfrom97ce05c):97ce05c0b2a81f05388d7f727741529fb9177775"
    meta-networking
    meta-ruby
    meta-python
    meta-oe = "(detachedfroma7c1a2b):a7c1a2b0e6947740758136216e45ca6ca66321fc"
    meta-ti = "(detachedfromc93678a):c93678aa08bc0df0f1f36a84afe48723406de58e"
    meta-linaro-toolchain = "(detachedfrom10b71be):10b71bed9cfe76baa22c72806ff814cf85c2f73b"
    meta = "(detachedfrom12520d7):12520d7f729fe3d07c2f94b813994718edb2d987"

    NOTE: Preparing RunQueue
    NOTE: Executing SetScene Tasks
    NOTE: Executing RunQueue Tasks
    WARNING: /data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/work/cortexa8hf-vfp-neon-linux-gnueabi/external-linaro-toolchain/4.9-2015.04-1-r0-arago29/external-linaro-toolchain-4.9-2015.04-1 ('S') doesn't exist, please set 'S' to a proper value
    ERROR: Function failed: do_configure (log file is located at /data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/work/cortexa8hf-vfp-neon-linux-gnueabi/libtool-cross/2.4.6-r0/temp/log.do_configure.60778)
    ERROR: Logfile of failure stored in: /data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/work/cortexa8hf-vfp-neon-linux-gnueabi/libtool-cross/2.4.6-r0/temp/log.do_configure.60778
    Log data follows:
    | DEBUG: Executing python function sysroot_cleansstate
    | DEBUG: Python function sysroot_cleansstate finished
    | DEBUG: SITE files ['endian-little', 'bit-32', 'arm-common', 'arm-32', 'common-linux', 'common-glibc', 'arm-linux', 'arm-linux-gnueabi', 'common']
    | DEBUG: Executing shell function autotools_preconfigure
    | DEBUG: Shell function autotools_preconfigure finished
    | DEBUG: Executing python function autotools_copy_aclocals
    | DEBUG: SITE files ['endian-little', 'bit-32', 'arm-common', 'arm-32', 'common-linux', 'common-glibc', 'arm-linux', 'arm-linux-gnueabi', 'common']
    | DEBUG: Python function autotools_copy_aclocals finished
    | DEBUG: Executing shell function do_configure
    | automake (GNU automake) 1.15
    | Copyright (C) 2014 Free Software Foundation, Inc.
    | License GPLv2+: GNU GPL version 2 or later <gnu.org/.../gpl-2.0.html>
    | This is free software: you are free to change and redistribute it.
    | There is NO WARRANTY, to the extent permitted by law.
    |
    | Written by Tom Tromey <tromey@redhat.com>
    | and Alexandre Duret-Lutz <adl@gnu.org>.
    | AUTOV is 1
    | NOTE: Executing ACLOCAL="aclocal --system-acdir=/data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/work/cortexa8hf-vfp-neon-linux-gnueabi/libtool-cross/2.4.6-r0/build/aclocal-copy/" autoreconf --verbose --install --force --exclude=libtoolize -I /data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/work/cortexa8hf-vfp-neon-linux-gnueabi/libtool-cross/2.4.6-r0/libtool-2.4.6/m4/ -I /data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/work/cortexa8hf-vfp-neon-linux-gnueabi/libtool-cross/2.4.6-r0/libtool-2.4.6/tests/
    | autoreconf: Entering directory `.'
    | autoreconf: configure.ac: not using Gettext
    | autoreconf: running: aclocal --system-acdir=/data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/work/cortexa8hf-vfp-neon-linux-gnueabi/libtool-cross/2.4.6-r0/build/aclocal-copy/ -I /data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/work/cortexa8hf-vfp-neon-linux-gnueabi/libtool-cross/2.4.6-r0/libtool-2.4.6/m4/ -I /data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/work/cortexa8hf-vfp-neon-linux-gnueabi/libtool-cross/2.4.6-r0/libtool-2.4.6/tests/ -I /data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/work/cortexa8hf-vfp-neon-linux-gnueabi/libtool-cross/2.4.6-r0/libtool-2.4.6/m4/ -I /data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/work/cortexa8hf-vfp-neon-linux-gnueabi/libtool-cross/2.4.6-r0/libtool-2.4.6/tests/ --force -I m4
    | autoreconf: configure.ac: tracing
    | autoreconf: running: /data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/sysroots/x86_64-linux/usr/bin/autoconf --include=/data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/work/cortexa8hf-vfp-neon-linux-gnueabi/libtool-cross/2.4.6-r0/libtool-2.4.6/m4/ --include=/data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/work/cortexa8hf-vfp-neon-linux-gnueabi/libtool-cross/2.4.6-r0/libtool-2.4.6/tests/ --force
    | autoreconf: running: /data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/sysroots/x86_64-linux/usr/bin/autoheader --include=/data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/work/cortexa8hf-vfp-neon-linux-gnueabi/libtool-cross/2.4.6-r0/libtool-2.4.6/m4/ --include=/data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/work/cortexa8hf-vfp-neon-linux-gnueabi/libtool-cross/2.4.6-r0/libtool-2.4.6/tests/ --force
    | autoreconf: running: automake --add-missing --copy --force-missing
    | autoreconf: running: gnu-configize
    | autoreconf: Leaving directory `.'
    | NOTE: Running /data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/work/cortexa8hf-vfp-neon-linux-gnueabi/libtool-cross/2.4.6-r0/libtool-2.4.6/configure --build=x86_64-linux --host=arm-linux-gnueabi --target=arm-linux-gnueabi --prefix=/usr --exec_prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/lib/libtool --datadir=/data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/sysroots/am335x-evm/usr/share --sysconfdir=/etc --sharedstatedir=/com --localstatedir=/var --libdir=/usr/lib --includedir=/usr/include --oldincludedir=/usr/include --infodir=/data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/sysroots/am335x-evm/usr/share/info --mandir=/data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/sysroots/am335x-evm/usr/share/man --disable-silent-rules --disable-dependency-tracking --with-libtool-sysroot=/data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/sysroots/am335x-evm
    | configure: loading site script /data/azeem/YoctoMighty/fresh_build/tisdk/sources/meta-openembedded/meta-oe/site/endian-little
    | configure: loading site script /data/azeem/YoctoMighty/fresh_build/tisdk/sources/oe-core/meta/site/endian-little
    | configure: loading site script /data/azeem/YoctoMighty/fresh_build/tisdk/sources/oe-core/meta/site/arm-common
    | configure: loading site script /data/azeem/YoctoMighty/fresh_build/tisdk/sources/oe-core/meta/site/arm-32
    | configure: loading site script /data/azeem/YoctoMighty/fresh_build/tisdk/sources/oe-core/meta/site/common-linux
    | configure: loading site script /data/azeem/YoctoMighty/fresh_build/tisdk/sources/oe-core/meta/site/common-glibc
    | configure: loading site script /data/azeem/YoctoMighty/fresh_build/tisdk/sources/oe-core/meta/site/arm-linux
    | configure: loading site script /data/azeem/YoctoMighty/fresh_build/tisdk/sources/oe-core/meta/site/common
    | ## ------------------------- ##
    | ## Configuring libtool 2.4.6 ##
    | ## ------------------------- ##
    |
    | checking for GNU M4 that supports accurate traces... /data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/sysroots/x86_64-linux/usr/bin/m4
    | checking whether /data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/sysroots/x86_64-linux/usr/bin/m4 accepts --gnu... yes
    | checking how m4 supports trace files... --debugfile
    | checking for a BSD-compatible install... /usr/bin/install -c
    | checking whether build environment is sane... yes
    | checking for arm-linux-gnueabi-strip... arm-linux-gnueabi-strip
    | checking for a thread-safe mkdir -p... /bin/mkdir -p
    | checking for gawk... gawk
    | checking whether make sets $(MAKE)... yes
    | checking whether make supports nested variables... yes
    | checking whether make supports nested variables... (cached) yes
    | checking build system type... x86_64-pc-linux-gnu
    | checking host system type... arm-unknown-linux-gnueabi
    | configure: autobuild project... GNU Libtool
    | configure: autobuild revision... 2.4.6
    | configure: autobuild hostname... ubuntunzn
    | configure: autobuild mode... default
    | configure: autobuild timestamp... 20160610T090006Z
    | checking for arm-linux-gnueabi-gcc... arm-linux-gnueabi-gcc -march=armv7-a -marm -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a8 --sysroot=/data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/sysroots/am335x-evm
    | checking whether the C compiler works... no
    | configure: error: in `/data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/work/cortexa8hf-vfp-neon-linux-gnueabi/libtool-cross/2.4.6-r0/build':
    | configure: error: C compiler cannot create executables
    | See `config.log' for more details
    | Configure failed. The contents of all config.log files follows to aid debugging
    | ERROR: oe_runconf failed
    | WARNING: /data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/work/cortexa8hf-vfp-neon-linux-gnueabi/libtool-cross/2.4.6-r0/temp/run.do_configure.60778:1 exit 1 from
    | exit 1
    | ERROR: Function failed: do_configure (log file is located at /data/azeem/YoctoMighty/fresh_build/tisdk/build/arago-tmp-external-linaro-toolchain/work/cortexa8hf-vfp-neon-linux-gnueabi/libtool-cross/2.4.6-r0/temp/log.do_configure.60778)
    ERROR: Task 482 (/data/azeem/YoctoMighty/fresh_build/tisdk/sources/oe-core/meta/recipes-devtools/libtool/libtool-cross_2.4.6.bb, do_configure) failed with exit code '1'
    NOTE: Tasks Summary: Attempted 327 tasks of which 274 didn't need to be rerun and 1 failed.
    Waiting for 0 running tasks to finish:

    Summary: 1 task failed:
    /data/azeem/YoctoMighty/fresh_build/tisdk/sources/oe-core/meta/recipes-devtools/libtool/libtool-cross_2.4.6.bb, do_configure
    Summary: There was 1 WARNING message shown.
    Summary: There was 1 ERROR message shown, returning a non-zero exit code.

    Any solution. ?
  • It will need further tunings (see <tisdk>/sources/oe-core/meta/conf/machine/include/arm/README), here in the
    TUNE_FEATURES = "arm armv7a vfp thumb neon callconvention-hard cortexa8"
    the callconvention-hard sets the -mfloat-abi=hard which currently breaks the building, but disabling it will make the neon and vfp orphans and lead you to struggle with many errors.

    I would like suggest you to test your library on this old SDK which has used standard EABI.

  • Very helpful, i have changed my TUNE_FEATURES and there came another python code error. I will check out the old SDK. Thanks.