[libcxx-commits] [PATCH] D59152: [libc++] Build <filesystem> support as part of the dylib
Artem Belevich via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Apr 2 17:34:02 PDT 2019
tra added inline comments.
================
Comment at: libcxx/trunk/utils/libcxx/test/config.py:710-713
- enable_fs = self.get_lit_bool('enable_filesystem', default=False)
- if not enable_fs:
- return
- self.config.available_features.add('c++filesystem')
----------------
tra wrote:
> tra wrote:
> > ldionne wrote:
> > > tra wrote:
> > > > This appears to break CUDA buildbot:
> > > > http://lab.llvm.org:8011/builders/clang-cuda-build/builds/31842/steps/ninja%20check%201/logs/stdio
> > > >
> > > > Apparently lit does not find that directory, even though it *is* present in the checked out tree with this config file. I guess lit has somehow misdetected libcxx_src_root, but I see nothing relevant in the logs.
> > > >
> > > > Any ideas what could be wrong?
> > > No idea what could be wrong, however can you check on the bot whether `<...>/libcxx/test/std/input.output/filesystems/Inputs/static_test_env` exists? This seems to be what `lit` is complaining about.
> > That directory does exist. I've tracked the weirdness down to what may be a problem with [[ https://github.com/llvm-mirror/libcxx/blob/d88714db16a783850e52551a9735490df63c8b44/utils/libcxx/test/config.py#L81 | get_lit_conf() ]]:
> >
> > ```
> > def get_lit_conf(self, name, default=None):
> > val = self.lit_config.params.get(name, None)
> > if val is None:
> > val = getattr(self.config, name, None)
> > if val is None:
> > val = default
> > return val
> > ```
> >
> > The problem is that when `libcxx/test/config.py` is used from [[ https://github.com/llvm-mirror/libunwind/blob/master/test/lit.cfg | libunwind's lit.cfg]], `getattr(self.config, 'libcxx_src_root', None)` there actually appears to returns an empty string. No idea who/where/how sets it. It's possible that the problem is somewhere in libunwind.
> >
> > Anyways, comparison with `None` fails, the empty string is returned as the result and things go downhill from there.
> >
> >
> >
> I guess the empty string is the result of this line in various lit.site.cfg.in :
> llvm/projects/libcxx/test/lit.site.cfg.in
> llvm/projects/libunwind/test/lit.site.cfg.in
>
> ```
> config.libcxx_src_root = "@LIBCXX_SOURCE_DIR@"
> ```
>
> Perhaps `if val is None` should be changed to `if not Val` when we check result of `getattr(self.config)` as the empty string there will be a common default for unset parameters.
I've temporarily worked around the problem by changing projects/libunwind/test/lit.site.cfg.in on the buildbot and hardcoding the path to libc++ source tree:
```
config.libcxx_src_root = "/the/path/to/the/libcxx/sources"
```
I still don't understand lit enough to tell what's the right way to get this working on my buildbot.
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D59152/new/
https://reviews.llvm.org/D59152
More information about the libcxx-commits
mailing list