diff options
author | Chandler Carruth <chandlerc@gmail.com> | 2011-06-08 10:14:38 +0000 |
---|---|---|
committer | Chandler Carruth <chandlerc@gmail.com> | 2011-06-08 10:14:38 +0000 |
commit | 2561f09c9b227533b06dcdfa787eadf93e17ea28 (patch) | |
tree | 438722dc0314bce44357dec39306c9f679acedab /clang | |
parent | d54186ac33c555538fc5c7e838c0f5e5d3931c3f (diff) | |
download | bcm5719-llvm-2561f09c9b227533b06dcdfa787eadf93e17ea28.tar.gz bcm5719-llvm-2561f09c9b227533b06dcdfa787eadf93e17ea28.zip |
Revert "hack in my new variables for GCC"
Very sorry for the accidental commit of WIP code.
llvm-svn: 132745
Diffstat (limited to 'clang')
-rw-r--r-- | clang/CMakeLists.txt | 12 | ||||
-rw-r--r-- | clang/include/clang/Config/config.h.cmake | 12 | ||||
-rw-r--r-- | clang/lib/Driver/ToolChains.cpp | 44 |
3 files changed, 24 insertions, 44 deletions
diff --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt index dd33f814c32..aa89823e76f 100644 --- a/clang/CMakeLists.txt +++ b/clang/CMakeLists.txt @@ -54,18 +54,6 @@ endif() set(CLANG_RESOURCE_DIR "" CACHE STRING "Relative directory from the Clang binary to its resource files.") -set(CLANG_GCC_INSTALL_ROOT "" CACHE STRING - "The GCC install root to use for headers and libraries.") - -set(CLANG_GCC_LIB_DIR "/lib/gcc" CACHE STRING - "The directory relative to the install root for GCC libraries.") - -set(CLANG_GCC_ARCH "" CACHE STRING - "The architecture string of the GCC installation.") - -set(CLANG_GCC_VERSION "" CACHE STRING - "The version of the GCC installation.") - set(C_INCLUDE_DIRS "" CACHE STRING "Colon separated list of directories clang will search for headers.") diff --git a/clang/include/clang/Config/config.h.cmake b/clang/include/clang/Config/config.h.cmake index 993bbc98b73..5f13d2faa31 100644 --- a/clang/include/clang/Config/config.h.cmake +++ b/clang/include/clang/Config/config.h.cmake @@ -1,18 +1,6 @@ /* Relative directory for resource files */ #define CLANG_RESOURCE_DIR "${CLANG_RESOURCE_DIR}" -/* GCC install root */ -#define CLANG_GCC_INSTALL_ROOT "${CLANG_GCC_INSTALL_ROOT}" - -/* GCC library directory, relative to the installation root */ -#define CLANG_GCC_LIB_DIR "${CLANG_GCC_LIB_DIR}" - -/* GCC architecture */ -#define CLANG_GCC_ARCH "${CLANG_GCC_ARCH}" - -/* GCC version */ -#define CLANG_GCC_VERSION "${CLANG_GCC_VERSION}" - /* 32 bit multilib directory. */ #define CXX_INCLUDE_32BIT_DIR "${CXX_INCLUDE_32BIT_DIR}" diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp index 5266f6a883c..ca613e3d6c8 100644 --- a/clang/lib/Driver/ToolChains.cpp +++ b/clang/lib/Driver/ToolChains.cpp @@ -1334,27 +1334,31 @@ static LinuxDistro DetectLinuxDistro(llvm::Triple::ArchType Arch) { } static std::string findGCCBaseLibDir(const std::string &GccTriple) { - // Check for an explicit configure-time version of GCC. - llvm::SmallString<32> GCCVersion(CLANG_GCC_VERSION); - if (GCCVersion != "") { - // Read the other variables if we have a specific GCC version requested at - // configuration time. We provide defaults for them if missing though. - llvm::SmallString<128> InstallRoot(CLANG_GCC_INSTALL_ROOT); - if (InstallRoot == "") InstallRoot = "/usr"; - llvm::SmallString<32> GCCLibDir(CLANG_GCC_LIB_DIR); - if (GCCLibDir == "") GCCLibDir = "/lib/gcc"; - llvm::SmallString<32> GCCArch(CLANG_GCC_ARCH); - if (GCCArch == "") GCCArch = GccTriple; - - InstallRoot += GCCLibDir; - InstallRoot += "/"; - InstallRoot += GCCArch; - InstallRoot += "/"; - InstallRoot += GCCVersion; - return InstallRoot.str(); + // FIXME: Using CXX_INCLUDE_ROOT is here is a bit of a hack, but + // avoids adding yet another option to configure/cmake. + // It would probably be cleaner to break it in two variables + // CXX_GCC_ROOT with just /foo/bar + // CXX_GCC_VER with 4.5.2 + // Then we would have + // CXX_INCLUDE_ROOT = CXX_GCC_ROOT/include/c++/CXX_GCC_VER + // and this function would return + // CXX_GCC_ROOT/lib/gcc/CXX_INCLUDE_ARCH/CXX_GCC_VER + llvm::SmallString<128> CxxIncludeRoot(CXX_INCLUDE_ROOT); + if (CxxIncludeRoot != "") { + // This is of the form /foo/bar/include/c++/4.5.2/ + if (CxxIncludeRoot.back() == '/') + llvm::sys::path::remove_filename(CxxIncludeRoot); // remove the / + llvm::StringRef Version = llvm::sys::path::filename(CxxIncludeRoot); + llvm::sys::path::remove_filename(CxxIncludeRoot); // remove the version + llvm::sys::path::remove_filename(CxxIncludeRoot); // remove the c++ + llvm::sys::path::remove_filename(CxxIncludeRoot); // remove the include + std::string ret(CxxIncludeRoot.c_str()); + ret.append("/lib/gcc/"); + ret.append(CXX_INCLUDE_ARCH); + ret.append("/"); + ret.append(Version); + return ret; } - - // Otherwise, attempt to detect a system GCC installation. static const char* GccVersions[] = {"4.6.0", "4.6", "4.5.2", "4.5.1", "4.5", "4.4.5", "4.4.4", "4.4.3", "4.4", |