GNU make 3.82 has introduced some backward incompatibilities. As a result, busybox cannot be built with make 3.82. Here's what happens: pipping@bogus ~/busybox-1.16.1 $ ~/make-3.82/make -j2 AR=x86_64-pc-linux-gnu-ar AS=x86_64-pc-linux-gnu-as CC=x86_64-pc-linux-gnu-gcc CPP='x86_64-pc-linux-gnu-gcc -E' LD=x86_64-pc-linux-gnu-gcc -nostdlib NM=x86_64-pc-linux-gnu-nm V=1 defconfig -n Makefile:431: *** mixed implicit and normal rules. Stop. pipping@bogus ~/busybox-1.16.1 $ Here's what's supposed to happen: pipping@bogus ~/busybox-1.16.1 $ ~/make-3.81/make -j2 AR=x86_64-pc-linux-gnu-ar AS=x86_64-pc-linux-gnu-as CC=x86_64-pc-linux-gnu-gcc CPP='x86_64-pc-linux-gnu-gcc -E' LD=x86_64-pc-linux-gnu-gcc -nostdlib NM=x86_64-pc-linux-gnu-nm V=1 defconfig -n /home/pipping/make-3.81/make -f scripts/Makefile.build obj=scripts/basic set -e; echo ' gcc -Wp,-MD,scripts/basic/.fixdep.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -o scripts/basic/fixdep scripts/basic/fixdep.c '; gcc -Wp,-MD,scripts/basic/.fixdep.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -o scripts/basic/fixdep scripts/basic/fixdep.c ; scripts/basic/fixdep scripts/basic/.fixdep.d scripts/basic/fixdep 'gcc -Wp,-MD,scripts/basic/.fixdep.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -o scripts/basic/fixdep scripts/basic/fixdep.c ' > scripts/basic/.fixdep.tmp; rm -f scripts/basic/.fixdep.d; mv -f scripts/basic/.fixdep.tmp scripts/basic/.fixdep.cmd set -e; echo ' gcc -Wp,-MD,scripts/basic/.split-include.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -o scripts/basic/split-include scripts/basic/split-include.c '; gcc -Wp,-MD,scripts/basic/.split-include.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -o scripts/basic/split-include scripts/basic/split-include.c ; scripts/basic/fixdep scripts/basic/.split-include.d scripts/basic/split-include 'gcc -Wp,-MD,scripts/basic/.split-include.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -o scripts/basic/split-include scripts/basic/split-include.c ' > scripts/basic/.split-include.tmp; rm -f scripts/basic/.split-include.d; mv -f scripts/basic/.split-include.tmp scripts/basic/.split-include.cmd set -e; echo ' gcc -Wp,-MD,scripts/basic/.docproc.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -o scripts/basic/docproc scripts/basic/docproc.c '; gcc -Wp,-MD,scripts/basic/.docproc.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -o scripts/basic/docproc scripts/basic/docproc.c ; scripts/basic/fixdep scripts/basic/.docproc.d scripts/basic/docproc 'gcc -Wp,-MD,scripts/basic/.docproc.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -o scripts/basic/docproc scripts/basic/docproc.c ' > scripts/basic/.docproc.tmp; rm -f scripts/basic/.docproc.d; mv -f scripts/basic/.docproc.tmp scripts/basic/.docproc.cmd : mkdir -p include /home/pipping/make-3.81/make -f scripts/Makefile.build obj=scripts/kconfig defconfig set -e; echo ' gcc -Wp,-MD,scripts/kconfig/.conf.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -c -o scripts/kconfig/conf.o scripts/kconfig/conf.c'; gcc -Wp,-MD,scripts/kconfig/.conf.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -c -o scripts/kconfig/conf.o scripts/kconfig/conf.c; scripts/basic/fixdep scripts/kconfig/.conf.o.d scripts/kconfig/conf.o 'gcc -Wp,-MD,scripts/kconfig/.conf.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -c -o scripts/kconfig/conf.o scripts/kconfig/conf.c' > scripts/kconfig/.conf.o.tmp; rm -f scripts/kconfig/.conf.o.d; mv -f scripts/kconfig/.conf.o.tmp scripts/kconfig/.conf.o.cmd set -e; echo ' gcc -Wp,-MD,scripts/kconfig/.kxgettext.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -c -o scripts/kconfig/kxgettext.o scripts/kconfig/kxgettext.c'; gcc -Wp,-MD,scripts/kconfig/.kxgettext.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -c -o scripts/kconfig/kxgettext.o scripts/kconfig/kxgettext.c; scripts/basic/fixdep scripts/kconfig/.kxgettext.o.d scripts/kconfig/kxgettext.o 'gcc -Wp,-MD,scripts/kconfig/.kxgettext.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -c -o scripts/kconfig/kxgettext.o scripts/kconfig/kxgettext.c' > scripts/kconfig/.kxgettext.o.tmp; rm -f scripts/kconfig/.kxgettext.o.d; mv -f scripts/kconfig/.kxgettext.o.tmp scripts/kconfig/.kxgettext.o.cmd set -e; echo ' gcc -Wp,-MD,scripts/kconfig/.mconf.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -c -o scripts/kconfig/mconf.o scripts/kconfig/mconf.c'; gcc -Wp,-MD,scripts/kconfig/.mconf.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -c -o scripts/kconfig/mconf.o scripts/kconfig/mconf.c; scripts/basic/fixdep scripts/kconfig/.mconf.o.d scripts/kconfig/mconf.o 'gcc -Wp,-MD,scripts/kconfig/.mconf.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -c -o scripts/kconfig/mconf.o scripts/kconfig/mconf.c' > scripts/kconfig/.mconf.o.tmp; rm -f scripts/kconfig/.mconf.o.d; mv -f scripts/kconfig/.mconf.o.tmp scripts/kconfig/.mconf.o.cmd echo ' cat scripts/kconfig/zconf.tab.c_shipped > scripts/kconfig/zconf.tab.c'; cat scripts/kconfig/zconf.tab.c_shipped > scripts/kconfig/zconf.tab.c echo ' cat scripts/kconfig/lex.zconf.c_shipped > scripts/kconfig/lex.zconf.c'; cat scripts/kconfig/lex.zconf.c_shipped > scripts/kconfig/lex.zconf.c echo ' cat scripts/kconfig/zconf.hash.c_shipped > scripts/kconfig/zconf.hash.c'; cat scripts/kconfig/zconf.hash.c_shipped > scripts/kconfig/zconf.hash.c set -e; echo ' gcc -Wp,-MD,scripts/kconfig/.zconf.tab.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -Iscripts/kconfig -c -o scripts/kconfig/zconf.tab.o scripts/kconfig/zconf.tab.c'; gcc -Wp,-MD,scripts/kconfig/.zconf.tab.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -Iscripts/kconfig -c -o scripts/kconfig/zconf.tab.o scripts/kconfig/zconf.tab.c; scripts/basic/fixdep scripts/kconfig/.zconf.tab.o.d scripts/kconfig/zconf.tab.o 'gcc -Wp,-MD,scripts/kconfig/.zconf.tab.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -Iscripts/kconfig -c -o scripts/kconfig/zconf.tab.o scripts/kconfig/zconf.tab.c' > scripts/kconfig/.zconf.tab.o.tmp; rm -f scripts/kconfig/.zconf.tab.o.d; mv -f scripts/kconfig/.zconf.tab.o.tmp scripts/kconfig/.zconf.tab.o.cmd set -e; echo ' gcc -o scripts/kconfig/conf scripts/kconfig/conf.o scripts/kconfig/zconf.tab.o '; gcc -o scripts/kconfig/conf scripts/kconfig/conf.o scripts/kconfig/zconf.tab.o ; echo 'cmd_scripts/kconfig/conf := gcc -o scripts/kconfig/conf scripts/kconfig/conf.o scripts/kconfig/zconf.tab.o ' > scripts/kconfig/.conf.cmd scripts/kconfig/conf -d Config.in true && sleep 1 /home/pipping/make-3.81/make -C /home/pipping/busybox-1.16.1 KBUILD_SRC= .kernelrelease rm -f .kernelrelease echo 1.16.1 > .kernelrelease pipping@bogus ~/busybox-1.16.1 $ This happens with busybox 1.16.1, 1.17.1 and today's snapshot (August 3rd of '10).
Created attachment 2359 [details] make-3.82 fix
the patch works for me; compilation of busybox-1.17.1 with default config was successful
Thanks! Applied to git and added to hotfixes: http://busybox.net/downloads/fixes-1.17.1/busybox-1.17.1-make.patch