Driver: Handle magic -ccc- options.
 - Follows ccc currently, but this functionality should eventually be
   outside the Driver lib.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66575 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/ccc/ccclib/Driver.py b/tools/ccc/ccclib/Driver.py
index e6aba65..eee3ad3 100644
--- a/tools/ccc/ccclib/Driver.py
+++ b/tools/ccc/ccclib/Driver.py
@@ -30,7 +30,6 @@
         self.cccHostSystem = self.cccHostRelease = None
         self.cccCXX = False
         self.cccEcho = False
-        self.cccFallback = False
         self.cccNoClang = self.cccNoClangCXX = self.cccNoClangPreprocessor = False
         self.cccClangArchs = None
 
@@ -139,8 +138,6 @@
                 self.cccCXX = True
             elif opt == 'echo':
                 self.cccEcho = True
-            elif opt == 'fallback':
-                self.cccFallback = True
 
             elif opt == 'no-clang':
                 self.cccNoClang = True
diff --git a/tools/driver/driver.cpp b/tools/driver/driver.cpp
index 31990a8..ad6c807 100644
--- a/tools/driver/driver.cpp
+++ b/tools/driver/driver.cpp
@@ -18,13 +18,20 @@
 #include "clang/Driver/Options.h"
 
 #include "llvm/ADT/OwningPtr.h"
+#include "llvm/System/Path.h"
 #include "llvm/System/Signals.h"
 using namespace clang::driver;
 
 int main(int argc, const char **argv) {
   llvm::sys::PrintStackTraceOnErrorSignal();
 
-  llvm::OwningPtr<Driver> TheDriver(new Driver());
+  // FIXME: We should use GetMainExecutable here, probably, but we may
+  // want to handle symbolic links slightly differently. The problem
+  // is that the path derived from this will influence search paths.
+  llvm::sys::Path Path(argv[0]);
+
+  llvm::OwningPtr<Driver> TheDriver(new Driver(Path.getBasename().c_str(),
+                                               Path.getDirname().c_str()));
 
   llvm::OwningPtr<Compilation> C(TheDriver->BuildCompilation(argc, argv));