Author: Quinn Pham Date: 2022-06-13T09:12:49-05:00 New Revision: 35aaf548237a4f213ba9d95de53b33c5ce1eadce
URL: https://github.com/llvm/llvm-project/commit/35aaf548237a4f213ba9d95de53b33c5ce1eadce DIFF: https://github.com/llvm/llvm-project/commit/35aaf548237a4f213ba9d95de53b33c5ce1eadce.diff LOG: [clang][driver] fix to correctly set devtoolset on RHEL This patch correctly sets the devtoolset on RHEL. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D127310 Added: Modified: clang/lib/Driver/ToolChains/Gnu.cpp clang/unittests/Driver/ToolChainTest.cpp Removed: ################################################################################ diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp index c6ea1d026647..f4caa5e10609 100644 --- a/clang/lib/Driver/ToolChains/Gnu.cpp +++ b/clang/lib/Driver/ToolChains/Gnu.cpp @@ -2154,7 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes( } if (ChosenToolsetVersion > 0) - Prefixes.push_back(ChosenToolsetDir); + Prefixes.push_back(ChosenToolsetDir + "/root/usr"); } // Fall back to /usr which is used by most non-Solaris systems. diff --git a/clang/unittests/Driver/ToolChainTest.cpp b/clang/unittests/Driver/ToolChainTest.cpp index 33389a52c6bb..3637b10cdd66 100644 --- a/clang/unittests/Driver/ToolChainTest.cpp +++ b/clang/unittests/Driver/ToolChainTest.cpp @@ -587,9 +587,9 @@ TEST(ToolChainTest, Toolsets) { llvm::MemoryBuffer::getMemBuffer("\n")); // File needed for GCC installation detection. - InMemoryFileSystem->addFile( - "/opt/rh/gcc-toolset-12/lib/gcc/x86_64-redhat-linux/11/crtbegin.o", 0, - llvm::MemoryBuffer::getMemBuffer("\n")); + InMemoryFileSystem->addFile("/opt/rh/gcc-toolset-12/root/usr/lib/gcc/" + "x86_64-redhat-linux/11/crtbegin.o", + 0, llvm::MemoryBuffer::getMemBuffer("\n")); DiagnosticsEngine Diags(DiagID, &*DiagOpts, new SimpleDiagnosticConsumer); Driver TheDriver("/bin/clang", "x86_64-redhat-linux", Diags, @@ -603,9 +603,9 @@ TEST(ToolChainTest, Toolsets) { C->getDefaultToolChain().printVerboseInfo(OS); } EXPECT_EQ("Found candidate GCC installation: " - "/opt/rh/gcc-toolset-12/lib/gcc/x86_64-redhat-linux/11\n" + "/opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/11\n" "Selected GCC installation: " - "/opt/rh/gcc-toolset-12/lib/gcc/x86_64-redhat-linux/11\n" + "/opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/11\n" "Candidate multilib: .;@m64\n" "Selected multilib: .;@m64\n", S); @@ -627,9 +627,9 @@ TEST(ToolChainTest, Toolsets) { llvm::MemoryBuffer::getMemBuffer("\n")); // File needed for GCC installation detection. - InMemoryFileSystem->addFile( - "/opt/rh/devtoolset-12/lib/gcc/x86_64-redhat-linux/11/crtbegin.o", 0, - llvm::MemoryBuffer::getMemBuffer("\n")); + InMemoryFileSystem->addFile("/opt/rh/devtoolset-12/root/usr/lib/gcc/" + "x86_64-redhat-linux/11/crtbegin.o", + 0, llvm::MemoryBuffer::getMemBuffer("\n")); DiagnosticsEngine Diags(DiagID, &*DiagOpts, new SimpleDiagnosticConsumer); Driver TheDriver("/bin/clang", "x86_64-redhat-linux", Diags, @@ -643,9 +643,9 @@ TEST(ToolChainTest, Toolsets) { C->getDefaultToolChain().printVerboseInfo(OS); } EXPECT_EQ("Found candidate GCC installation: " - "/opt/rh/devtoolset-12/lib/gcc/x86_64-redhat-linux/11\n" + "/opt/rh/devtoolset-12/root/usr/lib/gcc/x86_64-redhat-linux/11\n" "Selected GCC installation: " - "/opt/rh/devtoolset-12/lib/gcc/x86_64-redhat-linux/11\n" + "/opt/rh/devtoolset-12/root/usr/lib/gcc/x86_64-redhat-linux/11\n" "Candidate multilib: .;@m64\n" "Selected multilib: .;@m64\n", S); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits