<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:12pt"><div style="" class="">Hi everyone,</div><div style="" class="">before starting I'm giving you a generic description of the environment I'm currently using :</div><div style="" class="">  - Ubuntu 13.10 amd64</div><div style="" class="">  - Python 2, libxml2, libffi and libedit installed under a non-standard prefix</div><div style="" class="">  - I used both cmake-2.8.12.2-Linux-i386 and cmake-3.0.20140416-g2bb14-Linux-i386 in this process and they give the same results</div><div style="" class=""><br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">Please note that I have no major issues when building
 clang/llvm/lldb with libraries that are available in standard prefixes or libraries that are simply provided by the OS/package manager itself; there are some subtle errors that prevent me from using libraries in custom directories when configuring and building.</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">Clang compiles and runs just fine in the trivial case but I think that the use of standard prefixes is hiding some flaws in the building scripts/configuration.<br style="" class=""></div><div style="" class=""><br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">My copy of the llvm repositories is being layed out like so :<br
 style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">  - the llvm svn repository is the <root> dir</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">  - clang under <root>/tools</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">  - clang-tools-extra under <root>/tools/clang/tools</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style:
 normal;" class="">  - compiler-rt under <root>/projects</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">  - libcxx under <root>/projects</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class=""> </div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">Most of the time I build clang without lldb, but when I need lldb, I put it under <root>/tools<br style="" class=""></div><div style="" class=""><br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family:
 HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">As a side note I invite you to compile clang in a clean environment, just like I did, and try to compile clang from sources with libraries in a non-standard prefix and binaries (  like svn and cmake ) in custom paths; you will probably experience this kind of troubles.<br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class=""><br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">I experienced the following issues that prevents me from compiling clang/llvm :</div><div style="color: rgb(0, 0,
 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class=""><br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">Issue #1</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">when building with all the 5 repos + lldb I noticed that if I set the cache entries <br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class=""><br style="" class=""></div><div style="color: rgb(0, 0, 0);
 font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">[ code ]</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">LIBXML2_INCLUDE_DIR:PATH="/opt/lib64/libxml2/2.9.1/include/libxml2"<br style="" class="">LIBXML2_LIBRARIES:PATH="/opt/lib64/libxml2/2.9.1/lib"<br style="" class="">LIBXML2_XMLLINT_EXECUTABLE:FILEPATH="/opt/lib64/libxml2/2.9.1/bin/xmllint"</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">[ /code ]</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif;
 background-color: transparent; font-style: normal;" class=""><br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">the cmake test for libxml2 is ok but the target c-index-test it's being dropped even if cmake itself says that the target can only link to a "real" library</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class=""><br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">[ code ]</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica
 Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">WARNING: Target "c-index-test" requests linking to directory "/opt/lib64/libxml2/2.9.1/lib".  Targets may link only to libraries.  CMake is dropping the item.<br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">[ /code ]</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class=""><br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">So there is clearly something wrong
 with the test for libxml2 and it's probably something inside the lldb repository since this project requires libxml2 explicitly. Of course with</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class=""><br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">[ code ]</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">LIBXML2_INCLUDE_DIR:PATH="/opt/lib64/libxml2/2.9.1/include/libxml2"</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida
 Grande,sans-serif; background-color: transparent; font-style: normal;" class="">LIBXML2_LIBRARIES:PATH="/opt/lib64/libxml2/2.9.1/lib/libxml2.so"</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">LIBXML2_XMLLINT_EXECUTABLE:FILEPATH="/opt/lib64/libxml2/2.9.1/bin/xmllint"<br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">[ /code ]</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class=""><br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica
 Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">Everything is ok and cmake says "the test is passed and c-index-test is being kept" but this is to prove that the "cmake test" for this library serves no purpose at all.</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class=""><br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">Issue #2</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">when building with all the 5 repos + lldb I noticed that
 the linking phase is weird, it doesn't take into account the linker-related cache entries that I'm giving to cmake, basically anything in the form CMAKE_*_LINKER_FLAGS, and it doesn't even use the specific cache entries ( specific to the library ) to form the correct set of flags that you have to pass to ld or gcc, even when cmake gets something like LIBXML2_LIBRARIES set to the correct value, it doesn't make any good use of it. Another example concerns passing the correct values for the -L and -l flags to the aformentioned CMAKE_*_LINKER_FLAGS cache entries because this serves no purpose and the building fails to find the library to link to the final executable.  Why not simplifying everything and just set 1 cache entry for the <root> dir of the library that needs to be found ? You can easily find the headers under <root>/include or the libs under <root>/lib .</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family:
 HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">To be fair this isn't always the case, for example with libxml2 the headers are under <root>/include/libxml2 and not <root>/include, but my idea is that you shouldn't set so many variables for just 1 library, it's redundant and leads to confusion most of the time, and I invite you to try for yourself.<br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">A minor fix will also be to force the use of some "gcc signed" cache entries since I don't know how many still link with ld under linux when linking with gcc it's probably a more modern approach, so something like "GCC_LINKER_FLAGS" will probably fit better, but I think that the linking phase as
 it is now it's not predictable and consistent in its own behaviour as it should be . And in the end it doesn't even work.<br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class=""><br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">Issue #3</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">This is again another example of some weird combination of a "cmake test" that succeeds that leads to a failed step.</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family:
 HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">If you consider the file CMakeLists.txt that it's in the llvm root, at the line 349 you have some code that uses the PYTHON_EXECUTABLE</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class=""><br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">[ code ]</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">...</div><div style="color: rgb(0, 0, 0); font-size: 16px;
 font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">  COMMAND ${PYTHON_EXECUTABLE} ${LLVMBUILDTOOL}<br style="" class="">            --native-target "${LLVM_NATIVE_ARCH}"<br style="" class="">            --enable-targets "${LLVM_TARGETS_TO_BUILD}"<br style="" class="">            --enable-optional-components "${LLVMOPTIONALCOMPONENTS}"<br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">...<br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica
 Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">[ /code ]</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class=""><br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">This test fails under a customized python installation, furthermore the deduction of the right value for PYTHON_EXECUTABLE is subject to the FindPythonInterp builtin cmake module which is basically not documented and if you use cmake you have no clue and no guarantees about what steps and processes are activated by cmake the "right" Python installation. For example there are expansion rules that have effect on the value
 that the user is giving to the related cmake cache entry ? The Python interpreter it's just a valid file with a valid "pythonish" name ? Cmake is testing this hypothetically valid python executable with some module-specific tests or it takes for granted that something that looks like a binary will work ? And bla bla, plus other dissertations about the fact that this module gives no insights and informations.</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">You are probably thinking that you can inspect the source code for the right cmake module to know what cmake is really doing but this way of thinking doesn't really take into account the fact that something really critical as the location of the right python executable ( since llvm/clang is using python a lot and relying heavily on it ) it's not an
 invariance, it's not even something with a consistent behaviour .<br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">As I mentioned there is also an extra problem with this approach, python, and this is even more popular for many custom python installations, often relies on some special environemnt variables like <tt style="" class="">PYTHONHOME</tt> and <tt style="" class="">PYTHONPATH</tt> ( https://docs.python.org/2/using/cmdline.html for more ), you can't just use the full path to the python executable and feed some scripts and flags to it, it's not going to work out that well.<br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style:
 normal;" class="">Also many GNU/Linux distributions provide a default python installation, so if you have 1 system-wide python installation plus another custom one that you are going to use as a developer library, you end up with having at least 2 python installations at the same time, and this leads us to the problem that exporting <tt style="" class="">PYTHONHOME or </tt><tt style="" class="">PYTHONPATH it's likely to cause more harm than good.</tt></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: monospace; background-color: transparent; font-style: normal;" class=""><tt style="" class="">There should be a way to pass and use customized </tt><tt style="" class=""><tt style="" class="">PYTHONPATH,</tt></tt><tt style="" class=""> PYTHONHOME right inside the scripts that are using the </tt>PYTHON_EXECUTABLE otherwise this is not going to work at all and the result of the script will be 100% unreliable .</div><div style="color: rgb(0,
 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class=""><br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">Issue #4<br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">The check done for the libffi doesn't work, I extracted the relevant bits for the cmake log<br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class=""><br style=""
 class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">[ code ]</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">Determining if the ffi_call exist failed with the following output:<br style="" class="">Change Dir: /tmp/llvmSvn/build/build1/CMakeFiles/CMakeTmp<br style="" class=""><br style="" class="">Run Build Command:/usr/bin/make "cmTryCompileExec3438544690/fast"<br style="" class="">/usr/bin/make -f CMakeFiles/cmTryCompileExec3438544690.dir/build.make CMakeFiles/cmTryCompileExec3438544690.dir/build<br style="" class="">make[1]: Entering directory `/tmp/llvmSvn/build/build1/CMakeFiles/CMakeTmp'<br style=""
 class="">/opt/redist/bin32/cmake/cmake-2.8.12.2-Linux-i386/bin/cmake -E cmake_progress_report /tmp/llvmSvn/build/build1/CMakeFiles/CMakeTmp/CMakeFiles 1<br style="" class="">Building C object CMakeFiles/cmTryCompileExec3438544690.dir/CheckSymbolExists.c.o<br style="" class="">/usr/bin/cc   -I/tmp/llvmSvn/build/build1/CMakeFiles/CMakeTmp/\"/opt/lib64/libffi/3.0.13/include/ffi.h\"    -o CMakeFiles/cmTryCompileExec3438544690.dir/CheckSymbolExists.c.o   -c /tmp/llvmSvn/build/build1/CMakeFiles/CMakeTmp/CheckSymbolExists.c<br style="" class="">/tmp/llvmSvn/build/build1/CMakeFiles/CMakeTmp/CheckSymbolExists.c:2:17: fatal error: ffi.h: No such file or directory<br style="" class=""> #include <ffi.h><br style="" class="">                 ^<br style="" class="">compilation terminated.<br style="" class="">make[1]: ***
 [CMakeFiles/cmTryCompileExec3438544690.dir/CheckSymbolExists.c.o] Error 1<br style="" class="">make[1]: Leaving directory `/tmp/llvmSvn/build/build1/CMakeFiles/CMakeTmp'<br style="" class="">make: *** [cmTryCompileExec3438544690/fast] Error 2<br style="" class=""><br style="" class="">File /tmp/llvmSvn/build/build1/CMakeFiles/CMakeTmp/CheckSymbolExists.c:<br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">[ /code ]<br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class=""><br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida
 Grande,sans-serif; background-color: transparent; font-style: normal;" class="">note the values given to the -I flag, once again the rules used for the expansion of the values given to cmake entries are not clear, and this test is doomed to fail no matter what I'm going to feed as an input.</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">Plus if I go where the building cache is at, and I type <br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class=""><br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent;
 font-style: normal;" class="">[ code ]</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">cmake -LAH | grep FFI<br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">[ /code ]<br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class=""><br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">I can see that the FFI
 related cache entries are correctly expanded to</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class=""><br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">[ code ]</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">FFI_INCLUDE_DIR:PATH="/opt/lib64/libffi/3.0.13/include"<br style="" class="">FFI_INCLUDE_PATH:PATH="/opt/lib64/libffi/3.0.13/include/ffi.h"<br style="" class="">FFI_LIBRARY_DIR:PATH="/opt/lib64/libffi/3.0.13/lib"<br style=""
 class="">FFI_LIBRARY_PATH:FILEPATH="/opt/lib64/libffi/3.0.13/lib/libffi.so"<br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">[ /code ]</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class=""><br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">Issue #5</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">the above example shows how
 much redundancy there is and that a simple value leads to an error, there are 4 variables set for basically the same value and all 4 could be easily derived from 1 single value, the root path for the ffi library.</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class=""><br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">Issue #6</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">What are the required modules that my Python 2 installation needs to have ? I can't find any doc about that, but I can't
 use clang/llvm without either, this is a real issue that I'm having with the documentation.<br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class=""><br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">Generally speaking there is a lot of redundancy in the cmake entries and in what the checks and the tests are trying to execute, this leads to errors that make it impossible to compile clang under a custom environment that is just using python under a custom prefix and 2-3 customized libraries.</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida
 Grande,sans-serif; background-color: transparent; font-style: normal;" class=""><br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">I also don't think that the checks and tests used in the cmake modules are valid, or in better terms, they can't provided any good invariant, ask yourself what a find<something> cmake function really does and you will probably end up sharing my view.</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class=""><br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style:
 normal;" class="">http://www.cmake.org/Wiki/CMake_2.8.11_Docs</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">At this page you can easily find the "most verbose" description of the FindPythonInterp module that the authors of cmake are providing at the time I'm writing this, considering both the online and offline cmake documentation, it just makes this and other modules useless and unreliable, it doesn't even tells you what are the cache entries influencing the behaviour of that module, this kind of documentation it's not even useful for the users, imagine for someone who needs a reliable tool.</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;"
 class=""><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">In the end I think that you should just get a clean 64 bit linux based environment and compile Python, libxml2, libedit and libffi from the source, and try to solve the problem that I'm experiencing, because I think that the building system as it is now doesn't work, it's not reliable and if it works and when it works, it's because there are other implicit steps and system-wide configurations that are hiding some quirks and bugs.<br style="" class=""> </div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class=""><br style="" class=""></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family:
 HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">This are my 2 cent, I like llvm and clang, I use libcxx and libcxxabi under linux as much as possible to make it easier to code with the latest C++ standard, but since I began to customize my environment just a little bit I noticed this kind of disproportions between gcc and clang, and I don't think that a compiler should adopt a building system like this one; a compiler it's a tool that is way too important to leave some space to some undefined and "unclear" steps as the ones that  I'm experiencing right now, even more true if this tools includes an external dependency or external project/s that play/s a big role in it/them like Python 2 in this case does.</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color:
 transparent; font-style: normal;" class=""><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">If you know how to fix even 1 of this issues or if I'm wrong please let me know.</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class=""><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;" class="">Thanks.</div></div></body></html>