]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
linux: dont ignore kmod build errors
authorMichael Meffie <mmeffie@sinenomine.net>
Tue, 3 Jun 2014 03:24:45 +0000 (23:24 -0400)
committerStephan Wiesand <stephan.wiesand@desy.de>
Thu, 26 Jun 2014 09:45:32 +0000 (05:45 -0400)
Errors from the linux kmod build are not propagated, since make is
run as the first command in a pipeline, and the shell returns the
exit code of the last command in the pipeline.  Run the make command
in a subshell to detect errors, and exit afterwards.  (This method
is more portable than bash specific pipeline processing options.)

Thanks to Mark Vitale for pointing out this build system defect
to me.

Reviewed-on: http://gerrit.openafs.org/11186
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Tested-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: D Brashear <shadow@your-file-system.com>
(cherry picked from commit 48789d47b613e40734e7b0caac58572a80f8b318)

Change-Id: Idbdfad2a50901041aedaed35b8f01d713a66620d
Reviewed-on: http://gerrit.openafs.org/11205
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Reviewed-by: Anders Kaseorg <andersk@mit.edu>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
src/libafs/MakefileProto.LINUX.in

index e2c96ee13c438e5a1de1b553c0d7333cd5040617..a79119d39b7f502c8fc4b34c42df5755aeef900a 100644 (file)
@@ -340,9 +340,11 @@ ${LIBAFS} ${LIBAFS_MP} ${LIBAFS_EP} ${LIBAFS_BM}: ${LINUX_LIBAFS_NAME}.ko
 .FORCE:
 ${LINUX_LIBAFS_NAME}.ko afspag.ko: .FORCE
        env EXTRA_CFLAGS="${EXTRA_CFLAGS}" @TOP_SRCDIR@/libafs/make_kbuild_makefile.pl ${KDIR} $@ @TOP_OBJDIR@/src/config/Makefile.config Makefile.afs Makefile.common
-       env EXTRA_CFLAGS="${EXTRA_CFLAGS}" $(MAKE) -C ${LINUX_KERNEL_BUILD} M=@TOP_OBJDIR@/src/libafs/${KDIR} modules 2>&1 | tee .makelog
-       @if [ `grep ^WARNING .makelog | wc -l` -ne 0 ]; then \
-               echo Error: Undefined symbols in modules ; \
+       ( env EXTRA_CFLAGS="${EXTRA_CFLAGS}" \
+               $(MAKE) -C ${LINUX_KERNEL_BUILD} M=@TOP_OBJDIR@/src/libafs/${KDIR} modules 2>&1 \
+               || echo "FAILURE: make exit code $$?" ) | tee .makelog
+       @if grep -E -q '^(FAILURE|WARNING)' .makelog; then \
+               grep -q '^WARNING' .makelog && echo "Error: Undefined symbols in modules" ; \
                rm .makelog ; \
                exit 1 ; \
        fi