[PATCH] D158218: [CMake] Deprecate DEFAULT_SYSROOT and GCC_INSTALL_PREFIX

Brian Cain via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Aug 18 12:43:29 PDT 2023


bcain 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()
----------------
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.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D158218/new/

https://reviews.llvm.org/D158218



More information about the cfe-commits mailing list