[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