rust: Cache bootstrap downloads to $(DL_DIR)/rustc
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
This commit is contained in:
parent
d24095b8fc
commit
35768bf31e
2 changed files with 38 additions and 0 deletions
|
@ -82,6 +82,7 @@ endef
|
|||
define Host/Compile
|
||||
( \
|
||||
cd $(HOST_BUILD_DIR) ; \
|
||||
OPENWRT_RUSTC_BOOTSTRAP_CACHE=$(DL_DIR)/rustc \
|
||||
$(PYTHON) x.py --config ./config.toml dist build-manifest cargo llvm-tools \
|
||||
rustc rust-std rust-src ; \
|
||||
)
|
||||
|
|
37
lang/rust/patches/0002-rustc-bootstrap-cache.patch
Normal file
37
lang/rust/patches/0002-rustc-bootstrap-cache.patch
Normal file
|
@ -0,0 +1,37 @@
|
|||
--- a/src/bootstrap/bootstrap.py
|
||||
+++ b/src/bootstrap/bootstrap.py
|
||||
@@ -543,7 +543,7 @@ class RustBuild(object):
|
||||
shutil.rmtree(bin_root)
|
||||
|
||||
key = self.stage0_compiler.date
|
||||
- cache_dst = os.path.join(self.build_dir, "cache")
|
||||
+ cache_dst = os.getenv('OPENWRT_RUSTC_BOOTSTRAP_CACHE', os.path.join(self.build_dir, "cache"))
|
||||
rustc_cache = os.path.join(cache_dst, key)
|
||||
if not os.path.exists(rustc_cache):
|
||||
os.makedirs(rustc_cache)
|
||||
--- a/src/bootstrap/download.rs
|
||||
+++ b/src/bootstrap/download.rs
|
||||
@@ -507,7 +507,10 @@ impl Config {
|
||||
key: &str,
|
||||
destination: &str,
|
||||
) {
|
||||
- let cache_dst = self.out.join("cache");
|
||||
+ let cache_dst = match env::var_os("OPENWRT_RUSTC_BOOTSTRAP_CACHE") {
|
||||
+ Some(v) => PathBuf::from(v),
|
||||
+ None => self.out.join("cache"),
|
||||
+ };
|
||||
let cache_dir = cache_dst.join(key);
|
||||
if !cache_dir.exists() {
|
||||
t!(fs::create_dir_all(&cache_dir));
|
||||
@@ -627,7 +630,10 @@ download-rustc = false
|
||||
let llvm_assertions = self.llvm_assertions;
|
||||
|
||||
let cache_prefix = format!("llvm-{}-{}", llvm_sha, llvm_assertions);
|
||||
- let cache_dst = self.out.join("cache");
|
||||
+ let cache_dst = match env::var_os("OPENWRT_RUSTC_BOOTSTRAP_CACHE") {
|
||||
+ Some(v) => PathBuf::from(v),
|
||||
+ None => self.out.join("cache"),
|
||||
+ };
|
||||
let rustc_cache = cache_dst.join(cache_prefix);
|
||||
if !rustc_cache.exists() {
|
||||
t!(fs::create_dir_all(&rustc_cache));
|
Loading…
Reference in a new issue