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:
parent
57ef015132
commit
a2434eb950
29
mk/target.mk
29
mk/target.mk
@ -42,6 +42,23 @@ $(foreach host,$(CFG_HOST), \
|
||||
$(foreach crate,$(CRATES), \
|
||||
$(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
|
||||
# for all stage/target architecture combinations. This is one giant rule which
|
||||
# works as follows:
|
||||
@ -65,12 +82,9 @@ $(foreach host,$(CFG_HOST), \
|
||||
# $(4) is the crate name
|
||||
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): \
|
||||
export RUSTC_BOOTSTRAP_KEY := $$(BOOTSTRAP_KEY$(1)_T_$(2)_H_$(3))
|
||||
$$(TLIB$(1)_T_$(2)_H_$(3))/stamp.$(4): \
|
||||
$$(CRATEFILE_$(4)) \
|
||||
$$(CRATE_FULLDEPS_$(1)_T_$(2)_H_$(3)_$(4)) \
|
||||
@ -118,11 +132,8 @@ endef
|
||||
# $(4) - name of the tool being built
|
||||
define TARGET_TOOL
|
||||
|
||||
ifeq ($(1),0)
|
||||
$$(TBIN$(1)_T_$(2)_H_$(3))/$(4)$$(X_$(2)): \
|
||||
export RUSTC_BOOTSTRAP_KEY := $$(CFG_BOOTSTRAP_KEY_STAGE0)
|
||||
endif
|
||||
|
||||
export RUSTC_BOOTSTRAP_KEY := $$(BOOTSTRAP_KEY$(1)_T_$(2)_H_$(3))
|
||||
$$(TBIN$(1)_T_$(2)_H_$(3))/$(4)$$(X_$(2)): \
|
||||
$$(TOOL_SOURCE_$(4)) \
|
||||
$$(TOOL_INPUTS_$(4)) \
|
||||
|
Loading…
Reference in New Issue
Block a user