[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