]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Fix compiler error when using ./configure --enable-dev-mode --enable-coverage 68/3268/3
authorCorey Farrell <git@cfware.com>
Wed, 12 Nov 2014 13:44:32 +0000 (13:44 +0000)
committerJoshua Colp <jcolp@digium.com>
Thu, 21 Jul 2016 12:32:15 +0000 (07:32 -0500)
When DONT_OPTIMIZE is enabled with dev-mode, it causes a shadow compilation
to be done with output to /dev/null.  This can cause errors with coverage
when GCC attempts to write to /dev/null.gcno.  This change disables
coverage for the shadow compilation.

ASTERISK-24502 #close
Reported by: Corey Farrell
Review: https://reviewboard.asterisk.org/r/4151/

Change-Id: I64e321f0dc38adf9389f5455f88c3cd740d38470

Makefile.rules

index 5b4dfab96b93cf55a3be78f9889e4af9cea6dc1a..006df68ab5960431f03e7d0b7f121f68513d5141 100644 (file)
@@ -50,8 +50,10 @@ else
 endif
 
 ifeq ($(AST_CODE_COVERAGE),yes)
-    _ASTCFLAGS+=-ftest-coverage -fprofile-arcs
+    _ASTCFLAGS_COVERAGE=-ftest-coverage -fprofile-arcs
     _ASTLDFLAGS+=-ftest-coverage -fprofile-arcs
+else
+    _ASTCFLAGS_COVERAGE=
 endif
 
 ifeq ($(findstring $(CONFIG_CFLAGS),$(_ASTCFLAGS)),)
@@ -93,41 +95,41 @@ endif
 ifeq ($(COMPILE_DOUBLE),yes)
        $(CMD_PREFIX) $(CC) -o /dev/null -c $< $(CC_CFLAGS) $(OPTIMIZE)
 endif
-       $(CMD_PREFIX) $(CC) -o $@ -c $< $(CC_CFLAGS)
+       $(CMD_PREFIX) $(CC) -o $@ -c $< $(CC_CFLAGS) $(_ASTCFLAGS_COVERAGE)
 
 %.o: %.i
        $(ECHO_PREFIX) echo "   [CCi] $< -> $@"
 ifeq ($(COMPILE_DOUBLE),yes)
        $(CMD_PREFIX) $(CC) -o /dev/null -c $< $(CC_CFLAGS) $(OPTIMIZE)
 endif
-       $(CMD_PREFIX) $(CC) -o $@ -c $< $(CC_CFLAGS)
+       $(CMD_PREFIX) $(CC) -o $@ -c $< $(CC_CFLAGS) $(_ASTCFLAGS_COVERAGE)
 
 ifneq ($(COMPILE_DOUBLE),yes)
 %.o: %.c
        $(ECHO_PREFIX) echo "   [CC] $< -> $@"
-       $(CMD_PREFIX) $(CC) -o $@ -c $< $(MAKE_DEPS) $(CC_CFLAGS)
+       $(CMD_PREFIX) $(CC) -o $@ -c $< $(MAKE_DEPS) $(CC_CFLAGS) $(_ASTCFLAGS_COVERAGE)
 endif
 
 %.i: %.c
        $(ECHO_PREFIX) echo "   [CPP] $< -> $@"
-       $(CMD_PREFIX) $(CC) -o $@ -E $< $(MAKE_DEPS) $(CC_CFLAGS)
+       $(CMD_PREFIX) $(CC) -o $@ -E $< $(MAKE_DEPS) $(CC_CFLAGS) $(_ASTCFLAGS_COVERAGE)
 
 %.oo: %.ii
        $(ECHO_PREFIX) echo "   [CXXi] $< -> $@"
 ifeq ($(COMPILE_DOUBLE),yes)
        $(CMD_PREFIX) $(CXX) -o /dev/null -c $< $(CXX_CFLAGS) $(OPTIMIZE)
 endif
-       $(CMD_PREFIX) $(CXX) -o $@ -c $< $(CXX_CFLAGS)
+       $(CMD_PREFIX) $(CXX) -o $@ -c $< $(CXX_CFLAGS) $(_ASTCFLAGS_COVERAGE)
 
 ifneq ($(COMPILE_DOUBLE),yes)
 %.oo: %.cc
        $(ECHO_PREFIX) echo "   [CXX] $< -> $@"
-       $(CMD_PREFIX) $(CXX) -o $@ -c $< $(MAKE_DEPS) $(CXX_CFLAGS)
+       $(CMD_PREFIX) $(CXX) -o $@ -c $< $(MAKE_DEPS) $(CXX_CFLAGS) $(_ASTCFLAGS_COVERAGE)
 endif
 
 %.ii: %.cc
        $(ECHO_PREFIX) echo "   [CPP] $< -> $@"
-       $(CMD_PREFIX) $(CXX) -o $@ -E $< $(MAKE_DEPS) $(CXX_CFLAGS)
+       $(CMD_PREFIX) $(CXX) -o $@ -E $< $(MAKE_DEPS) $(CXX_CFLAGS) $(_ASTCFLAGS_COVERAGE)
 
 %.so: %.o
 ifeq ($(GNU_LD),1)