[yocto] Building poky-tiny for ARM fails in do_compile of elfutils

Chatre, Reinette reinette.chatre at intel.com
Mon Jun 4 12:32:22 PDT 2012


On Fri, 2012-06-01 at 15:27 -0700, Khem Raj wrote:
> On Fri, Jun 1, 2012 at 1:09 PM, Chatre, Reinette
> <reinette.chatre at intel.com> wrote:
> > Hi,
> >
> > I am trying to create a poky-tiny based image for ARM. This currently
> > fails in the "do_compile" task of elfutils. As a first attempt I try to
> > have things as simple as possible. Starting with a clean 7.0 Denzil
> > in /opt/poky.git on my development system and use a separate build
> > directory $HOME/poky_build that is created as:
> >
> > $ cd $HOME/poky_build
> > $ . /opt/poky.git/oe-init-build-env .
> >
> > I edit the $HOME/poky_build/conf/local.conf as below:
> >
> > --- org/conf/local.conf 2012-06-01 10:47:49.215088985 -0700
> > +++ $HOME/poky_build/conf/local.conf    2012-06-01 11:56:24.930150746 -0700
> > @@ -48,7 +48,7 @@
> >  #MACHINE ?= "routerstationpro"
> >  #
> >  # This sets the default machine to be qemux86 if no other machine is selected:
> > -MACHINE ??= "qemux86"
> > +MACHINE ??= "qemuarm"
> >
> >  #
> >  # Where to place downloads
> > @@ -99,7 +99,7 @@ MACHINE ??= "qemux86"
> >  # Ultimately when creating custom policy, people will likely end up subclassing
> >  # these defaults.
> >  #
> > -DISTRO ?= "poky"
> > +DISTRO ?= "poky-tiny"
> >  # As an example of a subclass there is a "bleeding" edge policy configuration
> >  # where many versions are set to the absolute latest code from the upstream
> >  # source control systems. This is just mentioned here as an example, its not
> > @@ -118,7 +118,7 @@ DISTRO ?= "poky"
> >  #  - 'package_rpm' for rpm style packages
> >  # E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk"
> >  # We default to rpm:
> > -PACKAGE_CLASSES ?= "package_rpm"
> > +PACKAGE_CLASSES ?= "package_ipk"
> >
> >  #
> >  # SDK/ADT target architecture
> > @@ -224,3 +224,6 @@ PATCHRESOLVE = "noop"
> >  # track the version of this file when it was generated. This can safely be ignored if
> >  # this doesn't mean anything to you.
> >  CONF_VERSION = "1"
> > +
> > +#disable usage of ccache
> > +CCACHE=""
> >
> > After the above I kick off a build with:
> >
> > $ bitbake core-image-minimal
> >
> > As mentioned earlier, the above fails in "do_compile" of elfutils with output like:
> >
> > | arm-poky-linux-gnueabi-ranlib libdw_pic.a
> > | arm-poky-linux-gnueabi-gcc  -march=armv5te  -marm -mthumb-interwork  -mtune=arm926ej-s --sysroot=/home/rchatre/poky_build/tmp/sysroots/qemuarm -std=gnu99 -Wall -Wshadow -Werror -Wunused -Wextra -fgnu89-inline -Wformat=2    -O2 -pipe -g -feliminate-unused-debug-types  -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o libdw.so -shared -o libdw.so -Wl,--soname,libdw.so.1,-z,defs \
> > | »------Wl,--enable-new-dtags,-rpath,/usr/lib/elfutils \
> > | »------Wl,--version-script,libdw.map,--no-undefined \
> > | »------Wl,--whole-archive libdw_pic.a ../libdwfl/libdwfl_pic.a ../libebl/libebl.a ../libelf/libelf.so -Wl,--no-whole-archive\
> > | »------ldl -lbz2 -lz
> > | ../libdwfl/libdwfl_pic.a(linux-kernel-modules.os): In function `dwfl_linux_kernel_report_offline':
> > | /home/rchatre/poky_build/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdwfl/linux-kernel-modules.c:310: undefined reference to `fts_open'
> > | /home/rchatre/poky_build/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdwfl/linux-kernel-modules.c:320: undefined reference to `fts_read'
> > | /home/rchatre/poky_build/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdwfl/linux-kernel-modules.c:391: undefined reference to `fts_close'
> > | /home/rchatre/poky_build/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdwfl/linux-kernel-modules.c:327: undefined reference to `fts_set'
> > | ../libdwfl/libdwfl_pic.a(linux-kernel-modules.os): In function `dwfl_linux_kernel_find_elf':
> > | /home/rchatre/poky_build/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdwfl/linux-kernel-modules.c:647: undefined reference to `fts_open'
> > | /home/rchatre/poky_build/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdwfl/linux-kernel-modules.c:691: undefined reference to `fts_read'
> > | /home/rchatre/poky_build/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdwfl/linux-kernel-modules.c:691: undefined reference to `fts_read'
> > | /home/rchatre/poky_build/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdwfl/linux-kernel-modules.c:740: undefined reference to `fts_close'
> > | /home/rchatre/poky_build/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdwfl/linux-kernel-modules.c:715: undefined reference to `fts_close'
> > | /home/rchatre/poky_build/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfuERROR: Function failed: do_compile (see /home/rchatre/poky_build/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/temp/log.do_compile.25599 for further information)
> > | tils-0.148/libdwfl/linux-kernel-modules.c:698: undefined reference to `fts_set'
> > | ../libdwfl/libdwfl_pic.a(linux-kernel-modules.os): In function `check_module_notes':
> > | /home/rchatre/poky_build/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdwfl/linux-kernel-modules.c:532: undefined reference to `fts_open'
> > | /home/rchatre/poky_build/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdwfl/linux-kernel-modules.c:541: undefined reference to `fts_read'
> > | /home/rchatre/poky_build/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdwfl/linux-kernel-modules.c:570: undefined reference to `fts_close'
> > | ../libebl/libebl.a(eblwstrtab.o): In function `copystrings':
> > | /home/rchatre/poky_build/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libebl/eblwstrtab.c:329: undefined reference to `wmempcpy'
> > | ../libebl/libebl.a(eblwstrtab.o): In function `ebl_wstrtabadd':
> > | /home/rchatre/poky_build/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libebl/eblwstrtab.c:249: undefined reference to `wcslen'
> > | ../libebl/libebl.a(eblwstrtab.o): In function `searchstring':
> > | /home/rchatre/poky_build/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libebl/eblwstrtab.c:228: undefined reference to `wmemcmp'
> > | collect2: ld returned 1 exit status
> > | make[3]: *** [libdw.so] Error 1
> > | make[3]: Leaving directory `/home/rchatre/poky_build/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdw'
> > | make[2]: *** [all] Error 2
> > | make[2]: Leaving directory `/home/rchatre/poky_build/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdw'
> > | make[1]: *** [all-recursive] Error 1
> > | make[1]: Leaving directory `/home/rchatre/poky_build/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148'
> > | make: *** [all] Error 2
> > | ERROR: oe_runmake failed
> >
> >
> > I would appreciate any hints on how to build a poky-tiny image for ARM.
> > I would prefer to build an image that can run in the host's qemu, not
> > needing yocto to build qemu. It seems that I will have to create a new
> > machine configuration for that but wanted to see if I can get the
> > standard items built first, which is giving the problems described
> > above.
> >
> 
> can you do the same exercise on master and see if you can reproduce the
> problem on master too. If the problem goes away then I think I have
> some idea what
> could be wrong.

I moved to master with HEAD of de4cdfd6bc1280ac7ac0559b87734d26294ef773.
Unfortunately the error appears to be the same. I copy it below:

| arm-poky-linux-gnueabi-ranlib libdw_pic.a
| arm-poky-linux-gnueabi-gcc  -march=armv5te  -marm -mthumb-interwork  -mtune=arm926ej-s --sysroot=/home/rchatre/poky_build_master/tmp/sysroots/qemuarm -std=gnu99 -Wall -Wshadow -Werror -Wunused -Wextra -fgnu89-inline -Wformat=2    -O2 -pipe -g -feliminate-unused-debug-types  -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o libdw.so -shared -o libdw.so -Wl,--soname,libdw.so.1,-z,defs \
| »------Wl,--enable-new-dtags,-rpath,/usr/lib/elfutils \
| »------Wl,--version-script,libdw.map,--no-undefined \
| »------Wl,--whole-archive libdw_pic.a ../libdwfl/libdwfl_pic.a ../libebl/libebl.a ../libelf/libelf.so -Wl,--no-whole-archive\
| »------ldl -lbz2 -lz
| ../libdwfl/libdwfl_pic.a(linux-kernel-modules.os): In function `dwfl_linux_kernel_report_offline':
| /home/rchatre/poky_build_master/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdwfl/linux-kernel-modules.c:310: undefined reference to `fts_open'
| /home/rchatre/poky_build_master/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdwfl/linux-kernel-modules.c:320: undefined reference to `fts_read'
| /home/rchatre/poky_build_master/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdwfl/linux-kernel-modules.c:391: undefined reference to `fts_close'
| /home/rchatre/poky_build_master/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdwfl/linux-kernel-modules.c:327: undefined reference to `fts_set'
| ../libdwfl/libdwfl_pic.a(linux-kernel-modules.os): In function `dwfl_linux_kernel_find_elf':
| /home/rchatre/poky_build_master/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdwfl/linux-kernel-modules.c:647: undefined reference to `fts_open'
| /home/rchatre/poky_build_master/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdwfl/linux-kernel-modules.c:691: undefined reference to `fts_read'
| /home/rchatre/poky_build_master/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdwfl/linux-kernel-modules.c:691: undefined reference to `fts_read'
| /home/rchatre/poky_build_master/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0ERROR: Function failed: do_compile (see /home/rchatre/poky_build_master/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/temp/log.do_compile.11166 for further information)
| .148-r7/elfutils-0.148/libdwfl/linux-kernel-modules.c:740: undefined reference to `fts_close'
| /home/rchatre/poky_build_master/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdwfl/linux-kernel-modules.c:698: undefined reference to `fts_set'
| /home/rchatre/poky_build_master/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdwfl/linux-kernel-modules.c:715: undefined reference to `fts_close'
| ../libdwfl/libdwfl_pic.a(linux-kernel-modules.os): In function `check_module_notes':
| /home/rchatre/poky_build_master/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdwfl/linux-kernel-modules.c:532: undefined reference to `fts_open'
| /home/rchatre/poky_build_master/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdwfl/linux-kernel-modules.c:541: undefined reference to `fts_read'
| /home/rchatre/poky_build_master/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdwfl/linux-kernel-modules.c:570: undefined reference to `fts_close'
| ../libebl/libebl.a(eblwstrtab.o): In function `copystrings':
| /home/rchatre/poky_build_master/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libebl/eblwstrtab.c:329: undefined reference to `wmempcpy'
| ../libebl/libebl.a(eblwstrtab.o): In function `ebl_wstrtabadd':
| /home/rchatre/poky_build_master/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libebl/eblwstrtab.c:249: undefined reference to `wcslen'
| ../libebl/libebl.a(eblwstrtab.o): In function `searchstring':
| /home/rchatre/poky_build_master/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libebl/eblwstrtab.c:228: undefined reference to `wmemcmp'
| collect2: error: ld returned 1 exit status
| make[3]: *** [libdw.so] Error 1
| make[3]: Leaving directory `/home/rchatre/poky_build_master/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdw'
| make[2]: *** [all] Error 2
| make[2]: Leaving directory `/home/rchatre/poky_build_master/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148/libdw'
| make[1]: *** [all-recursive] Error 1
| make[1]: Leaving directory `/home/rchatre/poky_build_master/tmp/work/armv5te-poky-linux-gnueabi/elfutils-0.148-r7/elfutils-0.148'
| make: *** [all] Error 2
| ERROR: oe_runmake failed
NOTE: package elfutils-0.148-r7: task do_compile: Failed
ERROR: Task 604 (/opt/poky.git/meta/recipes-devtools/elfutils/elfutils_0.148.bb, do_compile) failed with exit code '1'


I'd be happy to try any ideas you have. 

Reinette



More information about the yocto mailing list