about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRafael Ávila de Espíndola <respindola@mozilla.com>2011-06-17 15:32:41 -0400
committerRafael Ávila de Espíndola <respindola@mozilla.com>2011-06-17 15:34:59 -0400
commit342dbd7abef5330be9fb8b75efe55b9ac2fa1a65 (patch)
tree04ecf625499cb6c147bca449c460898f37d8af9f
parente43a3755dd062c4e0ed5727bec764e84f2fb7690 (diff)
Put std in stageN/lib. This avoids windows trying to load stageN/std.ll when
stageN/runstc.exe is run.
-rw-r--r--Makefile.in12
-rw-r--r--mk/clean.mk6
-rw-r--r--mk/platform.mk6
-rw-r--r--mk/snap.mk6
-rw-r--r--mk/stage1.mk3
-rw-r--r--mk/stage2.mk7
-rw-r--r--mk/stage3.mk7
-rw-r--r--src/comp/driver/rustc.rs4
8 files changed, 27 insertions, 24 deletions
diff --git a/Makefile.in b/Makefile.in
index 3c56c5694db..7f02341c43b 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -149,8 +149,8 @@ COMPILER_INPUTS := $(wildcard $(addprefix $(S)src/comp/, \
 
 LREQ := rt/$(CFG_RUNTIME) rustllvm/$(CFG_RUSTLLVM)
 SREQ0 := stage0/rustc$(X) $(LREQ) rt/main.o stage0/glue.o stage0/$(CFG_STDLIB)
-SREQ1 := stage1/rustc$(X) $(LREQ) rt/main.o stage1/glue.o stage1/$(CFG_STDLIB)
-SREQ2 := stage2/rustc$(X) $(LREQ) rt/main.o stage2/glue.o stage2/$(CFG_STDLIB)
+SREQ1 := stage1/rustc$(X) $(LREQ) rt/main.o stage1/glue.o stage1/lib/$(CFG_STDLIB)
+SREQ2 := stage2/rustc$(X) $(LREQ) rt/main.o stage2/glue.o stage2/lib/$(CFG_STDLIB)
 
 
 ######################################################################
@@ -187,7 +187,7 @@ all: rt/$(CFG_RUNTIME)          \
      stage0/rustc$(X)           \
      $(GENERATED)               \
      $(DOCS)                    \
-     stage1/$(CFG_STDLIB)       \
+     stage1/lib/$(CFG_STDLIB)   \
      stage1/intrinsics.bc       \
      stage1/glue.o              \
      stage1/rustc$(X)           \
@@ -201,15 +201,15 @@ all: rt/$(CFG_RUNTIME)          \
      stage0/rustc$(X)           \
      $(GENERATED)               \
      $(DOCS)                    \
-     stage1/$(CFG_STDLIB)       \
+     stage1/lib/$(CFG_STDLIB)   \
      stage1/intrinsics.bc       \
      stage1/glue.o              \
      stage1/rustc$(X)           \
-     stage2/$(CFG_STDLIB)       \
+     stage2/lib/$(CFG_STDLIB)   \
      stage2/intrinsics.bc       \
      stage2/glue.o              \
      stage2/rustc$(X)           \
-     stage3/$(CFG_STDLIB)       \
+     stage3/lib/$(CFG_STDLIB)   \
      stage3/glue.o              \
      stage3/intrinsics.bc       \
      stage3/rustc$(X)
diff --git a/mk/clean.mk b/mk/clean.mk
index 5353006fe7c..15cef4c408b 100644
--- a/mk/clean.mk
+++ b/mk/clean.mk
@@ -23,9 +23,9 @@ clean:
 	$(Q)rm -f $(CRATE_DEPFILES:%.d=%.d.tmp)
 	$(Q)rm -f $(GENERATED)
 	$(Q)rm -f stage0/rustc$(X) stage0/$(CFG_STDLIB)
-	$(Q)rm -f stage1/rustc$(X) stage1/$(CFG_STDLIB) stage1/glue*
-	$(Q)rm -f stage2/rustc$(X) stage2/$(CFG_STDLIB) stage2/glue*
-	$(Q)rm -f stage3/rustc$(X) stage3/$(CFG_STDLIB) stage3/glue*
+	$(Q)rm -f stage1/rustc$(X) stage1/lib/$(CFG_STDLIB) stage1/glue*
+	$(Q)rm -f stage2/rustc$(X) stage2/lib/$(CFG_STDLIB) stage2/glue*
+	$(Q)rm -f stage3/rustc$(X) stage3/lib/$(CFG_STDLIB) stage3/glue*
 	$(Q)rm -f rustllvm/$(CFG_RUSTLLVM) rustllvm/rustllvmbits.a
 	$(Q)rm -f rt/$(CFG_RUNTIME)
 	$(Q)rm -f rt/main.o
diff --git a/mk/platform.mk b/mk/platform.mk
index 0a9c2bf0b86..216e5c68d10 100644
--- a/mk/platform.mk
+++ b/mk/platform.mk
@@ -82,7 +82,7 @@ ifdef CFG_WINDOWSY
   CFG_LDPATH :=$(CFG_LDPATH):$(CFG_LLVM_BINDIR)
   CFG_LDPATH :=$(CFG_LDPATH):$$PATH
   CFG_RUN_TEST=PATH="$(CFG_LDPATH):$(call CFG_TESTLIB,$(1))" $(1)
-  CFG_RUN_TARG=PATH="$(CFG_BUILD_DIR)/$(1):$(CFG_LDPATH)" $(2)
+  CFG_RUN_TARG=PATH="$(CFG_BUILD_DIR)/$(1):$(CFG_BUILD_DIR)/$(1)/lib:$(CFG_LDPATH)" $(2)
 
   CFG_PATH_MUNGE := $(strip perl -i.bak -p             \
                            -e 's@\\(\S)@/\1@go;'       \
@@ -98,7 +98,7 @@ ifdef CFG_UNIXY
   CFG_PATH_MUNGE := true
   CFG_EXE_SUFFIX :=
   CFG_LDPATH :=$(CFG_LDPATH):$(CFG_LLVM_LIBDIR)
-  CFG_RUN_TARG=$(CFG_LDENV)=$(CFG_BUILD_DIR)/$(1):$(CFG_LDPATH) $(2)
+  CFG_RUN_TARG=$(CFG_LDENV)=$(CFG_BUILD_DIR)/$(1):$(CFG_BUILD_DIR)/$(1)/lib:$(CFG_LDPATH) $(2)
   CFG_RUN_TEST=\
       $(CFG_LDENV)=$(call CFG_TESTLIB,$(1)):$(CFG_LDPATH) \
       $(CFG_VALGRIND) $(1)
@@ -108,7 +108,7 @@ ifdef CFG_UNIXY
     CFG_LIB_NAME=$(1).dll
     CFG_LDPATH :=$(CFG_LDPATH):$(CFG_LLVM_BINDIR)
     CFG_LDPATH :=$(CFG_LDPATH):$$PATH
-    CFG_RUN_TARG=PATH=$(CFG_BUILD_DIR)/$(1):$(CFG_LDPATH) $(2)
+    CFG_RUN_TARG=PATH=$(CFG_BUILD_DIR)/$(1):$(CFG_BUILD_DIR)/$(1)/lib:$(CFG_LDPATH) $(2)
     CFG_RUN_TEST=PATH=$(CFG_LDPATH):$(call CFG_TESTLIB,$(1)) $(1)
 
     CFG_INFO := $(info cfg: mingw-cross)
diff --git a/mk/snap.mk b/mk/snap.mk
index 6cf5c998ec8..aa5a2065138 100644
--- a/mk/snap.mk
+++ b/mk/snap.mk
@@ -1,10 +1,10 @@
 
-snap-stage1: stage1/rustc$(X) stage1/glue.o stage1/$(CFG_STDLIB)
+snap-stage1: stage1/rustc$(X) stage1/glue.o stage1/lib/$(CFG_STDLIB)
 	$(CFG_SRC_DIR)src/etc/make-snapshot.py stage1
 
-snap-stage2: stage2/rustc$(X) stage2/glue.o stage2/$(CFG_STDLIB)
+snap-stage2: stage2/rustc$(X) stage2/glue.o stage2/lib/$(CFG_STDLIB)
 	$(CFG_SRC_DIR)src/etc/make-snapshot.py stage2
 
-snap-stage3: stage3/rustc$(X) stage3/glue.o stage3/$(CFG_STDLIB)
+snap-stage3: stage3/rustc$(X) stage3/glue.o stage3/lib/$(CFG_STDLIB)
 	$(CFG_SRC_DIR)src/etc/make-snapshot.py stage3
 
diff --git a/mk/stage1.mk b/mk/stage1.mk
index e994eea72e7..17b1984bc54 100644
--- a/mk/stage1.mk
+++ b/mk/stage1.mk
@@ -1,7 +1,8 @@
-stage1/$(CFG_STDLIB): $(STDLIB_CRATE) $(STDLIB_INPUTS) \
+stage1/lib/$(CFG_STDLIB): $(STDLIB_CRATE) $(STDLIB_INPUTS) \
               stage1/rustc$(X) stage0/$(CFG_STDLIB) stage1/intrinsics.bc \
               stage1/glue.o $(LREQ) $(MKFILES)
 	@$(call E, compile_and_link: $@)
+	mkdir -p stage1/lib
 	$(STAGE1)  --shared -o $@ $<
 
 stage1/glue.o: stage1/rustc$(X) stage0/$(CFG_STDLIB) stage1/intrinsics.bc \
diff --git a/mk/stage2.mk b/mk/stage2.mk
index ad4133b7dd0..c581ace3b6a 100644
--- a/mk/stage2.mk
+++ b/mk/stage2.mk
@@ -1,10 +1,11 @@
-stage2/$(CFG_STDLIB): $(STDLIB_CRATE) $(STDLIB_INPUTS) \
-              stage2/rustc$(X) stage1/$(CFG_STDLIB) stage2/intrinsics.bc \
+stage2/lib/$(CFG_STDLIB): $(STDLIB_CRATE) $(STDLIB_INPUTS) \
+              stage2/rustc$(X) stage1/lib/$(CFG_STDLIB) stage2/intrinsics.bc \
               stage2/glue.o $(LREQ) $(MKFILES)
 	@$(call E, compile_and_link: $@)
+	mkdir -p stage2/lib
 	$(STAGE2)  --shared -o $@ $<
 
-stage2/glue.o: stage2/rustc$(X) stage1/$(CFG_STDLIB) stage2/intrinsics.bc \
+stage2/glue.o: stage2/rustc$(X) stage1/lib/$(CFG_STDLIB) stage2/intrinsics.bc \
                rustllvm/$(CFG_RUSTLLVM) rt/$(CFG_RUNTIME)
 	@$(call E, generate: $@)
 	$(STAGE2) -c -o $@ --glue
diff --git a/mk/stage3.mk b/mk/stage3.mk
index fe993ea915a..5d167b8131e 100644
--- a/mk/stage3.mk
+++ b/mk/stage3.mk
@@ -1,10 +1,11 @@
-stage3/$(CFG_STDLIB): $(STDLIB_CRATE) $(STDLIB_INPUTS) \
-              stage3/rustc$(X) stage2/$(CFG_STDLIB) stage3/intrinsics.bc \
+stage3/lib/$(CFG_STDLIB): $(STDLIB_CRATE) $(STDLIB_INPUTS) \
+              stage3/rustc$(X) stage2/lib/$(CFG_STDLIB) stage3/intrinsics.bc \
               stage3/glue.o $(LREQ) $(MKFILES)
 	@$(call E, compile_and_link: $@)
+	mkdir -p stage3/lib
 	$(STAGE3)  --shared -o $@ $<
 
-stage3/glue.o: stage3/rustc$(X) stage2/$(CFG_STDLIB) stage3/intrinsics.bc \
+stage3/glue.o: stage3/rustc$(X) stage2/lib/$(CFG_STDLIB) stage3/intrinsics.bc \
                rustllvm/$(CFG_RUSTLLVM) rt/$(CFG_RUNTIME)
 	@$(call E, generate: $@)
 	$(STAGE3) -c -o $@ --glue
diff --git a/src/comp/driver/rustc.rs b/src/comp/driver/rustc.rs
index 0a340e4758e..24539f364fe 100644
--- a/src/comp/driver/rustc.rs
+++ b/src/comp/driver/rustc.rs
@@ -205,7 +205,7 @@ fn build_target_config() -> @session::config {
 fn build_session_options(str binary, getopts::match match, str binary_dir) ->
    @session::options {
     auto shared = opt_present(match, "shared");
-    auto library_search_paths = [binary_dir];
+    auto library_search_paths = [binary_dir + "/lib"];
     library_search_paths += getopts::opt_strs(match, "L");
     auto output_type =
         if (opt_present(match, "parse-only")) {
@@ -395,7 +395,7 @@ fn main(vec[str] args) {
     if (sopts.output_type == link::output_type_exe) {
         let str glu = binary_dir + "/glue.o";
         let str main = "rt/main.o";
-        let str stage = "-L" + binary_dir;
+        let str stage = "-L" + binary_dir + "/lib";
         let vec[str] gcc_args;
         let str prog = "gcc";
         // The invocations of gcc share some flags across platforms