[PATCH] D125860: [clang] Only use major version in resource dir
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGe1b88c8a09be: [clang] Only use major version in resource dir (authored by tbaeder). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D125860/new/ https://reviews.llvm.org/D125860 Files: clang/docs/ReleaseNotes.rst clang/include/clang/Basic/Version.inc.in clang/lib/Driver/Driver.cpp clang/lib/Headers/CMakeLists.txt clang/lib/Tooling/CMakeLists.txt clang/runtime/CMakeLists.txt compiler-rt/cmake/base-config-ix.cmake lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp lldb/unittests/Expression/ClangParserTest.cpp llvm/cmake/modules/LLVMExternalProjectUtils.cmake polly/lib/External/isl/interface/extract_interface.cc Index: polly/lib/External/isl/interface/extract_interface.cc === --- polly/lib/External/isl/interface/extract_interface.cc +++ polly/lib/External/isl/interface/extract_interface.cc @@ -109,7 +109,7 @@ llvm::cl::value_desc("name")); static const char *ResourceDir = - CLANG_PREFIX "/lib/clang/" CLANG_VERSION_STRING; +CLANG_PREFIX "/lib/clang/" CLANG_VERSION_MAJOR_STRING; /* Does decl have an attribute of the following form? * Index: llvm/cmake/modules/LLVMExternalProjectUtils.cmake === --- llvm/cmake/modules/LLVMExternalProjectUtils.cmake +++ llvm/cmake/modules/LLVMExternalProjectUtils.cmake @@ -255,9 +255,9 @@ set(llvm_config_path ${LLVM_CONFIG_PATH}) if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") - string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION + string(REGEX MATCH "^[0-9]+" CLANG_VERSION_MAJOR ${PACKAGE_VERSION}) - set(resource_dir "${LLVM_LIBRARY_DIR}/clang/${CLANG_VERSION}") + set(resource_dir "${LLVM_LIBRARY_DIR}/clang/${CLANG_VERSION_MAJOR}") set(flag_types ASM C CXX MODULE_LINKER SHARED_LINKER EXE_LINKER) foreach(type ${flag_types}) set(${type}_flag -DCMAKE_${type}_FLAGS=-resource-dir=${resource_dir}) Index: lldb/unittests/Expression/ClangParserTest.cpp === --- lldb/unittests/Expression/ClangParserTest.cpp +++ lldb/unittests/Expression/ClangParserTest.cpp @@ -38,10 +38,11 @@ #if !defined(_WIN32) std::string path_to_liblldb = "/foo/bar/lib/"; std::string path_to_clang_dir = - "/foo/bar/" LLDB_INSTALL_LIBDIR_BASENAME "/clang/" CLANG_VERSION_STRING; + "/foo/bar/" LLDB_INSTALL_LIBDIR_BASENAME "/clang/" CLANG_VERSION_MAJOR_STRING; #else std::string path_to_liblldb = "C:\\foo\\bar\\lib"; - std::string path_to_clang_dir = "C:\\foo\\bar\\lib\\clang\\" CLANG_VERSION_STRING; + std::string path_to_clang_dir = + "C:\\foo\\bar\\lib\\clang\\" CLANG_VERSION_MAJOR_STRING; #endif EXPECT_EQ(ComputeClangResourceDir(path_to_liblldb), path_to_clang_dir); Index: lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp === --- lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp +++ lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp @@ -55,7 +55,7 @@ static const llvm::StringRef kResourceDirSuffixes[] = { // LLVM.org's build of LLDB uses the clang resource directory placed // in $install_dir/lib{,64}/clang/$clang_version. - CLANG_INSTALL_LIBDIR_BASENAME "/clang/" CLANG_VERSION_STRING, + CLANG_INSTALL_LIBDIR_BASENAME "/clang/" CLANG_VERSION_MAJOR_STRING, // swift-lldb uses the clang resource directory copied from swift, which // by default is placed in $install_dir/lib{,64}/lldb/clang. LLDB places // it there, so we use LLDB_INSTALL_LIBDIR_BASENAME. Index: compiler-rt/cmake/base-config-ix.cmake === --- compiler-rt/cmake/base-config-ix.cmake +++ compiler-rt/cmake/base-config-ix.cmake @@ -38,14 +38,14 @@ if (LLVM_TREE_AVAILABLE) # Compute the Clang version from the LLVM version. - # FIXME: We should be able to reuse CLANG_VERSION variable calculated + # FIXME: We should be able to reuse CLANG_VERSION_MAJOR variable calculated #in Clang cmake files, instead of copying the rules here. - string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION + string(REGEX MATCH "^[0-9]+" CLANG_VERSION_MAJOR ${PACKAGE_VERSION}) # Setup the paths where compiler-rt runtimes and headers should be stored. - set(COMPILER_RT_OUTPUT_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION}) + set(COMPILER_RT_OUTPUT_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION_MAJOR}) set(COMPILER_RT_EXEC_OUTPUT_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR}) - set(COMPILER_RT_INSTALL_PATH lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}) + set(COMPILER_RT_INSTALL_PATH lib${LLVM_LIBDIR_SUFFIX}/clang/${C
[PATCH] D125860: [clang] Only use major version in resource dir
tstellar added a comment. @tbaeder That CI failure seems unrelated. Maybe just commit early in the day so you have time to deal with the bot failures (if any). CHANGES SINCE LAST ACTION https://reviews.llvm.org/D125860/new/ https://reviews.llvm.org/D125860 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D125860: [clang] Only use major version in resource dir
tbaeder added a comment. I'm worried that this is gonna break build bots. Has anyone seen the ThreadSanitizer timeout reported by the precommit-ci before? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D125860/new/ https://reviews.llvm.org/D125860 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D125860: [clang] Only use major version in resource dir
tbaeder updated this revision to Diff 473951. tbaeder added a comment. Add a release note CHANGES SINCE LAST ACTION https://reviews.llvm.org/D125860/new/ https://reviews.llvm.org/D125860 Files: clang/docs/ReleaseNotes.rst clang/include/clang/Basic/Version.inc.in clang/lib/Driver/Driver.cpp clang/lib/Headers/CMakeLists.txt clang/lib/Tooling/CMakeLists.txt clang/runtime/CMakeLists.txt compiler-rt/cmake/base-config-ix.cmake lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp lldb/unittests/Expression/ClangParserTest.cpp llvm/cmake/modules/LLVMExternalProjectUtils.cmake polly/lib/External/isl/interface/extract_interface.cc Index: polly/lib/External/isl/interface/extract_interface.cc === --- polly/lib/External/isl/interface/extract_interface.cc +++ polly/lib/External/isl/interface/extract_interface.cc @@ -109,7 +109,7 @@ llvm::cl::value_desc("name")); static const char *ResourceDir = - CLANG_PREFIX "/lib/clang/" CLANG_VERSION_STRING; +CLANG_PREFIX "/lib/clang/" CLANG_VERSION_MAJOR_STRING; /* Does decl have an attribute of the following form? * Index: llvm/cmake/modules/LLVMExternalProjectUtils.cmake === --- llvm/cmake/modules/LLVMExternalProjectUtils.cmake +++ llvm/cmake/modules/LLVMExternalProjectUtils.cmake @@ -255,9 +255,9 @@ set(llvm_config_path ${LLVM_CONFIG_PATH}) if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") - string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION + string(REGEX MATCH "^[0-9]+" CLANG_VERSION_MAJOR ${PACKAGE_VERSION}) - set(resource_dir "${LLVM_LIBRARY_DIR}/clang/${CLANG_VERSION}") + set(resource_dir "${LLVM_LIBRARY_DIR}/clang/${CLANG_VERSION_MAJOR}") set(flag_types ASM C CXX MODULE_LINKER SHARED_LINKER EXE_LINKER) foreach(type ${flag_types}) set(${type}_flag -DCMAKE_${type}_FLAGS=-resource-dir=${resource_dir}) Index: lldb/unittests/Expression/ClangParserTest.cpp === --- lldb/unittests/Expression/ClangParserTest.cpp +++ lldb/unittests/Expression/ClangParserTest.cpp @@ -38,10 +38,11 @@ #if !defined(_WIN32) std::string path_to_liblldb = "/foo/bar/lib/"; std::string path_to_clang_dir = - "/foo/bar/" LLDB_INSTALL_LIBDIR_BASENAME "/clang/" CLANG_VERSION_STRING; + "/foo/bar/" LLDB_INSTALL_LIBDIR_BASENAME "/clang/" CLANG_VERSION_MAJOR_STRING; #else std::string path_to_liblldb = "C:\\foo\\bar\\lib"; - std::string path_to_clang_dir = "C:\\foo\\bar\\lib\\clang\\" CLANG_VERSION_STRING; + std::string path_to_clang_dir = + "C:\\foo\\bar\\lib\\clang\\" CLANG_VERSION_MAJOR_STRING; #endif EXPECT_EQ(ComputeClangResourceDir(path_to_liblldb), path_to_clang_dir); Index: lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp === --- lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp +++ lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp @@ -55,7 +55,7 @@ static const llvm::StringRef kResourceDirSuffixes[] = { // LLVM.org's build of LLDB uses the clang resource directory placed // in $install_dir/lib{,64}/clang/$clang_version. - CLANG_INSTALL_LIBDIR_BASENAME "/clang/" CLANG_VERSION_STRING, + CLANG_INSTALL_LIBDIR_BASENAME "/clang/" CLANG_VERSION_MAJOR_STRING, // swift-lldb uses the clang resource directory copied from swift, which // by default is placed in $install_dir/lib{,64}/lldb/clang. LLDB places // it there, so we use LLDB_INSTALL_LIBDIR_BASENAME. Index: compiler-rt/cmake/base-config-ix.cmake === --- compiler-rt/cmake/base-config-ix.cmake +++ compiler-rt/cmake/base-config-ix.cmake @@ -38,14 +38,14 @@ if (LLVM_TREE_AVAILABLE) # Compute the Clang version from the LLVM version. - # FIXME: We should be able to reuse CLANG_VERSION variable calculated + # FIXME: We should be able to reuse CLANG_VERSION_MAJOR variable calculated #in Clang cmake files, instead of copying the rules here. - string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION + string(REGEX MATCH "^[0-9]+" CLANG_VERSION_MAJOR ${PACKAGE_VERSION}) # Setup the paths where compiler-rt runtimes and headers should be stored. - set(COMPILER_RT_OUTPUT_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION}) + set(COMPILER_RT_OUTPUT_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION_MAJOR}) set(COMPILER_RT_EXEC_OUTPUT_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR}) - set(COMPILER_RT_INSTALL_PATH lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}) + set(COMPILER_RT_INSTALL_PATH lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION_MAJOR}) option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt unit tests." ${LLVM_INCLUDE_TESTS}) option(COMPILER_RT_ENABLE_WERROR "Fail and
[PATCH] D125860: [clang] Only use major version in resource dir
MaskRay accepted this revision. MaskRay added a comment. This revision is now accepted and ready to land. LGTM. Considering https://discourse.llvm.org/t/should-we-continue-embed-the-full-llvm-version-in-lib-clang/62094 and this thread, I think overall people favor this patch. If a distribution wants to provide 16.0 and 16.1 simultaneously, the two installations can be in different install prefixes :) CHANGES SINCE LAST ACTION https://reviews.llvm.org/D125860/new/ https://reviews.llvm.org/D125860 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D125860: [clang] Only use major version in resource dir
tbaeder updated this revision to Diff 473208. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D125860/new/ https://reviews.llvm.org/D125860 Files: clang/include/clang/Basic/Version.inc.in clang/lib/Driver/Driver.cpp clang/lib/Headers/CMakeLists.txt clang/lib/Tooling/CMakeLists.txt clang/runtime/CMakeLists.txt compiler-rt/cmake/base-config-ix.cmake lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp lldb/unittests/Expression/ClangParserTest.cpp llvm/cmake/modules/LLVMExternalProjectUtils.cmake polly/lib/External/isl/interface/extract_interface.cc Index: polly/lib/External/isl/interface/extract_interface.cc === --- polly/lib/External/isl/interface/extract_interface.cc +++ polly/lib/External/isl/interface/extract_interface.cc @@ -109,7 +109,7 @@ llvm::cl::value_desc("name")); static const char *ResourceDir = - CLANG_PREFIX "/lib/clang/" CLANG_VERSION_STRING; +CLANG_PREFIX "/lib/clang/" CLANG_VERSION_MAJOR_STRING; /* Does decl have an attribute of the following form? * Index: llvm/cmake/modules/LLVMExternalProjectUtils.cmake === --- llvm/cmake/modules/LLVMExternalProjectUtils.cmake +++ llvm/cmake/modules/LLVMExternalProjectUtils.cmake @@ -255,9 +255,9 @@ set(llvm_config_path ${LLVM_CONFIG_PATH}) if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") - string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION + string(REGEX MATCH "^[0-9]+" CLANG_VERSION_MAJOR ${PACKAGE_VERSION}) - set(resource_dir "${LLVM_LIBRARY_DIR}/clang/${CLANG_VERSION}") + set(resource_dir "${LLVM_LIBRARY_DIR}/clang/${CLANG_VERSION_MAJOR}") set(flag_types ASM C CXX MODULE_LINKER SHARED_LINKER EXE_LINKER) foreach(type ${flag_types}) set(${type}_flag -DCMAKE_${type}_FLAGS=-resource-dir=${resource_dir}) Index: lldb/unittests/Expression/ClangParserTest.cpp === --- lldb/unittests/Expression/ClangParserTest.cpp +++ lldb/unittests/Expression/ClangParserTest.cpp @@ -38,10 +38,11 @@ #if !defined(_WIN32) std::string path_to_liblldb = "/foo/bar/lib/"; std::string path_to_clang_dir = - "/foo/bar/" LLDB_INSTALL_LIBDIR_BASENAME "/clang/" CLANG_VERSION_STRING; + "/foo/bar/" LLDB_INSTALL_LIBDIR_BASENAME "/clang/" CLANG_VERSION_MAJOR_STRING; #else std::string path_to_liblldb = "C:\\foo\\bar\\lib"; - std::string path_to_clang_dir = "C:\\foo\\bar\\lib\\clang\\" CLANG_VERSION_STRING; + std::string path_to_clang_dir = + "C:\\foo\\bar\\lib\\clang\\" CLANG_VERSION_MAJOR_STRING; #endif EXPECT_EQ(ComputeClangResourceDir(path_to_liblldb), path_to_clang_dir); Index: lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp === --- lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp +++ lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp @@ -55,7 +55,7 @@ static const llvm::StringRef kResourceDirSuffixes[] = { // LLVM.org's build of LLDB uses the clang resource directory placed // in $install_dir/lib{,64}/clang/$clang_version. - CLANG_INSTALL_LIBDIR_BASENAME "/clang/" CLANG_VERSION_STRING, + CLANG_INSTALL_LIBDIR_BASENAME "/clang/" CLANG_VERSION_MAJOR_STRING, // swift-lldb uses the clang resource directory copied from swift, which // by default is placed in $install_dir/lib{,64}/lldb/clang. LLDB places // it there, so we use LLDB_INSTALL_LIBDIR_BASENAME. Index: compiler-rt/cmake/base-config-ix.cmake === --- compiler-rt/cmake/base-config-ix.cmake +++ compiler-rt/cmake/base-config-ix.cmake @@ -38,14 +38,14 @@ if (LLVM_TREE_AVAILABLE) # Compute the Clang version from the LLVM version. - # FIXME: We should be able to reuse CLANG_VERSION variable calculated + # FIXME: We should be able to reuse CLANG_VERSION_MAJOR variable calculated #in Clang cmake files, instead of copying the rules here. - string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION + string(REGEX MATCH "^[0-9]+" CLANG_VERSION_MAJOR ${PACKAGE_VERSION}) # Setup the paths where compiler-rt runtimes and headers should be stored. - set(COMPILER_RT_OUTPUT_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION}) + set(COMPILER_RT_OUTPUT_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION_MAJOR}) set(COMPILER_RT_EXEC_OUTPUT_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR}) - set(COMPILER_RT_INSTALL_PATH lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}) + set(COMPILER_RT_INSTALL_PATH lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION_MAJOR}) option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt unit tests." ${LLVM_INCLUDE_TESTS}) option(COMPILER_RT_ENABLE_WERROR "Fail and stop if warning is triggered" Index: clang/runtime/CMakeLists.txt ==
[PATCH] D125860: [clang] Only use major version in resource dir
sylvestre.ledru added a comment. i hope not too many people rely on it. LGTM but please add it to the release notes CHANGES SINCE LAST ACTION https://reviews.llvm.org/D125860/new/ https://reviews.llvm.org/D125860 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D125860: [clang] Only use major version in resource dir
serge-sans-paille added a comment. The consensus in the discourse thread you mention is not super strong, but I tend to agree with that patch. +1 for me. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D125860/new/ https://reviews.llvm.org/D125860 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D125860: [clang] Only use major version in resource dir
mgorny added reviewers: serge-sans-paille, sylvestre.ledru, phosek, MaskRay. mgorny added a comment. Herald added subscribers: Michael137, StephenFan. To be honest, I've never seen much purpose in the x.y.z directory naming and I feel like it's making packaging unnecessarily more complex, at least for us in Gentoo. That said, I'd personally prefer if the directory was entirely configurable just like CLANG_RESOURCE_DIR can specify arbitrary path right now. But I'm also fine with this as-is. Adding some more people who may have an opinion. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D125860/new/ https://reviews.llvm.org/D125860 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D125860: [clang] Only use major version in resource dir
tbaeder updated this revision to Diff 435876. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D125860/new/ https://reviews.llvm.org/D125860 Files: clang/include/clang/Basic/Version.inc.in clang/lib/Driver/Driver.cpp clang/lib/Headers/CMakeLists.txt clang/lib/Tooling/CMakeLists.txt clang/runtime/CMakeLists.txt compiler-rt/cmake/base-config-ix.cmake lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp lldb/unittests/Expression/ClangParserTest.cpp llvm/cmake/modules/LLVMExternalProjectUtils.cmake openmp/runtime/src/CMakeLists.txt polly/lib/External/isl/interface/extract_interface.cc Index: polly/lib/External/isl/interface/extract_interface.cc === --- polly/lib/External/isl/interface/extract_interface.cc +++ polly/lib/External/isl/interface/extract_interface.cc @@ -109,7 +109,7 @@ llvm::cl::value_desc("name")); static const char *ResourceDir = - CLANG_PREFIX "/lib/clang/" CLANG_VERSION_STRING; +CLANG_PREFIX "/lib/clang/" CLANG_VERSION_MAJOR_STRING; /* Does decl have an attribute of the following form? * Index: openmp/runtime/src/CMakeLists.txt === --- openmp/runtime/src/CMakeLists.txt +++ openmp/runtime/src/CMakeLists.txt @@ -352,8 +352,8 @@ if(${OPENMP_STANDALONE_BUILD}) set(LIBOMP_HEADERS_INSTALL_PATH "${CMAKE_INSTALL_INCLUDEDIR}") else() - string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION ${PACKAGE_VERSION}) - set(LIBOMP_HEADERS_INSTALL_PATH "${OPENMP_INSTALL_LIBDIR}/clang/${CLANG_VERSION}/include") + string(REGEX MATCH "^[0-9]+" CLANG_VERSION_MAJOR ${PACKAGE_VERSION}) + set(LIBOMP_HEADERS_INSTALL_PATH "${OPENMP_INSTALL_LIBDIR}/clang/${CLANG_VERSION_MAJOR}/include") endif() if(WIN32) install(TARGETS omp RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") Index: llvm/cmake/modules/LLVMExternalProjectUtils.cmake === --- llvm/cmake/modules/LLVMExternalProjectUtils.cmake +++ llvm/cmake/modules/LLVMExternalProjectUtils.cmake @@ -255,9 +255,9 @@ set(llvm_config_path ${LLVM_CONFIG_PATH}) if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") - string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION + string(REGEX MATCH "^[0-9]+" CLANG_VERSION_MAJOR ${PACKAGE_VERSION}) - set(resource_dir "${LLVM_LIBRARY_DIR}/clang/${CLANG_VERSION}") + set(resource_dir "${LLVM_LIBRARY_DIR}/clang/${CLANG_VERSION_MAJOR}") set(flag_types ASM C CXX MODULE_LINKER SHARED_LINKER EXE_LINKER) foreach(type ${flag_types}) set(${type}_flag -DCMAKE_${type}_FLAGS=-resource-dir=${resource_dir}) Index: lldb/unittests/Expression/ClangParserTest.cpp === --- lldb/unittests/Expression/ClangParserTest.cpp +++ lldb/unittests/Expression/ClangParserTest.cpp @@ -37,10 +37,12 @@ TEST_F(ClangHostTest, ComputeClangResourceDirectory) { #if !defined(_WIN32) std::string path_to_liblldb = "/foo/bar/lib/"; - std::string path_to_clang_dir = "/foo/bar/lib" LLDB_LIBDIR_SUFFIX "/clang/" CLANG_VERSION_STRING; + std::string path_to_clang_dir = + "/foo/bar/lib" LLDB_LIBDIR_SUFFIX "/clang/" CLANG_VERSION_MAJOR_STRING; #else std::string path_to_liblldb = "C:\\foo\\bar\\lib"; - std::string path_to_clang_dir = "C:\\foo\\bar\\lib\\clang\\" CLANG_VERSION_STRING; + std::string path_to_clang_dir = + "C:\\foo\\bar\\lib\\clang\\" CLANG_VERSION_MAJOR_STRING; #endif EXPECT_EQ(ComputeClangResourceDir(path_to_liblldb), path_to_clang_dir); Index: lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp === --- lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp +++ lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp @@ -55,7 +55,7 @@ static const llvm::StringRef kResourceDirSuffixes[] = { // LLVM.org's build of LLDB uses the clang resource directory placed // in $install_dir/lib{,64}/clang/$clang_version. - "lib" CLANG_LIBDIR_SUFFIX "/clang/" CLANG_VERSION_STRING, + "lib" CLANG_LIBDIR_SUFFIX "/clang/" CLANG_VERSION_MAJOR_STRING, // swift-lldb uses the clang resource directory copied from swift, which // by default is placed in $install_dir/lib{,64}/lldb/clang. LLDB places // it there, so we use LLDB_LIBDIR_SUFFIX. Index: compiler-rt/cmake/base-config-ix.cmake === --- compiler-rt/cmake/base-config-ix.cmake +++ compiler-rt/cmake/base-config-ix.cmake @@ -38,14 +38,14 @@ if (LLVM_TREE_AVAILABLE) # Compute the Clang version from the LLVM version. - # FIXME: We should be able to reuse CLANG_VERSION variable calculated + # FIXME: We should be able to reuse CLANG_VERSION_MAJOR variable calculated #in Clang cmake files, instead of copying the rules here. - string(REGEX MATCH "[0-9]+
[PATCH] D125860: [clang] Only use major version in resource dir
tbaeder updated this revision to Diff 435850. Herald added a subscriber: Enna1. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D125860/new/ https://reviews.llvm.org/D125860 Files: clang/include/clang/Basic/Version.inc.in clang/lib/Driver/Driver.cpp clang/lib/Headers/CMakeLists.txt clang/lib/Tooling/CMakeLists.txt clang/runtime/CMakeLists.txt compiler-rt/cmake/base-config-ix.cmake lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp lldb/unittests/Expression/ClangParserTest.cpp llvm/cmake/modules/LLVMExternalProjectUtils.cmake openmp/runtime/src/CMakeLists.txt polly/lib/External/isl/interface/extract_interface.cc Index: polly/lib/External/isl/interface/extract_interface.cc === --- polly/lib/External/isl/interface/extract_interface.cc +++ polly/lib/External/isl/interface/extract_interface.cc @@ -109,7 +109,7 @@ llvm::cl::value_desc("name")); static const char *ResourceDir = - CLANG_PREFIX "/lib/clang/" CLANG_VERSION_STRING; +CLANG_PREFIX "/lib/clang/" CLANG_VERSION_MAJOR_STRING; /* Does decl have an attribute of the following form? * Index: openmp/runtime/src/CMakeLists.txt === --- openmp/runtime/src/CMakeLists.txt +++ openmp/runtime/src/CMakeLists.txt @@ -352,8 +352,8 @@ if(${OPENMP_STANDALONE_BUILD}) set(LIBOMP_HEADERS_INSTALL_PATH "${CMAKE_INSTALL_INCLUDEDIR}") else() - string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION ${PACKAGE_VERSION}) - set(LIBOMP_HEADERS_INSTALL_PATH "${OPENMP_INSTALL_LIBDIR}/clang/${CLANG_VERSION}/include") + string(REGEX MATCH "^[0-9]+" CLANG_VERSION_MAJOR ${PACKAGE_VERSION}) + set(LIBOMP_HEADERS_INSTALL_PATH "${OPENMP_INSTALL_LIBDIR}/clang/${CLANG_VERSION_MAJOR}/include") endif() if(WIN32) install(TARGETS omp RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") Index: llvm/cmake/modules/LLVMExternalProjectUtils.cmake === --- llvm/cmake/modules/LLVMExternalProjectUtils.cmake +++ llvm/cmake/modules/LLVMExternalProjectUtils.cmake @@ -255,9 +255,9 @@ set(llvm_config_path ${LLVM_CONFIG_PATH}) if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") - string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION + string(REGEX MATCH "^[0-9]+" CLANG_VERSION_MAJOR ${PACKAGE_VERSION}) - set(resource_dir "${LLVM_LIBRARY_DIR}/clang/${CLANG_VERSION}") + set(resource_dir "${LLVM_LIBRARY_DIR}/clang/${CLANG_VERSION_MAJOR}") set(flag_types ASM C CXX MODULE_LINKER SHARED_LINKER EXE_LINKER) foreach(type ${flag_types}) set(${type}_flag -DCMAKE_${type}_FLAGS=-resource-dir=${resource_dir}) Index: lldb/unittests/Expression/ClangParserTest.cpp === --- lldb/unittests/Expression/ClangParserTest.cpp +++ lldb/unittests/Expression/ClangParserTest.cpp @@ -37,10 +37,12 @@ TEST_F(ClangHostTest, ComputeClangResourceDirectory) { #if !defined(_WIN32) std::string path_to_liblldb = "/foo/bar/lib/"; - std::string path_to_clang_dir = "/foo/bar/lib" LLDB_LIBDIR_SUFFIX "/clang/" CLANG_VERSION_STRING; + std::string path_to_clang_dir = + "/foo/bar/lib" LLDB_LIBDIR_SUFFIX "/clang/" CLANG_VERSION_MAJOR_STRING; #else std::string path_to_liblldb = "C:\\foo\\bar\\lib"; - std::string path_to_clang_dir = "C:\\foo\\bar\\lib\\clang\\" CLANG_VERSION_STRING; + std::string path_to_clang_dir = + "C:\\foo\\bar\\lib\\clang\\" CLANG_VERSION_MAJOR_STRING; #endif EXPECT_EQ(ComputeClangResourceDir(path_to_liblldb), path_to_clang_dir); Index: lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp === --- lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp +++ lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp @@ -55,7 +55,7 @@ static const llvm::StringRef kResourceDirSuffixes[] = { // LLVM.org's build of LLDB uses the clang resource directory placed // in $install_dir/lib{,64}/clang/$clang_version. - "lib" CLANG_LIBDIR_SUFFIX "/clang/" CLANG_VERSION_STRING, + "lib" CLANG_LIBDIR_SUFFIX "/clang/" CLANG_VERSION_MAJOR_STRING, // swift-lldb uses the clang resource directory copied from swift, which // by default is placed in $install_dir/lib{,64}/lldb/clang. LLDB places // it there, so we use LLDB_LIBDIR_SUFFIX. Index: compiler-rt/cmake/base-config-ix.cmake === --- compiler-rt/cmake/base-config-ix.cmake +++ compiler-rt/cmake/base-config-ix.cmake @@ -38,14 +38,16 @@ if (LLVM_TREE_AVAILABLE) # Compute the Clang version from the LLVM version. - # FIXME: We should be able to reuse CLANG_VERSION variable calculated + # FIXME: We should be able to reuse CLANG_VERSION_MAJOR variable calculated #in Clang cmake files, instead of copying the rules h
[PATCH] D125860: [clang] Only use major version in resource dir
tbaeder created this revision. tbaeder added a reviewer: tstellar. Herald added a subscriber: mgorny. Herald added a reviewer: bollu. Herald added a project: All. tbaeder requested review of this revision. Herald added subscribers: llvm-commits, openmp-commits, lldb-commits, Sanitizers, cfe-commits, MaskRay. Herald added projects: clang, Sanitizers, LLDB, OpenMP, LLVM. As discussed in https://discourse.llvm.org/t/should-we-continue-embed-the-full-llvm-version-in-lib-clang/62094/8 Release note update still missing of course. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D125860 Files: clang/include/clang/Basic/Version.inc.in clang/lib/Driver/Driver.cpp clang/lib/Headers/CMakeLists.txt clang/lib/Tooling/CMakeLists.txt clang/runtime/CMakeLists.txt compiler-rt/cmake/base-config-ix.cmake lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp lldb/unittests/Expression/ClangParserTest.cpp llvm/cmake/modules/LLVMExternalProjectUtils.cmake openmp/runtime/src/CMakeLists.txt polly/lib/External/isl/interface/extract_interface.cc Index: polly/lib/External/isl/interface/extract_interface.cc === --- polly/lib/External/isl/interface/extract_interface.cc +++ polly/lib/External/isl/interface/extract_interface.cc @@ -109,7 +109,7 @@ llvm::cl::value_desc("name")); static const char *ResourceDir = - CLANG_PREFIX "/lib/clang/" CLANG_VERSION_STRING; +CLANG_PREFIX "/lib/clang/" CLANG_VERSION_MAJOR_STRING; /* Does decl have an attribute of the following form? * Index: openmp/runtime/src/CMakeLists.txt === --- openmp/runtime/src/CMakeLists.txt +++ openmp/runtime/src/CMakeLists.txt @@ -353,7 +353,7 @@ set(LIBOMP_HEADERS_INSTALL_PATH "${CMAKE_INSTALL_INCLUDEDIR}") else() string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION ${PACKAGE_VERSION}) - set(LIBOMP_HEADERS_INSTALL_PATH "${OPENMP_INSTALL_LIBDIR}/clang/${CLANG_VERSION}/include") + set(LIBOMP_HEADERS_INSTALL_PATH "${OPENMP_INSTALL_LIBDIR}/clang/${CLANG_VERSION_MAJOR}/include") endif() if(WIN32) install(TARGETS omp RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") Index: llvm/cmake/modules/LLVMExternalProjectUtils.cmake === --- llvm/cmake/modules/LLVMExternalProjectUtils.cmake +++ llvm/cmake/modules/LLVMExternalProjectUtils.cmake @@ -259,7 +259,7 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION ${PACKAGE_VERSION}) - set(resource_dir "${LLVM_LIBRARY_DIR}/clang/${CLANG_VERSION}") + set(resource_dir "${LLVM_LIBRARY_DIR}/clang/${CLANG_VERSION_MAJOR}") set(flag_types ASM C CXX MODULE_LINKER SHARED_LINKER EXE_LINKER) foreach(type ${flag_types}) set(${type}_flag -DCMAKE_${type}_FLAGS=-resource-dir=${resource_dir}) Index: lldb/unittests/Expression/ClangParserTest.cpp === --- lldb/unittests/Expression/ClangParserTest.cpp +++ lldb/unittests/Expression/ClangParserTest.cpp @@ -37,10 +37,12 @@ TEST_F(ClangHostTest, ComputeClangResourceDirectory) { #if !defined(_WIN32) std::string path_to_liblldb = "/foo/bar/lib/"; - std::string path_to_clang_dir = "/foo/bar/lib" LLDB_LIBDIR_SUFFIX "/clang/" CLANG_VERSION_STRING; + std::string path_to_clang_dir = + "/foo/bar/lib" LLDB_LIBDIR_SUFFIX "/clang/" CLANG_VERSION_MAJOR_STRING; #else std::string path_to_liblldb = "C:\\foo\\bar\\lib"; - std::string path_to_clang_dir = "C:\\foo\\bar\\lib\\clang\\" CLANG_VERSION_STRING; + std::string path_to_clang_dir = + "C:\\foo\\bar\\lib\\clang\\" CLANG_VERSION_MAJOR_STRING; #endif EXPECT_EQ(ComputeClangResourceDir(path_to_liblldb), path_to_clang_dir); Index: lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp === --- lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp +++ lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp @@ -54,8 +54,8 @@ static const llvm::StringRef kResourceDirSuffixes[] = { // LLVM.org's build of LLDB uses the clang resource directory placed - // in $install_dir/lib{,64}/clang/$clang_version. - "lib" CLANG_LIBDIR_SUFFIX "/clang/" CLANG_VERSION_STRING, + // in $install_dir/lib{,64}/clang/$clang_major_version. + "lib" CLANG_LIBDIR_SUFFIX "/clang/" CLANG_VERSION_MAJOR_STRING, // swift-lldb uses the clang resource directory copied from swift, which // by default is placed in $install_dir/lib{,64}/lldb/clang. LLDB places // it there, so we use LLDB_LIBDIR_SUFFIX. Index: compiler-rt/cmake/base-config-ix.cmake === --- compiler-rt/cmake/base-config-ix.cmake +++ compiler-rt/cmake/base-config-ix.cmake @@ -43,9 +43,9 @@ string(REGEX M