[cfe-dev] clang + libcxx + ninja

Alexey Samsonov vonosmas at gmail.com
Sun Apr 12 21:29:31 PDT 2015


+llvm-commits

Hi Peter,

I think this patch is fine. Feel free to go ahead and commit it.

On Sun, Apr 12, 2015 at 9:07 PM, Peter Stirling <peter at pjstirling.plus.com>
wrote:

>  I can confirm that with the following change the generated file has the
> necessary variable is set, and the build completes successfully.
>
> Index: cmake/Modules/AddCompilerRT.cmake
> ===================================================================
> --- cmake/Modules/AddCompilerRT.cmake    (revision 234704)
> +++ cmake/Modules/AddCompilerRT.cmake    (working copy)
> @@ -248,6 +248,7 @@
>                 -DCMAKE_CXX_FLAGS=${LIBCXX_CFLAGS}
>                 -DCMAKE_BUILD_TYPE=Release
>                 -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
> +           -DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
>      LOG_BUILD 1
>      LOG_CONFIGURE 1
>      LOG_INSTALL 1
>
>
> On 11/04/15 16:56, Alexey Samsonov wrote:
>
> Hi Peter,
>
>  Sorry for the late response. Unfortunately, I can't experiment with it
> myself at the moment, but you can
> try passing correct -DCMAKE_MAKE_PROGRAM flag to ExternalProject_Add
> invocation here:
>
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/cmake/Modules/AddCompilerRT.cmake?view=markup
>
>
>
> On Mon, Apr 6, 2015 at 11:34 AM, Reid Kleckner <rnk at google.com> wrote:
>
>> I think Alexey might know who wrote the libc++ tsan and msan build
>> scripts. I suspect you don't need those, and that your build would succeed
>> if you built libcxx instead of 'all'.
>>
>>  Clang (and clang tools) should work with all the major versions of
>> libstdc++. I suspect fixing this will be more fruitful than trying to port
>> your codebase to a new STL implementation. I think you sent email about
>> those problems, let me try to go find those threads and reply there.
>>
>> On Sun, Apr 5, 2015 at 2:42 PM, Peter Stirling <peter at pjstirling.plus.com
>> > wrote:
>>
>>> Hi,
>>> Since clang tools currently choke when using the gcc 4.9.2 libstdc++
>>> headers (and 4.8.3, and 4.8.2, and testing against older versions is
>>> seriously inconvenient), I decided to try libcxx to work around it. I
>>> checked out the source as described in [1], but that caused the llvm build
>>> to fail with the following error:
>>>
>>> [9/24] Performing configure step for 'libcxx_tsan'
>>> FAILED: cd
>>> /home/peter/Programming/llvm/ninja/projects/compiler-rt/lib/tsan/libcxx_tsan/src/libcxx_tsan-build
>>> && /usr/bin/cmake -P
>>> /home/peter/Programming/llvm/ninja/projects/compiler-rt/lib/tsan/libcxx_tsan/src/libcxx_tsan-stamp/libcxx_tsan-configure.cmake
>>> && /usr/bin/cmake -E touch
>>> /home/peter/Programming/llvm/ninja/projects/compiler-rt/lib/tsan/libcxx_tsan/src/libcxx_tsan-stamp/libcxx_tsan-configure
>>> CMake Error at
>>> /home/peter/Programming/llvm/ninja/projects/compiler-rt/lib/tsan/libcxx_tsan/src/libcxx_tsan-stamp/libcxx_tsan-configure.cmake:16
>>> (message):
>>>   Command failed: 1
>>>
>>>    '/usr/bin/cmake'
>>> '-DCMAKE_C_COMPILER=/home/peter/Programming/llvm/ninja/./bin/clang'
>>> '-DCMAKE_CXX_COMPILER=/home/peter/Programming/llvm/ninja/./bin/clang'
>>> '-DCMAKE_C_FLAGS= -fsanitize=thread' '-DCMAKE_CXX_FLAGS= -fsanitize=thread'
>>> '-DCMAKE_BUILD_TYPE=Release'
>>> '-DCMAKE_INSTALL_PREFIX:PATH=/home/peter/Programming/llvm/ninja/projects/compiler-rt/lib/tsan/libcxx_tsan'
>>> '-GNinja' '/home/peter/Programming/llvm/llvm/projects/libcxx'
>>>
>>>   See also
>>>
>>>
>>> /home/peter/Programming/llvm/ninja/projects/compiler-rt/lib/tsan/libcxx_tsan/src/libcxx_tsan-stamp/libcxx_tsan-configure-*.log
>>>
>>> Close inspection reveals that it tries to run cmake passing -GNinja (the
>>> same as the main build) but doesn't supply -DCMAKE_MAKE_PROGRAM. Editing
>>> the file [2] to inject the missing parameter lets the build succeed, but as
>>> that file is generated, this edit needs to be repeated sometimes when I
>>> update svn, and I'm not sure where it is generated from for a more
>>> permanent fix.
>>>
>>> [1] http://libcxx.llvm.org/
>>> [2]
>>> $BUILD/projects/compiler-rt/lib/tsan/libcxx_tsan/src/libcxx_tsan-stamp/libcxx_tsan-configure.cmake
>>>
>>> _______________________________________________
>>> cfe-dev mailing list
>>> cfe-dev at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>>>
>>
>>
>
>
>  --
>  Alexey Samsonov
> vonosmas at gmail.com
>
>
>


-- 
Alexey Samsonov
vonosmas at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150412/edb3d382/attachment.html>


More information about the llvm-commits mailing list