summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hodge <tpg@ucc.asn.au>2017-09-30 18:35:30 +0800
committerJohn Hodge <tpg@ucc.asn.au>2017-09-30 18:38:37 +0800
commit8fa67ed8e17164d1210e0c46e51a10844e8bcfab (patch)
tree3ae07bde2fb651f2d96c67e7dc84d99b6ad4d6ea
parent8ea619df79d49a21e920e4b0047579fd10c796fa (diff)
downloadmrust-8fa67ed8e17164d1210e0c46e51a10844e8bcfab.tar.gz
Makefile - Switch to 1.19 by default
-rw-r--r--Makefile53
-rw-r--r--minicargo.mk7
-rw-r--r--rust-version1
-rw-r--r--rust_src.patch8
-rw-r--r--script-overrides/nightly-2017-07-08-linux/build_compiler_builtins.txt (renamed from script-overrides/nightly-2017-07-08/build_compiler_builtins.txt)0
-rw-r--r--script-overrides/nightly-2017-07-08-linux/build_libc.txt (renamed from script-overrides/nightly-2017-07-08/build_libc.txt)0
-rw-r--r--script-overrides/nightly-2017-07-08-linux/build_rustc_asan.txt (renamed from script-overrides/nightly-2017-07-08/build_rustc_asan.txt)0
-rw-r--r--script-overrides/nightly-2017-07-08-linux/build_rustc_lsan.txt (renamed from script-overrides/nightly-2017-07-08/build_rustc_lsan.txt)0
-rw-r--r--script-overrides/nightly-2017-07-08-linux/build_rustc_msan.txt (renamed from script-overrides/nightly-2017-07-08/build_rustc_msan.txt)0
-rw-r--r--script-overrides/nightly-2017-07-08-linux/build_rustc_tsan.txt (renamed from script-overrides/nightly-2017-07-08/build_rustc_tsan.txt)0
-rw-r--r--script-overrides/nightly-2017-07-08-linux/build_std.txt (renamed from script-overrides/nightly-2017-07-08/build_std.txt)0
-rw-r--r--script-overrides/nightly-2017-07-08-linux/build_unwind.txt (renamed from script-overrides/nightly-2017-07-08/build_unwind.txt)0
12 files changed, 48 insertions, 21 deletions
diff --git a/Makefile b/Makefile
index cf9b9ce6..7e46f083 100644
--- a/Makefile
+++ b/Makefile
@@ -131,27 +131,39 @@ clean:
PIPECMD ?= 2>&1 | tee $@_dbg.txt | tail -n $(TAIL_COUNT) ; test $${PIPESTATUS[0]} -eq 0
-RUSTCSRC := rustc-nightly/
+#RUSTC_SRC_TY ?= nightly
+RUSTC_SRC_TY ?= stable
+ifeq ($(RUSTC_SRC_TY),nightly)
+RUSTC_SRC_DES := rust-nightly-date
+RUSTCSRC := rustc-nightly-src/
+else ifeq ($(RUSTC_SRC_TY),stable)
+RUSTC_SRC_DES := rust-version
+RUSTCSRC := rustc-$(shell cat $(RUSTC_SRC_DES))-src/
+else
+$(error Unknown rustc channel)
+endif
RUSTC_SRC_DL := $(RUSTCSRC)/dl-version
+MAKE_MINICARGO = $(MAKE) -f minicargo.mk RUSTC_VERSION=$(shell cat $(RUSTC_SRC_DES)) RUSTC_CHANNEL=$(RUSTC_SRC_TY)
+
-output/libstd.hir: $(BIN) $(RUSTCSRC)
- $(MAKE) -f minicargo.mk $@
+output/libstd.hir: $(BIN) $(RUSTC_SRC_DL)
+ $(MAKE_MINICARGO) $@
output/libtest.hir output/libpanic_unwind.hir: output/libstd.hir
- $(MAKE) -f minicargo.mk $@
+ $(MAKE_MINICARGO) $@
output/rustc output/cargo: output/libtest.hir
- $(MAKE) -f minicargo.mk $@
+ $(MAKE_MINICARGO) $@
TEST_DEPS := output/libstd.hir output/libtest.hir output/libpanic_unwind.hir
-output/lib%-test: $(RUSTCSRC)src/lib%/lib.rs $(RUSTCSRC) $(TEST_DEPS)
+output/lib%-test: $(RUSTCSRC)src/lib%/lib.rs $(RUSTC_SRC_DL) $(TEST_DEPS)
@echo "--- [MRUSTC] --test -o $@"
@mkdir -p output/
@rm -f $@
$(DBG) $(ENV_$@) $(BIN) --test $< -o $@ -L output/libs $(RUST_FLAGS) $(ARGS_$@) $(PIPECMD)
# # HACK: Work around gdb returning success even if the program crashed
@test -e $@
-output/lib%-test: $(RUSTCSRC)src/lib%/src/lib.rs $(RUSTCSRC) $(TEST_DEPS)
+output/lib%-test: $(RUSTCSRC)src/lib%/src/lib.rs $(RUSTC_SRC_DL) $(TEST_DEPS)
@echo "--- [MRUSTC] $@"
@mkdir -p output/
@rm -f $@
@@ -167,24 +179,37 @@ fn_getdeps = \
.PHONY: RUSTCSRC
-RUSTCSRC: $(RUSTCSRC)
+RUSTCSRC: $(RUSTC_SRC_DL)
-rustc-nightly-src.tar.gz: rust-nightly-date
+ifeq ($(RUSTC_SRC_TY),nightly)
+rustc-nightly-src.tar.gz: $(RUSTC_SRC_DES)
@export DL_RUST_DATE=$$(cat rust-nightly-date); \
export DISK_RUST_DATE=$$([ -f $(RUSTC_SRC_DL) ] && cat $(RUSTC_SRC_DL)); \
echo "Rust version on disk is '$${DISK_RUST_DATE}'. Downloading $${DL_RUST_DATE}."; \
rm -f rustc-nightly-src.tar.gz; \
curl -sS https://static.rust-lang.org/dist/$${DL_RUST_DATE}/rustc-nightly-src.tar.gz -o rustc-nightly-src.tar.gz
-$(RUSTCSRC): rustc-nightly-src.tar.gz rust_src.patch
+# TODO: Handle non-nightly download
+$(RUSTC_SRC_DL): rust-nightly-date rustc-nightly-src.tar.gz rust_src.patch
@export DL_RUST_DATE=$$(cat rust-nightly-date); \
export DISK_RUST_DATE=$$([ -f $(RUSTC_SRC_DL) ] && cat $(RUSTC_SRC_DL)); \
if [ "$$DL_RUST_DATE" != "$$DISK_RUST_DATE" ]; then \
- rm -rf rustc-nightly; \
- tar -xf rustc-nightly-src.tar.gz; mv rustc-nightly-src rustc-nightly; \
+ rm -rf rustc-nightly-src; \
+ tar -xf rustc-nightly-src.tar.gz; \
patch -p0 < rust_src.patch; \
- cat rust-nightly-date > $(RUSTC_SRC_DL); \
fi
+ cat rust-nightly-date > $(RUSTC_SRC_DL)
+else
+RUSTC_SRC_TARBALL := rustc-$(shell cat $(RUSTC_SRC_DES))-src.tar.gz
+$(RUSTC_SRC_TARBALL): $(RUSTC_SRC_DES)
+ @echo [CURL] $@
+ @rm -f $@
+ @curl -sS https://static.rust-lang.org/dist/$@ -o $@
+$(RUSTC_SRC_DL): $(RUSTC_SRC_TARBALL) rust_src.patch
+ tar -xf $(RUSTC_SRC_TARBALL)
+ cd $(RUSTCSRC) && patch -p0 < ../rust_src.patch;
+ cat $(RUSTC_SRC_DES) > $(RUSTC_SRC_DL)
+endif
# MRUSTC-specific tests
@@ -704,7 +729,7 @@ test_deps_run-pass.mk: Makefile $(wildcard $(RUST_TESTS_DIR)run_pass/*.rs)
#
# TEST: Rust standard library and the "hello, world" run-pass test
#
-test: $(RUSTCSRC) output/libstd.hir output/rust/test_run-pass_hello_out.txt $(BIN)
+test: $(RUSTC_SRC_DL) output/libstd.hir output/rust/test_run-pass_hello_out.txt $(BIN)
#
# TEST: Attempt to compile rust_os (Tifflin) from ../rust_os
diff --git a/minicargo.mk b/minicargo.mk
index 670529b8..e7dabea9 100644
--- a/minicargo.mk
+++ b/minicargo.mk
@@ -1,13 +1,13 @@
RUSTC_CHANNEL ?= nightly
RUSTC_VERSION ?= 2017-07-08
-OVERRIDE_SUFFIX ?= # -linux
+OVERRIDE_SUFFIX ?= -linux
OUTDIR := output/
MRUSTC := bin/mrustc
MINICARGO := tools/bin/minicargo
ifeq ($(RUSTC_CHANNEL),nightly)
- RUSTCSRC := rustc-nightly/
+ RUSTCSRC := rustc-nightly-src/
else
RUSTCSRC := rustc-$(RUSTC_VERSION)-src/
endif
@@ -74,4 +74,5 @@ $(RUSTCSRC)build/Makefile: $(RUSTCSRC)src/llvm/CMakeLists.txt
#
$(OUTDIR)libnum.hir: $(MRUSTC) $(OUTDIR)libstd.hir
$(MINICARGO) $(RUSTCSRC)src/vendor/num --vendor-dir $(RUSTCSRC)src/vendor --output-dir $(OUTDIR)
-
+$(OUTDIR)libsocket2-0_2_1.hir: $(OUTDIR)libstd.hir
+ $(MINICARGO) $(RUSTCSRC)src/vendor/socket2 --vendor-dir $(RUSTCSRC)src/vendor --output-dir $(OUTDIR)
diff --git a/rust-version b/rust-version
new file mode 100644
index 00000000..815d5ca0
--- /dev/null
+++ b/rust-version
@@ -0,0 +1 @@
+1.19.0
diff --git a/rust_src.patch b/rust_src.patch
index f49891a5..1cc13242 100644
--- a/rust_src.patch
+++ b/rust_src.patch
@@ -1,5 +1,5 @@
---- rustc-nightly/src/libcore/intrinsics.rs
-+++ rustc-nightly/src/libcore/intrinsics.rs
+--- src/libcore/intrinsics.rs
++++ src/libcore/intrinsics.rs
@@ -678,5 +678,9 @@
pub fn min_align_of_val<T: ?Sized>(_: &T) -> usize;
@@ -10,8 +10,8 @@
/// Gets a static string slice containing the name of a type.
pub fn type_name<T: ?Sized>() -> &'static str;
---- rustc-nightly/src/libcore/slice/mod.rs
-+++ rustc-nightly/src/libcore/slice/mod.rs
+--- src/libcore/slice/mod.rs
++++ src/libcore/slice/mod.rs
@@ -413,6 +413,8 @@
#[inline]
fn len(&self) -> usize {
diff --git a/script-overrides/nightly-2017-07-08/build_compiler_builtins.txt b/script-overrides/nightly-2017-07-08-linux/build_compiler_builtins.txt
index e69de29b..e69de29b 100644
--- a/script-overrides/nightly-2017-07-08/build_compiler_builtins.txt
+++ b/script-overrides/nightly-2017-07-08-linux/build_compiler_builtins.txt
diff --git a/script-overrides/nightly-2017-07-08/build_libc.txt b/script-overrides/nightly-2017-07-08-linux/build_libc.txt
index 32bbd68e..32bbd68e 100644
--- a/script-overrides/nightly-2017-07-08/build_libc.txt
+++ b/script-overrides/nightly-2017-07-08-linux/build_libc.txt
diff --git a/script-overrides/nightly-2017-07-08/build_rustc_asan.txt b/script-overrides/nightly-2017-07-08-linux/build_rustc_asan.txt
index e69de29b..e69de29b 100644
--- a/script-overrides/nightly-2017-07-08/build_rustc_asan.txt
+++ b/script-overrides/nightly-2017-07-08-linux/build_rustc_asan.txt
diff --git a/script-overrides/nightly-2017-07-08/build_rustc_lsan.txt b/script-overrides/nightly-2017-07-08-linux/build_rustc_lsan.txt
index e69de29b..e69de29b 100644
--- a/script-overrides/nightly-2017-07-08/build_rustc_lsan.txt
+++ b/script-overrides/nightly-2017-07-08-linux/build_rustc_lsan.txt
diff --git a/script-overrides/nightly-2017-07-08/build_rustc_msan.txt b/script-overrides/nightly-2017-07-08-linux/build_rustc_msan.txt
index e69de29b..e69de29b 100644
--- a/script-overrides/nightly-2017-07-08/build_rustc_msan.txt
+++ b/script-overrides/nightly-2017-07-08-linux/build_rustc_msan.txt
diff --git a/script-overrides/nightly-2017-07-08/build_rustc_tsan.txt b/script-overrides/nightly-2017-07-08-linux/build_rustc_tsan.txt
index e69de29b..e69de29b 100644
--- a/script-overrides/nightly-2017-07-08/build_rustc_tsan.txt
+++ b/script-overrides/nightly-2017-07-08-linux/build_rustc_tsan.txt
diff --git a/script-overrides/nightly-2017-07-08/build_std.txt b/script-overrides/nightly-2017-07-08-linux/build_std.txt
index 78437b2b..78437b2b 100644
--- a/script-overrides/nightly-2017-07-08/build_std.txt
+++ b/script-overrides/nightly-2017-07-08-linux/build_std.txt
diff --git a/script-overrides/nightly-2017-07-08/build_unwind.txt b/script-overrides/nightly-2017-07-08-linux/build_unwind.txt
index e69de29b..e69de29b 100644
--- a/script-overrides/nightly-2017-07-08/build_unwind.txt
+++ b/script-overrides/nightly-2017-07-08-linux/build_unwind.txt