kernel makefiles broken?
Hi,
I've noticed on two machines now that the kernel makefiles seem to have changed their behaviour. One x86 RH-based, and one parisc debian based.
make seems to ignores errors from gcc, and only stops when trying to link. On a PARISC box, I've seen the build get all the way though to successfully linking vmlinux, even with compilation failures. Obviously not ideal, since vmlinux may not reflect reality.
arm-linux-gcc -Wp,-MD,./.sl82c105.o.d -D__KERNEL__ -I/home/rmk/v2.5/linux-ebsa285/include -Wall -Wstrict-prototypes -Wno-trigraphs -Os -fno-strict-aliasing -fno-common -mapcs -mapcs-32 -D__LINUX_ARM_ARCH__=4 -march=armv4 -mtune=strongarm110 -mshort-load-bytes -msoft-float -Wa,-mno-fpu -nostdinc -iwithprefix include
-I../ -DKBUILD_BASENAME=sl82c105 -c -o sl82c105.o sl82c105.cdrivers/ide/pci/sl82c105.c: In function `sl82c105_init_one':drivers/ide/pci/sl82c105.c:287: `slc82c105_chipsets' undeclared (first use in this function)drivers/ide/pci/sl82c105.c:287: (Each undeclared identifier is reported only oncedrivers/ide/pci/sl82c105.c:287: for each function it appears in.)/home/rmk/v2.5/linux-ebsa285/include/asm/dma.h: At top level:drivers/ide/pci/sl82c105.h:12: warning: `sl82c105_chipsets' defined but not used
arm-linux-gcc -Wp,-MD,./.generic.o.d -D__KERNEL__ -I/home/rmk/v2.5/linux-ebsa285/include -Wall -Wstrict-prototypes -Wno-trigraphs -Os -fno-strict-aliasing -fno-common -mapcs -mapcs-32 -D__LINUX_ARM_ARCH__=4 -march=armv4 -mtune=strongarm110 -mshort-load-bytes -msoft-float -Wa,-mno-fpu -nostdinc -iwithprefix include -I../ -DKBUILD_BASENAME=generic -c -o generic.o generic.cdrivers/ide/pci/generic.h:148: warning: `unknown_chipset' defined but not useddrivers/ide/pci/generic.c:84: warning: `init_setup_unknown' defined but not used
arm-linux-ld -r -o built-in.o cy82c693.o pdc202xx_old.o sl82c105.o generic.o
arm-linux-ld: cannot open sl82c105.o: No such file or directory
make[3]: *** [built-in.o] Error 1
make[3]: Leaving directory `/home/rmk/v2.5/linux-ebsa285/drivers/ide/pci'
make[2]: *** [pci] Error 2
make[2]: Leaving directory `/home/rmk/v2.5/linux-ebsa285/drivers/ide'
make[1]: *** [ide] Error 2
make[1]: Leaving directory `/home/rmk/v2.5/linux-ebsa285/drivers'
make: *** [drivers] Error 2
Signature · 2 lines
Russell King ([email protected]) The developer of ARM Linux http://www.arm.linux.org.uk/personal/aboutme.html
Quoted 9 lines · On Wed, 2 Oct 2002 11:40:28 +0100 Russell King <[email protected]> wrote:
Hi,
I've noticed on two machines now that the kernel makefiles seem to have changed their behaviour. One x86 RH-based, and one parisc debian based.
make seems to ignores errors from gcc, and only stops when trying to link. On a PARISC box, I've seen the build get all the way though to successfully linking vmlinux, even with compilation failures. Obviously not ideal, since vmlinux may not reflect reality.
It looks like this change might have broken kbuild:
Quoted 2 lines
Quoted 2 lines
Kai Germaschewski <[email protected]>:
o kbuild: Make KBUILD_VERBOSE=0 work better under emacs
See the exchange between Adrian Bunk and Kai under the "Linux v2.5.40 - and a feature freeze reminder" thread.
Quoted 1 line · Russell King
Hi,
Hi Russell,
Quoted 8 lines
I've noticed on two machines now that the kernel makefiles seem to have changed their behaviour. One x86 RH-based, and one parisc debian based.
make seems to ignores errors from gcc, and only stops when trying to link. On a PARISC box, I've seen the build get all the way though to successfully linking vmlinux, even with compilation failures. Obviously not ideal, since vmlinux may not reflect reality.
...
known bug, already fixed in Linus' BK tree, patch is below.
cu
Adrian
Rules.make +1 -8
@@ -517,13 +517,6 @@ include $(cmd_files) endif -# Emacs compile mode works best with relative paths to find files (OK -# if verbose, as it tracks the make[1] entries and exits, etc.) - -ifneq ($(KBUILD_VERBOSE),1) - filter-output = 2>&1 | sed 's \(^[^/][A-Za-z0-9_./-]*:[ 0-9]\) $(RELDIR)/\1 ' -endif - # function to only execute the passed command if necessary if_changed = $(if $(strip $? \
@@ -543,7 +536,7 @@ $(filter-out $(cmd_$@),$(cmd_$(1)))),\ @set -e; \ $(if $($(quiet)cmd_$(1)),echo ' $($(quiet)cmd_$(1))';) \ - $(cmd_$(1)) $(filter-output); \ + $(cmd_$(1)); \ $(TOPDIR)/scripts/fixdep $(depfile) $@ $(TOPDIR) '$(cmd_$(1))' > $(@D)/.$(@F).tmp; \ rm -f $(depfile); \ mv -f $(@D)/.$(@F).tmp $(@D)/.$(@F).cmd)