diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
index 25023c1..20c3074 100644
--- a/lib/Driver/Tools.cpp
+++ b/lib/Driver/Tools.cpp
@@ -9,18 +9,29 @@
 
 #include "Tools.h"
 
+#include "clang/Driver/Arg.h"
+#include "clang/Driver/Compilation.h"
+#include "clang/Driver/Job.h"
+#include "clang/Driver/Util.h"
+
+#include "llvm/ADT/SmallVector.h"
+
+#include "InputInfo.h"
+
 using namespace clang::driver;
 using namespace clang::driver::tools;
 
 void Clang::ConstructJob(Compilation &C, const JobAction &JA,
-                         const InputInfo &Output, 
+                         Job &Dest,
+                         const InputInfo &Output,
                          const InputInfoList &Inputs,
                          const ArgList &TCArgs,
                          const char *LinkingOutput) const {
 }
 
 void gcc::Preprocess::ConstructJob(Compilation &C, const JobAction &JA,
-                                   const InputInfo &Output, 
+                                   Job &Dest,
+                                   const InputInfo &Output,
                                    const InputInfoList &Inputs,
                                    const ArgList &TCArgs,
                                    const char *LinkingOutput) const {
@@ -28,7 +39,8 @@
 }
 
 void gcc::Precompile::ConstructJob(Compilation &C, const JobAction &JA,
-                                   const InputInfo &Output, 
+                                   Job &Dest,
+                                   const InputInfo &Output,
                                    const InputInfoList &Inputs,
                                    const ArgList &TCArgs,
                                    const char *LinkingOutput) const {
@@ -36,7 +48,8 @@
 }
 
 void gcc::Compile::ConstructJob(Compilation &C, const JobAction &JA,
-                                const InputInfo &Output, 
+                                Job &Dest,
+                                const InputInfo &Output,
                                 const InputInfoList &Inputs,
                                 const ArgList &TCArgs,
                                 const char *LinkingOutput) const {
@@ -44,7 +57,8 @@
 }
 
 void gcc::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
-                                 const InputInfo &Output, 
+                                 Job &Dest,
+                                 const InputInfo &Output,
                                  const InputInfoList &Inputs,
                                  const ArgList &TCArgs,
                                  const char *LinkingOutput) const {
@@ -52,7 +66,8 @@
 }
 
 void gcc::Link::ConstructJob(Compilation &C, const JobAction &JA,
-                             const InputInfo &Output, 
+                             Job &Dest,
+                             const InputInfo &Output,
                              const InputInfoList &Inputs,
                              const ArgList &TCArgs,
                              const char *LinkingOutput) const {
