summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Mertz <scott@cyngn.com>2016-06-01 13:40:25 -0700
committerScott Mertz <scott@cyngn.com>2016-06-03 08:09:31 -0700
commit0bf14034d6d724cd426f65a8917988b5459251c8 (patch)
tree25bf75202d161d091bf2480ff1a7a738c3336cad
parent96170ade9b7c48d7241e9a8b0d975c835dd961a1 (diff)
downloadbuild-0bf14034d6d724cd426f65a8917988b5459251c8.zip
build-0bf14034d6d724cd426f65a8917988b5459251c8.tar.gz
build-0bf14034d6d724cd426f65a8917988b5459251c8.tar.bz2
build: add kernel header dependency if module uses kernel headers
Many of the QCOM components use kernel headers, but don't declare the dependency on them. This is fine in CAF because of the way they build the boot.img before anything else. In CM, we don't build the boot.img the same, so we run into a race between the kernel build & these modules... and the modules lose. Warn about modules that have this missing dependency, and add it for them so we don't have to modify each Android.mk. Change-Id: I95f1e47b5ef440f6f5d8f64a0c3f38d9572e839e
-rw-r--r--core/binary.mk9
1 files changed, 9 insertions, 0 deletions
diff --git a/core/binary.mk b/core/binary.mk
index 77612ad..7610dce 100644
--- a/core/binary.mk
+++ b/core/binary.mk
@@ -30,6 +30,15 @@ else
endif
endif
+# Many qcom modules don't correctly set a dependency on the kernel headers. Fix it for them,
+# but warn the user.
+ifneq (,$(findstring $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include,$(LOCAL_C_INCLUDES)))
+ ifeq (,$(findstring $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr,$(LOCAL_ADDITIONAL_DEPENDENCIES)))
+ $(warning $(LOCAL_MODULE) uses kernel headers, but does not depend on them!)
+ LOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr
+ endif
+endif
+
# The following LOCAL_ variables will be modified in this file.
# Because the same LOCAL_ variables may be used to define modules for both 1st arch and 2nd arch,
# we can't modify them in place.