【已解决】cygwin下编译buildroot在Installing kernel headers期间出错:Makefile:1444: *** mixed implicit and normal rules. Stop.

【问题】

折腾:

【记录】在Cygwin上用Buildroot为xscale建立交叉工具链

期间,在Installing kernel headers期间,出错:

CLi@PC-CLI-1 ~/develop/buildroot/buildroot-2013.05
$ make
/bin/make -j4  HOSTCC="/bin/gcc" HOSTCXX="/bin/g++" silentoldconfig
make[1]: Entering directory `/home/CLi/develop/buildroot/buildroot-2013.05'
BR2_DEFCONFIG=''  KCONFIG_AUTOCONFIG=/home/CLi/develop/buildroot/buildroot-2013.05/output/build/buildroot-config/auto.conf  KCONFIG_AUTOHEADER=/home/CLi/develop/buildroot/buildroot-2013.05/output/build/buildroot-config/autoconf.h  KCONFIG_TRISTATE=/home/CLi/develop/buildroot/buildroot-2013.05/output/build/buildroot-config/tristate.config  BUILDROOT_CONFIG=/home/CLi/develop/buildroot/buildroot-2013.05/.config /home/CLi/develop/buildroot/buildroot-2013.05/output/build/buildroot-config/conf --silentoldconfig Config.in
make[1]: Leaving directory `/home/CLi/develop/buildroot/buildroot-2013.05'
>>>   Extracting kernel headers
rm -rf /home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux
/bin/install -d /home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux-2.6.19.1
bzcat /home/CLi/develop/buildroot/buildroot-2013.05/dl/linux-2.6.19.1.tar.bz2 | \
tar --strip-components=1 -C /home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux-2.6.19.1  -xf -
touch /home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux-2.6.19.1/.unpacked
>>>   Patching kernel headers
support/scripts/apply-patches.sh /home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux-2.6.19.1 toolchain/kernel-headers \
        linux-2.6.19.1-\*.patch{,.gz,.bz2}
touch /home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux-2.6.19.1/.patched
>>>   Installing kernel headers
(cd /home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux-2.6.19.1; \
 /bin/make -j4 ARCH=arm \
        HOSTCC="/home/CLi/develop/buildroot/buildroot-2013.05/output/host/usr/bin/ccache /bin/gcc" HOSTCFLAGS="" \
        HOSTCXX="/home/CLi/develop/buildroot/buildroot-2013.05/output/host/usr/bin/ccache /bin/g++" \
        INSTALL_HDR_PATH=/home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux headers_install; \
)
make[1]: arm-xscale-linux-gnu-gcc: Command not found
make[1]: Entering directory `/home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux-2.6.19.1'
make[1]: Entering directory `/home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux-2.6.19.1'
Makefile:1444: *** mixed implicit and normal rules.  Stop.
make[1]: Leaving directory `/home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux-2.6.19.1'
toolchain/kernel-headers/kernel-headers.mk:60: recipe for target `/home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux/.configured' failed
make: *** [/home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux/.configured] Error 2

如图:

cygwin buildroot Makefile 1444 mixed implicit and normal rules Stop

即:

Makefile:1444: *** mixed implicit and normal rules. Stop.

【解决过程】

1.这个问题,很明显,是以前,在编译crosstool-ng时,就遇到过多次,并且通过:

【记录】Cygwin下把make从v3.82换成v3.81

已经彻底解决了的。

即:此处的cygwin,已经是,旧的3.81版本的了。不应该再出现此问题才对。

但是怎么此处又出现了。

2.去看了看,当前的make的版本:

CLi@PC-CLI-1 ~/develop/buildroot/buildroot-2013.05
$ make --version
GNU Make 3.82.90
Built for i686-pc-cygwin
Copyright (C) 2010  Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

果然是异常的3.82.

3.然后才想起来,估计是之前:

【记录】将win7 x64下的cygwin的gcc从当前的4.7.3降级到4.5.3

不小心,结果cygwin安装过程,内部自动把3.81升级为3.82了。

4.所以,只能此处,再去重新,降级make,将当前的3.82,再次重新换为3.81的:

【记录】更换cygwin中某个模块的版本:再次将make从3.82换成3.81

5.然后再去编译试试,就可以了:

CLi@PC-CLI-1 ~/develop/buildroot/buildroot-2013.05
$ make
>>>   Installing kernel headers
(cd /home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux-2.6.19.1; \
         /bin/make -j4 ARCH=arm \
                HOSTCC="/home/CLi/develop/buildroot/buildroot-2013.05/output/host/usr/bin/ccache /bin/gcc" HOSTCFLAGS="" \
                HOSTCXX="/home/CLi/develop/buildroot/buildroot-2013.05/output/host/usr/bin/ccache /bin/g++" \
                INSTALL_HDR_PATH=/home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux headers_install; \
        )
make[1]: arm-xscale-linux-gnu-gcc: Command not found
make[1]: Entering directory `/home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux-2.6.19.1'
make[1]: Entering directory `/home/CLi/develop/buildroot/buildroot-2013.05/output/toolchain/linux-2.6.19.1'
  CHK     include/linux/version.h
  HOSTCC  scripts/basic/fixdep

如图:

fix make error continue build

 

【总结】

此处,cygwin下编译buildroot,又出现了之前就遇到的:

Makefile:1444: *** mixed implicit and normal rules.  Stop.

错误,原因是:

makefile的版本,3.81的时候,支持混合语法,3.82不支持,

当前是3.82的make。

解决办法是:

换成3.81的make。

 

相关的内容,详见:

Makefile:240: *** mixed implicit and normal rules. Stop.



发表评论

电子邮件地址不会被公开。 必填项已用*标注

无觅相关文章插件,快速提升流量