[yocto] Failed to cross compile kernel with Yocto toolchain

Zhenhua Luo zhenhua.luo at nxp.com
Fri Jul 1 01:45:16 PDT 2016


Thanks a lot for your comments, Daniel. 

Can somebody please shed light on how to fix the issue in Yocto recipes?  


Best Regards,

Zhenhua

> -----Original Message-----
> From: Daniel. [mailto:danielhilst at gmail.com]
> Sent: Friday, July 01, 2016 4:48 AM
> To: Zhenhua Luo <zhenhua.luo at nxp.com>
> Cc: Khem Raj <raj.khem at gmail.com>; yocto at yoctoproject.org
> Subject: Re: [yocto] Failed to cross compile kernel with Yocto toolchain
> 
> The problem is that ccache is not finding the compiler after environment-
> setup*.sh is sourced.Your error message can be foud at:
> https://github.com/ccache/ccache/blob/master/ccache.c#L2075. It seems that
> its searching for "gcc" when I though that kernel would search for
> "${CROSS_COMPILE}gcc"
> 
> 2016-06-29 22:54 GMT-03:00 Zhenhua Luo <zhenhua.luo at nxp.com>:
> > I think you mean /usr/lib64/ccache/gcc instead of /usr/lib64/gcc, it is a valid
> link.
> >
> > $ source /opt/poky/2.1+snapshot/environment-setup-ppce500mc-poky-
> linux
> > $ which gcc
> > /usr/lib64/ccache/gcc
> > $
> > $ ls -l /usr/lib64/ccache/gcc
> > lrwxrwxrwx 1 root root 16 Jun 29 18:22 /usr/lib64/ccache/gcc ->
> > ../../bin/ccache $ ls -l /usr/bin/ccache -rwxr-xr-x 1 root root 128584
> > Jan 26 14:58 /usr/bin/ccache $
> >
> >
> > Best Regards,
> >
> > Zhenhua
> >
> >> -----Original Message-----
> >> From: Daniel. [mailto:danielhilst at gmail.com]
> >> Sent: Wednesday, June 29, 2016 8:14 PM
> >> To: Zhenhua Luo <zhenhua.luo at nxp.com>
> >> Cc: Khem Raj <raj.khem at gmail.com>; yocto at yoctoproject.org
> >> Subject: Re: [yocto] Failed to cross compile kernel with Yocto
> >> toolchain
> >>
> >> Is /usr/lib64/gcc a file or a link? Is it a valid link?
> >>
> >> 2016-06-29 5:52 GMT-03:00 Zhenhua Luo <zhenhua.luo at nxp.com>:
> >> > The /usr/lib64/ccache is added in PATH by /etc/profile.d/ccache.sh
> >> > when ccache is installed on Fedora host, the issue disappears if
> >> > one of the following changes is done.
> >> >
> >> > 1.       Remove /usr/lib64/ccache from PATH
> >> >
> >> > 2.       Move /usr/lib64/ccache after /usr/bin in PATH
> >> >
> >> > 3.       Set CCACHE_PATH equals to PATH
> >> >
> >> > 4.       Unset CCACHE_PATH
> >> >
> >> >
> >> >
> >> > Another observation, before sourcing
> >> > environment-setup-<core>-poky-linux,
> >> > gcc can be found even if /usr/lib64/ccache is in prepend to PATH,
> >> > but after sourcing the environment-setup-<core>-poky-linux script,
> >> > the gcc can’t be found, this should be a bug of the
> >> > environment-setup-<core>-poky-linux
> >> > script. Should I open a Bugzilla ticket to track it?
> >> >
> >> >
> >> >
> >> > $ echo $PATH
> >> >
> >> > /usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/us
> >> > r/l
> >> > ocal/sbin:/usr/sbin:/home/bjsimics/.local/bin:/home/bjsimics/bin
> >> >
> >> > which gcc
> >> >
> >> > /usr/lib64/ccache/gcc
> >> >
> >> > $ gcc -v
> >> >
> >> > Using built-in specs.
> >> >
> >> > COLLECT_GCC=/usr/bin/gcc
> >> >
> >> > COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/5.3.1/lto-
> >> wra
> >> > pper
> >> >
> >> > Target: x86_64-redhat-linux
> >> >
> >> > Configured with: ../configure --enable-bootstrap
> >> > --enable-languages=c,c++,objc,obj-c++,fortran,ada,go,lto
> >> > --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info
> >> > --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared
> >> > --enable-threads=posix --enable-checking=release --enable-multilib
> >> > --with-system-zlib --enable-__cxa_atexit
> >> > --disable-libunwind-exceptions --enable-gnu-unique-object
> >> > --enable-linker-build-id --with-linker-hash-style=gnu
> >> > --enable-plugin --enable-initfini-array --disable-libgcj
> >> > --with-default-libstdcxx-abi=gcc4-compatible --with-isl
> >> > --enable-libmpx --enable-gnu-indirect-function --with-tune=generic
> >> > --with-arch_32=i686 --build=x86_64-redhat-linux
> >> >
> >> > Thread model: posix
> >> >
> >> > gcc version 5.3.1 20160406 (Red Hat 5.3.1-6) (GCC)
> >> >
> >> > $
> >> >
> >> > $ source /opt/poky/2.1+snapshot/environment-setup-ppce500mc-poky-
> >> linux
> >> >
> >> > $
> >> >
> >> > $ echo $PATH
> >> >
> >> > /opt/poky/2.1+snapshot/sysroots/x86_64-pokysdk-linux/usr/bin:/opt/p
> >> > oky
> >> > /2.1+snapshot/sysroots/x86_64-pokysdk-linux/usr/sbin:/opt/poky/2.1+
> >> > sna
> >> > pshot/sysroots/x86_64-pokysdk-linux/bin:/opt/poky/2.1+snapshot/sysr
> >> > oot
> >> > s/x86_64-pokysdk-linux/sbin:/opt/poky/2.1+snapshot/sysroots/x86_64-
> >> > pok
> >> > ysdk-linux/usr/bin/../x86_64-pokysdk-linux/bin:/opt/poky/2.1+snapsh
> >> > ot/
> >> > sysroots/x86_64-pokysdk-linux/usr/bin/powerpc-poky-linux:/opt/poky/
> >> > 2.1
> >> > +snapshot/sysroots/x86_64-pokysdk-linux/usr/bin/powerpc-poky-linux-
> >> > +ucl
> >> > ibc:/opt/poky/2.1+snapshot/sysroots/x86_64-pokysdk-linux/usr/bin/po
> >> > wer
> >> > pc-poky-linux-musl:/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/loc
> >> > al/
> >> > bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/bjsimics/.local/bin:/h
> >> > ome
> >> > /bjsimics/bin
> >> >
> >> > $
> >> >
> >> > $ which gcc
> >> >
> >> > /usr/lib64/ccache/gcc
> >> >
> >> > $ gcc -v
> >> >
> >> > ccache: error: Could not find compiler "gcc" in PATH
> >> >
> >> > $
> >> >
> >> >
> >> >
> >> >
> >> >
> >> > Best Regards,
> >> >
> >> >
> >> >
> >> > Zhenhua
> >> >
> >> >
> >> >
> >> > From: Khem Raj [mailto:raj.khem at gmail.com]
> >> > Sent: Tuesday, June 28, 2016 10:48 PM
> >> > To: Zhenhua Luo <zhenhua.luo at nxp.com>
> >> > Cc: yocto at yoctoproject.org
> >> > Subject: RE: [yocto] Failed to cross compile kernel with Yocto
> >> > toolchain
> >> >
> >> >
> >> >
> >> > /usr/lib64/ccache is unusual why do you have it in path and if you
> >> > really need it add it after all other paths. Check your env first
> >> >
> >> >
> >> >
> >> > On Jun 27, 2016 10:56 PM, "Zhenhua Luo" <zhenhua.luo at nxp.com> wrote:
> >> >
> >> > Hello Khem,
> >> >
> >> >
> >> >> -----Original Message-----
> >> >> From: Khem Raj [mailto:raj.khem at gmail.com]
> >> >> Sent: Tuesday, June 28, 2016 12:36 AM
> >> >> To: Zhenhua Luo <zhenhua.luo at nxp.com>
> >> >> Cc: yocto at yoctoproject.org
> >> >> Subject: Re: [yocto] Failed to cross compile kernel with Yocto
> >> >> toolchain
> >> >>
> >> >> On Mon, Jun 27, 2016 at 1:16 AM, Zhenhua Luo <zhenhua.luo at nxp.com>
> >> >> wrote:
> >> >> > Hello all,
> >> >> >
> >> >> >
> >> >> >
> >> >> > I generate the Yocto toolchain by “bitbake meta-toolchain”, and
> >> >> > use this toolchain to cross-compile kernel, I met the following error.
> >> >> > Is this a bug or I missed something? My host Linux is Fedora 22.
> >> >>
> >> >> its better to start using bitbake -cpopulate_sdk <image name> to
> >> >> generate SDKs.
> >> >>
> >> >>
> >> >> >
> >> >> >
> >> >> >
> >> >> > $ source
> >> >> > /opt/poky/2.1+snapshot/environment-setup-ppce500mc-poky-
> >> >> linux
> >> >> >
> >> >> > $ cd linux/
> >> >> >
> >> >> > $ make corenet32_smp_defconfig
> >> >> >
> >> >> >   HOSTCC  scripts/kconfig/conf.o
> >> >> >
> >> >> > ccache: error: Could not find compiler "gcc" in PATH
> >> >>
> >> >> did you see if gcc is in your path after sourcing SDK env script?
> >> >
> >> > [Luo Zhenhua-B19537] gcc can't be found after sourcing the SDK env script.
> >> > but the /usr/bin is in the PATH env variable.
> >> > $ source /opt/poky/2.1+snapshot/environment-setup-ppce500mc-poky-
> >> linux
> >> > $ echo $PATH
> >> > /opt/poky/2.1+snapshot/sysroots/x86_64-pokysdk-linux/usr/bin:/opt/p
> >> > oky
> >> > /2.1+snapshot/sysroots/x86_64-pokysdk-linux/usr/sbin:/opt/poky/2.1+
> >> > sna
> >> > pshot/sysroots/x86_64-pokysdk-linux/bin:/opt/poky/2.1+snapshot/sysr
> >> > oot
> >> > s/x86_64-pokysdk-linux/sbin:/opt/poky/2.1+snapshot/sysroots/x86_64-
> >> > pok
> >> > ysdk-linux/usr/bin/../x86_64-pokysdk-linux/bin:/opt/poky/2.1+snapsh
> >> > ot/
> >> > sysroots/x86_64-pokysdk-linux/usr/bin/powerpc-poky-linux:/opt/poky/
> >> > 2.1
> >> > +snapshot/sysroots/x86_64-pokysdk-linux/usr/bin/powerpc-poky-linux-
> >> > +ucl
> >> > ibc:/opt/poky/2.1+snapshot/sysroots/x86_64-pokysdk-linux/usr/bin/po
> >> > wer
> >> > pc-poky-linux-musl:/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/loc
> >> > al/
> >> > bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/bjsimics/.local/bin:/h
> >> > ome
> >> > /bjsimics/bin
> >> > $ echo $CCACHE_PATH
> >> > /opt/poky/2.1+snapshot/sysroots/x86_64-pokysdk-
> >> linux/usr/bin:/opt/poky/2.1+snapshot/sysroots/x86_64-pokysdk-
> >> linux/usr/bin/../x86_64-pokysdk-
> >> linux/bin:/opt/poky/2.1+snapshot/sysroots/x86_64-pokysdk-
> >> linux/usr/bin/powerpc-poky-linux:/opt/poky/2.1+snapshot/sysroots/x86_
> >> 64-
> >> pokysdk-linux/usr/bin/powerpc-poky-linux-
> >> uclibc:/opt/poky/2.1+snapshot/sysroots/x86_64-pokysdk-
> >> linux/usr/bin/powerpc-poky-linux-musl:
> >> > $ which gcc
> >> > /usr/lib64/ccache/gcc
> >> > $ gcc -v
> >> >
> >> > ccache: error: Could not find compiler "gcc" in PATH
> >> >
> >> > Best Regards,
> >> >
> >> > Zhenhua
> >> >
> >> >
> >> >> > scripts/Makefile.host:108: recipe for target 'scripts/kconfig/conf.o'
> >> >> > failed
> >> >> >
> >> >> > make[1]: *** [scripts/kconfig/conf.o] Error 1
> >> >> >
> >> >> > Makefile:541: recipe for target 'corenet32_smp_defconfig' failed
> >> >> >
> >> >> > make: *** [corenet32_smp_defconfig] Error 2
> >> >> >
> >> >> >
> >> >> >
> >> >> >
> >> >> >
> >> >> > Best Regards,
> >> >> >
> >> >> >
> >> >> >
> >> >> > Zhenhua
> >> >> >
> >> >> >
> >> >> > --
> >> >> > _______________________________________________
> >> >> > yocto mailing list
> >> >> > yocto at yoctoproject.org
> >> >> > https://lists.yoctoproject.org/listinfo/yocto
> >> >> >
> >> >
> >> >
> >> >
> >> >
> >> > --
> >> > _______________________________________________
> >> > yocto mailing list
> >> > yocto at yoctoproject.org
> >> > https://lists.yoctoproject.org/listinfo/yocto
> >> >
> >>
> >>
> >>
> >> --
> >> "Do or do not. There is no try"
> >>   Yoda Master
> 
> 
> 
> --
> "Do or do not. There is no try"
>   Yoda Master


More information about the yocto mailing list