[asterisk-dev] [Code Review] 4151: Fix compiler error when using ./configure --enable-dev-mode --enable-coverage

Corey Farrell reviewboard at asterisk.org
Sat Nov 8 03:47:05 CST 2014



> On Nov. 6, 2014, 6:04 a.m., wdoekes wrote:
> > Isn't the better fix to disable coverage for the shadow compilation?
> 
> Corey Farrell wrote:
>     Probably.  I have updated code but I won't have time to test until this weekend.  I'll update the review once I've had a chance to do some builds with it.
> 
> Matt Jordan wrote:
>     I'm kind of surprised by this, since the build agents compile with --enable-dev-mode and --enable-coverage:
>     
>     https://bamboo.asterisk.org/bamboo/browse/AST-ATSF-410/artifact/C632TE/Coverage/coverage.tar.gz

I agree, it must be some difference between versions of GCC.  Or if the build agents run make as root, maybe you'll find that you have a /dev/null.gcno file after the build :)


- Corey


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/4151/#review13701
-----------------------------------------------------------


On Nov. 6, 2014, 5:06 a.m., Corey Farrell wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/4151/
> -----------------------------------------------------------
> 
> (Updated Nov. 6, 2014, 5:06 a.m.)
> 
> 
> Review request for Asterisk Developers.
> 
> 
> Bugs: ASTERISK-24502
>     https://issues.asterisk.org/jira/browse/ASTERISK-24502
> 
> 
> Repository: Asterisk
> 
> 
> Description
> -------
> 
> When coverage and dev-mode are enabled with DONT_OPTIMIZE, it causes build failure.  The double compilation does a 'shadow' build of each file with output to /dev/null.  Unfortunately when coverage is enabled, GCC tries writing to /dev/null.gcno (at least some versions do).  This prevents the build from proceeding.
> 
> The simple fix is to simply prevent COMPILE_DOUBLE when coverage is enabled, that is what I'm proposing here.  The other option would be to use a real output location instead of /dev/null, delete the file immediately after building.  I'm not sure that is needed, so I've proposed the simpler fix.
> 
> 
> Diffs
> -----
> 
>   /branches/11/Makefile.rules 427380 
> 
> Diff: https://reviewboard.asterisk.org/r/4151/diff/
> 
> 
> Testing
> -------
> 
> Build with these options now works in Linux Mint 17 (gcc 4.8.2-19ubuntu1).
> 
> 
> Thanks,
> 
> Corey Farrell
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20141108/b2b1875d/attachment.html>


More information about the asterisk-dev mailing list