--- rustc-1.29.2-src/src/bootstrap/dist.rs.orig	2018-10-29 06:10:51.148386100 +0300
+++ rustc-1.29.2-src/src/bootstrap/dist.rs	2018-10-29 07:45:37.437710900 +0300
@@ -112,6 +112,7 @@
     }
 }
 
+#[allow(dead_code)]
 fn find_files(files: &[&str], path: &[PathBuf]) -> Vec<PathBuf> {
     let mut found = Vec::with_capacity(files.len());
 
@@ -128,6 +129,7 @@
     found
 }
 
+#[allow(dead_code)]
 fn make_win_dist(
     rust_root: &Path,
     plat_root: &Path,
@@ -295,7 +297,7 @@
         // thrown away (this contains the runtime DLLs included in the rustc package
         // above) and the second argument is where to place all the MinGW components
         // (which is what we want).
-        make_win_dist(&tmpdir(builder), tarball.image_dir(), host, &builder);
+        // make_win_dist(&tmpdir(builder), tarball.image_dir(), host, &builder);
 
         Some(tarball.generate())
     }
@@ -341,7 +343,7 @@
         // install will *also* include the rust-mingw package, which also needs
         // licenses, so to be safe we just include it here in all MinGW packages.
         if host.contains("pc-windows-gnu") {
-            make_win_dist(tarball.image_dir(), &tmpdir(builder), host, builder);
+            // make_win_dist(tarball.image_dir(), &tmpdir(builder), host, builder);
             tarball.add_dir(builder.src.join("src/etc/third-party"), "share/doc");
         }
 
--- rustc-1.29.2-src/src/bootstrap/lib.rs.orig	2018-10-29 07:40:35.561580700 +0300
+++ rustc-1.29.2-src/src/bootstrap/lib.rs	2018-10-29 07:45:54.426140700 +0300
@@ -1278,6 +1278,7 @@
         }
     }
 
+    #[allow(dead_code)]
     fn copy_to_folder(&self, src: &Path, dest_folder: &Path) {
         let file_name = src.file_name().unwrap();
         let dest = dest_folder.join(file_name);
