Auto merge of #33825 - alexcrichton:fix-beta, r=aturon
mk: Fix bootstrapping cross-hosts on beta The beta builds are currently failing, unfortunately, due to what is presumably some odd behavior with our makefiles. The wrong bootstrap key is being used to generate the stage1 cross-compiled libraries, which fails the build. Interestingly enough if the targets are directly specified as part of the build then it works just fine! Just a bare `make` fails... Instead of trying to understand what's happening in the makefiles instead just tweak how we configure the bootstrap key in a way that's more likely to work.
This commit is contained in:
commit
7746a334da
29
mk/target.mk
29
mk/target.mk
|
@ -42,6 +42,23 @@ $(foreach host,$(CFG_HOST), \
|
||||||
$(foreach crate,$(CRATES), \
|
$(foreach crate,$(CRATES), \
|
||||||
$(eval $(call RUST_CRATE_FULLDEPS,$(stage),$(target),$(host),$(crate)))))))
|
$(eval $(call RUST_CRATE_FULLDEPS,$(stage),$(target),$(host),$(crate)))))))
|
||||||
|
|
||||||
|
# $(1) stage
|
||||||
|
# $(2) target
|
||||||
|
# $(3) host
|
||||||
|
define DEFINE_BOOTSTRAP_KEY
|
||||||
|
BOOTSTRAP_KEY$(1)_T_$(2)_H_$(3) := $$(CFG_BOOTSTRAP_KEY)
|
||||||
|
ifeq ($(1),0)
|
||||||
|
ifeq ($(3),$$(CFG_BUILD))
|
||||||
|
BOOTSTRAP_KEY$(1)_T_$(2)_H_$(3) := $$(CFG_BOOTSTRAP_KEY_STAGE0)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(foreach host,$(CFG_TARGET), \
|
||||||
|
$(foreach target,$(CFG_TARGET), \
|
||||||
|
$(foreach stage,$(STAGES), \
|
||||||
|
$(eval $(call DEFINE_BOOTSTRAP_KEY,$(stage),$(target),$(host))))))
|
||||||
|
|
||||||
# RUST_TARGET_STAGE_N template: This defines how target artifacts are built
|
# RUST_TARGET_STAGE_N template: This defines how target artifacts are built
|
||||||
# for all stage/target architecture combinations. This is one giant rule which
|
# for all stage/target architecture combinations. This is one giant rule which
|
||||||
# works as follows:
|
# works as follows:
|
||||||
|
@ -65,12 +82,9 @@ $(foreach host,$(CFG_HOST), \
|
||||||
# $(4) is the crate name
|
# $(4) is the crate name
|
||||||
define RUST_TARGET_STAGE_N
|
define RUST_TARGET_STAGE_N
|
||||||
|
|
||||||
ifeq ($(1),0)
|
|
||||||
$$(TLIB$(1)_T_$(2)_H_$(3))/stamp.$(4): \
|
|
||||||
export RUSTC_BOOTSTRAP_KEY := $$(CFG_BOOTSTRAP_KEY_STAGE0)
|
|
||||||
endif
|
|
||||||
|
|
||||||
$$(TLIB$(1)_T_$(2)_H_$(3))/stamp.$(4): CFG_COMPILER_HOST_TRIPLE = $(2)
|
$$(TLIB$(1)_T_$(2)_H_$(3))/stamp.$(4): CFG_COMPILER_HOST_TRIPLE = $(2)
|
||||||
|
$$(TLIB$(1)_T_$(2)_H_$(3))/stamp.$(4): \
|
||||||
|
export RUSTC_BOOTSTRAP_KEY := $$(BOOTSTRAP_KEY$(1)_T_$(2)_H_$(3))
|
||||||
$$(TLIB$(1)_T_$(2)_H_$(3))/stamp.$(4): \
|
$$(TLIB$(1)_T_$(2)_H_$(3))/stamp.$(4): \
|
||||||
$$(CRATEFILE_$(4)) \
|
$$(CRATEFILE_$(4)) \
|
||||||
$$(CRATE_FULLDEPS_$(1)_T_$(2)_H_$(3)_$(4)) \
|
$$(CRATE_FULLDEPS_$(1)_T_$(2)_H_$(3)_$(4)) \
|
||||||
|
@ -118,11 +132,8 @@ endef
|
||||||
# $(4) - name of the tool being built
|
# $(4) - name of the tool being built
|
||||||
define TARGET_TOOL
|
define TARGET_TOOL
|
||||||
|
|
||||||
ifeq ($(1),0)
|
|
||||||
$$(TBIN$(1)_T_$(2)_H_$(3))/$(4)$$(X_$(2)): \
|
$$(TBIN$(1)_T_$(2)_H_$(3))/$(4)$$(X_$(2)): \
|
||||||
export RUSTC_BOOTSTRAP_KEY := $$(CFG_BOOTSTRAP_KEY_STAGE0)
|
export RUSTC_BOOTSTRAP_KEY := $$(BOOTSTRAP_KEY$(1)_T_$(2)_H_$(3))
|
||||||
endif
|
|
||||||
|
|
||||||
$$(TBIN$(1)_T_$(2)_H_$(3))/$(4)$$(X_$(2)): \
|
$$(TBIN$(1)_T_$(2)_H_$(3))/$(4)$$(X_$(2)): \
|
||||||
$$(TOOL_SOURCE_$(4)) \
|
$$(TOOL_SOURCE_$(4)) \
|
||||||
$$(TOOL_INPUTS_$(4)) \
|
$$(TOOL_INPUTS_$(4)) \
|
||||||
|
|
Loading…
Reference in New Issue