I could spot the difference between the two versions. It can be seen by running:
./refgen test.cpp -std=c++11 -v
With the ubuntu libclang, the output I get is (stripped to the essential bits):
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/x86_64-linux-gnu"
ignoring nonexistent directory "../lib/clang/3.4/include"
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/backward
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/x86_64-linux-gnu/c++/4.8
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/4.8/include
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.
However, with the PPA libclang, the output is:
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/x86_64-linux-gnu"
ignoring nonexistent directory "../lib/clang/3.4.2/include"
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/backward
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/x86_64-linux-gnu/c++/4.8
/usr/include/clang/3.4.2/include
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/4.8/include
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.
It is essentially identical, except that the PPA version has one additional line that makes it all work:
/usr/include/clang/3.4.2/include
Now where this line came from, or why was it removed in the official ubuntu version, I have no clue... I will contact the author of the PPA to see if he could help.
I could spot the difference between the two versions. It can be seen by running:
./refgen test.cpp -std=c++11 -v
With the ubuntu libclang, the output I get is (stripped to the essential bits): gcc/x86_ 64-linux- gnu/4.8 gcc/x86_ 64-linux- gnu/4.8/ ../../. ./../include/ c++/4.8/ x86_64- linux-gnu" clang/3. 4/include" gcc/x86_ 64-linux- gnu/4.8/ ../../. ./../include/ c++/4.8 gcc/x86_ 64-linux- gnu/4.8/ ../../. ./../include/ c++/4.8/ backward gcc/x86_ 64-linux- gnu/4.8/ ../../. ./../include/ x86_64- linux-gnu/ c++/4.8 gcc/x86_ 64-linux- gnu/4.8/ include x86_64- linux-gnu
Selected GCC installation: /usr/lib/
ignoring nonexistent directory "/usr/lib/
ignoring nonexistent directory "../lib/
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/
/usr/lib/
/usr/lib/
/usr/local/include
/usr/lib/
/usr/include/
/usr/include
End of search list.
However, with the PPA libclang, the output is: gcc/x86_ 64-linux- gnu/4.8 gcc/x86_ 64-linux- gnu/4.8/ ../../. ./../include/ c++/4.8/ x86_64- linux-gnu" clang/3. 4.2/include" gcc/x86_ 64-linux- gnu/4.8/ ../../. ./../include/ c++/4.8 gcc/x86_ 64-linux- gnu/4.8/ ../../. ./../include/ c++/4.8/ backward gcc/x86_ 64-linux- gnu/4.8/ ../../. ./../include/ x86_64- linux-gnu/ c++/4.8 clang/3. 4.2/include gcc/x86_ 64-linux- gnu/4.8/ include x86_64- linux-gnu
Selected GCC installation: /usr/lib/
ignoring nonexistent directory "/usr/lib/
ignoring nonexistent directory "../lib/
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/
/usr/lib/
/usr/lib/
/usr/include/
/usr/local/include
/usr/lib/
/usr/include/
/usr/include
End of search list.
It is essentially identical, except that the PPA version has one additional line that makes it all work: clang/3. 4.2/include
/usr/include/
Now where this line came from, or why was it removed in the official ubuntu version, I have no clue... I will contact the author of the PPA to see if he could help.