[PATCH] D39520: [libcxx][CMake] Fix libc++ build when no LLVM source tree is available.

Zachary Turner via cfe-commits cfe-commits at lists.llvm.org
Thu Nov 2 16:06:12 PDT 2017


Yes that is the reason.  But in a way it is more than that, because if
those variables aren't available to lit.cfg, then test suite won't work.
lit *must* be able to find a site config.

There are three ways to get around this:

1) When you run lit.py, pass it a directory to your build tree.  Then it
points right to the site config, and everything works.  The disadvantage to
this method is that you might want to just run test, i.e. point lit to a
single file in your source tree.  You can't do that with this method.

2) pass param=libcxx_site_config=<path-to-site-config> to lit.  This is
cumbersome and a lot of typing.  It might also not work 100% like you
expect when used in conjunction with pointing to a single file in source
tree.  I don't know, I haven't really tested it.

3) use the generated llvm-lit script.  This embeds the mapping from source
tree site config -> build tree site config in the script, so that instead
of `lit <path-to-test>` you run `llvm-lit <path-to-test>`.  This way, we
can detect that that you are pointing into the source tree, translate that
to the build tree, and then load the proper site config automatically.

On Thu, Nov 2, 2017 at 3:44 PM Volodymyr Sapsai <vsapsai at apple.com> wrote:

> On Nov 1, 2017, at 17:22, Zachary Turner <zturner at google.com> wrote:
>
>
>
>
> On Wed, Nov 1, 2017 at 5:13 PM Volodymyr Sapsai <vsapsai at apple.com> wrote:
>
>> On Nov 1, 2017, at 16:47, Zachary Turner <zturner at google.com> wrote:
>>
>>
>> This will remove the ability to use llvm-lit script even if source tree
>> is available.
>>
>> Can you please point me to the place where llvm-lit is enabled in
>> configure_lit_site_cfg? Asking for my education, to understand lit
>> configuration better and to avoid breaking it. And how do you test llvm-lit
>> script if source tree is available? I tried to check out libcxx to
>> llvm/projects/, `ninja check-libcxx` worked fine. Though I didn’t use extra
>> options, so this case might not reflect real-world usage.
>>
>
> configure_lit_site_cfg doesn't actually enable llvm-lit generation, but if
> llvm-lit generation is already enabled, then using configure_lit_site_cfg
> will cause additional information to be written to the generated llvm-lit
> script so that you can use bin/llvm-lit <path-to-source-tree>.
>
> I think all you need to do is say:
>
> if (LIBCXX_STANDALONE_BUILD)
>   configure_file(...
> else()
>    configure_lit_site_cfg(...
> endif()
>
> If this doesn't work for some reason though, or is too much effort, I'm
> not opposed to your original patch, since I think llvm-lit script
> generation is unconditionally disabled for libcxx right now anyway.
>
>
>
> Thanks, now I see that with my change in llvm-lit there is no mapping in
> config_map for libcxx/test/lit.cfg What is the purpose of this mapping? Is
> it only to make variables from lit.site.cfg.in expanded during
> configuration available to lit.cfg? Or are there some other use cases?
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20171102/dc31b52c/attachment.html>


More information about the cfe-commits mailing list