[poky] The problem of using the external toolchain

Richard Purdie richard.purdie at linuxfoundation.org
Sat Mar 31 08:44:26 PDT 2012


On Sat, 2012-03-31 at 09:55 +0000, Wangdawei (Sivan) wrote:
> The reason is that I want to use the binary toolchain I have own in
> yocto, and I don’t have the source code of the toolchain , then I do
> the steps below:
>  
> 1. add a line in local.conf like this TCMODE ?= "external-csl2008q3"
> 2.modify the file tcmode-external-csl2008q3.inc, change
> EXTERNAL_TOOLCHAIN = "/opt/toolchain-be8/armeb-linux-gnueabi" to refer
> to where my binary toolchain stored
> 3. comment the line “#SRC_URI = "file://SUPPORTED"” in file
> “external-csl-toolchain_2008q3-72.bb”,because we don’t have the source
> code ,so I think the SRC_URI maybe will be NULL
>  
> When I do this , but it failed , below is the log I have got:
>  
> NOTE: package binutils-cross-2.21.1a-r0: task do_configure: Started
>
> ERROR: Function 'do_configure' failed
> (see /home/ccc/poky-second/build/tmp/work/i586-none-linux/binutils-cross-2.21.1a-r0/temp/log.do_configure.5085 for further information)
>
> ERROR: Logfile of failure stored
> in: /home/ccc/poky-second/build/tmp/work/i586-none-linux/binutils-cross-2.21.1a-r0/temp/log.do_configure.5085
>
> Log data follows:
>
> | DEBUG: SITE files ['endian-little', 'common-linux', 'common-glibc', 
> | 'bit-64', 'x86_64-linux', 'common']
> | configure.ac:32: error: Please use exactly Autoconf 2.64 instead of
> 2.68.
> | config/override.m4:12: _GCC_AUTOCONF_VERSION_CHECK is expanded
> from...
> | configure.ac:32: the top level
> |
> autom4te: /home/ccc/poky-second/build/tmp/sysroots/x86_64-linux/usr/bin/m4 failed with exit status: 1
> | NOTE:
> Running /home/ccc/poky-second/build/tmp/work/i586-none-linux/binutils-cross-2.21.1a-r0/binutils-2.21.1/configure                 --build=x86_64-linux             --host=x86_64-linux             --target=i586-none-linux               --prefix=/home/ccc/poky-second/build/tmp/sysroots/x86_64-linux/usr              --exec_prefix=/home/ccc/poky-second/build/tmp/sysroots/x86_64-linux/usr                 --bindir=/home/ccc/poky-second/build/tmp/sysroots/x86_64-linux/usr/bin/i586-none-linux                 --sbindir=/home/ccc/poky-second/build/tmp/sysroots/x86_64-linux/usr/bin/i586-none-linux                 --libexecdir=/home/ccc/poky-second/build/tmp/sysroots/x86_64-linux/usr/libexec/i586-none-linux                 --datadir=/home/ccc/poky-second/build/tmp/sysroots/x86_64-linux/usr/share               --sysconfdir=/home/ccc/poky-second/build/tmp/sysroots/x86_64-linux/etc                 --sharedstatedir=/home/ccc/poky-second/build/tmp/sysroots/x86_64-linux/com              --localstatedir=/home/ccc/poky-second/build/tmp/sysroots/x86_64-linux/var              --libdir=/home/ccc/poky-second/build/tmp/sysroots/x86_64-linux/usr/lib/i586-none-linux                  --includedir=/home/ccc/poky-second/build/tmp/sysroots/x86_64-linux/usr/include                 --oldincludedir=/home/ccc/poky-second/build/tmp/sysroots/x86_64-linux/usr/include               --infodir=/home/ccc/poky-second/build/tmp/sysroots/x86_64-linux/usr/share/info                 --mandir=/home/ccc/poky-second/build/tmp/sysroots/x86_64-linux/usr/share/man            --disable-silent-rules                  --with-libtool-sysroot=/home/ccc/poky-second/build/tmp/sysroots/x86_64-linux --with-sysroot=/home/ccc/poky-second/build/tmp/sysroots/qemux86                 --program-prefix=i586-none-linux-                 --disable-install-libbfd                 --disable-werror                 --enable-poison-system-directories                  --enable-nls ...
>
> | checking build system type... x86_64-pc-linux-gnu checking host
> system 
> | type... x86_64-pc-linux-gnu checking target system type... 
> | i586-none-linux-gnu checking for a BSD-compatible install... 
> | /usr/bin/install -c checking whether ln works... yes checking
> whether
> | ln -s works... yes checking for a sed that does not truncate
> output... 
> | /bin/sed checking for gawk... gawk checking for x86_64-linux-gcc... 
> | gcc checking for C compiler default output file name...
> | configure: error: in
> `/home/ccc/poky-second/build/tmp/work/i586-none-linux/binutils-cross-2.21.1a-r0/binutils-2.21.1/build.x86_64-linux.i586-none-linux':
> | configure: error: C compiler cannot create executables See 
> | `config.log' for more details
> | ERROR: oe_runconf failed
> | ERROR: Function 'do_configure' failed (see 
> | /home/ccc/poky-second/build/tmp/work/i586-none-linux/binutils-cross-2.
> | 21.1a-r0/temp/log.do_configure.5085 for further information)
> NOTE: package binutils-cross-2.21.1a-r0: task do_configure: Failed


> We can see the toolchain it checked is also the x86_64-linux-gcc , not
> the toolchain I assigned  “EXTERNAL_TOOLCHAIN =
> "/opt/toolchain-be8/armeb-linux-gnueabi"”

This is for the *build* system (i.e. the system you are compiling on) so
its likely correct.

It then goes on to look at the target of "i586-none-linux-gnu" which
sounds wrong given you appear to have an armeb toolchain?

I suspect you need to target a big endian arm machine rather than
MACHINE=qemux86 which I suspect you're currently using?

Cheers,

Richard





More information about the poky mailing list