am 172cd765: Merge "Allow coverage with clang."

* commit '172cd7653e4dfb628065349ea915329076e44e1d':
  Allow coverage with clang.
This commit is contained in:
Dan Albert
2015-01-24 23:42:11 +00:00
committed by Android Git Automerger

View File

@@ -289,20 +289,22 @@ endif # LOCAL_IS_HOST_MODULE
# clean build of your module after toggling it. # clean build of your module after toggling it.
ifeq ($(NATIVE_COVERAGE),true) ifeq ($(NATIVE_COVERAGE),true)
ifeq ($(my_native_coverage),true) ifeq ($(my_native_coverage),true)
# We can't currently generate coverage for clang binaries for two my_cflags += --coverage -O0
# reasons: ifeq ($(my_clang),true)
# # b/17574078
# 1) b/17574078 We currently don't have a prebuilt # We currently don't have a prebuilt libclang_rt.profile-<ARCH>.a,
# libclang_rt.profile-<ARCH>.a, which clang is hardcoded to link if # which clang is hardcoded to link if --coverage is passed in the
# --coverage is passed in the link stage. For now we manually link # link stage. For now we manually link libprofile_rt (which is the
# libprofile_rt (which is the name it is built as from # name it is built as from external/compiler-rt).
# external/compiler-rt). #
# # Note that clang coverage doesn't play nicely with acov out of the
# 2) b/17583330 Clang doesn't generate .gcno files when using # box. Clang apparently generates .gcno files that aren't compatible
# -no-integrated-as. Since most of the assembly in our tree is # with gcov-4.8. This can be solved by installing gcc-4.6 and
# incompatible with clang's assembler, we can't turn off this flag. # invoking lcov with `--gcov-tool /usr/bin/gcov-4.6`.
ifneq ($(my_clang),true) #
my_cflags += --coverage -O0 # http://stackoverflow.com/questions/17758126/clang-code-coverage-invalid-output
my_static_libraries += libprofile_rt
else
my_ldflags += --coverage my_ldflags += --coverage
endif endif
endif endif