Skip to content

Commit cff012d

Browse files
committed
auto merge of #13024 : brson/rust/issue-12799, r=thestinger
The only stage that can be installed from is 2 everywhere but windows, 3 on windows. Lightly tested. Not actually tested on Windows, but I did confirm that a *similar* change fixed the problem on Windows. Closes #12799
2 parents 7b957a8 + 9b77517 commit cff012d

File tree

3 files changed

+17
-29
lines changed

3 files changed

+17
-29
lines changed

mk/dist.mk

-4
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,6 @@ $(PKG_EXE): rust.iss modpath.iss LICENSE.txt rust-logo.ico \
6565
dist-prepare-win: PREPARE_HOST=$(CFG_BUILD)
6666
dist-prepare-win: PREPARE_TARGETS=$(CFG_BUILD)
6767
dist-prepare-win: PREPARE_DEST_DIR=tmp/dist/win
68-
# On windows we're using stage3, unlike Unix...
69-
dist-prepare-win: PREPARE_STAGE=3
7068
dist-prepare-win: PREPARE_DIR_CMD=$(DEFAULT_PREPARE_DIR_CMD)
7169
dist-prepare-win: PREPARE_BIN_CMD=$(DEFAULT_PREPARE_BIN_CMD)
7270
dist-prepare-win: PREPARE_LIB_CMD=$(DEFAULT_PREPARE_LIB_CMD)
@@ -135,7 +133,6 @@ ifeq ($(CFG_OSTYPE), apple-darwin)
135133
dist-prepare-osx: PREPARE_HOST=$(CFG_BUILD)
136134
dist-prepare-osx: PREPARE_TARGETS=$(CFG_BUILD)
137135
dist-prepare-osx: PREPARE_DEST_DIR=tmp/dist/pkgroot
138-
dist-prepare-osx: PREPARE_STAGE=2
139136
dist-prepare-osx: PREPARE_DIR_CMD=$(DEFAULT_PREPARE_DIR_CMD)
140137
dist-prepare-osx: PREPARE_BIN_CMD=$(DEFAULT_PREPARE_BIN_CMD)
141138
dist-prepare-osx: PREPARE_LIB_CMD=$(DEFAULT_PREPARE_LIB_CMD)
@@ -165,7 +162,6 @@ dist-tar-bins: $(foreach host,$(CFG_HOST),dist/$(PKG_DIR)-$(host).tar.gz)
165162
define DEF_INSTALLER
166163
dist-install-dir-$(1): PREPARE_HOST=$(1)
167164
dist-install-dir-$(1): PREPARE_TARGETS=$(1)
168-
dist-install-dir-$(1): PREPARE_STAGE=2
169165
dist-install-dir-$(1): PREPARE_DEST_DIR=tmp/dist/$$(PKG_DIR)-$(1)
170166
dist-install-dir-$(1): PREPARE_DIR_CMD=$(DEFAULT_PREPARE_DIR_CMD)
171167
dist-install-dir-$(1): PREPARE_BIN_CMD=$(DEFAULT_PREPARE_BIN_CMD)

mk/install.mk

+1-2
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,10 @@
1313
# mirror of the installation directory structure.
1414

1515
# The stage we install from
16-
ISTAGE = 2
16+
ISTAGE = $(PREPARE_STAGE)
1717

1818
install: PREPARE_HOST=$(CFG_BUILD)
1919
install: PREPARE_TARGETS=$(CFG_TARGET)
20-
install: PREPARE_STAGE=$(ISTAGE)
2120
install: PREPARE_DIR_CMD=$(DEFAULT_PREPARE_DIR_CMD)
2221
install: PREPARE_BIN_CMD=$(DEFAULT_PREPARE_BIN_CMD)
2322
install: PREPARE_LIB_CMD=$(DEFAULT_PREPARE_LIB_CMD)

mk/prepare.mk

+16-23
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,14 @@
2020
# PREPARE_TARGETS - the target triples, space separated
2121
# PREPARE_DEST_DIR - the directory to put the image
2222

23-
prepare: PREPARE_STAGE=2
23+
24+
# On windows we install from stage3, but on unix only stage2
25+
ifdef CFG_WINDOWSY_$(CFG_BUILD)
26+
PREPARE_STAGE=3
27+
else
28+
PREPARE_STAGE=2
29+
endif
30+
2431
prepare: PREPARE_DIR_CMD=$(DEFAULT_PREPARE_DIR_CMD)
2532
prepare: PREPARE_BIN_CMD=$(DEFAULT_PREPARE_BIN_CMD)
2633
prepare: PREPARE_LIB_CMD=$(DEFAULT_PREPARE_LIB_CMD)
@@ -43,15 +50,6 @@ DEFAULT_PREPARE_BIN_CMD = install -m755
4350
DEFAULT_PREPARE_LIB_CMD = install -m644
4451
DEFAULT_PREPARE_MAN_CMD = install -m644
4552

46-
# On windows we install from stage3, but on unix only stage2
47-
# Because of the way these rules are organized, preparing from any
48-
# stage requires all these stages to be built
49-
ifdef CFG_WINDOWSY_$(CFG_BUILD)
50-
PREPARE_STAGES=3
51-
else
52-
PREPARE_STAGES=2
53-
endif
54-
5553
# Create a directory
5654
# $(1) is the directory
5755
define PREPARE_DIR
@@ -102,9 +100,8 @@ prepare-host: prepare-host-tools
102100

103101
prepare-host-tools: \
104102
$(foreach tool, $(PREPARE_TOOLS),\
105-
$(foreach stage,$(PREPARE_STAGES),\
106-
$(foreach host,$(CFG_HOST),\
107-
prepare-host-tool-$(tool)-$(stage)-$(host))))
103+
$(foreach host,$(CFG_HOST),\
104+
prepare-host-tool-$(tool)-$(PREPARE_STAGE)-$(host)))
108105

109106
prepare-host-dirs: prepare-maybe-clean
110107
$(call PREPARE_DIR,$(PREPARE_DEST_BIN_DIR))
@@ -128,9 +125,8 @@ prepare-host-tool-$(1)-$(2)-$(3): prepare-maybe-clean \
128125
endef
129126

130127
$(foreach tool,$(PREPARE_TOOLS),\
131-
$(foreach stage,$(PREPARE_STAGES),\
132-
$(foreach host,$(CFG_HOST),\
133-
$(eval $(call DEF_PREPARE_HOST_TOOL,$(tool),$(stage),$(host))))))
128+
$(foreach host,$(CFG_HOST),\
129+
$(eval $(call DEF_PREPARE_HOST_TOOL,$(tool),$(PREPARE_STAGE),$(host)))))
134130

135131
# For host libraries only install dylibs, not rlibs since the host libs are only
136132
# used to support rustc and rustc uses dynamic linking
@@ -151,15 +147,13 @@ prepare-host-lib-$(1)-$(2)-$(3): prepare-maybe-clean \
151147
endef
152148

153149
$(foreach lib,$(CRATES),\
154-
$(foreach stage,$(PREPARE_STAGES),\
155-
$(foreach host,$(CFG_HOST),\
156-
$(eval $(call DEF_PREPARE_HOST_LIB,$(lib),$(stage),$(host))))))
150+
$(foreach host,$(CFG_HOST),\
151+
$(eval $(call DEF_PREPARE_HOST_LIB,$(lib),$(PREPARE_STAGE),$(host)))))
157152

158153
prepare-targets:\
159154
$(foreach host,$(CFG_HOST),\
160155
$(foreach target,$(CFG_TARGET),\
161-
$(foreach stage,$(PREPARE_STAGES),\
162-
prepare-target-$(target)-host-$(host)-$(stage))))
156+
prepare-target-$(target)-host-$(host)-$(PREPARE_STAGE)))
163157

164158
# $(1) is stage
165159
# $(2) is target
@@ -194,8 +188,7 @@ endef
194188

195189
$(foreach host,$(CFG_HOST),\
196190
$(foreach target,$(CFG_TARGET), \
197-
$(foreach stage,$(PREPARE_STAGES),\
198-
$(eval $(call DEF_PREPARE_TARGET_N,$(stage),$(target),$(host))))))
191+
$(eval $(call DEF_PREPARE_TARGET_N,$(PREPARE_STAGE),$(target),$(host)))))
199192

200193
prepare-maybe-clean:
201194
$(if $(findstring true,$(PREPARE_CLEAN)),\

0 commit comments

Comments
 (0)