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

(Updated March 12, 2015, 9:19 p.m.)


Status
------

This change has been discarded.


Review request for Asterisk Developers.


Bugs: ASTERISK-20850
    https://issues.asterisk.org/jira/browse/ASTERISK-20850


Repository: Asterisk


Description
-------

RAII_VAR: nested functions aren't portable. Adapting RAII_VAR to use clang/llvm 
blocks to get the same/similar functionality.
Making it possible again to use clang as a compiler, instead of depending on 
gcc completely.

Compile instructions:
================
./bootstrap.sh
CC=clang CXX=clang++ ./configure --enable-dev-mode
Needed to set DISABLE_INLINE to get passed the double declaration error in 
api-inline.h, i guess someone needs to figure out how to get this passed clang, 
correctly
make menuselect.makeopts
menuselect/menuselect --enable DISABLE_INLINE
Needed to suppresse some of the warnings to get clang to compile (for now), 
clang can be a little panicky, but for a good reason.

    -Wno-unknown-warning-option. When gcc doesn't know a compiler option it 
returns NON-ZERO errorlevel, clang returns ZERO errorlevel, which is annoying. 
Even the linux kernel developers group complained about this. Will be 
fixed/changed (hopefully soon). For now, when checking clang compiler options, 
you would need to grep and parse the error output
    -Wno-error needed to quite down clang being panicky (Standard asterisk 
-Werror is a good idea in general, but not when compiling against a 'new' 
compiler )

ASTCFLAGS="-Wno-unknown-warning-option -Wno-error" make
make install
RAII_VAR seems to work, but i guess there is still a bit of work before clang 
support for the rest of asterisk can be announced.


Diffs
-----

  /trunk/makeopts.in 413043 
  /trunk/main/Makefile 413043 
  /trunk/include/asterisk/utils.h 413043 
  /trunk/configure.ac 413043 
  /trunk/configure UNKNOWN 
  /trunk/Makefile 413043 

Diff: https://reviewboard.asterisk.org/r/3488/diff/


Testing
-------

Just a proof of concept, to show how asterisk could be made clang compatible 
again.


Thanks,

Diederik de Groot

-- 
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Reply via email to