[llvm] r274270 - [CMake] Module builds depend on target intrinsics_gen to be built first.

NAKAMURA Takumi via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 19 04:59:42 PDT 2017


http://lab.llvm.org:8011/builders/clang-x86_64-linux-selfhost-modules/builds/7659
http://lab.llvm.org:8011/builders/clang-x86_64-linux-selfhost-modules-2/builds/9837

I knew clang's modulemap is not clean for intrinsics_gen.
I have resolved it in my local branch.

On Tue, Jul 18, 2017 at 10:18 PM Vassil Vassilev <v.g.vassilev at gmail.com>
wrote:

> On 18/07/17 15:07, NAKAMURA Takumi wrote:
>
> I suppose there'd be no issue in trunk's modulemap as far as I
> investigated. Could we revert it?
>
> We maybe stopped seeing it because of the current order of includes which
> trigger the implicit module builds. This mostly used to happen if we have a
> header dependency on content of module LLVM_intrinsic_gen. If we want to
> revert this we probably need to impose more restrictions on the way we
> trigger implicit module builds.
>
> OTOH this adds an extra dependency which might be a build bottleneck. If
> you opt to revert it please keep in mind the issue could reappear.
>
>
> On Fri, Jul 1, 2016 at 5:42 AM Vassil Vassilev via llvm-commits <
> llvm-commits at lists.llvm.org> wrote:
>
>> Author: vvassilev
>> Date: Thu Jun 30 15:35:56 2016
>> New Revision: 274270
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=274270&view=rev
>> Log:
>> [CMake] Module builds depend on target intrinsics_gen to be built first.
>>
>> When compiling with modules, header A and B can be in the same module M.
>> B depends on intrinsics_gen and A doesn't. Compiling a source file
>> #include-ing
>> header A, we implicitly request module M to be built. It puts header A
>> and B in
>> the same TU and tries to build them. Since B depends on intrinsics_gen
>> (which
>> might not be built yet) we run into build failures.
>>
>> This should fix our modules buildbot.
>>
>> Patch reviewed by Chris Bieneman.
>>
>> Modified:
>>     llvm/trunk/CMakeLists.txt
>>
>> Modified: llvm/trunk/CMakeLists.txt
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/CMakeLists.txt?rev=274270&r1=274269&r2=274270&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/CMakeLists.txt (original)
>> +++ llvm/trunk/CMakeLists.txt Thu Jun 30 15:35:56 2016
>> @@ -700,6 +700,15 @@ add_subdirectory(lib/TableGen)
>>
>>  add_subdirectory(utils/TableGen)
>>
>> +# Force target to be built as soon as possible. Clang modules builds
>> depend
>> +# header-wise on it as they ship all headers from the umbrella folders.
>> Building
>> +# an entire module might include header, which depends on
>> intrinsics_gen. This
>> +# should be right after LLVMSupport and LLVMTableGen otherwise we
>> introduce a
>> +# circular dependence.
>> +if (LLVM_ENABLE_MODULES)
>> +  list(APPEND LLVM_COMMON_DEPENDS intrinsics_gen)
>> +endif(LLVM_ENABLE_MODULES)
>> +
>>  add_subdirectory(include/llvm)
>>
>>  add_subdirectory(lib)
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170719/362ff55c/attachment.html>


More information about the llvm-commits mailing list