It is $(obj)/oid_registry.o that is dependent on $(obj)/oid_registry_data.c. The object file cannot be built until $(obj)/oid_registry_data.c has been generated.
A periodic and hard to reproduce parallel build failure is due to this incorrect lib/Makefile dependency. The compile error is completely disingenuous. GEN lib/oid_registry_data.c Compiling 49 OIDs CC lib/oid_registry.o gcc: error: lib/oid_registry.c: No such file or directory gcc: fatal error: no input files compilation terminated. make[3]: *** [lib/oid_registry.o] Error 4 Cc: Andrew Morton <a...@linux-foundation.org> Cc: Akinobu Mita <akinobu.m...@gmail.com> Cc: Michel Lespinasse <wal...@google.com> Cc: David Howells <dhowe...@redhat.com> Cc: "David S. Miller" <da...@davemloft.net> Signed-off-by: Tim Gardner <tim.gard...@canonical.com> --- I've only ever been able to reproduce this build failure on an Ubuntu PPA, and then only infrequently. Restarting the build generally succeeds. I beleive the root of the issue to be an incorrect dependency, though I'm not sure why it doesn't fail more often. Its never failed when run by hand, even on large N-way systems. Commit a77ad6ea0b0bb1f9d1f52ed494bd72a5fdde208e which introduced this change came in with 3.7-rc1, so this patch is not applicable for stable. lib/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Makefile b/lib/Makefile index 821a162..a08b791 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -163,7 +163,7 @@ $(obj)/crc32table.h: $(obj)/gen_crc32table # obj-$(CONFIG_OID_REGISTRY) += oid_registry.o -$(obj)/oid_registry.c: $(obj)/oid_registry_data.c +$(obj)/oid_registry.o: $(obj)/oid_registry_data.c $(obj)/oid_registry_data.c: $(srctree)/include/linux/oid_registry.h \ $(src)/build_OID_registry -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/