MaskRay added inline comments.
================ Comment at: clang/CMakeLists.txt:179-183 +if(DEFAULT_SYSROOT) + message(WARNING "DEFAULT_SYSROOT is deprecated and will be removed. Use " + "configuration files (https://clang.llvm.org/docs/UsersManual.html#configuration-files)" + "to specify the default --sysroot=") +endif() ---------------- bcain wrote: > MaskRay wrote: > > bcain wrote: > > > At one time I believe that the clang configuration files could not > > > specify paths relative to the clang executable. AFAICT `DEFAULT_SYSROOT` > > > does support this. > > > > > > But if I'm mistaken about that can we add an example to the docs at > > > https://clang.llvm.org/docs/UsersManual.html#configuration-files > > > illustrating how to use a relative sysroot? > > Clang configuration files just complement user-specified command line > > options. As one can do `--sysroot=./sysroot`, one can add > > `--sysroot=./sysroot` to a configuration file, too. > > > > If you think having a sysroot example is useful, I can add > > > > ``` > > # Relative --sysroot > > --sysroot=./sysroot > > ``` > > before > > clang/docs/UsersManual.rst:1018 `-c --target=x86_64-unknown-linux-gnu` > IIUC: when clang takes a `--sysroot=./sysroot` argument, it will interpret > that path as a prefix to the files it wants to access. So the system will > treat it as relative to the environment's `cwd`, correct? > > But when `DEFAULT_SYSROOT` is set to a relative path, that relative path is > considered to be relative to `clang`. Therefore a convenient feature that we > take advantage of is setting it to something like > `../target/hexagon-unknown-linux-musl` in order to have anyone who invokes > `hexagon-unknown-linux-clang` from any path be able to find the includes and > libraries distributed with the toolchain without having to specify the > sysroot. > > Maybe there's a better way to achieve this without the need for a relative > `DEFAULT_SYSROOT` but it's been very useful and the config files do not seem > suited to replace it. `--sysroot=` is used as a prefix to certain files, primarily libc and GCC installations. `-DDEFAULT_SYSROOT=...` just changes `clang/lib/Driver/Driver.cpp:203` `SysRoot(DEFAULT_SYSROOT)`. There is no magic related to the `clang` executable path. CMake doesn't do any magic, either. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D158218/new/ https://reviews.llvm.org/D158218 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits