[PATCH] D158218: [CMake] Deprecate DEFAULT_SYSROOT and GCC_INSTALL_PREFIX
Fangrui Song via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Aug 17 14:20:50 PDT 2023
MaskRay created this revision.
MaskRay added reviewers: DavidSpickett, phosek, smeenai, tra, tstellar.
Herald added subscribers: ekilmer, s.egerton, abidh, PkmX, atanasyan, simoncook, fedor.sergeev, kristof.beyls, krytarowski, arichardson, sdardis, emaste.
Herald added a project: All.
MaskRay requested review of this revision.
Herald added subscribers: cfe-commits, wangpc.
Herald added a project: clang.
Specifying DEFAULT_SYSROOT and GCC_INSTALL_PREFIX can cause many
clang/test/Driver failures, e.g. non-empty DEFAULT_SYSROOT causes:
Failed Tests (14):
Clang :: Driver/baremetal.cpp
Clang :: Driver/csky-toolchain.c
Clang :: Driver/freebsd-include-paths.c
Clang :: Driver/hexagon-toolchain-elf.c
Clang :: Driver/hexagon-toolchain-linux.c
Clang :: Driver/mips-cs.cpp
Clang :: Driver/mips-fsf.cpp
Clang :: Driver/mips-img-v2.cpp
Clang :: Driver/mips-img.cpp
Clang :: Driver/riscv32-toolchain-extra.c
Clang :: Driver/riscv64-toolchain-extra.c
Clang :: Driver/rocm-detect.hip
Clang :: Driver/solaris-ld.c
Clang :: Driver/sysroot.c
The two CMake variables are partially responsible for many
`--sysroot=`/ `--sysroot=""/`--gcc-toolchain=`/`--gcc-toolchain=""` in
clang/test/Driver: some contributors add them to fix tests and some just
do cargo culting.
This is not healthy for contributors adding cross compilation support.
Configuration files are perfect replacement.
Link: https://discourse.llvm.org/t/add-gcc-install-dir-deprecate-gcc-toolchain-and-remove-gcc-install-prefix/65091
Link: https://discourse.llvm.org/t/correct-cmake-parameters-for-building-clang-and-lld-for-riscv/72833
I hope that people can help port some docs:
clang/cmake/caches/CrossWinToARMLinux.cmake
libc/docs/full_host_build.rst
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D158218
Files:
clang/CMakeLists.txt
Index: clang/CMakeLists.txt
===================================================================
--- clang/CMakeLists.txt
+++ clang/CMakeLists.txt
@@ -176,6 +176,17 @@
set(GCC_INSTALL_PREFIX "" CACHE PATH "Directory where gcc is installed." )
set(DEFAULT_SYSROOT "" CACHE STRING
"Default <path> to all compiler invocations for --sysroot=<path>." )
+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()
+if(GCC_INSTALL_PREFIX)
+ message(WARNING "GCC_INSTALL_PREFIX is deprecated and will be removed. Use "
+ "configuration files (https://clang.llvm.org/docs/UsersManual.html#configuration-files)"
+ "to specify the default --gcc-install-dir=. --gcc-toolchain= is discouraged. "
+ "The option is often unneeded or better replaced with --gcc-install-dir=.")
+endif()
set(ENABLE_LINKER_BUILD_ID OFF CACHE BOOL "pass --build-id to ld")
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D158218.551269.patch
Type: text/x-patch
Size: 1039 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20230817/89ce0bc9/attachment.bin>
More information about the cfe-commits
mailing list